Themescheduler settings saving fixed.
authoreshe <jessehakanen@gmail.com>
Tue, 27 Jul 2010 14:27:36 +0000 (15:27 +0100)
committereshe <jessehakanen@gmail.com>
Tue, 27 Jul 2010 14:27:36 +0000 (15:27 +0100)
src/themescheduler.cpp
src/themeselector.cpp
src/themeselector.h

index 086b45a..a469823 100644 (file)
@@ -88,6 +88,8 @@ void ThemeScheduler::removeItem(QTime const& time)
 
 void ThemeScheduler::store()
 {
+    Settings::instance().setValue("theme_scheduler_enabled", enabled_);
+
     if(items_.isEmpty())
     {
         Settings::instance().remove("theme_scheduler");
index b64548f..f559d63 100644 (file)
@@ -33,7 +33,7 @@
 #include "settings.h"
 #include "themeschedulersettings.h"
 
-ThemeSelector::ThemeSelector(QWidget* parent): QDialog(parent), themeScheduler_(0)
+ThemeSelector::ThemeSelector(QWidget* parent): QDialog(parent), buttonClicked_(false), themeScheduler_(0)
 {
     setWindowTitle(tr("Select theme"));
 
@@ -49,6 +49,7 @@ ThemeSelector::ThemeSelector(QWidget* parent): QDialog(parent), themeScheduler_(
     buttons->addButton(saveButton, QDialogButtonBox::AcceptRole);
 
     selector_ = new ThemePicker(tr("Theme"), this);
+    connect(selector_, SIGNAL(clicked(bool)), this, SLOT(enableDisableScheduler()));
     connect(selector_, SIGNAL(selected()), this, SLOT(disableScheduler()));
 
     QPushButton* loadButton = new QPushButton(tr("Import"));
@@ -104,11 +105,23 @@ void ThemeSelector::openScheduler()
     themeScheduler_->show();
 }
 
+void ThemeSelector::enableDisableScheduler()
+{
+    buttonClicked_ = true;
+}
+
 void ThemeSelector::disableScheduler()
 {
-    if(ThemeScheduler::instance().isEnabled())
+    if(buttonClicked_ && ThemeScheduler::instance().isEnabled())
     {
         QMaemo5InformationBox::information(this, tr("Disabling theme scheduler..."), 1000);
         ThemeScheduler::instance().setEnabled(false);
     }
 }
+
+void ThemeSelector::setVisible(bool visible)
+{
+    buttonClicked_ = false;
+
+    QDialog::setVisible(visible);
+}
index 1f6fac2..05ce869 100644 (file)
@@ -35,13 +35,18 @@ public:
 signals:
     void themeChanged();
 
+protected:
+    virtual void setVisible(bool visible);
+
 private slots:
     void saveTheme();
     void loadFromFile();
     void openScheduler();
+    void enableDisableScheduler();
     void disableScheduler();
 
 private:
+    bool buttonClicked_;
     ThemePicker* selector_;
     ThemeSchedulerSettings* themeScheduler_;
 };