Default settings will be set if config file is empty.
authorJari Jarvi <t7jaja00@students.oamk.fi>
Wed, 2 Jun 2010 07:35:51 +0000 (10:35 +0300)
committerJari Jarvi <t7jaja00@students.oamk.fi>
Wed, 2 Jun 2010 07:35:51 +0000 (10:35 +0300)
src/advsettingsdlg.cpp
src/advsettingsdlg.h
src/main.cpp

index b990f25..b750f28 100644 (file)
@@ -20,13 +20,18 @@ AdvSettingsDlg::AdvSettingsDlg(QDialog *parent)
     setMinimumHeight(320);
 
     settings = new QSettings(this);
+
+    // Set default values on first startup
+    if (settings->allKeys().isEmpty())
+        setDefaults();
+
     resetBtn = new QPushButton(tr("Defaults"), this);
     saveBtn = new QPushButton(tr("Save"), this);
     table = new SettingsTable(this);
     layout = new QHBoxLayout(this);
     btnLayout = new QVBoxLayout();
 
-    connect(resetBtn, SIGNAL(clicked()), this, SLOT(resetToDefaults()));
+    connect(resetBtn, SIGNAL(clicked()), this, SLOT(showResetQuery()));
     connect(saveBtn, SIGNAL(clicked()), this, SLOT(save()));
 
     btnLayout->addWidget(resetBtn);
@@ -46,15 +51,6 @@ AdvSettingsDlg::~AdvSettingsDlg()
     delete table;
 }
 
-void AdvSettingsDlg::save()
-{
-    for (int i = 0; i < table->rowCount(); ++i)
-    {
-        settings->setValue(table->key(i), table->value(i));
-    }
-    done(0); // close dialog
-}
-
 void AdvSettingsDlg::refreshList()
 {
     table->removeAllRows();
@@ -63,31 +59,46 @@ void AdvSettingsDlg::refreshList()
     for (int i = 0; i < keys.size(); ++i)
     {
         table->appendRow(keys.at(i),
-                settings->value(keys.at(i), "n/a").toString());
+            settings->value(keys.at(i), "n/a").toString());
     }
 }
 
-void AdvSettingsDlg::resetToDefaults()
+void AdvSettingsDlg::setDefaults()
+{
+    settings->setValue("lircPort", 8765);
+    settings->setValue("remoteName", "No remote selected");
+    settings->setValue("lircConf", "/etc/lircd.conf");
+    settings->setValue("cmd0", "VOL+");
+    settings->setValue("cmd1", "VOL-");
+    settings->setValue("cmd2", "P+");
+    settings->setValue("cmd3", "P-");
+    settings->setValue("cmd4", "POWER");
+    settings->setValue("cmd5", "MUTE");
+    settings->setValue("remoteUrl",
+        "http://mercury.wipsl.com/irwi/remotes/");
+    settings->setValue("bgAlpha", 192);
+}
+
+void AdvSettingsDlg::showResetQuery()
 {
     QMessageBox mbox(QMessageBox::Question, "",
-            tr("All settings will be reset to defaults"),
-            QMessageBox::Cancel | QMessageBox::Ok, this); 
-    if (mbox.exec() == QMessageBox::Ok)
+        tr("Reset all settings to defaults?"),
+        QMessageBox::Cancel | QMessageBox::Yes, this); 
+    if (mbox.exec() == QMessageBox::Yes)
     {
-        settings->setValue("lircPort", 8765);
-        settings->setValue("remoteName", "No remote selected");
-        settings->setValue("lircConf", "/etc/lircd.conf");
-        settings->setValue("cmd0", "VOL+");
-        settings->setValue("cmd1", "VOL-");
-        settings->setValue("cmd2", "P+");
-        settings->setValue("cmd3", "P-");
-        settings->setValue("cmd4", "ON/OFF");
-        settings->setValue("cmd5", "MUTE");
-        settings->setValue("remoteUrl",
-                "http://mercury.wipsl.com/irwi/remotes/");
-        settings->setValue("bgAlpha", 192);
-
+        setDefaults();
         refreshList();
     }
 }
 
+void AdvSettingsDlg::save()
+{
+    for (int i = 0; i < table->rowCount(); ++i)
+    {
+        settings->setValue(table->key(i), table->value(i));
+    }
+    done(0); // close dialog
+}
+
+
+
index df02c25..d3c2561 100644 (file)
@@ -2,7 +2,6 @@
 #define _ADVSETTINGSDLG_H_
 
 #include <QDialog>
-#include <QObject>
 
 class QSettings;
 class QPushButton;
@@ -20,9 +19,10 @@ public:
 
 private:
     void refreshList();
+    void setDefaults();
 
 private slots:
-    void resetToDefaults();
+    void showResetQuery();
     void save();
 
 private:
index 7e9ba2d..1931cb4 100644 (file)
@@ -10,7 +10,7 @@ int main(int argc, char *argv[])
     QApplication::setGraphicsSystem("native");
 
     QApplication app(argc, argv);
-    app.setOrganizationName("Foobar");
+    app.setOrganizationName("irwi");
     app.setOrganizationDomain("mercury.wipsl.com");
     app.setApplicationName("irwi");
 
@@ -21,6 +21,6 @@ int main(int argc, char *argv[])
             &w, SLOT(showSettingsDialog()));
     w.show();
 
-    app.exec();
+    return app.exec();
 }