From 9488e28015e2dbb818819b2f466a2db6f5cc8e77 Mon Sep 17 00:00:00 2001 From: louis Date: Sun, 28 Sep 2014 10:47:54 +0200 Subject: [PATCH] fixed a bug that skindesigner is not shown after first selection --- designer.c | 14 +++++++++++--- designer.h | 1 + libtemplate/xmlparser.c | 7 ++++++- po/de_DE.po | 4 ++-- skindesigner.c | 4 ++-- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/designer.c b/designer.c index 61d0cfd..94a3eb0 100644 --- a/designer.c +++ b/designer.c @@ -2,11 +2,14 @@ #include "libcore/helpers.h" cSkinDesigner::cSkinDesigner(void) : cSkin("skindesigner", &::Theme) { + esyslog("skindesigner: konstruktor designer"); backupSkin = NULL; useBackupSkin = false; SetOSDSize(); + osdSkin = Setup.OSDSkin; osdTheme = Setup.OSDTheme; + config.SetPathes(); config.SetChannelLogoSize(); config.CheckDecimalPoint(); @@ -60,6 +63,7 @@ cSkinDisplayMenu *cSkinDesigner::DisplayMenu(void) { cSkinDisplayMenu *displayMenu = NULL; if (!useBackupSkin) { ReloadCaches(); + firstDisplay = false; displayMenu = new cSDDisplayMenu(menuTemplate); } else { displayMenu = backupSkin->DisplayMenu(); @@ -174,7 +178,6 @@ bool cSkinDesigner::LoadTemplates(void) { esyslog("skindesigner: error parsing globals, aborting"); return false; } - //globals->Debug(); DeleteTemplates(); @@ -301,9 +304,14 @@ bool cSkinDesigner::OsdSizeChanged(void) { } bool cSkinDesigner::ThemeChanged(void) { + bool changed = false; + if (osdSkin.compare(Setup.OSDSkin) != 0) { + osdSkin = Setup.OSDSkin; + changed = true; + } if (osdTheme.compare(Setup.OSDTheme) != 0) { osdTheme = Setup.OSDTheme; - return true; + changed = true; } - return false; + return changed; } \ No newline at end of file diff --git a/designer.h b/designer.h index 4ba4f63..f0a889c 100644 --- a/designer.h +++ b/designer.h @@ -17,6 +17,7 @@ private: cSkinLCARS *backupSkin; bool useBackupSkin; cRect osdSize; + std::string osdSkin; std::string osdTheme; cGlobals *globals; cTemplate *channelTemplate; diff --git a/libtemplate/xmlparser.c b/libtemplate/xmlparser.c index f9a723a..228488b 100644 --- a/libtemplate/xmlparser.c +++ b/libtemplate/xmlparser.c @@ -176,7 +176,12 @@ void cXmlParser::DeleteDocument(void) { *********************************************************************/ string cXmlParser::GetPath(string xmlFile) { - return *cString::sprintf("%s%s/xmlfiles/%s", *config.skinPath, Setup.OSDTheme, xmlFile.c_str()); + string activeSkin = Setup.OSDSkin; + string theme = "default"; + if (!activeSkin.compare("skindesigner")) { + theme = Setup.OSDTheme; + } + return *cString::sprintf("%s%s/xmlfiles/%s", *config.skinPath, theme.c_str(), xmlFile.c_str()); } void cXmlParser::ParseGlobalColors(xmlNodePtr node) { diff --git a/po/de_DE.po b/po/de_DE.po index 75057dc..e30d229 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -6,11 +6,11 @@ msgid "" msgstr "" "Project-Id-Version: vdr-skindesigner 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-09-27 11:02+0200\n" +"POT-Creation-Date: 2014-09-27 11:11+0200\n" "PO-Revision-Date: 2014-09-27 11:02+0200\n" "Last-Translator: Louis Braun \n" -"Language: de_DE \n" "Language-Team: \n" +"Language: de_DE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" diff --git a/skindesigner.c b/skindesigner.c index 5074c9d..822e42f 100644 --- a/skindesigner.c +++ b/skindesigner.c @@ -93,10 +93,10 @@ bool cPluginSkinDesigner::Initialize(void) { bool cPluginSkinDesigner::Start(void) { if (!cOsdProvider::SupportsTrueColor()) { - esyslog("skinDesigner: No TrueColor OSD found! Using default Skin LCARS!"); + esyslog("skindesigner: No TrueColor OSD found! Using default Skin LCARS!"); return new cSkinLCARS(); } else - dsyslog("skinDesigner: TrueColor OSD found"); + dsyslog("skindesigner: TrueColor OSD found"); skinDesigner = new cSkinDesigner(); return skinDesigner; }