New colors, Graphs button removed
[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 createTableView(QList<Score *> &, QList <Club *> &);
31   void updateTitleBar();
32   void loadScoreFile(QString &fileName, QList<Score *> &scoreList);
33   void loadClubFile(QString &fileName, QList<Club *> &clubList);
34   void saveScoreFile(QString &fileName, QList<Score *> &scoreList);
35   void saveClubFile(QString &fileName, QList<Club *> &clubList);
36
37 signals:
38   void dataChanged();
39
40 private slots:
41   void firstButtonClicked();
42   void lastButtonClicked();
43   void nextButtonClicked();
44   void prevButtonClicked();
45
46   void newScore();
47   void editScore();
48   void newCourse();
49   void editCourse();
50   void viewStatistics();
51
52 private:
53
54   void loadSettings(void);
55   Club *findClub(QString &name);
56   void getStat(QTextEdit *);
57
58   QList<Score *> scoreList;
59   QList<Club *> clubList;
60
61   ScoreTableModel *scoreTableModel;
62
63   QAbstractItemModel *tableModel;
64   QItemSelectionModel *selectionModel;
65
66   QTableView *table;
67
68   // Layouts
69   QVBoxLayout *tableLayout;
70   QVBoxLayout *buttonLayout;
71   QWidget *centralWidget;
72
73   // Menus
74   QMenu *menu;
75
76   // Buttons
77   QPushButton *nextButton;
78   QPushButton *prevButton;
79   QPushButton *firstButton;
80   QPushButton *lastButton;
81
82   // Toolbar
83   QToolBar *toolbar;
84
85   // Actions
86   QAction *newScoreAct;
87   QAction *editScoreAct;
88   QAction *newCourseAct;
89   QAction *editCourseAct;
90   QAction *statAct;
91   QAction *firstAct;
92   QAction *lastAct;
93   QAction *nextAct;
94   QAction *prevAct;
95
96   QAction *viewScoreAct;
97   QAction *viewCourseAct;
98
99   void createMenus();
100   void createActions();
101
102
103 };