initial commit
[scorecard] / src / score-dialog.h
1 #ifndef SCORE_DIALOG_H
2 #define SCORE_DIALOG_H
3
4 #include <QDialog>
5 #include <QTableWidget>
6 #include <QComboBox>
7 #include <QLabel>
8 #include <QPushButton>
9 #include <QLayout>
10
11 #include "data.h"
12
13 class SelectDialog: public QDialog
14 {
15   Q_OBJECT
16
17  public:
18   SelectDialog(QWidget *parent = 0);
19
20   void results(QString &club, QString &course, QString &date);
21   void init(QList<Club *> &list);
22
23 private slots:
24   void comboBoxClubChanged();
25   void comboBoxCourseChanged();
26   void next(void);
27
28  private:
29
30   bool validate(void);
31   void reject(void);
32
33   void comboBoxCourseUpdate(void);
34   void createLayout(QWidget *parent = 0);
35
36   QComboBox    *comboBoxClub;
37   QComboBox    *comboBoxCourse;
38
39   QLineEdit    *lineEditDate;
40
41   QLabel       *labelClub;
42   QLabel       *labelCourse;
43
44   QPushButton  *pushButtonNext;
45
46   // Layouts
47   QVBoxLayout *leftLayout;
48   QVBoxLayout *rightLayout;
49
50   QList<Club *> clubList;
51 };
52
53 class ScoreDialog: public QDialog
54 {
55   Q_OBJECT
56
57 public:
58   ScoreDialog(QWidget *parent = 0);
59   void init(Course *course);
60   void results(QVector<QString> &scores);
61   bool validate(void);
62
63 private slots:
64   void itemChanged(QTableWidgetItem *item);
65   void moveToNextCell(QTableWidgetItem *item);
66   void finnish(void);
67   void up(void);
68   void down(void);
69   void next(void);
70
71 private:
72
73   void createTable(QWidget *parent = 0);
74   void createButton(QWidget *parent = 0);
75   void createLayout(QWidget *parent = 0);
76   void setDefaultScore(QTableWidget *table);
77   
78   enum { ROWS = 8, COLS = 9 };
79   enum { ROW_HOLE = 0, ROW_PAR = 1, ROW_HCP = 2, ROW_SCORE = 3, 
80          ROW_HOLE_2 = 4, ROW_PAR_2 = 5, ROW_HCP_2 = 6, ROW_SCORE_2 = 7};
81
82   void reject(void);
83
84   // Widgets
85   QTableWidget *table;
86
87   QPushButton  *pushButtonFinnish;
88   QPushButton  *pushButtonUp;
89   QPushButton  *pushButtonDown;
90   QPushButton  *pushButtonNext;
91
92   // Layouts
93   QVBoxLayout *leftLayout;
94   QVBoxLayout *rightLayout;
95 };
96 #endif