4 #include <QInputContext>
5 #include <QtGui/QTableWidget>
7 #include "course-dialog.h"
8 #include "cell-delegate.h"
11 CourseSelectDialog::CourseSelectDialog(QWidget *parent) : QDialog(parent)
13 QWidget *centralWidget = new QWidget(this);
14 createLayout(centralWidget);
16 setWindowTitle(tr("ScoreCard: New Club and Course"));
19 void CourseSelectDialog::createLayout(QWidget *parent)
21 labelClub = new QLabel(tr("Club"));
22 labelCourse = new QLabel(tr("Course"));
23 lineEditClub = new QLineEdit;
24 lineEditCourse = new QLineEdit;
25 pushButtonNext = new QPushButton(tr("Next"));
27 connect(pushButtonNext, SIGNAL(clicked()), this, SLOT(next()));
29 leftLayout = new QVBoxLayout;
30 leftLayout->addWidget(lineEditClub);
31 leftLayout->addWidget(lineEditCourse);
33 rightLayout = new QVBoxLayout;
34 rightLayout->addStretch();
35 rightLayout->addWidget(pushButtonNext);
37 QHBoxLayout *mainLayout = new QHBoxLayout(parent);
38 mainLayout->addLayout(leftLayout);
39 mainLayout->addLayout(rightLayout);
41 setLayout(mainLayout);
44 void CourseSelectDialog::results(QString &club,
47 club = lineEditClub->text();
48 course = lineEditCourse->text();
51 bool CourseSelectDialog::validate(void)
53 QString str1 = lineEditClub->text();
54 QString str2 = lineEditCourse->text();
56 if (str1.isEmpty() || str2.isEmpty())
62 void CourseSelectDialog::next(void)
67 qDebug() << "CourseDialog: invalid data, cancel or correct";
71 CourseDialog::CourseDialog(QWidget *parent) : QDialog(parent)
81 void CourseDialog::createLayout(QWidget *parent)
83 leftLayout = new QVBoxLayout(parent);
84 leftLayout->addWidget(table);
86 rightLayout = new QVBoxLayout(parent);
87 rightLayout->addStretch();
88 rightLayout->addWidget(pushButtonFinish);
90 QHBoxLayout *mainLayout = new QHBoxLayout(parent);
91 mainLayout->addLayout(leftLayout);
92 mainLayout->addLayout(rightLayout);
93 setLayout(mainLayout);
96 void CourseDialog::createLabel(QWidget *parent)
98 clubLabel = new QLabel(tr("Club"));
99 courseLabel = new QLabel(tr("Course"));
101 clubEdit = new QLineEdit;
102 courseEdit = new QLineEdit;
104 pushButtonFinish = new QPushButton(tr("Finish"));
105 connect(pushButtonFinish, SIGNAL(clicked()), this, SLOT(finish()));
108 void CourseDialog::createTable(QWidget *parent)
110 table = new QTableWidget(rows, cols, parent);
113 headers << "" << "Par" << "HCP" << "Len" << "" << "Par" << "HCP" << "Len";
114 table->setVerticalHeaderLabels(headers);
115 table->horizontalHeader()->hide();
117 //CellDelegate *cellDelegate = new CellDelegate(this);
118 //table->setItemDelegate(cellDelegate);
120 table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
121 table->verticalHeader()->setResizeMode(QHeaderView::Stretch);
123 for (int i=0; i<18; i++) {
124 QTableWidgetItem *par = new QTableWidgetItem("");
125 QTableWidgetItem *hcp = new QTableWidgetItem("");
126 QTableWidgetItem *len = new QTableWidgetItem("");
128 QTableWidgetItem *holeNum = new QTableWidgetItem(QString::number(i+1));
129 QColor bgColor(Qt::gray);
130 holeNum->setBackgroundColor(bgColor);
132 holeNum->setTextAlignment(Qt::AlignCenter);
133 par->setTextAlignment(Qt::AlignCenter);
134 hcp->setTextAlignment(Qt::AlignCenter);
135 len->setTextAlignment(Qt::AlignCenter);
138 table->setItem(0, i, holeNum);
139 table->setItem(1, i, par);
140 table->setItem(2, i, hcp);
141 table->setItem(3, i, len);
144 table->setItem(4, i-9, holeNum);
145 table->setItem(5, i-9, par);
146 table->setItem(6, i-9, hcp);
147 table->setItem(7, i-9, len);
152 void CourseDialog::results(QVector<QString> &par,
153 QVector<QString> &hcp,
154 QVector<QString> &len)
156 for (int i = 0; i < 9; i++) {
157 QTableWidgetItem *frontPar = table->item(ROW_PAR, i);
158 QTableWidgetItem *backPar = table->item(ROW_PAR_2, i);
159 QTableWidgetItem *frontHcp = table->item(ROW_HCP, i);
160 QTableWidgetItem *backHcp = table->item(ROW_HCP_2, i);
161 QTableWidgetItem *frontLen = table->item(ROW_LEN, i);
162 QTableWidgetItem *backLen = table->item(ROW_LEN_2, i);
165 par[i] = frontPar->text();
167 par[i+9] = backPar->text();
169 hcp[i] = frontHcp->text();
171 hcp[i+9] = backHcp->text();
173 len[i] = frontLen->text();
175 len[i+9] = backLen->text();
179 // Only par is mandatory
180 bool CourseDialog::validate(void)
182 for (int i = 0; i < 9; i++) {
183 QTableWidgetItem *frontItem = table->item(ROW_PAR, i);
184 QTableWidgetItem *backItem = table->item(ROW_PAR_2, i);
186 if (!frontItem || !backItem)
189 QString str1 = frontItem->text();
190 QString str2 = backItem->text();
192 if (str1.isEmpty() || str2.isEmpty())
198 void CourseDialog::finish(void)
203 qDebug() << "CourseDialog: invalid data, cancel or correct";