- Add non-volatile settings for hcp, home club, etc.
[scorecard] / src / main-window.cpp
index 1481e23..33c4e20 100644 (file)
@@ -15,6 +15,7 @@
 #include "main-window.h"
 #include "score-dialog.h"
 #include "course-dialog.h"
+#include "settings-dialog.h"
 #include "stat-model.h"
 #include "xml-dom-parser.h"
 
@@ -164,8 +165,28 @@ void MainWindow::loadSettings(void)
       return;
     }
   qDebug() << "Data is at:" + dataDir;
+
+  settings.beginGroup("Settings");
+  conf.hcp = settings.value("hcp");
+  conf.homeClub = settings.value("home-club");
+  conf.defaultCourses = settings.value("default-courses");
+  settings.endGroup();
+  qDebug() << "Settings: " << conf.hcp << conf.homeClub << conf.defaultCourses;
+}
+
+void MainWindow::saveSettings(void)
+{
+    settings.beginGroup("Settings");
+    if (conf.hcp.isValid())
+        settings.setValue("hcp", conf.hcp);
+    if (conf.homeClub.isValid())
+        settings.setValue("home-club", conf.homeClub);
+    if (conf.defaultCourses.isValid())
+        settings.setValue("default-courses", conf.defaultCourses);
+    settings.endGroup();
 }
 
+
 void MainWindow::createLayoutList(QWidget *parent)
 {
     QVBoxLayout * tableLayout = new QVBoxLayout;
@@ -221,6 +242,9 @@ void MainWindow::createActions()
     statAction = new QAction(tr("Statistics"), this);
     connect(statAction, SIGNAL(triggered()), this, SLOT(viewStatistics()));
 
+    settingsAction = new QAction(tr("Settings"), this);
+    connect(settingsAction, SIGNAL(triggered()), this, SLOT(viewSettings()));
+
     // Maemo5 style menu filters
     filterGroup = new QActionGroup(this);
     filterGroup->setExclusive(true);
@@ -246,6 +270,7 @@ void MainWindow::createMenus()
     menu->addAction(newScoreAction);
     menu->addAction(newCourseAction);
     menu->addAction(statAction);
+    menu->addAction(settingsAction);
     menu->addActions(filterGroup->actions());
 }
 
@@ -520,7 +545,6 @@ void MainWindow::viewScore(Score * score, Course * course)
     QTableView * table = new QTableView;
     table->showGrid();
     table->setSelectionMode(QAbstractItemView::NoSelection);
-    //table->setStyleSheet(ScoreStyle::headerView());
     table->setStyleSheet(ScoreStyle::style());
     table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
     table->verticalHeader()->setResizeMode(QHeaderView::Stretch);
@@ -590,7 +614,7 @@ void MainWindow::viewStatistics()
   QTableView *table = new QTableView;
   table->showGrid();
   table->setSelectionMode(QAbstractItemView::NoSelection);
-  table->setStyleSheet(ScoreStyle::headerView());
+  table->setStyleSheet(ScoreStyle::style());
   table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
   table->verticalHeader()->setResizeMode(QHeaderView::Stretch);
   table->verticalHeader()->setAutoFillBackground(true);
@@ -613,6 +637,22 @@ void MainWindow::viewStatistics()
   win->show();
 }
 
+void MainWindow::viewSettings()
+{
+    SettingsDialog *dlg = new SettingsDialog(this);
+
+    dlg->init(conf, clubList);
+
+    int result = dlg->exec();
+    if (result) {
+        QString a, b, c;
+
+        dlg->results(conf);
+        //qDebug() <<  << b << c;
+        saveSettings();
+    }
+}
+
 void MainWindow::loadScoreFile(QString &fileName, QList<Score *> &list)
 {
   ScoreXmlHandler handler(list);