- Add and flush default courses when settings change
[scorecard] / src / main-window.h
index ca39136..d587a77 100644 (file)
@@ -1,15 +1,28 @@
+/*
+ * Copyright (C) 2009 Sakari Poussa
+ *
+ * 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
+ * the Free Software Foundation, version 2.
+ */
+
 #include <QMainWindow>
 #include <QTableView>
+#include <QListView>
 #include <QPushButton>
+#include <QTextEdit>
 #include <QVBoxLayout>
 #include <QItemSelectionModel>
 #include <QList>
 #include <QLabel>
+#include <QActionGroup>
 #include <QXmlDefaultHandler>
+#include <QSettings>
 
 #include "data.h"
+#include "score-common.h"
 #include "table-model.h"
-#include "tree-model.h"
+#include "list-model.h"
 
 class MainWindow : public QMainWindow
 {
@@ -17,13 +30,12 @@ class MainWindow : public QMainWindow
 
 public:
   MainWindow(QMainWindow *parent = 0);
-  void createLayout(QWidget *parent = 0);
-  void createStatusBar();
-  void createTableView(QList<Score *> &scoreList, QList <Club *> &clubList);
-  void createTreeView(QList<Score *> &scoreList, QObject *parent);
-  void updateStatusBar();
+  void createLayoutTable(QWidget *parent = 0);
+  void createLayoutList(QWidget *parent = 0);
+  void createListView(QList<Score *> &, QList <Club *> &);
+  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);
 
@@ -31,53 +43,70 @@ signals:
   void dataChanged();
 
 private slots:
-  void firstButtonClicked();
-  void lastButtonClicked();
-  void nextButtonClicked();
-  void prevButtonClicked();
+  void clickedList(const QModelIndex &index);
 
-  void updateTreeView(const QModelIndex & index);
   void newScore();
+  void deleteScore();
+  void editScore();
   void newCourse();
+  void deleteCourse();
+  void editCourse();
+  void viewStatistics();
+  void viewSettings();
+  void listScores();
+  void listCourses();
 
 private:
 
-  Club *findClub(QString &name);
+  void loadSettings(void);
+  void saveSettings(void);
+  Club * findClub(QString &name);
+  Course * findCourse(const QString &clubName, const QString &courseName);
+  Course * findCourse();
+  Score * findScore(QString & clubName, QString & courseName);
+  void flushReadOnlyItems();
+                               
+  void showNote(QString msg);
+  void getStat(QTextEdit *);
+
+  void viewScore(Score * score, Course * course);
+  void viewCourse(Course * course);
 
   QList<Score *> scoreList;
   QList<Club *> clubList;
 
   ScoreTableModel *scoreTableModel;
-  ScoreTreeModel  *scoreTreeModel;
+  ScoreListModel *scoreListModel;
+  CourseListModel *courseListModel;
 
-  QAbstractItemModel *tableModel;
   QItemSelectionModel *selectionModel;
 
-  QTableView *tableViewFront;
-  QTableView *tableViewBack;
+  QListView *list;
 
   // Layouts
-  QVBoxLayout *tableLayout;
-  QVBoxLayout *buttonLayout;
+  QWidget *centralWidget;
 
   // Menus
   QMenu *menu;
 
-  // Buttons
-  QPushButton *nextButton;
-  QPushButton *prevButton;
-  QPushButton *firstButton;
-  QPushButton *lastButton;
+  // Settings
+  QSettings settings;
+  AppSettings conf;
 
   // Actions
-  QAction *newScoreAct;
-  QAction *newCourseAct;
-  QAction *viewScoreAct;
-  QAction *viewCourseAct;
-  QAction *viewStatisticAct;
+  QAction *newScoreAction;
+  QAction *newCourseAction;
+  QAction *statAction;
+  QAction *settingsAction;
+
+  QActionGroup *filterGroup;
+  QAction *listScoreAction;
+  QAction *listCourseAction;
 
   void createMenus();
   void createActions();
 
-
+  // Windows
+  QMainWindow *scoreWin;
+  QMainWindow *courseWin;
 };