+/*
+ * Copyright (C) 2009 Sakari Poussa
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 2.
+ */
+
#ifndef SCORE_DIALOG_H
#define SCORE_DIALOG_H
#include <QDialog>
+#include <QMainWindow>
#include <QTableWidget>
#include <QListWidget>
#include <QComboBox>
#include <QLabel>
#include <QPushButton>
+#include <QDateEdit>
#include <QLayout>
+#ifdef Q_WS_MAEMO_5
+#include <QtMaemo5/QMaemo5ValueButton>
+#include <QtMaemo5/QMaemo5DatePickSelector>
+#endif
#include "data.h"
+#include "table-model.h"
-class SelectDialog: public QDialog
+class ScoreWindow: public QMainWindow
{
- Q_OBJECT
+ Q_OBJECT;
- public:
- SelectDialog(QWidget *parent = 0);
+public:
+ ScoreWindow(QWidget *parent = 0);
+ ~ScoreWindow();
- void results(QString &club, QString &course, QString &date);
- void init(QList<Club *> &list);
+ void setup(Score * score, Course * course);
-private slots:
- void next(void);
+private:
+ ScoreTableModel *model;
+};
- private:
+class SelectDialog: public QDialog
+{
+ Q_OBJECT;
- bool validate(void);
- void reject(void);
+public:
+ SelectDialog(QWidget *parent = 0);
+
+ void results(QString &club, QString &course, QString &date);
+ void init(QList<Club *> &list);
- void comboBoxCourseUpdate(void);
- void createLayout(QWidget *parent = 0);
+ private slots:
+ void next(void);
- // Widgets
- QListWidget *listClub;
- QLineEdit *lineEditDate;
- QLabel *labelClub;
- QLabel *labelCourse;
- QPushButton *pushButtonNext;
+private:
+
+ bool validate(void);
+ void reject(void);
+
+ void comboBoxCourseUpdate(void);
+ void createLayout(QWidget *parent = 0);
+
+ // Widgets
+ QListWidget *listWidgetClub;
+#ifdef Q_WS_MAEMO_5
+ QMaemo5ValueButton *dateButton;
+#else
+ QLineEdit *lineEditDate;
+ QDateEdit *date;
+#endif
+ QLabel *labelClub;
+ QLabel *labelCourse;
+ QPushButton *pushButtonNext;
- // Layouts
- QVBoxLayout *leftLayout;
- QVBoxLayout *rightLayout;
+ // Layouts
+ QVBoxLayout *leftLayout;
+ QVBoxLayout *rightLayout;
- QList<Club *> clubList;
+ QList<Club *> clubList;
};
+// Base class for multiple score edit dialog
class ScoreDialog: public QDialog
{
- Q_OBJECT
+ Q_OBJECT;
public:
- ScoreDialog(QWidget *parent = 0);
- void init(Course *course);
- void results(QVector<QString> &scores);
- bool validate(void);
+ ScoreDialog(QWidget *parent = 0) : QDialog(parent) {};
+
+ virtual void init(Course *course, Score *score = 0) = 0;
+ virtual void results(QVector<QString> &scores) = 0;
+
+private:
+};
+
+// Class for editing 18 holes in one dialog
+class ScoreDialog18: public ScoreDialog
+{
+ Q_OBJECT;
+
+public:
+ ScoreDialog18(QWidget *parent = 0);
+ ~ScoreDialog18();
+ void init(Course *course, Score *score = 0);
+ void results(QVector<QString> &scores);
+ bool validate(void);
private slots:
- void up(void);
- void down(void);
- void next(void);
- void finish(void);
+ void up(void);
+ void down(void);
+ void next(void);
+ void finish(void);
private:
- void createTable(QWidget *parent = 0);
- void createButton(QWidget *parent = 0);
- void createLayout(QWidget *parent = 0);
- void setDefaultScore(QTableWidget *table);
- void moveToNextCell(QTableWidgetItem *item);
+ void createTable(QWidget *parent = 0);
+ void createButton(QWidget *parent = 0);
+ void createLayout(QWidget *parent = 0);
+ void setDefaultScore(QTableWidget *table);
+ void moveToNextCell(QTableWidgetItem *item);
+ void showNote(QString msg);
- enum { ROWS = 8, COLS = 9 };
- enum { ROW_HOLE = 0, ROW_PAR = 1, ROW_HCP = 2, ROW_SCORE = 3,
- ROW_HOLE_2 = 4, ROW_PAR_2 = 5, ROW_HCP_2 = 6, ROW_SCORE_2 = 7};
+ enum { ROWS = 8, COLS = 9 };
+ enum { ROW_HOLE = 0, ROW_PAR = 1, ROW_HCP = 2, ROW_SCORE = 3,
+ ROW_HOLE_2 = 4, ROW_PAR_2 = 5, ROW_HCP_2 = 6, ROW_SCORE_2 = 7};
+
+ void reject(void);
+
+ // Widgets
+ QTableWidget *table;
+
+ QPushButton *pushButtonFinish;
+ QPushButton *pushButtonUp;
+ QPushButton *pushButtonDown;
+ QPushButton *pushButtonNext;
+
+ // Layouts
+ QVBoxLayout *leftLayout;
+ QVBoxLayout *rightLayout;
+};
+
+// Class for editing single hole in one dialog
+class ScoreDialogSingle: public ScoreDialog
+{
+ Q_OBJECT;
+
+public:
+ ScoreDialogSingle(QWidget *parent = 0);
+ ~ScoreDialogSingle();
+
+ void init(Course *course, Score *score = 0);
+ void results(QVector<QString> &scores);
+
+private slots:
+ void up(void);
+ void down(void);
+ void next(void);
+ //void finish(void);
+
+private:
+
+ enum { ROWS = 7, COLS = 3 };
+ enum { ROW_HOLE = 0, ROW_PAR = 1, ROW_HCP = 2, ROW_SCORE = 3, ROW_PUTTS = 4, ROW_FAIRWAY = 5, ROW_GREEN = 6 };
- void reject(void);
+ void createTable(QWidget *parent = 0);
+ void createButton(QWidget *parent = 0);
+ void createLayout(QWidget *parent = 0);
+ void setDefaultScore(QTableWidget *table);
+ void moveToNextCell(QTableWidgetItem *item);
- // Widgets
- QTableWidget *table;
+ // Widgets
+ QTableWidget *table;
- QPushButton *pushButtonFinish;
- QPushButton *pushButtonUp;
- QPushButton *pushButtonDown;
- QPushButton *pushButtonNext;
+ QPushButton *pushButtonFinish;
+ QPushButton *pushButtonUp;
+ QPushButton *pushButtonDown;
+ QPushButton *pushButtonNext;
- // Layouts
- QVBoxLayout *leftLayout;
- QVBoxLayout *rightLayout;
+ // Layouts
+ QVBoxLayout *leftLayout;
+ QVBoxLayout *rightLayout;
};
#endif