timer edit menu with ok in timeline

This commit is contained in:
louis 2014-01-03 11:56:45 +01:00
parent 5bd0ad2603
commit da40191cfc
7 changed files with 51 additions and 19 deletions

View File

@ -79,7 +79,7 @@ msgid "No Timers active"
msgstr "Keine Timer aktiv" msgstr "Keine Timer aktiv"
msgid "Instant Record" msgid "Instant Record"
msgstr "Sofortaufnahme" msgstr "Aufnahme"
msgid "Delete Timer" msgid "Delete Timer"
msgstr "Timer löschen" msgstr "Timer löschen"

View File

@ -463,6 +463,15 @@ const cEvent *cRecMenu::GetEventValue(int itemNumber) {
return NULL; return NULL;
} }
cTimer *cRecMenu::GetTimerValue(int itemNumber) {
cRecMenuItem *item = NULL;
item = menuItems.Get(itemNumber);
if (item) {
return item->GetTimerValue();
}
return NULL;
}
eRecMenuState cRecMenu::ProcessKey(eKeys Key) { eRecMenuState cRecMenu::ProcessKey(eKeys Key) {
cRecMenuItem *activeItem = GetActiveMenuItem(); cRecMenuItem *activeItem = GetActiveMenuItem();
eRecMenuState state = rmsContinue; eRecMenuState state = rmsContinue;

View File

@ -58,6 +58,7 @@ public:
bool GetBoolValue(int itemNumber); bool GetBoolValue(int itemNumber);
cString GetStringValue(int itemNumber); cString GetStringValue(int itemNumber);
const cEvent *GetEventValue(int itemNumber); const cEvent *GetEventValue(int itemNumber);
cTimer *GetTimerValue(int itemNumber);
virtual eRecMenuState ProcessKey(eKeys Key); virtual eRecMenuState ProcessKey(eKeys Key);
}; };
#endif //__TVGUIDE_RECMENU_H #endif //__TVGUIDE_RECMENU_H

View File

@ -2401,14 +2401,14 @@ void cRecMenuItemTimelineTimer::Show(void) {
pixmapTimerConflicts->SetLayer(6); pixmapTimerConflicts->SetLayer(6);
} }
const cEvent *cRecMenuItemTimelineTimer::GetEventValue(void) { cTimer *cRecMenuItemTimelineTimer::GetTimerValue(void) {
return timer->Event(); return timer;
} }
eRecMenuState cRecMenuItemTimelineTimer::ProcessKey(eKeys Key) { eRecMenuState cRecMenuItemTimelineTimer::ProcessKey(eKeys Key) {
switch (Key & ~k_Repeat) { switch (Key & ~k_Repeat) {
case kOk: case kOk:
return rmsTimelineInfo; return rmsTimelineTimerEdit;
default: default:
break; break;
} }

View File

@ -56,7 +56,9 @@ enum eRecMenuState {
rmsTimerConflictIgnoreReruns, rmsTimerConflictIgnoreReruns,
rmsTimerConflictRecordRerun, rmsTimerConflictRecordRerun,
rmsTimeline, rmsTimeline,
rmsTimelineInfo, rmsTimelineTimerEdit,
rmsTimelineTimerSave,
rmsTimelineTimerDelete,
rmsDisabled, rmsDisabled,
}; };
@ -99,6 +101,7 @@ public:
virtual bool GetBoolValue(void) { return false; }; virtual bool GetBoolValue(void) { return false; };
virtual cString GetStringValue(void) { return cString(""); }; virtual cString GetStringValue(void) { return cString(""); };
virtual const cEvent *GetEventValue(void) { return NULL; }; virtual const cEvent *GetEventValue(void) { return NULL; };
virtual cTimer *GetTimerValue(void) { return NULL; };
virtual eRecMenuState ProcessKey(eKeys Key) { return rmsNotConsumed; }; virtual eRecMenuState ProcessKey(eKeys Key) { return rmsNotConsumed; };
}; };
@ -534,7 +537,7 @@ public:
void Hide(void); void Hide(void);
void Show(void); void Show(void);
void Draw(void); void Draw(void);
const cEvent *GetEventValue(void); cTimer *GetTimerValue(void);
eRecMenuState ProcessKey(eKeys Key); eRecMenuState ProcessKey(eKeys Key);
}; };

View File

@ -536,20 +536,34 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
activeMenu = new cRecMenuTimeline(timerConflicts); activeMenu = new cRecMenuTimeline(timerConflicts);
activeMenu->Display(); activeMenu->Display();
break; } break; }
case rmsTimelineInfo: { case rmsTimelineTimerEdit: {
const cEvent *ev = activeMenu->GetEventValue(activeMenu->GetActive(true)); timer = activeMenu->GetTimerValue(activeMenu->GetActive(true));
if (ev) { if (timer) {
activeMenu->Hide(); delete activeMenu;
detailView = new cDetailView(ev); activeMenu = new cRecMenuEditTimer(timer, rmsTimelineTimerSave);
detailView->setContent(); activeMenu->Display();
detailView->drawHeader();
detailView->drawContent();
detailView->drawScrollbar();
detailView->Start();
detailViewActive = true;
} }
break;} break;}
case rmsTimelineTimerSave: {
recManager->SaveTimer(timer, activeMenu);
delete activeMenu;
if (timerConflicts) {
delete timerConflicts;
}
timerConflicts = recManager->CheckTimerConflict();
activeMenu = new cRecMenuTimeline(timerConflicts);
activeMenu->Display();
break; }
case rmsTimelineTimerDelete: {
recManager->DeleteTimer(timer->Event());
delete activeMenu;
if (timerConflicts) {
delete timerConflicts;
}
timerConflicts = recManager->CheckTimerConflict();
activeMenu = new cRecMenuTimeline(timerConflicts);
activeMenu->Display();
break; }
/* /*
* --------- COMMON --------------------------------- * --------- COMMON ---------------------------------
*/ */

View File

@ -403,7 +403,12 @@ cRecMenuEditTimer::cRecMenuEditTimer(const cTimer *timer, eRecMenuState nextStat
AddMenuItem(new cRecMenuItemDay(tr("Day"), day, false)); AddMenuItem(new cRecMenuItemDay(tr("Day"), day, false));
AddMenuItem(new cRecMenuItemTime(tr("Timer start time"), start, false)); AddMenuItem(new cRecMenuItemTime(tr("Timer start time"), start, false));
AddMenuItem(new cRecMenuItemTime(tr("Timer stop time"), stop, false)); AddMenuItem(new cRecMenuItemTime(tr("Timer stop time"), stop, false));
AddMenuItem(new cRecMenuItemButtonYesNo(tr("Save"), tr("Cancel"), nextState, rmsClose, false)); if (nextState == rmsTimelineTimerSave) {
AddMenuItem(new cRecMenuItemButton(tr("Delete Timer"), rmsTimelineTimerDelete, false, false));
AddMenuItem(new cRecMenuItemButtonYesNo(tr("Save"), tr("Cancel"), nextState, rmsTimeline, false));
} else {
AddMenuItem(new cRecMenuItemButtonYesNo(tr("Save"), tr("Cancel"), nextState, rmsClose, false));
}
CalculateHeight(); CalculateHeight();
CreatePixmap(); CreatePixmap();
Arrange(); Arrange();