Maemo5 date picker button
[scorecard] / src / score-dialog.cpp
index bea330d..e02294c 100644 (file)
@@ -1,7 +1,16 @@
+/*
+ * 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>
 
 #include "score-dialog.h"
+#include "score-common.h"
 
 SelectDialog::SelectDialog(QWidget *parent) : QDialog(parent)
 {
@@ -14,19 +23,27 @@ SelectDialog::SelectDialog(QWidget *parent) : QDialog(parent)
 void SelectDialog::createLayout(QWidget *parent)
 {
   listClub = new QListWidget(parent);
-  lineEditDate = new QLineEdit;
   pushButtonNext = new QPushButton(tr("Next"));
 
-  QDate today(QDate::currentDate());
-  lineEditDate->setText(today.toString("yyyy-MM-dd"));
-  date = new QDateEdit;
-
   connect(pushButtonNext, SIGNAL(clicked()), this, SLOT(next()));
 
   leftLayout = new QVBoxLayout;
   leftLayout->addWidget(listClub);
-  //leftLayout->addWidget(date);
+
+#ifdef Q_WS_MAEMO_5
+  dateButton = new QMaemo5ValueButton();
+  dateButton->setValueLayout(QMaemo5ValueButton::ValueUnderText);
+  dateButton->setPickSelector(new QMaemo5DatePickSelector());
+  dateButton->setText(QString::fromUtf8("Date"));
+  leftLayout->addWidget(dateButton);
+#else
+  QDate today(QDate::currentDate());
+  lineEditDate = new QLineEdit;
+  lineEditDate->setText(today.toString("yyyy-MM-dd"));
+  date = new QDateEdit;
+  leftLayout->addWidget(date);
   leftLayout->addWidget(lineEditDate);
+#endif
 
   rightLayout = new QVBoxLayout;
   rightLayout->addStretch();
@@ -79,7 +96,14 @@ void SelectDialog::results(QString &club,
     QStringList stringList = tmp.split(",");
     club = stringList[0];
     course = stringList[1];
-    date   = lineEditDate->text();
+#ifdef Q_WS_MAEMO_5
+    QMaemo5DatePickSelector *sel = (QMaemo5DatePickSelector *)dateButton->pickSelector();
+    QDate d = sel->currentDate();
+    // TODO: change to QDate
+    date = d.toString(Qt::ISODate);
+#else
+    date = lineEditDate->text();
+#endif
   }
 }
 
@@ -144,6 +168,8 @@ void ScoreDialog::createTable(QWidget *parent)
   table->verticalHeader()->setResizeMode(QHeaderView::Stretch);
   table->horizontalHeader()->hide();
 
+  table->setStyleSheet(ScoreColor::styleSheet());
+
   QStringList headers;
   headers << "" << "Par" << "HCP" << "Score" << "" << "Par" << "HCP" << "Score";
   table->setVerticalHeaderLabels(headers);
@@ -167,7 +193,6 @@ void ScoreDialog::createButton(QWidget *parent)
 void ScoreDialog::init(Course *course, Score *score)
 {
   QTableWidgetItem *par, *hcp, *scoreItem, *holeNum;
-  QColor bgColor(Qt::gray);
 
   for (int i = 0; i < 18; i++) {
     par = new QTableWidgetItem(course->getPar(i));
@@ -178,7 +203,7 @@ void ScoreDialog::init(Course *course, Score *score)
       scoreItem = new QTableWidgetItem("");
     holeNum = new QTableWidgetItem(QString::number(i+1));
 
-    holeNum->setBackgroundColor(bgColor);
+    holeNum->setBackgroundColor(ScoreColor::holeBg());
 
     par->setTextAlignment(Qt::AlignCenter);
     hcp->setTextAlignment(Qt::AlignCenter);
@@ -233,7 +258,7 @@ void ScoreDialog::up(void)
   QTableWidgetItem *item = table->currentItem();
 
   if (!item) {
-    qDebug() << "ERROR: no current item";
+    qWarning() << "ERROR: no current item";
     return;
   }
 
@@ -283,7 +308,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);
 }