From a9f7a65578ea5ea1017d377d623c1171a33d67d3 Mon Sep 17 00:00:00 2001 From: louis Date: Sat, 18 Oct 2014 09:11:11 +0200 Subject: [PATCH] added setup option to choose Menu Item display method --- HISTORY | 1 + config.c | 4 ++++ config.h | 2 ++ displaymenu.c | 18 ++++++++++++------ libcore/pixmapcontainer.c | 2 +- po/de_DE.po | 11 ++++++++++- setup.c | 5 +++++ setup.h | 3 ++- 8 files changed, 37 insertions(+), 9 deletions(-) diff --git a/HISTORY b/HISTORY index 0c87141..2a52538 100644 --- a/HISTORY +++ b/HISTORY @@ -23,3 +23,4 @@ Version 0.0.2 - added vps token in menudetailepg - implemented cSDDisplayMenu::GetTextAreaFont() - introduced new viewelement audioinfo in displaychannel +- added setup option to choose Menu Item display method between "at one go" and "after one another" diff --git a/config.c b/config.c index 4deb57a..2f88ac5 100644 --- a/config.c +++ b/config.c @@ -20,6 +20,9 @@ cDesignerConfig::cDesignerConfig() { rerunAmount = 10; rerunDistance = 2; rerunMaxChannel = 0; + //menu display style, display menu items + //one after each other or in one step + blockFlush = 1; } cDesignerConfig::~cDesignerConfig() { @@ -114,6 +117,7 @@ bool cDesignerConfig::SetupParse(const char *Name, const char *Value) { else if (!strcasecmp(Name, "RerunAmount")) rerunAmount = atoi(Value); else if (!strcasecmp(Name, "RerunDistance")) rerunDistance = atoi(Value); else if (!strcasecmp(Name, "RerunMaxChannel")) rerunMaxChannel = atoi(Value); + else if (!strcasecmp(Name, "BlockFlush")) blockFlush = atoi(Value); else return false; return true; } diff --git a/config.h b/config.h index 171ce9b..afb6e17 100644 --- a/config.h +++ b/config.h @@ -46,7 +46,9 @@ public: int rerunAmount; int rerunDistance; int rerunMaxChannel; + int blockFlush; }; + #ifdef DEFINE_CONFIG bool firstDisplay = true; cDesignerConfig config; diff --git a/displaymenu.c b/displaymenu.c index d452dbf..c029174 100644 --- a/displaymenu.c +++ b/displaymenu.c @@ -79,7 +79,8 @@ bool cSDDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current, return true; if (!rootView->SubViewAvailable()) return false; - rootView->LockFlush(); + if (config.blockFlush) + rootView->LockFlush(); if (Current) { if (Channel) { rootView->SetChannel(Channel); @@ -101,7 +102,8 @@ bool cSDDisplayMenu::SetItemTimer(const cTimer *Timer, int Index, bool Current, return true; if (!rootView->SubViewAvailable()) return false; - rootView->LockFlush(); + if (config.blockFlush) + rootView->LockFlush(); cDisplayMenuListView *list = rootView->GetListView(); if (!list) return false; @@ -116,7 +118,8 @@ bool cSDDisplayMenu::SetItemChannel(const cChannel *Channel, int Index, bool Cur return true; if (!rootView->SubViewAvailable()) return false; - rootView->LockFlush(); + if (config.blockFlush) + rootView->LockFlush(); cDisplayMenuListView *list = rootView->GetListView(); if (!list) return false; @@ -131,7 +134,8 @@ bool cSDDisplayMenu::SetItemRecording(const cRecording *Recording, int Index, bo return true; if (!rootView->SubViewAvailable()) return false; - rootView->LockFlush(); + if (config.blockFlush) + rootView->LockFlush(); cDisplayMenuListView *list = rootView->GetListView(); if (!list) return false; @@ -148,7 +152,8 @@ void cSDDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Sel if (!list) { return; } - rootView->LockFlush(); + if (config.blockFlush) + rootView->LockFlush(); eMenuCategory cat = MenuCategory(); if (cat == mcMain) { list->AddMainMenuItem(Index, Text, Current, Selectable); @@ -243,7 +248,8 @@ void cSDDisplayMenu::Flush(void) { } } if (doFlush) { - rootView->OpenFlush(); + if (config.blockFlush) + rootView->OpenFlush(); rootView->DoFlush(); } state = vsIdle; diff --git a/libcore/pixmapcontainer.c b/libcore/pixmapcontainer.c index 6329638..4ee651a 100644 --- a/libcore/pixmapcontainer.c +++ b/libcore/pixmapcontainer.c @@ -56,7 +56,7 @@ bool cPixmapContainer::CreateOsd(int Left, int Top, int Width, int Height) { return false; } -void cPixmapContainer::LockFlush(void) { +void cPixmapContainer::LockFlush(void) { flushState = fsLock; } diff --git a/po/de_DE.po b/po/de_DE.po index 172d3fd..6f131e3 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr-skindesigner 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-10-11 07:12+0200\n" +"POT-Creation-Date: 2014-10-18 07:30+0200\n" "PO-Revision-Date: 2014-09-27 11:02+0200\n" "Last-Translator: Louis Braun \n" "Language-Team: \n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "after one another" +msgstr "eines nach dem anderen" + +msgid "at one go" +msgstr "alle auf einmal" + +msgid "Menu Item display method" +msgstr "Art der Ausgabe der MenĂ¼elemente" + msgid "Reruns" msgstr "Wiederholungen" diff --git a/setup.c b/setup.c index bad237a..20796c5 100644 --- a/setup.c +++ b/setup.c @@ -2,6 +2,8 @@ cSkinDesignerSetup::cSkinDesignerSetup() { data = config; + menuDisplayStyle[0] = tr("after one another"); + menuDisplayStyle[1] = tr("at one go"); Setup(); } @@ -13,6 +15,8 @@ void cSkinDesignerSetup::Setup(void) { int current = Current(); Clear(); + Add(new cMenuEditStraItem(tr("Menu Item display method"), &data.blockFlush, 2, menuDisplayStyle)); + cString message = cString::sprintf("---------------- %s ----------------", tr("Reruns")); Add(new cOsdItem(*message)); cList::Last()->SetSelectable(false); @@ -91,4 +95,5 @@ void cSkinDesignerSetup::Store(void) { SetupStore("RerunAmount", config.rerunAmount); SetupStore("RerunDistance", config.rerunDistance); SetupStore("RerunMaxChannel", config.rerunMaxChannel); + SetupStore("BlockFlush", config.blockFlush); } \ No newline at end of file diff --git a/setup.h b/setup.h index ea9bf13..627f173 100644 --- a/setup.h +++ b/setup.h @@ -8,7 +8,8 @@ class cSkinDesignerSetup : public cMenuSetupPage { cSkinDesignerSetup(void); virtual ~cSkinDesignerSetup(); private: - cDesignerConfig data; + cDesignerConfig data; + const char *menuDisplayStyle[2]; void Setup(void); virtual eOSState ProcessKey(eKeys Key); virtual void Store(void);