diff options
author | Martin Schirrmacher <vdr.skinflatplus@schirrmacher.eu> | 2014-12-10 19:04:58 +0100 |
---|---|---|
committer | Martin Schirrmacher <vdr.skinflatplus@schirrmacher.eu> | 2014-12-10 19:04:58 +0100 |
commit | 7f3be15fd4f9189bffeba6f7ce9b04b05e7369e8 (patch) | |
tree | 27ec63647bda92c09a8221fb7f6a399c478f9e49 | |
parent | 03438a82e284cfd458954de53cca44af6e3fe1ee (diff) | |
download | skin-flatplus-7f3be15fd4f9189bffeba6f7ce9b04b05e7369e8.tar.gz skin-flatplus-7f3be15fd4f9189bffeba6f7ce9b04b05e7369e8.tar.bz2 |
fix,update timer widget
-rw-r--r-- | HISTORY | 3 | ||||
-rw-r--r-- | config.c | 4 | ||||
-rw-r--r-- | config.h | 2 | ||||
-rw-r--r-- | displaymenu.c | 87 | ||||
-rw-r--r-- | po/de_DE.po | 36 | ||||
-rw-r--r-- | setup.c | 20 |
6 files changed, 104 insertions, 48 deletions
@@ -3,6 +3,9 @@ VDR Plugin 'skinflatplus' Revision History 2014-XX-XX: Version 0.5.1 - [fix] topbar number recordings +- [fix] timer widget +- [update] timer widget + new options to select which timer to show (recording, active) 2014-12-04: Version 0.5.0 - [fix] femon receiver - do not get data from previous channel @@ -91,6 +91,8 @@ cFlatConfig::cFlatConfig(void) { MainMenuWidgetActiveTimerPosition = 3; MainMenuWidgetActiveTimerMaxCount = 2; MainMenuWidgetActiveTimerHideEmpty = false; + MainMenuWidgetActiveTimerShowActive = true; + MainMenuWidgetActiveTimerShowRecording = true; MainMenuWidgetLastRecShow = false; MainMenuWidgetLastRecPosition = 4; @@ -359,6 +361,8 @@ bool cFlatConfig::SetupParse(const char *Name, const char *Value) { else if (strcmp(Name, "RecordingDimmOnPause") == 0) RecordingDimmOnPause = atoi(Value); else if (strcmp(Name, "RecordingDimmOnPauseDelay") == 0) RecordingDimmOnPauseDelay = atoi(Value); else if (strcmp(Name, "RecordingDimmOnPauseOpaque") == 0) RecordingDimmOnPauseOpaque = atoi(Value); + else if (strcmp(Name, "MainMenuWidgetActiveTimerShowActive") == 0) MainMenuWidgetActiveTimerShowActive = atoi(Value); + else if (strcmp(Name, "MainMenuWidgetActiveTimerShowRecording") == 0) MainMenuWidgetActiveTimerShowRecording = atoi(Value); else return false; @@ -270,6 +270,8 @@ class cFlatConfig int MainMenuWidgetActiveTimerShow; int MainMenuWidgetActiveTimerPosition; int MainMenuWidgetActiveTimerMaxCount; + int MainMenuWidgetActiveTimerShowActive; + int MainMenuWidgetActiveTimerShowRecording; int MainMenuWidgetActiveTimerHideEmpty; int MainMenuWidgetLastRecShow; diff --git a/displaymenu.c b/displaymenu.c index 07ce4f17..670e5617 100644 --- a/displaymenu.c +++ b/displaymenu.c @@ -4096,46 +4096,79 @@ int cFlatDisplayMenu::DrawMainMenuWidgetActiveTimers(int wLeft, int wWidth, int if( img ) { contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight)); } - contentWidget.AddText(tr("Active Timer"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font); + contentWidget.AddText(tr("Timer"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font); ContentTop += fontHeight; contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine)); ContentTop += 6; // look for timers - time_t t; - time(&t); - int index = 0, numRec = 0; - for(cTimer *ti = Timers.First(); ti && index < Config.MainMenuWidgetActiveTimerMaxCount; ti = Timers.Next(ti), index++) { - if( ti->Matches(t) && ti->HasFlags(tfRecording) ) { + int numRec = 0, numActive = 0; + for(cTimer *ti = Timers.First(); ti; ti = Timers.Next(ti) ) { + if( ti->HasFlags(tfRecording) && Config.MainMenuWidgetActiveTimerShowRecording ) numRec++; - } + if( ti->HasFlags(tfActive) && Config.MainMenuWidgetActiveTimerShowActive ) + numActive++; + + if( numRec + numActive >= Config.MainMenuWidgetActiveTimerMaxCount ) + break; } - if( numRec == 0 && Config.MainMenuWidgetActiveTimerHideEmpty ) + if( (numRec == 0 && numActive == 0) && Config.MainMenuWidgetActiveTimerHideEmpty ) return 0; - else if( numRec == 0 ) { - contentWidget.AddText(tr("no active timer"), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight), + else if( numRec == 0 && numActive == 0 ) { + contentWidget.AddText(tr("no active/recording timer"), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2); } else { - index = 0; - for(cTimer *ti = Timers.First(); ti && index < Config.MainMenuWidgetActiveTimerMaxCount; ti = Timers.Next(ti), index++) { - if( ti->Matches(t) && ti->HasFlags(tfActive) ) { - if( ContentTop + marginItem > menuPixmap->ViewPort().Height() ) - continue; + int count = -1; + // first recording timer + if( Config.MainMenuWidgetActiveTimerShowRecording ) { + for(cTimer *ti = Timers.First(); ti; ti = Timers.Next(ti)) { + if( ti->HasFlags(tfRecording) ) { + count++; + if( ContentTop + marginItem > menuPixmap->ViewPort().Height() ) + break; + if( count >= Config.MainMenuWidgetActiveTimerMaxCount ) + break; + const cChannel *Channel = ti->Channel(); + //const cEvent *Event = Timer->Event(); + std::stringstream strTimer; + strTimer << count+1 << ": "; + if( Channel ) + strTimer << Channel->Name() << " - "; + else + strTimer << tr("Unknown") << " - "; + strTimer << ti->File(); - const cChannel *Channel = ti->Channel(); - //const cEvent *Event = Timer->Event(); - std::stringstream strTimer; - strTimer << index+1 << ": "; - if( Channel ) - strTimer << Channel->Name() << " - "; - else - strTimer << tr("Unknown") << " - "; - strTimer << ti->File(); + contentWidget.AddText(strTimer.str().c_str(), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight), + Theme.Color(clrTopBarRecordingActiveFg), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2); - contentWidget.AddText(strTimer.str().c_str(), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight), - Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2); + ContentTop += fontSmlHeight; + } + } + } + if( Config.MainMenuWidgetActiveTimerShowActive ) { + for(cTimer *ti = Timers.First(); ti; ti = Timers.Next(ti)) { + if( ti->HasFlags(tfActive) && !ti->HasFlags(tfRecording) ) { + count++; + if( ContentTop + marginItem > menuPixmap->ViewPort().Height() ) + break; + if( count >= Config.MainMenuWidgetActiveTimerMaxCount ) + break; - ContentTop += fontSmlHeight; + const cChannel *Channel = ti->Channel(); + //const cEvent *Event = Timer->Event(); + std::stringstream strTimer; + strTimer << count+1 << ": "; + if( Channel ) + strTimer << Channel->Name() << " - "; + else + strTimer << tr("Unknown") << " - "; + strTimer << ti->File(); + + contentWidget.AddText(strTimer.str().c_str(), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight), + Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2); + + ContentTop += fontSmlHeight; + } } } } diff --git a/po/de_DE.po b/po/de_DE.po index 0dc5b878..e861c350 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr-skinflat 0.5.0\n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2014-11-30 16:17+0100\n" +"POT-Creation-Date: 2014-12-10 19:02+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -150,11 +150,11 @@ msgstr "Nimmt auf" msgid "not used" msgstr "Nicht verwendet" -msgid "Active Timer" -msgstr "Aktive Timer" +msgid "Timer" +msgstr "Timer" -msgid "no active timer" -msgstr "Keine aktiven Timer" +msgid "no active/recording timer" +msgstr "keine aktiven/aufnehmenden Timer" msgid "Last Recordings" msgstr "Letzte Aufnahmen" @@ -807,20 +807,26 @@ msgstr "DVB Geräte-Widget: Unbekannt ausblenden" msgid "Widget DVB devices: don't show not used" msgstr "DVB Geräte-Widget: Nicht verw. ausblenden" -msgid "Widget active timer" -msgstr "Aktive Timer-Widget" +msgid "Widget timer" +msgstr "Timer-Widget" -msgid "Widget active timer: enable" -msgstr "Aktive Timer-Widget: Anzeigen" +msgid "Widget timer: enable" +msgstr "Timer-Widget: Anzeigen" -msgid "Widget active timer: position" -msgstr "Aktive Timer-Widget: Position" +msgid "Widget timer: position" +msgstr "Timer-Widget: Position" -msgid "Widget active timer: max show" -msgstr "Aktive Timer-Widget: Zeige max." +msgid "Widget timer: show recording timer" +msgstr "Timer-Widget: zeige aufnehmende Timer" -msgid "Widget active timer: hide if empty" -msgstr "Aktive Timer-Widget: Verstecken wenn Leer" +msgid "Widget timer: show active timer" +msgstr "Timer-Widget: zeige aktive Timer" + +msgid "Widget timer: max show" +msgstr "Timer-Widget: Zeige max." + +msgid "Widget timer: hide if empty" +msgstr "Timer-Widget: Verstecken wenn Leer" msgid "Widget last recordings" msgstr "Letzte Aufnahmen-Widget" @@ -318,6 +318,8 @@ void cFlatSetup::Store(void) { SetupStore("RecordingDimmOnPause", Config.RecordingDimmOnPause); SetupStore("RecordingDimmOnPauseDelay", Config.RecordingDimmOnPauseDelay); SetupStore("RecordingDimmOnPauseOpaque", Config.RecordingDimmOnPauseOpaque); + SetupStore("MainMenuWidgetActiveTimerShowActive", Config.MainMenuWidgetActiveTimerShowActive); + SetupStore("MainMenuWidgetActiveTimerShowRecording", Config.MainMenuWidgetActiveTimerShowRecording); Config.Init(); } @@ -501,6 +503,8 @@ bool cFlatSetupGeneral::SetupParse(const char *Name, const char *Value) { else if (strcmp(Name, "RecordingDimmOnPause") == 0) SetupConfig->RecordingDimmOnPause = atoi(Value); else if (strcmp(Name, "RecordingDimmOnPauseDelay") == 0) SetupConfig->RecordingDimmOnPauseDelay = atoi(Value); else if (strcmp(Name, "RecordingDimmOnPauseOpaque") == 0) SetupConfig->RecordingDimmOnPauseOpaque = atoi(Value); + else if (strcmp(Name, "MainMenuWidgetActiveTimerShowActive") == 0) SetupConfig->MainMenuWidgetActiveTimerShowActive = atoi(Value); + else if (strcmp(Name, "MainMenuWidgetActiveTimerShowRecording") == 0) SetupConfig->MainMenuWidgetActiveTimerShowRecording = atoi(Value); else return false; return true; @@ -666,6 +670,8 @@ void cFlatSetupGeneral::SaveCurrentSettings(void) { Config.Store("RecordingDimmOnPause", SetupConfig->RecordingDimmOnPause, *Filename); Config.Store("RecordingDimmOnPauseDelay", SetupConfig->RecordingDimmOnPauseDelay, *Filename); Config.Store("RecordingDimmOnPauseOpaque", SetupConfig->RecordingDimmOnPauseOpaque, *Filename); + Config.Store("MainMenuWidgetActiveTimerShowActive", SetupConfig->MainMenuWidgetActiveTimerShowActive, *Filename); + Config.Store("MainMenuWidgetActiveTimerShowRecording", SetupConfig->MainMenuWidgetActiveTimerShowRecording, *Filename); cString msg = cString::sprintf("%s %s", tr("saved settings in file:"), *File); Skins.Message(mtInfo, msg); @@ -1283,12 +1289,14 @@ void cFlatSetupMMWidget::Setup(void) { Add(new cMenuEditBoolItem(tr("Widget DVB devices: don't show not used"), &SetupConfig->MainMenuWidgetDVBDevicesDiscardNotUsed)); } - Add(new cOsdItem(tr("Widget active timer"), osUnknown, false)); - Add(new cMenuEditBoolItem(tr("Widget active timer: enable"), &SetupConfig->MainMenuWidgetActiveTimerShow)); + Add(new cOsdItem(tr("Widget timer"), osUnknown, false)); + Add(new cMenuEditBoolItem(tr("Widget timer: enable"), &SetupConfig->MainMenuWidgetActiveTimerShow)); if( SetupConfig->MainMenuWidgetActiveTimerShow ) { - Add(new cMenuEditIntItem(tr("Widget active timer: position"), &SetupConfig->MainMenuWidgetActiveTimerPosition)); - Add(new cMenuEditIntItem(tr("Widget active timer: max show"), &SetupConfig->MainMenuWidgetActiveTimerMaxCount)); - Add(new cMenuEditBoolItem(tr("Widget active timer: hide if empty"), &SetupConfig->MainMenuWidgetActiveTimerHideEmpty)); + Add(new cMenuEditIntItem(tr("Widget timer: position"), &SetupConfig->MainMenuWidgetActiveTimerPosition)); + Add(new cMenuEditBoolItem(tr("Widget timer: show recording timer"), &SetupConfig->MainMenuWidgetActiveTimerShowRecording)); + Add(new cMenuEditBoolItem(tr("Widget timer: show active timer"), &SetupConfig->MainMenuWidgetActiveTimerShowActive)); + Add(new cMenuEditIntItem(tr("Widget timer: max show"), &SetupConfig->MainMenuWidgetActiveTimerMaxCount)); + Add(new cMenuEditBoolItem(tr("Widget timer: hide if empty"), &SetupConfig->MainMenuWidgetActiveTimerHideEmpty)); } Add(new cOsdItem(tr("Widget last recordings"), osUnknown, false)); @@ -1354,7 +1362,7 @@ eOSState cFlatSetupMMWidget::ProcessKey(eKeys Key) { if( strstr(ItemText, tr("Enable main menu widgets")) != NULL || strstr(ItemText, tr("Widget weather: enable")) != NULL || strstr(ItemText, tr("Widget DVB devices: enable")) != NULL || - strstr(ItemText, tr("Widget active timer: enable")) != NULL || + strstr(ItemText, tr("Widget timer: enable")) != NULL || strstr(ItemText, tr("Widget last recordings: enable")) != NULL || strstr(ItemText, tr("Widget timer conflicts: enable")) != NULL || strstr(ItemText, tr("Widget system information: enable")) != NULL || |