Score list sort order in settings: date/score
[scorecard] / src / main-window.h
index 94129cc..5ee01f3 100644 (file)
 #include <QLabel>
 #include <QActionGroup>
 #include <QXmlDefaultHandler>
+#include <QSettings>
 
 #include "data.h"
+#include "score-common.h"
+#include "score-dialog.h"
+#include "course-dialog.h"
 #include "table-model.h"
 #include "list-model.h"
 
@@ -31,9 +35,9 @@ public:
   void createLayoutTable(QWidget *parent = 0);
   void createLayoutList(QWidget *parent = 0);
   void createListView(QList<Score *> &, QList <Club *> &);
-  void updateTitleBar();
+  void updateTitleBar(QString & msg);
   void loadScoreFile(QString &fileName, QList<Score *> &scoreList);
-  void loadClubFile(QString &fileName, QList<Club *> &clubList);
+  void loadClubFile(QString &fileName, QList<Club *> &clubList, bool readOnly = false);
   void saveScoreFile(QString &fileName, QList<Score *> &scoreList);
   void saveClubFile(QString &fileName, QList<Club *> &clubList);
 
@@ -41,12 +45,8 @@ signals:
   void dataChanged();
 
 private slots:
-  void scoreSelectionChanged(const QItemSelection &selected,
-                             const QItemSelection &deselected);
-  void courseSelectionChanged(const QItemSelection &selected,
-                              const QItemSelection &deselected);
-  void changeCurrent(const QModelIndex &current,
-                     const QModelIndex &previous);
+  void clickedList(const QModelIndex &index);
+
   void newScore();
   void deleteScore();
   void editScore();
@@ -54,16 +54,22 @@ 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();
+  Course * currentCourse();
+  Score * currentScore();
   Score * findScore(QString & clubName, QString & courseName);
+  void flushReadOnlyItems();
+  void markHomeClub();
+  void sortScoreList();
                                
   void showNote(QString msg);
   void getStat(QTextEdit *);
@@ -78,10 +84,8 @@ private:
   ScoreListModel *scoreListModel;
   CourseListModel *courseListModel;
 
-  QAbstractItemModel *tableModel;
   QItemSelectionModel *selectionModel;
 
-  QTableView *table;
   QListView *list;
 
   // Layouts
@@ -90,10 +94,15 @@ private:
   // Menus
   QMenu *menu;
 
+  // Settings
+  QSettings settings;
+  AppSettings conf;
+
   // Actions
   QAction *newScoreAction;
   QAction *newCourseAction;
   QAction *statAction;
+  QAction *settingsAction;
 
   QActionGroup *filterGroup;
   QAction *listScoreAction;
@@ -103,6 +112,6 @@ private:
   void createActions();
 
   // Windows
-  QMainWindow *scoreWin;
-  QMainWindow *courseWin;
+  ScoreWindow *scoreWindow;
+  CourseWindow *courseWindow;
 };