GPLv2 license
[scorecard] / src / score-dialog.cpp
index 47c65b7..443bfd2 100644 (file)
@@ -1,3 +1,11 @@
+/*
+ * 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.
+ */
+
 #include <QtGui>
 #include <QInputContext>
 
@@ -164,41 +172,47 @@ void ScoreDialog::createButton(QWidget *parent)
   connect(pushButtonFinish, SIGNAL(clicked()), this, SLOT(finish()));
 }
 
-void ScoreDialog::init(Course *course)
+void ScoreDialog::init(Course *course, Score *score)
 {
-  QTableWidgetItem *par, *hcp, *score, *holeNum;
-  QColor bgColor(Qt::gray);
+  QTableWidgetItem *par, *hcp, *scoreItem, *holeNum;
+  QColor fgColor(Qt::white);
+  QColor bgColor(Qt::darkGray);
 
   for (int i = 0; i < 18; i++) {
     par = new QTableWidgetItem(course->getPar(i));
     hcp = new QTableWidgetItem(course->getHcp(i));
-    score = new QTableWidgetItem("");
+    if (score)
+      scoreItem = new QTableWidgetItem(score->getScore(i));
+    else
+      scoreItem = new QTableWidgetItem("");
     holeNum = new QTableWidgetItem(QString::number(i+1));
 
+    holeNum->setTextColor(fgColor);
     holeNum->setBackgroundColor(bgColor);
 
     par->setTextAlignment(Qt::AlignCenter);
     hcp->setTextAlignment(Qt::AlignCenter);
-    score->setTextAlignment(Qt::AlignCenter);
+    scoreItem->setTextAlignment(Qt::AlignCenter);
     holeNum->setTextAlignment(Qt::AlignCenter);
 
     if (i < 9) {
       table->setItem(ROW_HOLE, i, holeNum);
       table->setItem(ROW_PAR, i, par);
       table->setItem(ROW_HCP, i, hcp);
-      table->setItem(ROW_SCORE, i, score);
+      table->setItem(ROW_SCORE, i, scoreItem);
     }
     else {
       table->setItem(ROW_HOLE_2, i-9, holeNum);
       table->setItem(ROW_PAR_2, i-9, par);
       table->setItem(ROW_HCP_2, i-9, hcp);
-      table->setItem(ROW_SCORE_2, i-9, score);
+      table->setItem(ROW_SCORE_2, i-9, scoreItem);
     }
   }
 
   // Set focus to 1st cell
   table->setCurrentCell(ROW_SCORE, 0);
-  setDefaultScore(table);
+  if (!score)
+    setDefaultScore(table);
 }
 
 // Set default score to par if not set
@@ -229,7 +243,7 @@ void ScoreDialog::up(void)
   QTableWidgetItem *item = table->currentItem();
 
   if (!item) {
-    qDebug() << "ERROR: no current item";
+    qWarning() << "ERROR: no current item";
     return;
   }
 
@@ -279,7 +293,6 @@ void ScoreDialog::moveToNextCell(QTableWidgetItem *item)
     col = 0;
     row = (row == ROW_SCORE_2) ? ROW_SCORE : ROW_SCORE_2;
   }
-  //qDebug() << "new cell: " << row << "/" << col;
   table->setCurrentCell(row, col);
 }