- Add non-volatile settings for hcp, home club, etc.
authorSakari Poussa <spoussa@gmail.com>
Sun, 9 May 2010 21:00:40 +0000 (00:00 +0300)
committerSakari Poussa <spoussa@gmail.com>
Sun, 9 May 2010 21:00:40 +0000 (00:00 +0300)
scorecard.pro
src/main-window.cpp
src/main-window.h
src/main.cpp
src/score-common.h

index d7ad10d..e8504b1 100644 (file)
@@ -17,6 +17,7 @@ src/score-common.h \
 src/main-window.h \
 src/score-dialog.h \
 src/course-dialog.h \
+src/settings-dialog.h \
 src/table-model.h \
 src/list-model.h \
 src/stat-model.h \
@@ -28,6 +29,7 @@ src/main.cpp \
 src/main-window.cpp \
 src/score-dialog.cpp \
 src/course-dialog.cpp \
+src/settings-dialog.cpp \
 src/table-model.cpp \
 src/list-model.cpp \
 src/stat-model.cpp \
index ad0875c..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,6 @@ 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);
@@ -614,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);
index aac1845..95bf002 100644 (file)
 #include <QLabel>
 #include <QActionGroup>
 #include <QXmlDefaultHandler>
+#include <QSettings>
 
 #include "data.h"
+#include "score-common.h"
 #include "table-model.h"
 #include "list-model.h"
 
@@ -50,12 +52,14 @@ private slots:
   void deleteCourse();
   void editCourse();
   void viewStatistics();
+  void viewSettings();
   void listScores();
   void listCourses();
 
 private:
 
   void loadSettings(void);
+  void saveSettings(void);
   Club * findClub(QString &name);
   Course * findCourse(const QString &clubName, const QString &courseName);
   Course * findCourse();
@@ -74,7 +78,6 @@ private:
   ScoreListModel *scoreListModel;
   CourseListModel *courseListModel;
 
-  QAbstractItemModel *tableModel;
   QItemSelectionModel *selectionModel;
 
   QTableView *table;
@@ -86,10 +89,15 @@ private:
   // Menus
   QMenu *menu;
 
+  // Settings
+  QSettings settings;
+  AppSettings conf;
+
   // Actions
   QAction *newScoreAction;
   QAction *newCourseAction;
   QAction *statAction;
+  QAction *settingsAction;
 
   QActionGroup *filterGroup;
   QAction *listScoreAction;
index 89ab6b2..6544d16 100644 (file)
@@ -8,7 +8,6 @@
 
 #include <QtCore/QtCore>
 #include <QtGui/QtGui>
-#include <QInputContext>
 
 #include "main-window.h"
 
@@ -16,13 +15,9 @@ int main(int argc, char *argv[])
 {
   QApplication app(argc, argv);
 
-#ifdef Q_WS_HILDON
-  QStringList keys = QInputContextFactory::keys();
-  qDebug() << "Input Context Factory keys: " << keys;
-  QInputContext *hildonInputContext=0;
-  hildonInputContext=QInputContextFactory::create("hildon", 0);
-  app.setInputContext(hildonInputContext);
-#endif
+  QCoreApplication::setOrganizationName("garage");
+  QCoreApplication::setOrganizationDomain("maemo.org");
+  QCoreApplication::setApplicationName("ScoreCard");
 
   MainWindow win;
   win.show();
index 08ce96f..58dbc8c 100644 (file)
@@ -31,6 +31,13 @@ QColor colorTotal(Qt::black);
 
 #include <QColor>
 
+class AppSettings {
+public:
+    QVariant hcp;
+    QVariant homeClub;
+    QVariant defaultCourses;
+};
+
 class ScoreColor
 {
  public: