In the "Edit recording" menu the '0' key can now be used on the "Name:" field to remove the name of the recording and replace it with the last element of the recording's folder path name

This commit is contained in:
Klaus Schmidinger 2015-02-04 09:38:55 +01:00
parent e1acb774c6
commit 6464eff516
4 changed files with 38 additions and 4 deletions

View File

@ -2412,6 +2412,8 @@ Christoph Haubrich <christoph1.haubrich@arcor.de>
for suggesting to replace "Schnitt" with "Bearbeitung" in the German OSD texts for suggesting to replace "Schnitt" with "Bearbeitung" in the German OSD texts
for reporting a superfluous call to the skin's SetRecording() function after renaming for reporting a superfluous call to the skin's SetRecording() function after renaming
a recording a recording
for suggesting to add a function to remove the name of a recording and replace it
with the last element of the recording's folder path name
Pekka Mauno <pekka.mauno@iki.fi> Pekka Mauno <pekka.mauno@iki.fi>
for fixing cSchedule::GetFollowingEvent() in case there is currently no present for fixing cSchedule::GetFollowingEvent() in case there is currently no present

View File

@ -8487,3 +8487,7 @@ Video Disk Recorder Revision History
- Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to - Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to
restrict the LCN (Logical Channel Numbers) parsing to networks that actually use restrict the LCN (Logical Channel Numbers) parsing to networks that actually use
this non-standard feature (thanks to Rolf Ahrenberg). this non-standard feature (thanks to Rolf Ahrenberg).
- In the "Edit recording" menu the '0' key can now be used on the "Name:" field to
remove the name of the recording and replace it with the last element of the
recording's folder path name (suggested by Christoph Haubrich). See MANUAL, section
"Managing folders" for details.

12
MANUAL
View File

@ -540,8 +540,16 @@ Version 2.0
the selected recording (if there are any and the recording is not currently the selected recording (if there are any and the recording is not currently
being cut). To directly edit the folder or name of the recording, position the being cut). To directly edit the folder or name of the recording, position the
cursor to the respective line and press the Right key to start editing (press cursor to the respective line and press the Right key to start editing (press
Ok to confirm the edit, or Back to return to the previous value). Once you are Ok to confirm the edit, or Back to return to the previous value). If you want
finished with editing the recording properties, press Ok to confirm the changes. to remove the name of the recording and make the folder name the actual
recording's name, you can position the cursor to the "Name:" field and press
the '0' key. This will take the last element of the recording's folder path
and make it the actual name of the recording. You can do this in turn until
the recording is moved all the way up to the root of the video directory.
Note that, in case you inadvertently pressed the '0' key, you can leave the
"Edit recording" menu with the "Back" key and any changes you have made so far
will not be applied. Once you are finished with editing the recording
properties, press Ok to confirm the changes.
* Parameters in the "Setup" menu * Parameters in the "Setup" menu

24
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menu.c 3.39 2015/02/04 09:13:54 kls Exp $ * $Id: menu.c 3.40 2015/02/04 09:21:55 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -2260,6 +2260,7 @@ private:
int priority; int priority;
int lifetime; int lifetime;
cMenuEditStrItem *folderItem; cMenuEditStrItem *folderItem;
cMenuEditStrItem *nameItem;
const char *buttonFolder; const char *buttonFolder;
const char *buttonAction; const char *buttonAction;
const char *buttonDeleteMarks; const char *buttonDeleteMarks;
@ -2272,6 +2273,7 @@ private:
eOSState SetFolder(void); eOSState SetFolder(void);
eOSState Folder(void); eOSState Folder(void);
eOSState Action(void); eOSState Action(void);
eOSState RemoveName(void);
eOSState DeleteMarks(void); eOSState DeleteMarks(void);
eOSState ApplyChanges(void); eOSState ApplyChanges(void);
public: public:
@ -2291,6 +2293,7 @@ cMenuRecordingEdit::cMenuRecordingEdit(cRecording *Recording)
priority = recording->Priority(); priority = recording->Priority();
lifetime = recording->Lifetime(); lifetime = recording->Lifetime();
folderItem = NULL; folderItem = NULL;
nameItem = NULL;
buttonFolder = NULL; buttonFolder = NULL;
buttonAction = NULL; buttonAction = NULL;
buttonDeleteMarks = NULL; buttonDeleteMarks = NULL;
@ -2308,7 +2311,7 @@ void cMenuRecordingEdit::Set(void)
cOsdItem *p; cOsdItem *p;
Add(p = folderItem = new cMenuEditStrItem(tr("Folder"), folder, sizeof(folder))); Add(p = folderItem = new cMenuEditStrItem(tr("Folder"), folder, sizeof(folder)));
p->SetSelectable(!recordingIsInUse); p->SetSelectable(!recordingIsInUse);
Add(p = new cMenuEditStrItem(tr("Name"), name, sizeof(name))); Add(p = nameItem = new cMenuEditStrItem(tr("Name"), name, sizeof(name)));
p->SetSelectable(!recordingIsInUse); p->SetSelectable(!recordingIsInUse);
Add(p = new cMenuEditIntItem(tr("Priority"), &priority, 0, MAXPRIORITY)); Add(p = new cMenuEditIntItem(tr("Priority"), &priority, 0, MAXPRIORITY));
p->SetSelectable(!recordingIsInUse); p->SetSelectable(!recordingIsInUse);
@ -2387,6 +2390,22 @@ eOSState cMenuRecordingEdit::Action(void)
return osContinue; return osContinue;
} }
eOSState cMenuRecordingEdit::RemoveName(void)
{
if (Get(Current()) == nameItem) {
char *s = strrchr(folder, FOLDERDELIMCHAR);
if (s)
*s++ = 0;
else
s = folder;
strn0cpy(name, s, sizeof(name));
if (s == folder)
*s = 0;
Set();
}
return osContinue;
}
eOSState cMenuRecordingEdit::DeleteMarks(void) eOSState cMenuRecordingEdit::DeleteMarks(void)
{ {
if (buttonDeleteMarks && Interface->Confirm(tr("Delete editing marks for this recording?"))) { if (buttonDeleteMarks && Interface->Confirm(tr("Delete editing marks for this recording?"))) {
@ -2435,6 +2454,7 @@ eOSState cMenuRecordingEdit::ProcessKey(eKeys Key)
eOSState state = cOsdMenu::ProcessKey(Key); eOSState state = cOsdMenu::ProcessKey(Key);
if (state == osUnknown) { if (state == osUnknown) {
switch (Key) { switch (Key) {
case k0: return RemoveName();
case kRed: return buttonFolder ? Folder() : osContinue; case kRed: return buttonFolder ? Folder() : osContinue;
case kGreen: return buttonAction ? Action() : osContinue; case kGreen: return buttonAction ? Action() : osContinue;
case kYellow: return buttonDeleteMarks ? DeleteMarks() : osContinue; case kYellow: return buttonDeleteMarks ? DeleteMarks() : osContinue;