diff options
author | louis <louis.braun@gmx.de> | 2014-10-18 10:05:32 +0200 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2014-10-18 10:05:32 +0200 |
commit | 3d1a2f1090e5e2a1a2f69ec7fe518245078b6527 (patch) | |
tree | 6a8620bb61f2d883ad16c6ee7db262b266f9b199 /config.c | |
parent | a9f7a65578ea5ea1017d377d623c1171a33d67d3 (diff) | |
download | vdr-plugin-skindesigner-3d1a2f1090e5e2a1a2f69ec7fe518245078b6527.tar.gz vdr-plugin-skindesigner-3d1a2f1090e5e2a1a2f69ec7fe518245078b6527.tar.bz2 |
fixed bug that new skin was not properly loaded sometimes when skin was changed in OSD Setup menu
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -23,6 +23,10 @@ cDesignerConfig::cDesignerConfig() { //menu display style, display menu items //one after each other or in one step blockFlush = 1; + //remember current skin and theme + SetSkin(); + //remember osd size + SetOSDSize(); } cDesignerConfig::~cDesignerConfig() { @@ -101,6 +105,47 @@ void cDesignerConfig::CheckDecimalPoint(void) { } } +void cDesignerConfig::SetSkin(void) { + osdSkin = Setup.OSDSkin; + osdTheme = Setup.OSDTheme; +} + +bool cDesignerConfig::SkinChanged(void) { + bool changed = false; + if (osdSkin.compare(Setup.OSDSkin) != 0) { + dsyslog("skindesigner: skin changed from %s to %s", osdSkin.c_str(), Setup.OSDSkin); + changed = true; + } + if (osdTheme.compare(Setup.OSDTheme) != 0) { + dsyslog("skindesigner: theme changed from %s to %s", osdTheme.c_str(), Setup.OSDTheme); + changed = true; + } + if (changed) + SetSkin(); + return changed; +} + +void cDesignerConfig::SetOSDSize(void) { + osdSize.SetWidth(cOsd::OsdWidth()); + osdSize.SetHeight(cOsd::OsdHeight()); + osdSize.SetX(cOsd::OsdLeft()); + osdSize.SetY(cOsd::OsdTop()); +} + +bool cDesignerConfig::OsdSizeChanged(void) { + if ((osdSize.Width() != cOsd::OsdWidth()) || + (osdSize.Height() != cOsd::OsdHeight()) || + (osdSize.X() != cOsd::OsdLeft()) || + (osdSize.Y() != cOsd::OsdTop())) { + dsyslog("skindesigner: osd size changed"); + dsyslog("skindesigner: old osd size: top %d left %d size %d * %d", osdSize.X(), osdSize.Y(), osdSize.Width(), osdSize.Height()); + SetOSDSize(); + dsyslog("skindesigner: new osd size: top %d left %d size %d * %d", osdSize.X(), osdSize.Y(), osdSize.Width(), osdSize.Height()); + return true; + } + return false; +} + cString cDesignerConfig::CheckSlashAtEnd(std::string path) { try { if (!(path.at(path.size()-1) == '/')) |