- Added course selection dialog
[scorecard] / src / course-dialog.cpp
index dd6bedb..463718c 100644 (file)
@@ -8,20 +8,60 @@
 #include "cell-delegate.h"
 
 
+CourseSelectDialog::CourseSelectDialog(QWidget *parent) : QDialog(parent)
+{
+  QWidget *centralWidget = new QWidget(this);
+  createLayout(centralWidget);
+
+  setWindowTitle(tr("ScoreCard: New Club and/or Course"));
+}
+
+void CourseSelectDialog::createLayout(QWidget *parent)
+{
+  labelClub = new QLabel(tr("Club"));
+  labelCourse = new QLabel(tr("Course"));
+  lineEditClub = new QLineEdit;
+  lineEditCourse = new QLineEdit;
+  pushButtonNext = new QPushButton(tr("Next"));
+
+  connect(pushButtonNext, SIGNAL(clicked()), this, SLOT(next()));
+
+  leftLayout = new QVBoxLayout;
+  leftLayout->addWidget(lineEditClub);
+  leftLayout->addWidget(lineEditCourse);
+
+  rightLayout = new QVBoxLayout;
+  rightLayout->addStretch();
+  rightLayout->addWidget(pushButtonNext);
+
+  QHBoxLayout *mainLayout = new QHBoxLayout(parent);
+  mainLayout->addLayout(leftLayout);
+  mainLayout->addLayout(rightLayout);
+
+  setLayout(mainLayout);
+}
+
+void CourseSelectDialog::results(QString &club, 
+                                QString &course)
+{  
+  club = lineEditClub->text();
+  course = lineEditCourse->text();
+}
+
+void CourseSelectDialog::next(void)
+{
+  done(1);
+}
+
 CourseDialog::CourseDialog(QWidget *parent) : QDialog(parent)
 {
   resize(800, 400);
 
-  QFont font;
-  font.setPointSize(20);
-  setFont(font);
-
   createTable();
   createLabel();
 
   createLayout(this);
 
-  setWindowTitle(tr("New Course"));
 }
 
 void CourseDialog::createLayout(QWidget *parent)
@@ -31,7 +71,7 @@ void CourseDialog::createLayout(QWidget *parent)
 
   rightLayout = new QVBoxLayout;
   rightLayout->addStretch();
-  rightLayout->addWidget(pushButtonOk);
+  rightLayout->addWidget(pushButtonFinnish);
 
   QHBoxLayout *mainLayout = new QHBoxLayout(parent);
   mainLayout->addLayout(leftLayout);
@@ -47,7 +87,8 @@ void CourseDialog::createLabel(QWidget *parent)
   clubEdit = new QLineEdit;
   courseEdit = new QLineEdit;
 
-  pushButtonOk = new QPushButton(tr("OK"));
+  pushButtonFinnish = new QPushButton(tr("Finnish"));
+  connect(pushButtonFinnish, SIGNAL(clicked()), this, SLOT(finnish()));
 }
 
 void CourseDialog::createTable(QWidget *parent)
@@ -132,3 +173,59 @@ void CourseDialog::nextCell(QObject *obj)
 #endif
 }
 
+void CourseDialog::results(QVector<QString> &par,
+                         QVector<QString> &hcp,
+                         QVector<QString> &len)
+{
+  for (int i = 0; i < 9; i++) {
+    QTableWidgetItem *frontPar = table->item(ROW_PAR, i);
+    QTableWidgetItem *backPar = table->item(ROW_PAR_2, i);
+    QTableWidgetItem *frontHcp = table->item(ROW_HCP, i);
+    QTableWidgetItem *backHcp = table->item(ROW_HCP_2, i);
+    QTableWidgetItem *frontLen = table->item(ROW_LEN, i);
+    QTableWidgetItem *backLen = table->item(ROW_LEN_2, i);
+
+    if (frontPar)
+      par[i] = frontPar->text();
+    if (backPar)
+      par[i+9] = backPar->text();
+    if (frontHcp)
+      hcp[i] = frontHcp->text();
+    if (backHcp)
+      hcp[i+9] = backHcp->text();
+    if (frontLen)
+      len[i] = frontLen->text();
+    if (backLen)
+      len[i+9] = backLen->text();
+  }
+}
+
+// Only par is mandatory
+bool CourseDialog::validate(void)
+{
+  for (int i = 0; i < 9; i++) {
+    QTableWidgetItem *frontItem = table->item(ROW_PAR, i);
+    QTableWidgetItem *backItem = table->item(ROW_PAR_2, i);
+    
+    if (!frontItem || !backItem)
+      return false;
+    
+    QString str1 = frontItem->text();
+    QString str2 = backItem->text();
+    
+    if (str1.isEmpty() || str2.isEmpty())
+      return false;
+  }
+  return true;
+}
+
+void CourseDialog::finnish(void)
+{
+  if (validate())
+    done(1);
+  else {
+    qDebug() << "CourseDialog: invalid data, cancel or correct";
+  }
+}
+
+