#include "settings.h"
#include "themeschedulersettings.h"
-ThemeSelector::ThemeSelector(QWidget* parent): QDialog(parent), buttonClicked_(false), themeScheduler_(0)
+ThemeSelector::ThemeSelector(QWidget* parent): QDialog(parent),
+buttonClicked_(false), themeSelected_(false), themeScheduler_(0)
{
setWindowTitle(tr("Select theme"));
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()));
+ connect(selector_, SIGNAL(clicked(bool)), this, SLOT(setButtonClicked()));
+ connect(selector_, SIGNAL(selected()), this, SLOT(setThemeSelected()));
QPushButton* loadButton = new QPushButton(tr("Import"));
connect(loadButton, SIGNAL(clicked(bool)), this, SLOT(loadFromFile()));
QString theme = selector_->value().toString();
Settings::instance().setValue("theme", theme);
hide();
+
+ if(buttonClicked_ && themeSelected_ && ThemeScheduler::instance().isEnabled())
+ {
+ QMaemo5InformationBox::information(this, tr("Disabling theme scheduler..."), 1000);
+ ThemeScheduler::instance().setEnabled(false);
+ themeSelected_ = false;
+ buttonClicked_ = false;
+ }
+
emit themeChanged();
}
if(!themeScheduler_)
{
themeScheduler_ = new ThemeSchedulerSettings(this);
- connect(themeScheduler_, SIGNAL(themeChanged()), this, SIGNAL(themeChanged()));
+ connect(themeScheduler_, SIGNAL(themeChanged()), this, SLOT(onThemeChanged()));
}
themeScheduler_->show();
}
-void ThemeSelector::enableDisableScheduler()
+void ThemeSelector::setButtonClicked()
{
buttonClicked_ = true;
}
-void ThemeSelector::disableScheduler()
+void ThemeSelector::setThemeSelected()
{
- if(buttonClicked_ && ThemeScheduler::instance().isEnabled())
- {
- QMaemo5InformationBox::information(this, tr("Disabling theme scheduler..."), 1000);
- ThemeScheduler::instance().setEnabled(false);
- }
+ themeSelected_ = true;
}
-void ThemeSelector::setVisible(bool visible)
+void ThemeSelector::onThemeChanged()
{
buttonClicked_ = false;
+ themeSelected_ = false;
+ emit themeChanged();
+}
+
+void ThemeSelector::setVisible(bool visible)
+{
QDialog::setVisible(visible);
}