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 reporting a superfluous call to the skin's SetRecording() function after renaming
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>
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
restrict the LCN (Logical Channel Numbers) parsing to networks that actually use
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
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
Ok to confirm the edit, or Back to return to the previous value). Once you are
finished with editing the recording properties, press Ok to confirm the changes.
Ok to confirm the edit, or Back to return to the previous value). If you want
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

24
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@ -2260,6 +2260,7 @@ private:
int priority;
int lifetime;
cMenuEditStrItem *folderItem;
cMenuEditStrItem *nameItem;
const char *buttonFolder;
const char *buttonAction;
const char *buttonDeleteMarks;
@ -2272,6 +2273,7 @@ private:
eOSState SetFolder(void);
eOSState Folder(void);
eOSState Action(void);
eOSState RemoveName(void);
eOSState DeleteMarks(void);
eOSState ApplyChanges(void);
public:
@ -2291,6 +2293,7 @@ cMenuRecordingEdit::cMenuRecordingEdit(cRecording *Recording)
priority = recording->Priority();
lifetime = recording->Lifetime();
folderItem = NULL;
nameItem = NULL;
buttonFolder = NULL;
buttonAction = NULL;
buttonDeleteMarks = NULL;
@ -2308,7 +2311,7 @@ void cMenuRecordingEdit::Set(void)
cOsdItem *p;
Add(p = folderItem = new cMenuEditStrItem(tr("Folder"), folder, sizeof(folder)));
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);
Add(p = new cMenuEditIntItem(tr("Priority"), &priority, 0, MAXPRIORITY));
p->SetSelectable(!recordingIsInUse);
@ -2387,6 +2390,22 @@ eOSState cMenuRecordingEdit::Action(void)
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)
{
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);
if (state == osUnknown) {
switch (Key) {
case k0: return RemoveName();
case kRed: return buttonFolder ? Folder() : osContinue;
case kGreen: return buttonAction ? Action() : osContinue;
case kYellow: return buttonDeleteMarks ? DeleteMarks() : osContinue;