Some fixes to setting dialogs.
[jspeed] / src / themeschedulersettings.cpp
index d03a449..c545b58 100644 (file)
@@ -27,6 +27,7 @@
 #include <QtGui/QDialogButtonBox>
 #include <QtGui/QPushButton>
 #include <QtGui/QListWidget>
+#include <QMaemo5InformationBox>
 #include <QMaemo5ValueButton>
 #include <QMaemo5TimePickSelector>
 #include "themeschedulersettings.h"
@@ -175,8 +176,21 @@ void ThemeSchedulerSettings::loadItems()
 
 void ThemeSchedulerSettings::saveSettings()
 {
-    ThemeScheduler::instance().setEnabled(enabled_->isChecked());
+    bool enabled = enabled_->isChecked();
+
+    if(enabled && ThemeScheduler::instance().isEmpty())
+    {
+        QMaemo5InformationBox::information(this, tr("Theme scheduler is empty."));
+        return;
+    }
+
+    ThemeScheduler::instance().setEnabled(enabled);
     hide();
+
+    if(enabled)
+    {
+        emit themeChanged();
+    }
 }
 
 void ThemeSchedulerSettings::showContextMenu(QPoint const& point)
@@ -213,3 +227,13 @@ void ThemeSchedulerSettings::removeSelection()
         itemList_->clearSelection();
     }
 }
+
+void ThemeSchedulerSettings::setVisible(bool visible)
+{
+    if(visible)
+    {
+        enabled_->setChecked(ThemeScheduler::instance().isEnabled());
+    }
+
+    QDialog::setVisible(visible);
+}