Add support for reading/saving config file
authorDaniel Klaffenbach <danielklaffenbach@gmail.com>
Sun, 31 Oct 2010 14:12:31 +0000 (15:12 +0100)
committerDaniel Klaffenbach <danielklaffenbach@gmail.com>
Sun, 31 Oct 2010 14:12:31 +0000 (15:12 +0100)
src/mainwindow.cpp
src/settingswidget.cpp
src/settingswidget.h
src/settingswidget.ui

index 996f106..55e9c0b 100644 (file)
@@ -73,6 +73,8 @@ MainWindow::MainWindow(QWidget *parent) :
     #endif
     helpWindow.setWindowFlags( windowFlags() | Qt::Window );
 
+    //Settings widget
+    settings.setWindowFlags(Qt::Popup);
     settings.hide();
 
     //connect signals and slots
@@ -510,7 +512,7 @@ void MainWindow::showHelp()
   */
 void MainWindow::showSettings()
 {
-    settings.setWindowFlags(Qt::Popup);
+    settings.reset();
     settings.show();
 }
 
index 0ac30d8..96f4b10 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * QCPUFreq - a simple cpufreq GUI
- * Copyright (C) 2010 Daniel Klaffenbach <daniel.klaffenbach@cs.tu-chemnitz.de>
+ * Copyright (C) 2010 Daniel Klaffenbach <danielklaffenbach@gmail.com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 SettingsWidget::SettingsWidget(QWidget *parent) :
     QWidget(parent),
+    settings("qcpufreq"),
     ui(new Ui::SettingsWidget)
 {
     ui->setupUi(this);
-    settings = new QSettings("qcpufreq");
+
+    //read values from config file
+    autoRotate = settings.value("main/autorotate", true).toBool();
+    overclocking = settings.value("main/overclocking", false).toBool();
+    advancedTemperature = settings.value("main/advanced_temperature", true).toBool();
+
+    //reset GUI
+    reset();
+
+    connect(ui->btn_save, SIGNAL(clicked()), this, SLOT(save()));
 }
 
 SettingsWidget::~SettingsWidget()
 {
     delete ui;
-    delete settings;
 }
 
 
+/**
+  * Resets the UI to the values stored by QSettings.
+  */
 void SettingsWidget::reset()
 {
+    ui->checkBox_rotate->setChecked(autoRotate);
+    ui->checkBox_oc->setChecked(overclocking);
+    ui->checkBox_temperature->setChecked(advancedTemperature);
+}
+
+
+/**
+  * Saves the changes and hides the SettingsWidget.
+  */
+void SettingsWidget::save()
+{
+    autoRotate = ui->checkBox_rotate->isChecked();
+    overclocking = ui->checkBox_oc->isChecked();
+    advancedTemperature = ui->checkBox_temperature->isChecked();
+
+    settings.setValue("main/autorotate", autoRotate);
+    settings.setValue("main/overclocking", overclocking);
+    settings.setValue("main/advanced_temperature", advancedTemperature);
+
+    //save settings to file
+    settings.sync();
+
+    hide();
 }
index 80d1181..a55c02d 100644 (file)
@@ -36,10 +36,15 @@ public:
 
 public slots:
     void reset();
+    void save();
+    void showOverclockingWarning();
 
 private:
+    bool advancedTemperature;
+    bool autoRotate;
+    bool overclocking;
+    QSettings settings;
     Ui::SettingsWidget *ui;
-    QSettings *settings;
 };
 
 #endif // SETTINGSWIDGET_H
index afcd723..cbc74c6 100644 (file)
@@ -29,7 +29,7 @@
      <item>
       <widget class="QCheckBox" name="checkBox_rotate">
        <property name="text">
-        <string>Enable Auto-rotation</string>
+        <string>Enable Auto-rotate</string>
        </property>
       </widget>
      </item>