Added confirmation dialog to automatic location update feature.
[situare] / src / ui / settingsdialog.cpp
index 4044814..9157e23 100644 (file)
@@ -30,6 +30,7 @@
 #include "common.h"
 #include "settingsdialog.h"
 
+const QString SETTINGS_AUTOMATIC_UPDATE_ENABLED = "SETTINGS_AUTOMATIC_UPDATE_ENABLED";
 const QString SETTINGS_AUTOMATIC_UPDATE_INTERVAL = "SETTINGS_AUTOMATIC_UPDATE_INTERVAL";
 const int LIST_MINUTES_STEP = 5;
 const int LIST_MINUTES_MAX = 60;
@@ -62,7 +63,8 @@ SettingsDialog::SettingsDialog(QWidget *parent)
     QStandardItemModel *updateIntervalListModel = new QStandardItemModel(0, 1, this);
     populateUpdateIntervalList(updateIntervalListModel);
     m_timePick->setModel(updateIntervalListModel);
-
+    m_automaticLocationUpdateIntervalButton->setValueText(
+            updateIntervalListModel->item(0, 0)->text());
     Q_UNUSED(cancelButton);
 #else
     m_automaticLocationUpdateInterval = new QTimeEdit();
@@ -106,28 +108,43 @@ SettingsDialog::~SettingsDialog()
     qDebug() << __PRETTY_FUNCTION__;
 
     QSettings settings(DIRECTORY_NAME, FILE_NAME);
+    settings.setValue(SETTINGS_AUTOMATIC_UPDATE_ENABLED, m_automaticLocationUpdate->isChecked());
     settings.setValue(SETTINGS_AUTOMATIC_UPDATE_INTERVAL, time());
 }
 
+void SettingsDialog::setAutomaticLocationUpdateSettings(bool checked)
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    m_automaticLocationUpdate->setChecked(checked);
+}
+
 void SettingsDialog::enableSituareSettings(bool enabled)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
     m_automaticLocationUpdate->setEnabled(enabled);
-    toggleAutomaticLocationUpdate(enabled);
 }
 
 void SettingsDialog::readSettings()
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    qWarning() << __PRETTY_FUNCTION__;
 
     QSettings settings(DIRECTORY_NAME, FILE_NAME);
+    bool automaticUpdateEnabled = settings.value(SETTINGS_AUTOMATIC_UPDATE_ENABLED, false).toBool();
     QString automaticUpdateInterval = settings.value(SETTINGS_AUTOMATIC_UPDATE_INTERVAL, "")
                                       .toString();
+
+    m_automaticLocationUpdate->setChecked(automaticUpdateEnabled);
+
     if (!automaticUpdateInterval.isEmpty()) {
-        setTime(QTime::fromString(automaticUpdateInterval));
-        m_automaticLocationUpdateIntervalOldValue = time();
+        qWarning() << automaticUpdateInterval;
+        setTime(QTime::fromString(automaticUpdateInterval, "hh:mm:ss"));
+        qWarning() << time().toString("hh:mm:ss");
     }
+
+    if (automaticUpdateEnabled)
+        QTimer::singleShot(0, this, SLOT(saveValues()));
 }
 
 void SettingsDialog::populateUpdateIntervalList(QStandardItemModel *model)