GPLv2 license
[scorecard] / src / main-window.h
1 /*
2  * Copyright (C) 2009 Sakari Poussa
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, version 2.
7  */
8
9 #include <QMainWindow>
10 #include <QTableView>
11 #include <QPushButton>
12 #include <QToolBar>
13 #include <QTextEdit>
14 #include <QVBoxLayout>
15 #include <QItemSelectionModel>
16 #include <QList>
17 #include <QLabel>
18 #include <QXmlDefaultHandler>
19
20 #include "data.h"
21 #include "table-model.h"
22
23 class MainWindow : public QMainWindow
24 {
25   Q_OBJECT
26
27 public:
28   MainWindow(QMainWindow *parent = 0);
29   void createLayout(QWidget *parent = 0);
30   void createStatusBar();
31   void createTableView(QList<Score *> &, QList <Club *> &);
32   void updateStatusBar();
33   void loadScoreFile(QString &fileName, QList<Score *> &scoreList);
34   void loadClubFile(QString &fileName, QList<Club *> &clubList);
35   void saveScoreFile(QString &fileName, QList<Score *> &scoreList);
36   void saveClubFile(QString &fileName, QList<Club *> &clubList);
37
38 signals:
39   void dataChanged();
40
41 private slots:
42   void firstButtonClicked();
43   void lastButtonClicked();
44   void nextButtonClicked();
45   void prevButtonClicked();
46
47   void newScore();
48   void editScore();
49   void newCourse();
50   void editCourse();
51   void viewStatistics();
52
53 private:
54
55   void loadSettings(void);
56   Club *findClub(QString &name);
57   void getStat(QTextEdit *);
58
59   QList<Score *> scoreList;
60   QList<Club *> clubList;
61
62   ScoreTableModel *scoreTableModel;
63
64   QAbstractItemModel *tableModel;
65   QItemSelectionModel *selectionModel;
66
67   QTableView *table;
68
69   // Layouts
70   QVBoxLayout *tableLayout;
71   QVBoxLayout *buttonLayout;
72   QWidget *centralWidget;
73
74   // Menus
75   QMenu *menu;
76
77   // Buttons
78   QPushButton *nextButton;
79   QPushButton *prevButton;
80   QPushButton *firstButton;
81   QPushButton *lastButton;
82
83   // Toolbar
84   QToolBar *toolbar;
85
86   // Actions
87   QAction *newScoreAct;
88   QAction *editScoreAct;
89   QAction *newCourseAct;
90   QAction *editCourseAct;
91   QAction *statAct;
92   QAction *firstAct;
93   QAction *lastAct;
94   QAction *nextAct;
95   QAction *prevAct;
96
97   QAction *viewScoreAct;
98   QAction *viewCourseAct;
99
100   void createMenus();
101   void createActions();
102
103
104 };