Themescheduler settings saving fixed.
[jspeed] / src / themeselector.cpp
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);
+}