Added edit course functionality
[scorecard] / src / main-window.h
1 #include <QMainWindow>
2 #include <QTableView>
3 #include <QPushButton>
4 #include <QVBoxLayout>
5 #include <QItemSelectionModel>
6 #include <QList>
7 #include <QLabel>
8 #include <QXmlDefaultHandler>
9
10 #include "data.h"
11 #include "table-model.h"
12 #include "tree-model.h"
13
14 class MainWindow : public QMainWindow
15 {
16   Q_OBJECT
17
18 public:
19   MainWindow(QMainWindow *parent = 0);
20   void createLayout(QWidget *parent = 0);
21   void createStatusBar();
22   void createTableView(QList<Score *> &, QList <Club *> &);
23   void createTreeView(QList<Score *> &, QObject *parent = 0);
24   void updateStatusBar();
25   void loadScoreFile(QString &fileName, QList<Score *> &scoreList);
26   void loadClubFile(QString &fileName, QList<Club *> &clubList);
27   void saveScoreFile(QString &fileName, QList<Score *> &scoreList);
28   void saveClubFile(QString &fileName, QList<Club *> &clubList);
29
30 signals:
31   void dataChanged();
32
33 private slots:
34   void firstButtonClicked();
35   void lastButtonClicked();
36   void nextButtonClicked();
37   void prevButtonClicked();
38
39   void updateTreeView(const QModelIndex & index);
40   void newScore();
41   void editScore();
42   void newCourse();
43   void editCourse();
44
45 private:
46
47   void loadSettings(void);
48   Club *findClub(QString &name);
49
50   QList<Score *> scoreList;
51   QList<Club *> clubList;
52
53   ScoreTableModel *scoreTableModel;
54   ScoreTreeModel  *scoreTreeModel;
55
56   QAbstractItemModel *tableModel;
57   QItemSelectionModel *selectionModel;
58
59   QTableView *table;
60
61   // Layouts
62   QVBoxLayout *tableLayout;
63   QVBoxLayout *buttonLayout;
64
65   // Menus
66   QMenu *menu;
67
68   // Buttons
69   QPushButton *nextButton;
70   QPushButton *prevButton;
71   QPushButton *firstButton;
72   QPushButton *lastButton;
73
74   // Actions
75   QAction *newScoreAct;
76   QAction *editScoreAct;
77   QAction *newCourseAct;
78   QAction *editCourseAct;
79
80   QAction *viewScoreAct;
81   QAction *viewCourseAct;
82   QAction *viewStatisticAct;
83
84   void createMenus();
85   void createActions();
86
87
88 };