X-Git-Url: http://git.maemo.org/git/?p=jspeed;a=blobdiff_plain;f=src%2Fthemeloader.cpp;h=768999b52e11b617de7b5b3f78785c9cc283f848;hp=b5540880eb8483e1f892d00ae8227fab4b205882;hb=c41a53f8a832216b21216730dea3a4c2e5012fc6;hpb=9a414baa2137bf27f1db316152394ae15578cc9e diff --git a/src/themeloader.cpp b/src/themeloader.cpp index b554088..768999b 100644 --- a/src/themeloader.cpp +++ b/src/themeloader.cpp @@ -33,6 +33,7 @@ #include "detailscreen.h" #include "settings.h" #include "widgetscreen.h" +#include "themescheduler.h" namespace { @@ -51,13 +52,25 @@ ThemeLoader::~ThemeLoader() bool ThemeLoader::load() { - QString theme = Settings::instance().value("theme", "default").toString(); + if(theme_.isEmpty()) + { + connect(&(ThemeScheduler::instance()), SIGNAL(themeChanged()), this, SLOT(load())); + } + + QString theme = ThemeScheduler::instance().currentTheme(); + + if(theme == theme_) + { + return true; + } + + theme_ = theme; QString themeDir = getThemeDir(); - if(QFile::exists(themeDir + theme + THEME_SUFFIX)) + if(QFile::exists(themeDir + theme_ + THEME_SUFFIX)) { - reader_ = new ZipReader(themeDir + theme + THEME_SUFFIX); + reader_ = new ZipReader(themeDir + theme_ + THEME_SUFFIX); if(read()) { @@ -71,17 +84,17 @@ bool ThemeLoader::load() } } - theme = "default"; - Settings::instance().setValue("theme", theme); + theme_ = ThemeScheduler::instance().getDefaultTheme(); + Settings::instance().setValue("theme", theme_); - if(QFile::exists(RESOURCE_DIR + theme)) + if(QFile::exists(RESOURCE_DIR + theme_)) { if(reader_) { delete reader_; } - reader_ = new FileReader(RESOURCE_DIR + theme); + reader_ = new FileReader(RESOURCE_DIR + theme_); return read(); }