From 582d680d6a088492328638de6f9d28164fc6369d Mon Sep 17 00:00:00 2001 From: Jari Jarvi Date: Wed, 2 Jun 2010 10:35:51 +0300 Subject: [PATCH] Default settings will be set if config file is empty. --- src/advsettingsdlg.cpp | 67 ++++++++++++++++++++++++++++-------------------- src/advsettingsdlg.h | 4 +-- src/main.cpp | 4 +-- 3 files changed, 43 insertions(+), 32 deletions(-) diff --git a/src/advsettingsdlg.cpp b/src/advsettingsdlg.cpp index b990f25..b750f28 100644 --- a/src/advsettingsdlg.cpp +++ b/src/advsettingsdlg.cpp @@ -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 +} + + + diff --git a/src/advsettingsdlg.h b/src/advsettingsdlg.h index df02c25..d3c2561 100644 --- a/src/advsettingsdlg.h +++ b/src/advsettingsdlg.h @@ -2,7 +2,6 @@ #define _ADVSETTINGSDLG_H_ #include -#include class QSettings; class QPushButton; @@ -20,9 +19,10 @@ public: private: void refreshList(); + void setDefaults(); private slots: - void resetToDefaults(); + void showResetQuery(); void save(); private: diff --git a/src/main.cpp b/src/main.cpp index 7e9ba2d..1931cb4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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(); } -- 1.7.9.5