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