mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
The "Edit timer" menu can now set the folder for the recording from a list of folders stored in "folders.conf"
This commit is contained in:
parent
61c1df7004
commit
a503c6ab3f
4
HISTORY
4
HISTORY
@ -6276,7 +6276,9 @@ Video Disk Recorder Revision History
|
||||
- Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to
|
||||
Anssi Hannula).
|
||||
|
||||
2010-01-10: Version 1.7.12
|
||||
2010-01-17: Version 1.7.12
|
||||
|
||||
- Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group".
|
||||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||||
- The "Edit timer" menu can now set the folder for the recording from a list of
|
||||
folders stored in "folders.conf".
|
||||
|
17
MANUAL
17
MANUAL
@ -474,6 +474,23 @@ Version 1.6
|
||||
A timer can also be programmed by pressing the "Red" key on the "Schedule",
|
||||
"Now", "Next" or "Event" menus.
|
||||
|
||||
The "Red" key in the "Edit timer" menu opens a list of folders, which can be
|
||||
used to define the file name in which the recording will be stored.
|
||||
|
||||
* Managing folders
|
||||
|
||||
The "Select folder" menu, which can be accessed by pressing the "Red" key in
|
||||
the "Edit timer" menu, offers a list of folders that can be used for storing
|
||||
a recording. In this menu, the "Green" key allows you to define a new folder
|
||||
within the current one; if the "Sub folder" option is set to "yes", this will
|
||||
be a folder that contains other folders (indicated by "..." following the
|
||||
folder name in the list). The "Yellow" key deletes the current folder (note
|
||||
that this will merely delete the folder definition stored in 'folders.conf'
|
||||
and has no effect on existing timers or recordings). The "Blue" key can be
|
||||
used to edit an existing folder definition. The "Red" key selects the current
|
||||
folder, or enters a sub folder. Once a folder has been selected, the entire
|
||||
path of the timer's file name will be replaced with the selected folder.
|
||||
|
||||
* Parameters in the "Setup" menu
|
||||
|
||||
Select "Setup" from the "VDR" menu to enter the setup menu. From there you can
|
||||
|
146
config.c
146
config.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: config.c 2.6 2009/12/05 15:30:30 kls Exp $
|
||||
* $Id: config.c 2.7 2010/01/16 14:27:29 kls Exp $
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@ -123,6 +123,150 @@ bool cSVDRPhost::Accepts(in_addr_t Address)
|
||||
return (Address & mask) == (addr.s_addr & mask);
|
||||
}
|
||||
|
||||
// --- cNestedItem -----------------------------------------------------------
|
||||
|
||||
cNestedItem::cNestedItem(const char *Text, bool WithSubItems)
|
||||
{
|
||||
text = strdup(Text ? Text : "");
|
||||
subItems = WithSubItems ? new cList<cNestedItem> : NULL;
|
||||
}
|
||||
|
||||
cNestedItem::~cNestedItem()
|
||||
{
|
||||
delete subItems;
|
||||
free(text);
|
||||
}
|
||||
|
||||
int cNestedItem::Compare(const cListObject &ListObject) const
|
||||
{
|
||||
return strcasecmp(text, ((cNestedItem *)&ListObject)->text);
|
||||
}
|
||||
|
||||
void cNestedItem::AddSubItem(cNestedItem *Item)
|
||||
{
|
||||
if (!subItems)
|
||||
subItems = new cList<cNestedItem>;
|
||||
if (Item)
|
||||
subItems->Add(Item);
|
||||
}
|
||||
|
||||
void cNestedItem::SetText(const char *Text)
|
||||
{
|
||||
free(text);
|
||||
text = strdup(Text ? Text : "");
|
||||
}
|
||||
|
||||
void cNestedItem::SetSubItems(bool On)
|
||||
{
|
||||
if (On && !subItems)
|
||||
subItems = new cList<cNestedItem>;
|
||||
else if (!On && subItems) {
|
||||
delete subItems;
|
||||
subItems = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// --- cNestedItemList -------------------------------------------------------
|
||||
|
||||
cNestedItemList::cNestedItemList(void)
|
||||
{
|
||||
fileName = NULL;
|
||||
}
|
||||
|
||||
cNestedItemList::~cNestedItemList()
|
||||
{
|
||||
free(fileName);
|
||||
}
|
||||
|
||||
bool cNestedItemList::Parse(FILE *f, cList<cNestedItem> *List, int &Line)
|
||||
{
|
||||
char *s;
|
||||
cReadLine ReadLine;
|
||||
while ((s = ReadLine.Read(f)) != NULL) {
|
||||
Line++;
|
||||
char *p = strchr(s, '#');
|
||||
if (p)
|
||||
*p = 0;
|
||||
s = skipspace(stripspace(s));
|
||||
if (!isempty(s)) {
|
||||
if ((p = strchr(s, '{')) != NULL) {
|
||||
*p = 0;
|
||||
stripspace(s);
|
||||
cNestedItem *Item = new cNestedItem(s, true);
|
||||
List->Add(Item);
|
||||
if (!Parse(f, Item->SubItems(), Line))
|
||||
return false;
|
||||
}
|
||||
else if (*s == '}')
|
||||
break;
|
||||
else
|
||||
List->Add(new cNestedItem(s));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cNestedItemList::Write(FILE *f, cList<cNestedItem> *List, int Indent)
|
||||
{
|
||||
for (cNestedItem *Item = List->First(); Item; Item = List->Next(Item)) {
|
||||
if (Item->SubItems()) {
|
||||
fprintf(f, "%*s%s {\n", Indent, "", Item->Text());
|
||||
Write(f, Item->SubItems(), Indent + 2);
|
||||
fprintf(f, "%*s}\n", Indent + 2, "");
|
||||
}
|
||||
else
|
||||
fprintf(f, "%*s%s\n", Indent, "", Item->Text());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void cNestedItemList::Clear(void)
|
||||
{
|
||||
free(fileName);
|
||||
fileName = NULL;
|
||||
cList<cNestedItem>::Clear();
|
||||
}
|
||||
|
||||
bool cNestedItemList::Load(const char *FileName)
|
||||
{
|
||||
cList<cNestedItem>::Clear();
|
||||
if (FileName) {
|
||||
free(fileName);
|
||||
fileName = strdup(FileName);
|
||||
}
|
||||
bool result = false;
|
||||
if (fileName && access(fileName, F_OK) == 0) {
|
||||
isyslog("loading %s", fileName);
|
||||
FILE *f = fopen(fileName, "r");
|
||||
if (f) {
|
||||
int Line = 0;
|
||||
result = Parse(f, this, Line);
|
||||
fclose(f);
|
||||
}
|
||||
else {
|
||||
LOG_ERROR_STR(fileName);
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool cNestedItemList::Save(void)
|
||||
{
|
||||
bool result = true;
|
||||
cSafeFile f(fileName);
|
||||
if (f.Open()) {
|
||||
result = Write(f, this);
|
||||
if (!f.Close())
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
result = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
cNestedItemList Folders;
|
||||
|
||||
// --- cCommands -------------------------------------------------------------
|
||||
|
||||
cCommands Commands;
|
||||
|
31
config.h
31
config.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: config.h 2.17 2010/01/08 15:21:44 kls Exp $
|
||||
* $Id: config.h 2.18 2010/01/16 13:33:10 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
@ -158,6 +158,34 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class cNestedItem : public cListObject {
|
||||
private:
|
||||
char *text;
|
||||
cList<cNestedItem> *subItems;
|
||||
public:
|
||||
cNestedItem(const char *Text, bool WithSubItems = false);
|
||||
virtual ~cNestedItem();
|
||||
virtual int Compare(const cListObject &ListObject) const;
|
||||
const char *Text(void) const { return text; }
|
||||
cList<cNestedItem> *SubItems(void) { return subItems; }
|
||||
void AddSubItem(cNestedItem *Item);
|
||||
void SetText(const char *Text);
|
||||
void SetSubItems(bool On);
|
||||
};
|
||||
|
||||
class cNestedItemList : public cList<cNestedItem> {
|
||||
private:
|
||||
char *fileName;
|
||||
bool Parse(FILE *f, cList<cNestedItem> *List, int &Line);
|
||||
bool Write(FILE *f, cList<cNestedItem> *List, int Indent = 0);
|
||||
public:
|
||||
cNestedItemList(void);
|
||||
virtual ~cNestedItemList();
|
||||
void Clear(void);
|
||||
bool Load(const char *FileName);
|
||||
bool Save(void);
|
||||
};
|
||||
|
||||
class cCommands : public cConfig<cCommand> {};
|
||||
|
||||
class cSVDRPhosts : public cConfig<cSVDRPhost> {
|
||||
@ -165,6 +193,7 @@ public:
|
||||
bool Acceptable(in_addr_t Address);
|
||||
};
|
||||
|
||||
extern cNestedItemList Folders;
|
||||
extern cCommands Commands;
|
||||
extern cCommands RecordingCommands;
|
||||
extern cSVDRPhosts SVDRPhosts;
|
||||
|
301
menu.c
301
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 2.10 2009/12/06 11:29:05 kls Exp $
|
||||
* $Id: menu.c 2.11 2010/01/17 12:08:03 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -623,11 +623,276 @@ eOSState cMenuText::ProcessKey(eKeys Key)
|
||||
return state;
|
||||
}
|
||||
|
||||
// --- cMenuFolderItem -------------------------------------------------------
|
||||
|
||||
class cMenuFolderItem : public cOsdItem {
|
||||
private:
|
||||
cNestedItem *folder;
|
||||
public:
|
||||
cMenuFolderItem(cNestedItem *Folder);
|
||||
cNestedItem *Folder(void) { return folder; }
|
||||
};
|
||||
|
||||
cMenuFolderItem::cMenuFolderItem(cNestedItem *Folder)
|
||||
:cOsdItem(Folder->Text())
|
||||
{
|
||||
folder = Folder;
|
||||
if (folder->SubItems())
|
||||
SetText(cString::sprintf("%s...", folder->Text()));
|
||||
}
|
||||
|
||||
// --- cMenuEditFolder -------------------------------------------------------
|
||||
|
||||
class cMenuEditFolder : public cOsdMenu {
|
||||
private:
|
||||
cList<cNestedItem> *list;
|
||||
cNestedItem *folder;
|
||||
char name[PATH_MAX];
|
||||
int subFolder;
|
||||
eOSState Confirm(void);
|
||||
public:
|
||||
cMenuEditFolder(const char *Dir, cList<cNestedItem> *List, cNestedItem *Folder = NULL);
|
||||
cString GetFolder(void);
|
||||
virtual eOSState ProcessKey(eKeys Key);
|
||||
};
|
||||
|
||||
cMenuEditFolder::cMenuEditFolder(const char *Dir, cList<cNestedItem> *List, cNestedItem *Folder)
|
||||
:cOsdMenu(Folder ? tr("Edit folder") : tr("New folder"), 12)
|
||||
{
|
||||
list = List;
|
||||
folder = Folder;
|
||||
if (folder) {
|
||||
strn0cpy(name, folder->Text(), sizeof(name));
|
||||
subFolder = folder->SubItems() != NULL;
|
||||
}
|
||||
else {
|
||||
*name = 0;
|
||||
subFolder = 0;
|
||||
cRemote::Put(kRight, true); // go right into string editing mode
|
||||
}
|
||||
if (!isempty(Dir)) {
|
||||
cOsdItem *DirItem = new cOsdItem(Dir);
|
||||
DirItem->SetSelectable(false);
|
||||
Add(DirItem);
|
||||
}
|
||||
Add(new cMenuEditStrItem( tr("Name"), name, sizeof(name)));
|
||||
Add(new cMenuEditBoolItem(tr("Sub folder"), &subFolder));
|
||||
}
|
||||
|
||||
cString cMenuEditFolder::GetFolder(void)
|
||||
{
|
||||
return folder ? folder->Text() : "";
|
||||
}
|
||||
|
||||
eOSState cMenuEditFolder::Confirm(void)
|
||||
{
|
||||
if (!folder || strcmp(folder->Text(), name) != 0) {
|
||||
// each name may occur only once in a folder list
|
||||
for (cNestedItem *Folder = list->First(); Folder; Folder = list->Next(Folder)) {
|
||||
if (strcmp(Folder->Text(), name) == 0) {
|
||||
Skins.Message(mtError, tr("Folder name already exists!"));
|
||||
return osContinue;
|
||||
}
|
||||
}
|
||||
char *p = strpbrk(name, "\\{}#~"); // FOLDERDELIMCHAR
|
||||
if (p) {
|
||||
Skins.Message(mtError, cString::sprintf(tr("Folder name must not contain '%c'!"), *p));
|
||||
return osContinue;
|
||||
}
|
||||
}
|
||||
if (folder) {
|
||||
folder->SetText(name);
|
||||
folder->SetSubItems(subFolder);
|
||||
}
|
||||
else
|
||||
list->Add(folder = new cNestedItem(name, subFolder));
|
||||
return osEnd;
|
||||
}
|
||||
|
||||
eOSState cMenuEditFolder::ProcessKey(eKeys Key)
|
||||
{
|
||||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||
|
||||
if (state == osUnknown) {
|
||||
switch (Key) {
|
||||
case kOk: return Confirm();
|
||||
case kRed:
|
||||
case kGreen:
|
||||
case kYellow:
|
||||
case kBlue: return osContinue;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
// --- cMenuFolder -----------------------------------------------------------
|
||||
|
||||
cMenuFolder::cMenuFolder(const char *Title, cNestedItemList *NestedItemList, const char *Path)
|
||||
:cOsdMenu(Title)
|
||||
{
|
||||
list = nestedItemList = NestedItemList;
|
||||
firstFolder = NULL;
|
||||
editing = false;
|
||||
Set();
|
||||
SetHelpKeys();
|
||||
DescendPath(Path);
|
||||
}
|
||||
|
||||
cMenuFolder::cMenuFolder(const char *Title, cList<cNestedItem> *List, cNestedItemList *NestedItemList, const char *Dir, const char *Path)
|
||||
:cOsdMenu(Title)
|
||||
{
|
||||
list = List;
|
||||
nestedItemList = NestedItemList;
|
||||
dir = Dir;
|
||||
firstFolder = NULL;
|
||||
editing = false;
|
||||
Set();
|
||||
SetHelpKeys();
|
||||
DescendPath(Path);
|
||||
}
|
||||
|
||||
void cMenuFolder::SetHelpKeys(void)
|
||||
{
|
||||
SetHelp(firstFolder ? tr("Button$Select") : NULL, tr("Button$New"), firstFolder ? tr("Button$Delete") : NULL, firstFolder ? tr("Button$Edit") : NULL);
|
||||
}
|
||||
|
||||
void cMenuFolder::Set(const char *CurrentFolder)
|
||||
{
|
||||
firstFolder = NULL;
|
||||
Clear();
|
||||
if (!isempty(dir)) {
|
||||
cOsdItem *DirItem = new cOsdItem(dir);
|
||||
DirItem->SetSelectable(false);
|
||||
Add(DirItem);
|
||||
}
|
||||
list->Sort();
|
||||
for (cNestedItem *Folder = list->First(); Folder; Folder = list->Next(Folder)) {
|
||||
cOsdItem *FolderItem = new cMenuFolderItem(Folder);
|
||||
Add(FolderItem, CurrentFolder ? strcmp(Folder->Text(), CurrentFolder) == 0 : false);
|
||||
if (!firstFolder)
|
||||
firstFolder = FolderItem;
|
||||
}
|
||||
}
|
||||
|
||||
void cMenuFolder::DescendPath(const char *Path)
|
||||
{
|
||||
if (Path) {
|
||||
const char *p = strchr(Path, FOLDERDELIMCHAR);
|
||||
if (p) {
|
||||
for (cMenuFolderItem *Folder = (cMenuFolderItem *)firstFolder; Folder; Folder = (cMenuFolderItem *)Next(Folder)) {
|
||||
if (strncmp(Folder->Folder()->Text(), Path, p - Path) == 0) {
|
||||
SetCurrent(Folder);
|
||||
if (Folder->Folder()->SubItems())
|
||||
AddSubMenu(new cMenuFolder(Title(), Folder->Folder()->SubItems(), nestedItemList, !isempty(dir) ? *cString::sprintf("%s%c%s", *dir, FOLDERDELIMCHAR, Folder->Folder()->Text()) : Folder->Folder()->Text(), p + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
eOSState cMenuFolder::Select(void)
|
||||
{
|
||||
if (firstFolder) {
|
||||
cMenuFolderItem *Folder = (cMenuFolderItem *)Get(Current());
|
||||
if (Folder) {
|
||||
if (Folder->Folder()->SubItems())
|
||||
return AddSubMenu(new cMenuFolder(Title(), Folder->Folder()->SubItems(), nestedItemList, !isempty(dir) ? *cString::sprintf("%s%c%s", *dir, FOLDERDELIMCHAR, Folder->Folder()->Text()) : Folder->Folder()->Text()));
|
||||
else
|
||||
return osEnd;
|
||||
}
|
||||
}
|
||||
return osContinue;
|
||||
}
|
||||
|
||||
eOSState cMenuFolder::New(void)
|
||||
{
|
||||
editing = true;
|
||||
return AddSubMenu(new cMenuEditFolder(dir, list));
|
||||
}
|
||||
|
||||
eOSState cMenuFolder::Delete(void)
|
||||
{
|
||||
if (!HasSubMenu() && firstFolder) {
|
||||
cMenuFolderItem *Folder = (cMenuFolderItem *)Get(Current());
|
||||
if (Folder && Interface->Confirm(Folder->Folder()->SubItems() ? tr("Delete folder and all sub folders?") : tr("Delete folder?"))) {
|
||||
list->Del(Folder->Folder());
|
||||
Del(Folder->Index());
|
||||
firstFolder = Get(isempty(dir) ? 0 : 1);
|
||||
Display();
|
||||
SetHelpKeys();
|
||||
nestedItemList->Save();
|
||||
}
|
||||
}
|
||||
return osContinue;
|
||||
}
|
||||
|
||||
eOSState cMenuFolder::Edit(void)
|
||||
{
|
||||
if (!HasSubMenu() && firstFolder) {
|
||||
cMenuFolderItem *Folder = (cMenuFolderItem *)Get(Current());
|
||||
if (Folder) {
|
||||
editing = true;
|
||||
return AddSubMenu(new cMenuEditFolder(dir, list, Folder->Folder()));
|
||||
}
|
||||
}
|
||||
return osContinue;
|
||||
}
|
||||
|
||||
eOSState cMenuFolder::SetFolder(void)
|
||||
{
|
||||
cMenuEditFolder *mef = (cMenuEditFolder *)SubMenu();
|
||||
if (mef) {
|
||||
Set(mef->GetFolder());
|
||||
SetHelpKeys();
|
||||
Display();
|
||||
nestedItemList->Save();
|
||||
}
|
||||
return CloseSubMenu();
|
||||
}
|
||||
|
||||
cString cMenuFolder::GetFolder(void)
|
||||
{
|
||||
if (firstFolder) {
|
||||
cMenuFolderItem *Folder = (cMenuFolderItem *)Get(Current());
|
||||
if (Folder) {
|
||||
cMenuFolder *mf = (cMenuFolder *)SubMenu();
|
||||
if (mf)
|
||||
return cString::sprintf("%s%c%s", Folder->Folder()->Text(), FOLDERDELIMCHAR, *mf->GetFolder());
|
||||
return Folder->Folder()->Text();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
eOSState cMenuFolder::ProcessKey(eKeys Key)
|
||||
{
|
||||
if (!HasSubMenu())
|
||||
editing = false;
|
||||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||
|
||||
if (state == osUnknown) {
|
||||
switch (Key) {
|
||||
case kOk:
|
||||
case kRed: return Select();
|
||||
case kGreen: return New();
|
||||
case kYellow: return Delete();
|
||||
case kBlue: return Edit();
|
||||
default: state = osContinue;
|
||||
}
|
||||
}
|
||||
else if (state == osEnd && HasSubMenu() && editing)
|
||||
state = SetFolder();
|
||||
return state;
|
||||
}
|
||||
|
||||
// --- cMenuEditTimer --------------------------------------------------------
|
||||
|
||||
cMenuEditTimer::cMenuEditTimer(cTimer *Timer, bool New)
|
||||
:cOsdMenu(tr("Edit timer"), 12)
|
||||
{
|
||||
file = NULL;
|
||||
firstday = NULL;
|
||||
timer = Timer;
|
||||
addIfConfirmed = New;
|
||||
@ -644,9 +909,10 @@ cMenuEditTimer::cMenuEditTimer(cTimer *Timer, bool New)
|
||||
Add(new cMenuEditBitItem( tr("VPS"), &data.flags, tfVps));
|
||||
Add(new cMenuEditIntItem( tr("Priority"), &data.priority, 0, MAXPRIORITY));
|
||||
Add(new cMenuEditIntItem( tr("Lifetime"), &data.lifetime, 0, MAXLIFETIME));
|
||||
Add(new cMenuEditStrItem( tr("File"), data.file, sizeof(data.file)));
|
||||
Add(file = new cMenuEditStrItem( tr("File"), data.file, sizeof(data.file)));
|
||||
SetFirstDayItem();
|
||||
}
|
||||
SetHelpKeys();
|
||||
Timers.IncBeingEdited();
|
||||
}
|
||||
|
||||
@ -657,6 +923,11 @@ cMenuEditTimer::~cMenuEditTimer()
|
||||
Timers.DecBeingEdited();
|
||||
}
|
||||
|
||||
void cMenuEditTimer::SetHelpKeys(void)
|
||||
{
|
||||
SetHelp(tr("Button$Folder"));
|
||||
}
|
||||
|
||||
void cMenuEditTimer::SetFirstDayItem(void)
|
||||
{
|
||||
if (!firstday && !data.IsSingleEvent()) {
|
||||
@ -670,6 +941,26 @@ void cMenuEditTimer::SetFirstDayItem(void)
|
||||
}
|
||||
}
|
||||
|
||||
eOSState cMenuEditTimer::SetFolder(void)
|
||||
{
|
||||
cMenuFolder *mf = (cMenuFolder *)SubMenu();
|
||||
if (mf) {
|
||||
cString Folder = mf->GetFolder();
|
||||
char *p = strrchr(data.file, FOLDERDELIMCHAR);
|
||||
if (p)
|
||||
p++;
|
||||
else
|
||||
p = data.file;
|
||||
if (!isempty(*Folder))
|
||||
strn0cpy(data.file, cString::sprintf("%s%c%s", *Folder, FOLDERDELIMCHAR, p), sizeof(data.file));
|
||||
else if (p != data.file)
|
||||
memmove(data.file, p, strlen(p) + 1);
|
||||
SetCurrent(file);
|
||||
Display();
|
||||
}
|
||||
return CloseSubMenu();
|
||||
}
|
||||
|
||||
eOSState cMenuEditTimer::ProcessKey(eKeys Key)
|
||||
{
|
||||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||
@ -699,13 +990,15 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key)
|
||||
}
|
||||
}
|
||||
return osBack;
|
||||
case kRed:
|
||||
case kRed: return AddSubMenu(new cMenuFolder(tr("Select folder"), &Folders, data.file));
|
||||
case kGreen:
|
||||
case kYellow:
|
||||
case kBlue: return osContinue;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if (state == osEnd && HasSubMenu())
|
||||
state = SetFolder();
|
||||
if (Key != kNone)
|
||||
SetFirstDayItem();
|
||||
return state;
|
||||
@ -1921,7 +2214,7 @@ void cMenuRecordings::Set(bool Refresh)
|
||||
Clear();
|
||||
Recordings.Sort();
|
||||
for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) {
|
||||
if (!base || (strstr(recording->Name(), base) == recording->Name() && recording->Name()[strlen(base)] == '~')) {
|
||||
if (!base || (strstr(recording->Name(), base) == recording->Name() && recording->Name()[strlen(base)] == FOLDERDELIMCHAR)) {
|
||||
cMenuRecordingItem *Item = new cMenuRecordingItem(recording, level);
|
||||
if (*Item->Text() && (!LastItem || strcmp(Item->Text(), LastItemText) != 0)) {
|
||||
Add(Item);
|
||||
|
27
menu.h
27
menu.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.h 1.91 2008/02/10 16:01:53 kls Exp $
|
||||
* $Id: menu.h 2.1 2010/01/17 11:21:42 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __MENU_H
|
||||
@ -31,14 +31,39 @@ public:
|
||||
virtual eOSState ProcessKey(eKeys Key);
|
||||
};
|
||||
|
||||
class cMenuFolder : public cOsdMenu {
|
||||
private:
|
||||
cNestedItemList *nestedItemList;
|
||||
cList<cNestedItem> *list;
|
||||
cString dir;
|
||||
cOsdItem *firstFolder;
|
||||
bool editing;
|
||||
void SetHelpKeys(void);
|
||||
void Set(const char *CurrentFolder = NULL);
|
||||
void DescendPath(const char *Path);
|
||||
eOSState SetFolder(void);
|
||||
eOSState Select(void);
|
||||
eOSState New(void);
|
||||
eOSState Delete(void);
|
||||
eOSState Edit(void);
|
||||
cMenuFolder(const char *Title, cList<cNestedItem> *List, cNestedItemList *NestedItemList, const char *Dir, const char *Path = NULL);
|
||||
public:
|
||||
cMenuFolder(const char *Title, cNestedItemList *NestedItemList, const char *Path = NULL);
|
||||
cString GetFolder(void);
|
||||
virtual eOSState ProcessKey(eKeys Key);
|
||||
};
|
||||
|
||||
class cMenuEditTimer : public cOsdMenu {
|
||||
private:
|
||||
cTimer *timer;
|
||||
cTimer data;
|
||||
int channel;
|
||||
bool addIfConfirmed;
|
||||
cMenuEditStrItem *file;
|
||||
cMenuEditDateItem *firstday;
|
||||
eOSState SetFolder(void);
|
||||
void SetFirstDayItem(void);
|
||||
void SetHelpKeys(void);
|
||||
public:
|
||||
cMenuEditTimer(cTimer *Timer, bool New = false);
|
||||
virtual ~cMenuEditTimer();
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: osdbase.c 2.1 2009/06/01 11:54:50 kls Exp $
|
||||
* $Id: osdbase.c 2.2 2010/01/17 11:36:12 kls Exp $
|
||||
*/
|
||||
|
||||
#include "osdbase.h"
|
||||
@ -41,7 +41,7 @@ cOsdItem::~cOsdItem()
|
||||
void cOsdItem::SetText(const char *Text, bool Copy)
|
||||
{
|
||||
free(text);
|
||||
text = Copy ? strdup(Text) : (char *)Text; // text assumes ownership!
|
||||
text = Copy ? strdup(Text ? Text : "") : (char *)Text; // text assumes ownership!
|
||||
}
|
||||
|
||||
void cOsdItem::SetSelectable(bool Selectable)
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: osdbase.h 1.17 2007/11/03 14:50:52 kls Exp $
|
||||
* $Id: osdbase.h 2.1 2010/01/16 14:25:31 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __OSDBASE_H
|
||||
@ -102,6 +102,7 @@ protected:
|
||||
void SetCols(int c0, int c1 = 0, int c2 = 0, int c3 = 0, int c4 = 0);
|
||||
void SetHasHotkeys(bool HasHotkeys = true);
|
||||
virtual void Clear(void);
|
||||
const char *Title(void) { return title; }
|
||||
bool SelectableItem(int idx);
|
||||
void SetCurrent(cOsdItem *Item);
|
||||
void RefreshCurrent(void);
|
||||
@ -116,6 +117,7 @@ protected:
|
||||
eOSState AddSubMenu(cOsdMenu *SubMenu);
|
||||
eOSState CloseSubMenu();
|
||||
bool HasSubMenu(void) { return subMenu; }
|
||||
cOsdMenu *SubMenu(void) { return subMenu; }
|
||||
void SetStatus(const char *s);
|
||||
void SetTitle(const char *Title);
|
||||
void SetHelp(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
|
||||
|
33
po/ca_ES.po
33
po/ca_ES.po
@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-03-02 19:02+0100\n"
|
||||
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
|
||||
"Language-Team: Catalanian\n"
|
||||
@ -586,6 +586,31 @@ msgstr "Canal en
|
||||
msgid "Delete channel?"
|
||||
msgstr "Esborrar el canal?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Editar temporitzador"
|
||||
|
||||
@ -616,9 +641,15 @@ msgstr "Durada"
|
||||
msgid "File"
|
||||
msgstr "Arxiu"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Primer dia"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Temporitzadors"
|
||||
|
||||
|
33
po/cs_CZ.po
33
po/cs_CZ.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-02-28 15:00+0200\n"
|
||||
"Last-Translator: Vladimír Bárta <vladimir.barta@k2atmitec.cz>, Jiøí Dobrý <jdobry@centrum.cz>\n"
|
||||
"Language-Team: Czech\n"
|
||||
@ -584,6 +584,31 @@ msgstr "Kan
|
||||
msgid "Delete channel?"
|
||||
msgstr "Smazat kanál?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Editace èasovaèe"
|
||||
|
||||
@ -614,9 +639,15 @@ msgstr "
|
||||
msgid "File"
|
||||
msgstr "Soubor"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "První den"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Èasovaèe"
|
||||
|
||||
|
33
po/da_DK.po
33
po/da_DK.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
|
||||
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
|
||||
"Language-Team: Danish\n"
|
||||
@ -583,6 +583,31 @@ msgstr "Kanal anvendes af en timer!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Slet kanal?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Rediger timer"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "Levetid"
|
||||
msgid "File"
|
||||
msgstr "Fil"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Første dag"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timere"
|
||||
|
||||
|
35
po/de_DE.po
35
po/de_DE.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"PO-Revision-Date: 2007-11-25 15:19+0200\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2010-01-16 16:46+0100\n"
|
||||
"Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -583,6 +583,31 @@ msgstr "Kanal wird von einem Timer benutzt!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Kanal löschen?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr "Verzeichnis editieren"
|
||||
|
||||
msgid "New folder"
|
||||
msgstr "Neues Verzeichnis"
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr "Unterverzeichnis"
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr "Verzeichnisname existiert bereits!"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr "Verzeichnisname darf kein '{', '}' oder '#' enthalten!"
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr "Auswählen"
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr "Verzeichnis und alle Unterverzeichnisse löschen?"
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr "Verzeichnis löschen?"
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Timer editieren"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "Lebensdauer"
|
||||
msgid "File"
|
||||
msgstr "Datei"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr "Verzeichnis"
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Erster Tag"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr "Verzeichnis wählen"
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timer"
|
||||
|
||||
|
33
po/el_GR.po
33
po/el_GR.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
|
||||
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
|
||||
"Language-Team: Greek\n"
|
||||
@ -583,6 +583,31 @@ msgstr "
|
||||
msgid "Delete channel?"
|
||||
msgstr "ÄéáãñáöÞ êáíáëéïý?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Ôñïðïðïßçóç ÷ñïíïðñïãñáììáôéóìïý"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "
|
||||
msgid "File"
|
||||
msgstr "Áñ÷åßï"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Ðñþôç ìÝñá"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "×ñïíïðñïãñáììáôéóìïß"
|
||||
|
||||
|
33
po/es_ES.po
33
po/es_ES.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-03-02 19:02+0100\n"
|
||||
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
@ -584,6 +584,31 @@ msgstr "
|
||||
msgid "Delete channel?"
|
||||
msgstr "¿Eliminar canal?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Modificar programación"
|
||||
|
||||
@ -614,9 +639,15 @@ msgstr "Duraci
|
||||
msgid "File"
|
||||
msgstr "Fichero"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Primer día"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Programar grabaciones"
|
||||
|
||||
|
33
po/et_EE.po
33
po/et_EE.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
|
||||
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
|
||||
"Language-Team: Estonian\n"
|
||||
@ -583,6 +583,31 @@ msgstr "Kanal on taimeri kasutuses!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Kustutada kanal?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Taimeri redigeerimine"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "Eluiga"
|
||||
msgid "File"
|
||||
msgstr "Fail"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Esimene päev"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Taimer"
|
||||
|
||||
|
33
po/fi_FI.po
33
po/fi_FI.po
@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2007-08-15 15:52+0200\n"
|
||||
"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
@ -586,6 +586,31 @@ msgstr "Kanava on ajastimen k
|
||||
msgid "Delete channel?"
|
||||
msgstr "Poistetaanko kanava?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Muokkaa ajastinta"
|
||||
|
||||
@ -616,9 +641,15 @@ msgstr "Elinik
|
||||
msgid "File"
|
||||
msgstr "Tiedosto"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "1. päivä"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Ajastimet"
|
||||
|
||||
|
33
po/fr_FR.po
33
po/fr_FR.po
@ -13,7 +13,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-02-27 18:14+0100\n"
|
||||
"Last-Translator: Jean-Claude Repetto <jc@repetto.org>\n"
|
||||
"Language-Team: French\n"
|
||||
@ -589,6 +589,31 @@ msgstr "Cette cha
|
||||
msgid "Delete channel?"
|
||||
msgstr "Supprimer la chaîne ?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Changer la programmation"
|
||||
|
||||
@ -619,9 +644,15 @@ msgstr "Dur
|
||||
msgid "File"
|
||||
msgstr "Fichier"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Premier jour"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Programmation"
|
||||
|
||||
|
33
po/hr_HR.po
33
po/hr_HR.po
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-03-17 19:00+0100\n"
|
||||
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
|
||||
"Language-Team: Croatian\n"
|
||||
@ -585,6 +585,31 @@ msgstr "Program je trenutno zauzet tajmerom!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Obrisati program?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Ureðivanje tajmera"
|
||||
|
||||
@ -615,9 +640,15 @@ msgstr "Trajanje"
|
||||
msgid "File"
|
||||
msgstr "Datoteka"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Prvi dan"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Tajmeri"
|
||||
|
||||
|
33
po/hu_HU.po
33
po/hu_HU.po
@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2007-12-01 21:42+0200\n"
|
||||
"Last-Translator: István Füley <ifuley@tigercomp.ro>\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
@ -586,6 +586,31 @@ msgstr "Az ad
|
||||
msgid "Delete channel?"
|
||||
msgstr "Csatorna törlése?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Idõzítõ megváltoztatása"
|
||||
|
||||
@ -616,9 +641,15 @@ msgstr "
|
||||
msgid "File"
|
||||
msgstr "File"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Elsõ nap"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Idõzítõ"
|
||||
|
||||
|
33
po/it_IT.po
33
po/it_IT.po
@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2009-11-28 22:50+0100\n"
|
||||
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
|
||||
"Language-Team: Italian\n"
|
||||
@ -590,6 +590,31 @@ msgstr "Canale occupato da un timer!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Eliminare il canale?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Modifica timer"
|
||||
|
||||
@ -620,9 +645,15 @@ msgstr "Scadenza"
|
||||
msgid "File"
|
||||
msgstr "Nome"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "1° giorno"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timer"
|
||||
|
||||
|
33
po/lt_LT.po
33
po/lt_LT.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.7.9\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2009-10-17 14:19+0200\n"
|
||||
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
|
||||
"Language-Team: Lithuanian\n"
|
||||
@ -583,6 +583,31 @@ msgstr "Kanalą šiuo metu naudoja laikmačio procesas!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Ištrinti kanalą?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Koreguoti laikmatį"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "Galiojimas"
|
||||
msgid "File"
|
||||
msgstr "Failas"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Pirma diena"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Laikmačiai"
|
||||
|
||||
|
33
po/nl_NL.po
33
po/nl_NL.po
@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-02-26 17:20+0100\n"
|
||||
"Last-Translator: Johan Schuring <johan.schuring@vetteblei.nl>\n"
|
||||
"Language-Team: Dutch\n"
|
||||
@ -587,6 +587,31 @@ msgstr "Kanaal wordt gebruikt door een timer!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Kanaal verwijderen?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Timer veranderen"
|
||||
|
||||
@ -617,9 +642,15 @@ msgstr "Bewaarduur"
|
||||
msgid "File"
|
||||
msgstr "Bestandnaam"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Eerste dag"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timers"
|
||||
|
||||
|
33
po/nn_NO.po
33
po/nn_NO.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
|
||||
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
@ -584,6 +584,31 @@ msgstr "Kanalen er i bruk av en timer!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Slette kanal?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Editer timer"
|
||||
|
||||
@ -614,9 +639,15 @@ msgstr "Levetid"
|
||||
msgid "File"
|
||||
msgstr "Filnavn"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Første dag"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timere"
|
||||
|
||||
|
33
po/pl_PL.po
33
po/pl_PL.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-03-09 12:59+0100\n"
|
||||
"Last-Translator: Michael Rakowski <mrak@gmx.de>\n"
|
||||
"Language-Team: Polish\n"
|
||||
@ -584,6 +584,31 @@ msgstr "Kana
|
||||
msgid "Delete channel?"
|
||||
msgstr "Usun±æ kana³?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Edycja timera"
|
||||
|
||||
@ -614,9 +639,15 @@ msgstr "Czas
|
||||
msgid "File"
|
||||
msgstr "Plik"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Pierwszy dzieñ"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timery"
|
||||
|
||||
|
33
po/pt_PT.po
33
po/pt_PT.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-03-18 17:04+0100\n"
|
||||
"Last-Translator: anonymous\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
@ -583,6 +583,31 @@ msgstr "Canal a ser utilizador por uma grava
|
||||
msgid "Delete channel?"
|
||||
msgstr "Apagar o canal?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Editar gavação programada"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "Dura
|
||||
msgid "File"
|
||||
msgstr "Ficheiro"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Primeiro dia"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Gravações programadas"
|
||||
|
||||
|
33
po/ro_RO.po
33
po/ro_RO.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-02-25 00:39+0100\n"
|
||||
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
|
||||
"Language-Team: Romanian\n"
|
||||
@ -586,6 +586,31 @@ msgstr "Canalul este utilizat de un timer!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "ªterg canalul?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Modificare timer"
|
||||
|
||||
@ -616,9 +641,15 @@ msgstr "Timp de p
|
||||
msgid "File"
|
||||
msgstr "Fiºier"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Prima zi"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timer-e"
|
||||
|
||||
|
33
po/ru_RU.po
33
po/ru_RU.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-12-15 14:37+0100\n"
|
||||
"Last-Translator: Oleg Roitburd <oleg@roitburd.de>\n"
|
||||
"Language-Team: Russian\n"
|
||||
@ -584,6 +584,31 @@ msgstr "
|
||||
msgid "Delete channel?"
|
||||
msgstr "ÃÔÐÛØâì ÚÐÝÐÛ?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "ÃáâÐÝÞÒÚÐ âÐÙÜÕàÐ"
|
||||
|
||||
@ -614,9 +639,15 @@ msgstr "
|
||||
msgid "File"
|
||||
msgstr "ÄÐÙÛ"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "¿ÕàÒëÙ ÔÕÝì"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "ÂÐÙÜÕàë"
|
||||
|
||||
|
33
po/sk_SK.po
33
po/sk_SK.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2009-09-30 12:50+0100\n"
|
||||
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
|
||||
"Language-Team: Slovak\n"
|
||||
@ -584,6 +584,31 @@ msgstr "Pl
|
||||
msgid "Delete channel?"
|
||||
msgstr "Odstráni» kanál?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Úprava plánu nahrávania"
|
||||
|
||||
@ -614,9 +639,15 @@ msgstr "
|
||||
msgid "File"
|
||||
msgstr "Súbor"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Prvý deò"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Plány nahrávania"
|
||||
|
||||
|
33
po/sl_SI.po
33
po/sl_SI.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-02-28 19:44+0100\n"
|
||||
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
|
||||
"Language-Team: Slovenian\n"
|
||||
@ -584,6 +584,31 @@ msgstr "Kanal je zavzet s terminom za snemanje!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Izbri¹i kanal?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Uredi termin"
|
||||
|
||||
@ -614,9 +639,15 @@ msgstr "Veljavnost"
|
||||
msgid "File"
|
||||
msgstr "Datoteka"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Prvi dan"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Termini"
|
||||
|
||||
|
33
po/sv_SE.po
33
po/sv_SE.po
@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-03-12 18:25+0100\n"
|
||||
"Last-Translator: Magnus Andersson <svankan@bahnhof.se>\n"
|
||||
"Language-Team: Swedish\n"
|
||||
@ -586,6 +586,31 @@ msgstr "Kanalen anv
|
||||
msgid "Delete channel?"
|
||||
msgstr "Ta bort kanalen?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Ändra timer"
|
||||
|
||||
@ -616,9 +641,15 @@ msgstr "Livstid"
|
||||
msgid "File"
|
||||
msgstr "Filnamn"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Första dag"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Timers"
|
||||
|
||||
|
33
po/tr_TR.po
33
po/tr_TR.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2008-02-28 00:33+0100\n"
|
||||
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
|
||||
"Language-Team: Turkish\n"
|
||||
@ -583,6 +583,31 @@ msgstr "Kanal zamanlay
|
||||
msgid "Delete channel?"
|
||||
msgstr "Kanalý sil?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Zamanlayýcýyý ayarla"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "
|
||||
msgid "File"
|
||||
msgstr "Kütük"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Ýlk gün"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Zamanlayýcý"
|
||||
|
||||
|
33
po/uk_UA.po
33
po/uk_UA.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.7.7\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2009-05-31 13:17+0200\n"
|
||||
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
@ -583,6 +583,31 @@ msgstr "Канал зайнятий таймером!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "Видалити канал?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "Налаштування таймера"
|
||||
|
||||
@ -613,9 +638,15 @@ msgstr "Строк зберігання"
|
||||
msgid "File"
|
||||
msgstr "Файл"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "Перший день"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "Таймери"
|
||||
|
||||
|
33
po/zh_CN.po
33
po/zh_CN.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VDR 1.6.0\n"
|
||||
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
|
||||
"POT-Creation-Date: 2010-01-03 15:10+0100\n"
|
||||
"POT-Creation-Date: 2010-01-17 13:05+0100\n"
|
||||
"PO-Revision-Date: 2009-09-23 23:50+0800\n"
|
||||
"Last-Translator: Nan Feng <nfgx@21cn.com>\n"
|
||||
"Language-Team: Chinese\n"
|
||||
@ -586,6 +586,31 @@ msgstr "频道正在录像!"
|
||||
msgid "Delete channel?"
|
||||
msgstr "是否删除频道?"
|
||||
|
||||
msgid "Edit folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sub folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Folder name already exists!"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Folder name must not contain '%c'!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Button$Select"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder and all sub folders?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete folder?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit timer"
|
||||
msgstr "编辑计时器"
|
||||
|
||||
@ -616,9 +641,15 @@ msgstr "终生"
|
||||
msgid "File"
|
||||
msgstr "文件"
|
||||
|
||||
msgid "Button$Folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "First day"
|
||||
msgstr "第一天"
|
||||
|
||||
msgid "Select folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timers"
|
||||
msgstr "录像中列表"
|
||||
|
||||
|
26
recording.c
26
recording.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recording.c 2.21 2010/01/02 13:46:05 kls Exp $
|
||||
* $Id: recording.c 2.22 2010/01/16 11:18:30 kls Exp $
|
||||
*/
|
||||
|
||||
#include "recording.h"
|
||||
@ -524,8 +524,8 @@ bool cRecordingInfo::Write(void) const
|
||||
|
||||
struct tCharExchange { char a; char b; };
|
||||
tCharExchange CharExchange[] = {
|
||||
{ '~', '/' },
|
||||
{ '/', '~' },
|
||||
{ FOLDERDELIMCHAR, '/' },
|
||||
{ '/', FOLDERDELIMCHAR },
|
||||
{ ' ', '_' },
|
||||
// backwards compatibility:
|
||||
{ '\'', '\'' },
|
||||
@ -546,10 +546,10 @@ char *ExchangeChars(char *s, bool ToFileSystem)
|
||||
switch (*p) {
|
||||
// characters that can be mapped to other characters:
|
||||
case ' ': *p = '_'; break;
|
||||
case '~': *p = '/'; break;
|
||||
case FOLDERDELIMCHAR: *p = '/'; break;
|
||||
// characters that have to be encoded:
|
||||
default:
|
||||
if (strchr(InvalidChars, *p) || *p == '.' && (!*(p + 1) || *(p + 1) == '~')) { // Windows can't handle '.' at the end of file/directory names
|
||||
if (strchr(InvalidChars, *p) || *p == '.' && (!*(p + 1) || *(p + 1) == FOLDERDELIMCHAR)) { // Windows can't handle '.' at the end of file/directory names
|
||||
int l = p - s;
|
||||
s = (char *)realloc(s, strlen(s) + 10);
|
||||
p = s + l;
|
||||
@ -565,7 +565,7 @@ char *ExchangeChars(char *s, bool ToFileSystem)
|
||||
switch (*p) {
|
||||
// mapped characters:
|
||||
case '_': *p = ' '; break;
|
||||
case '/': *p = '~'; break;
|
||||
case '/': *p = FOLDERDELIMCHAR; break;
|
||||
// encoded characters:
|
||||
case '#': {
|
||||
if (strlen(p) > 2 && isxdigit(*(p + 1)) && isxdigit(*(p + 2))) {
|
||||
@ -635,7 +635,7 @@ cRecording::cRecording(cTimer *Timer, const cEvent *Event)
|
||||
// avoid blanks at the end:
|
||||
int l = strlen(name);
|
||||
while (l-- > 2) {
|
||||
if (name[l] == ' ' && name[l - 1] != '~')
|
||||
if (name[l] == ' ' && name[l - 1] != FOLDERDELIMCHAR)
|
||||
name[l] = 0;
|
||||
else
|
||||
break;
|
||||
@ -853,7 +853,7 @@ const char *cRecording::Title(char Delimiter, bool NewIndicator, int Level) cons
|
||||
struct tm tm_r;
|
||||
struct tm *t = localtime_r(&start, &tm_r);
|
||||
char *s;
|
||||
if (Level > 0 && (s = strrchr(name, '~')) != NULL)
|
||||
if (Level > 0 && (s = strrchr(name, FOLDERDELIMCHAR)) != NULL)
|
||||
s++;
|
||||
else
|
||||
s = name;
|
||||
@ -867,18 +867,18 @@ const char *cRecording::Title(char Delimiter, bool NewIndicator, int Level) cons
|
||||
New,
|
||||
Delimiter,
|
||||
s));
|
||||
// let's not display a trailing '~':
|
||||
// let's not display a trailing FOLDERDELIMCHAR:
|
||||
if (!NewIndicator)
|
||||
stripspace(titleBuffer);
|
||||
s = &titleBuffer[strlen(titleBuffer) - 1];
|
||||
if (*s == '~')
|
||||
if (*s == FOLDERDELIMCHAR)
|
||||
*s = 0;
|
||||
}
|
||||
else if (Level < HierarchyLevels()) {
|
||||
const char *s = name;
|
||||
const char *p = s;
|
||||
while (*++s) {
|
||||
if (*s == '~') {
|
||||
if (*s == FOLDERDELIMCHAR) {
|
||||
if (Level--)
|
||||
p = s + 1;
|
||||
else
|
||||
@ -911,7 +911,7 @@ int cRecording::HierarchyLevels(void) const
|
||||
const char *s = name;
|
||||
int level = 0;
|
||||
while (*++s) {
|
||||
if (*s == '~')
|
||||
if (*s == FOLDERDELIMCHAR)
|
||||
level++;
|
||||
}
|
||||
return level;
|
||||
@ -919,7 +919,7 @@ int cRecording::HierarchyLevels(void) const
|
||||
|
||||
bool cRecording::IsEdited(void) const
|
||||
{
|
||||
const char *s = strrchr(name, '~');
|
||||
const char *s = strrchr(name, FOLDERDELIMCHAR);
|
||||
s = !s ? name : s + 1;
|
||||
return *s == '%';
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recording.h 2.12 2010/01/02 12:10:07 kls Exp $
|
||||
* $Id: recording.h 2.13 2010/01/16 11:16:20 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __RECORDING_H
|
||||
@ -18,6 +18,8 @@
|
||||
#include "timers.h"
|
||||
#include "tools.h"
|
||||
|
||||
#define FOLDERDELIMCHAR '~'
|
||||
|
||||
extern bool VfatFileSystem;
|
||||
extern int InstanceId;
|
||||
|
||||
|
4
timers.c
4
timers.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: timers.c 2.3 2009/08/09 12:43:20 kls Exp $
|
||||
* $Id: timers.c 2.4 2010/01/16 11:18:53 kls Exp $
|
||||
*/
|
||||
|
||||
#include "timers.h"
|
||||
@ -301,7 +301,7 @@ bool cTimer::Parse(const char *s)
|
||||
//TODO add more plausibility checks
|
||||
result = ParseDay(daybuffer, day, weekdays);
|
||||
if (VfatFileSystem) {
|
||||
char *p = strrchr(filebuffer, '~');
|
||||
char *p = strrchr(filebuffer, FOLDERDELIMCHAR);
|
||||
if (p)
|
||||
p++;
|
||||
else
|
||||
|
42
vdr.5
42
vdr.5
@ -8,7 +8,7 @@
|
||||
.\" License as specified in the file COPYING that comes with the
|
||||
.\" vdr distribution.
|
||||
.\"
|
||||
.\" $Id: vdr.5 2.11 2010/01/03 13:37:07 kls Exp $
|
||||
.\" $Id: vdr.5 2.12 2010/01/16 15:45:28 kls Exp $
|
||||
.\"
|
||||
.TH vdr 5 "10 Feb 2008" "1.6" "Video Disk Recorder Files"
|
||||
.SH NAME
|
||||
@ -489,6 +489,46 @@ Note that the color keys will only execute their macro function
|
||||
in "normal viewing" mode (i.e. when no other menu or player is active). The
|
||||
\fIUser1\fR...\fIUser9\fR keys will always execute their macro function.
|
||||
There may be up to 15 keys in such a key sequence.
|
||||
.SS FOLDERS
|
||||
The file \fIfolders.conf\fR contains the definitions of folders that can be used
|
||||
in the "Edit timer" menu. Each line contains one folder definition. Leading whitespace
|
||||
and everything after and including a '#' is ignored. A line ending with '{'
|
||||
defines a sub folder (i.e. a folder that contains other folders), and a line
|
||||
consisting of only '}' ends the definition of a sub folder.
|
||||
|
||||
Example:
|
||||
|
||||
Daily {
|
||||
.br
|
||||
News
|
||||
.br
|
||||
Soaps
|
||||
.br
|
||||
}
|
||||
.br
|
||||
Archive {
|
||||
.br
|
||||
Movies
|
||||
.br
|
||||
Sports
|
||||
.br
|
||||
Sci-Fi {
|
||||
.br
|
||||
Star Trek
|
||||
.br
|
||||
U.F.O.
|
||||
.br
|
||||
}
|
||||
.br
|
||||
}
|
||||
.br
|
||||
Comedy
|
||||
.br
|
||||
Science
|
||||
|
||||
Note that these folder definitions are only used to set the file name under which
|
||||
a timer will store its recording. Changing these definitions in any way has no
|
||||
effect on existing timers or recordings.
|
||||
.SS COMMANDS
|
||||
The file \fIcommands.conf\fR contains the definitions of commands that can
|
||||
be executed from the \fBvdr\fR main menu's "Commands" option.
|
||||
|
3
vdr.c
3
vdr.c
@ -22,7 +22,7 @@
|
||||
*
|
||||
* The project's page is at http://www.tvdr.de
|
||||
*
|
||||
* $Id: vdr.c 2.14 2010/01/02 11:52:40 kls Exp $
|
||||
* $Id: vdr.c 2.15 2010/01/16 15:11:13 kls Exp $
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
@ -587,6 +587,7 @@ int main(int argc, char *argv[])
|
||||
SVDRPhosts.Load(AddDirectory(ConfigDirectory, "svdrphosts.conf"), true);
|
||||
Keys.Load(AddDirectory(ConfigDirectory, "remote.conf"));
|
||||
KeyMacros.Load(AddDirectory(ConfigDirectory, "keymacros.conf"), true);
|
||||
Folders.Load(AddDirectory(ConfigDirectory, "folders.conf"));
|
||||
|
||||
if (!*cFont::GetFontFileName(Setup.FontOsd)) {
|
||||
const char *msg = "no fonts available - OSD will not show any text!";
|
||||
|
Loading…
Reference in New Issue
Block a user