From 1e0a802277c7585fc851060bb7a8e1d1df264ad0 Mon Sep 17 00:00:00 2001 From: Sakari Poussa Date: Mon, 10 May 2010 00:00:40 +0300 Subject: [PATCH] - Add non-volatile settings for hcp, home club, etc. --- scorecard.pro | 2 ++ src/main-window.cpp | 43 +++++++++++++++++++++++++++++++++++++++++-- src/main-window.h | 10 +++++++++- src/main.cpp | 11 +++-------- src/score-common.h | 7 +++++++ 5 files changed, 62 insertions(+), 11 deletions(-) diff --git a/scorecard.pro b/scorecard.pro index d7ad10d..e8504b1 100644 --- a/scorecard.pro +++ b/scorecard.pro @@ -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 \ diff --git a/src/main-window.cpp b/src/main-window.cpp index ad0875c..33c4e20 100644 --- a/src/main-window.cpp +++ b/src/main-window.cpp @@ -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 &list) { ScoreXmlHandler handler(list); diff --git a/src/main-window.h b/src/main-window.h index aac1845..95bf002 100644 --- a/src/main-window.h +++ b/src/main-window.h @@ -17,8 +17,10 @@ #include #include #include +#include #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; diff --git a/src/main.cpp b/src/main.cpp index 89ab6b2..6544d16 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,7 +8,6 @@ #include #include -#include #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(); diff --git a/src/score-common.h b/src/score-common.h index 08ce96f..58dbc8c 100644 --- a/src/score-common.h +++ b/src/score-common.h @@ -31,6 +31,13 @@ QColor colorTotal(Qt::black); #include +class AppSettings { +public: + QVariant hcp; + QVariant homeClub; + QVariant defaultCourses; +}; + class ScoreColor { public: -- 1.7.9.5