From 02ce6da5a1ed40719f663be7cd7eb753f77b8867 Mon Sep 17 00:00:00 2001 From: eshe Date: Tue, 27 Jul 2010 15:27:36 +0100 Subject: [PATCH] Themescheduler settings saving fixed. --- src/themescheduler.cpp | 2 ++ src/themeselector.cpp | 17 +++++++++++++++-- src/themeselector.h | 5 +++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/themescheduler.cpp b/src/themescheduler.cpp index 086b45a..a469823 100644 --- a/src/themescheduler.cpp +++ b/src/themescheduler.cpp @@ -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"); diff --git a/src/themeselector.cpp b/src/themeselector.cpp index b64548f..f559d63 100644 --- a/src/themeselector.cpp +++ b/src/themeselector.cpp @@ -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); +} diff --git a/src/themeselector.h b/src/themeselector.h index 1f6fac2..05ce869 100644 --- a/src/themeselector.h +++ b/src/themeselector.h @@ -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_; }; -- 1.7.9.5