2 * Copyright (C) 2009 Sakari Poussa
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.
10 #define SCORE_DIALOG_H
13 #include <QMainWindow>
14 #include <QTableWidget>
15 #include <QListWidget>
18 #include <QPushButton>
22 #include <QtMaemo5/QMaemo5ValueButton>
23 #include <QtMaemo5/QMaemo5DatePickSelector>
27 #include "table-model.h"
29 class ScoreWindow: public QMainWindow
34 ScoreWindow(QWidget *parent = 0);
37 void setup(Score * score, Course * course);
40 ScoreTableModel *model;
43 class SelectDialog: public QDialog
48 SelectDialog(QWidget *parent = 0);
50 void results(QString &club, QString &course, QString &date);
51 void init(QList<Club *> &list);
61 void comboBoxCourseUpdate(void);
62 void createLayout(QWidget *parent = 0);
65 QListWidget *listWidgetClub;
67 QMaemo5ValueButton *dateButton;
69 QLineEdit *lineEditDate;
74 QPushButton *pushButtonNext;
77 QVBoxLayout *leftLayout;
78 QVBoxLayout *rightLayout;
80 QList<Club *> clubList;
83 // Base class for multiple score edit dialog
84 class ScoreDialog: public QDialog
89 ScoreDialog(QWidget *parent = 0) : QDialog(parent) {};
91 virtual void init(Course *course, Score *score = 0) = 0;
92 virtual void results(QVector<QString> &scores) = 0;
97 // Class for editing 18 holes in one dialog
98 class ScoreDialog18: public ScoreDialog
103 ScoreDialog18(QWidget *parent = 0);
105 void init(Course *course, Score *score = 0);
106 void results(QVector<QString> &scores);
117 void createTable(QWidget *parent = 0);
118 void createButton(QWidget *parent = 0);
119 void createLayout(QWidget *parent = 0);
120 void setDefaultScore(QTableWidget *table);
121 void moveToNextCell(QTableWidgetItem *item);
122 void showNote(QString msg);
124 enum { ROWS = 8, COLS = 9 };
125 enum { ROW_HOLE = 0, ROW_PAR = 1, ROW_HCP = 2, ROW_SCORE = 3,
126 ROW_HOLE_2 = 4, ROW_PAR_2 = 5, ROW_HCP_2 = 6, ROW_SCORE_2 = 7};
133 QPushButton *pushButtonFinish;
134 QPushButton *pushButtonUp;
135 QPushButton *pushButtonDown;
136 QPushButton *pushButtonNext;
139 QVBoxLayout *leftLayout;
140 QVBoxLayout *rightLayout;
143 // Class for editing single hole in one dialog
144 class ScoreDialogSingle: public QDialog
149 ScoreDialogSingle(QWidget *parent = 0);
150 ~ScoreDialogSingle();
152 void init(Course *course, Score *score = 0);
153 void results(QVector<QString> &scores);
157 void createTable(QWidget *parent = 0);
158 void createButton(QWidget *parent = 0);
159 void createLayout(QWidget *parent = 0);
164 QPushButton *pushButtonFinish;
165 QPushButton *pushButtonUp;
166 QPushButton *pushButtonDown;
167 QPushButton *pushButtonNext;
170 QVBoxLayout *leftLayout;
171 QVBoxLayout *rightLayout;