From: Sakari Poussa Date: Fri, 16 Jul 2010 07:07:33 +0000 (+0300) Subject: Merge branch 'master' of /opt/src/sb1/qt/scorecard X-Git-Url: http://vcs.maemo.org/git/?a=commitdiff_plain;h=bc87845ab34e57ddb9f68789c87323f5b0ae1d15;hp=731fbb8dc372780c823cff5dc589cadd06364739;p=scorecard Merge branch 'master' of /opt/src/sb1/qt/scorecard --- diff --git a/TODO b/TODO index c50b0d0..6e36f11 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,5 @@ TOP Items +- Bug: New club/score with more than one comma (e.g xxx, yyy, zzz) does not work TODO General: - New score dialog should be the same as main view (f.ex showing diff --git a/debian/changelog b/debian/changelog index abcf0dc..772aaa6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,19 @@ +scorecard (0.20) unstable; urgency=low + + * Backup works now + * Faster editing of HCP values. Also keep correct row in HCP edits. + * No commas in club and score names + + -- Sakari Poussa Thu, 15 Jul 2010 22:00:00 +0300 + +scorecard (0.19) unstable; urgency=low + + * Store user data in MyDocs directory + * New icon + * Turn off trace debug + + -- Sakari Poussa Mon, 21 Jun 2010 22:00:00 +0300 + scorecard (0.18) unstable; urgency=low * When sorting on scores list best first diff --git a/debian/control b/debian/control index f4f97f5..d503eca 100644 --- a/debian/control +++ b/debian/control @@ -14,14 +14,74 @@ Description: N900 application to keep track of your golf scores XSBC-Bugtracker: https://garage.maemo.org/tracker/?group_id=622 XB-Maemo-Display-Name: ScoreCard XB-Maemo-Icon-26: - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAA7E - AAAOxAGVKw4bAAABk0lEQVRogd2XbbKDMAhFSacL0v0vIkuiPxQbYz5IAmg8 - M29arSHcgMADmBzXswgRcVvtyEiXHQk+EkYQABEAJWy1IiKAuEOIqADCUoiK - AMJCiKoAQlPIV8NojGaVUhVgUV5VBFj2BVEBKcePpieMc1sXFRFQO/F1XY/v - 3vvqdbw2vhcyVIXcNkyw0iV2onYNcBaew6SMAlyd4VyXTp4wE+C9PzmUco7u - kZj4M4WZgBrhu0BiSVApEkPjNFUCzrPS0N6PiUAvJqNEkTiIjQG7XwBAs9Mh - zxCQoNTchsGdlmez7KP28RexLEtm2QY/ApiY5+meGxjewnMI3gdOFwbgCEg5 - nntmREgCTurkBXAcz61pEVJoJWFjyy4vOpKB5ef+o3Yju3rAOHn2QQunVIpz - J+5JmxLS9hJMP0r8BWidlnIUXhIB7VxVtP+SCEzM9AK6xmmD/sRm+ghML+Cf - C5qlVDHnXhQBAJ0oKL/xL4sAgGwUDOpt139kTMsmzSK/yYgIw05X36hFyA0t - mr9hSciTZovZ+AGp3+tB+5YenAAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAAK/I + NwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAwM + SURBVHjaYvz//z8DNmAdJYYhBlIrJMCSqaloUyMjrizw798/BiZGRoYz1w6e + uXbvqj0HGycDLcDRZa9wygEEEAspBoE88Pcfg1C8X5WUjoYhXLx/bq3oiUsn + BRm4/79nYWFlYGZiZmBkZGKgBwAIIBZSNTAC/fHr948/ML0gT9kae6mzsLCc + vfng4v57T28cfffx5Zmfv7/cAnrkBwszKwMT2EOMNPEAQACxUGrAnz9/GNSV + dJlMDCwVf//+o/jy9fOkG3cv/Dp/4+itWw8u7X34/NaJD5/fnP399+c9oGf+ + MoM8BIwdankIIIBYqGHIn7+/wTQrKwuDjJQsCLO52PrqfP/+Q+f5yyf5V26f + /nbx5vGLtx9d2ff4xd2Tn7+9P//3358nrODkxgKMISZI3JIBAAKIhZbpk5OT + g0FJQQWEufxcIy0/f/5s+eT5QwagZz5evnXq1N3HV/c9e/PgzJfvny4y/P/3 + moWFjYGZmQUcQ8QCgABiYaAj4OXlZdDk1WHQVNPhj2BIdX3//p3rg6d3GM5f + P/rq2p2zh+49uX7oxbvHZ//8/XOOhZnlBzFmAgQQXT2ADgQFhYDYjMFQx0yM + 4R9DyKu3r0LuPrr+d8GG7sVnbxxKZmfl+EfIDIAAYmIYLADoEjFRMQZLY3tm + bWUTo1+/fhLlNoAAGjweQAK/fv8kupQCCCCWweDgb1+/MTx99Yjh5r1LH6/d + PXf16IXt8zjZuf4QoxcggAbEAz++/2B49uoxw637l75cvXP+2rW7Z87fe3rt + yLcfnw/++vPzGRsrx19WYH3xn+E/QbMAAoguHvj18zfDc5CDH1z5du3OuVtA + B5+98+Tq0S/fPgId/OMRsMb+AytCuYB1A7iGJ8LxIAAQQFTxAHq75/evPwwv + Xj9luPPw6g+gg29fvXv27O1Hl44DK7ADwPT9gJGJ6Re4EmNmAjqYhyK7AQKI + hXLHMzL8/v2L4fnLZwy3ISF8F5iOL918dOHkx89v9wFD+A4jA+NPVlY2cI3L + ycFN1dgFCCCKPQBsxDHsPLz6+fxN3U3fvn/e+xOYJIAJ4CcbCzvEwezcNE2e + AAFElSR07ubuLy/ePJzBzysEdDAn2e0acgBAAFGlHgA2l5mAmZAFkhcY6Vqi + AQQQ3YtRWA8QUk9R7lmAAKKLB/78+c0ALN/lgY5XZ2fjkABFGjDjv/33/98d + Vha2W0D8l9z+AUAA0dQDv//8Zvrz91eAnKRKgraKqb28pAqfiIAkuOQCllAM + T17d+3Ht3rlzdx5eWfHv3/+lQM+9I9UOgACimQe+//yqIiEi0x/kkuzjYh7M + IMgnxsDOxs7AzALsXgLh33//gBXcD46vPz9bnbq012rFjmlp1+9dLAQ2IfaQ + EhsAAUQTD3z78dXIQMN8VWFsl7KqnC4DKxsLAwsrM5rFTAzsHDwMXH84Gdys + whiMtOx0Zqxu3LL90MpUdjbOxcR6AiCAqOUBUM4EN75+/PwuC3T8mtr0WYrS + YvIM7JyseDWCYgSE+f8IMeRFtLMDe2NzNh9Y+oyLg2cvMRYDBBATlZzP9Of3 + P7Uf33+6CvAKzcuJbCHK8cgA2EcG1uh/GVKDa9n01c3n/fz5XYIYfQABRI4H + MHpJHFzs8rKqvOdVjPh2pcTkuKjLG5HkeNDIxo8fPxiYWZkYmP+zMcT6FMqx + srFl/v9PsEPGABBAJHsAmPc4gUU5SgI1sTBgNnEV57KwV2ew1PFkYGdnJcnM + L1++QOoHIP7w8R2DhpwRg6GmdfLPXz8FCekFCCCiPQAy/++ff0nMbCwZ7JzM + KDkSVAH//vuTQZxDl4GfTQaYaZmJdvzPnz/BoQ9qN/3+9YvhD7Bh+Pv3PwYD + dStpYLIyI6QfIICI8sC/v/+FgeYvVTcWnmvqLi3GzsmCkYX//fvLIMGnycDJ + xkt0BQsaW/38+TO8dv729Ss4pID9YQYlGU0Gbk4eTVxjtzAAEEAsRDhemo2T + eY2+rZiFpAIXwx9gXxvdUFDng5mRlYGThR/o+P9Eh/7Hjx+Bof0bHPqgWADF + BrCvALTzLwMvlyCw3uAQ/P7jG14zAAKIBX8I/edhZWdeZuwoYSEmwwUMGWBJ + +Y8R56ApKeDTp0/wpPMX6OCvwJhANuvP3z8M///9/0vIHIAAYsFbsv9naNSx + ELEDOf73r394BnwZgZ79w/DzD9AR/xkJNuZAjv/27Ru4SQHifwbGBKgkglVe + LEwsDB+/vmH48fsHI6FRboAAwin79+8/bUlFngxpFV5gxiJcnIEsevH5BtDS + r3iLy/fv38MdD44JoOPBSQdW8wI9xARMjp/Z7wLL5+/R//8zCuGzFyCAcHoA + 2MRPl9fg52JiYmT4T0SyZmFiY3jy6QLDu6+PGX7/xIz579+/M7x79w7sWMhg + LgPDZ1AyAoojNxuADmZg4WRkePLtNIOIHLsqsNbxwGcvQADh9AAXL4sFvzA7 + qOgksm/MzPDpx2uGB1+OAh31G6WYBDn8w4cP4FKHCVgCg9L8R2BMfEeKCVi6 + 5WDnYXj24yLD7ZdnGISluBhY2Bn98NkLEEA48wCvILsSCysTNDMQB0Al0dmn + qxjkeMyATQMVhr//fwIz/i9orw1Sev0AOvoLMMOCPIHueMb/LAzsvEwMe69M + BxelbJwcQA/8dsZnJ0AAMeFuZDGygcz/T0LJwsTIwvDp+xuGw08mM3wGxsbP + b5CMCZpHA3nkEzAWPgIxuuP/g6t2VgZBYSGGvY8mAkP/FAMbCwesksQ78QYQ + QDg98PPb3w//0doMoPzAzMLEgK2lCxrjYWJmZOBg4WK4/eoEw/qbVQyfGZ6D + 2zYf339keP/mLTy9wxwPMh+Uv7g5BRj4RDgYdj7qZDh8ZynQ8Vzw2v/fb4Zn + +DwAEEA4k9DnDz+v//j2V5aTmwUSQkA7v3z8yfDqKTAE1VC1vX3xg+HG1RcM + 8opSDIxsf4Gx8J3h6bvdDA9f32Swk05nUBezYRAQFGH48+s3uHwHe5iJGdjk + YGP4/f8Hw4O3ZxkOXJ7J8PjLObDjQcUyqPT88fEfsED4vwmfBwACCKcHgI7f + /ubZNzd5TX6Gf7/+g0Pt+eNPDPdvvWdYxzuXQfaKCgOotQiawDt9+QjD43tf + gbXqCwZRJXawhznZuBnu3X7EcGp/MYOMqDKDubYbg7yYBgM3Oz84P3z/9YXh + xbsHDKeu72a4/fgiAzM7A4O8tgADExuw1PsHGTD78OwvsBBhwOsBgABixNXW + sAwX5ecVYj9n6SWlxM7ODDb079//DG9efmF49eo9w9dvP4AO/gMOKTZg65OH + j4OBSxCYjFigGYcRHP0MXz78Yfj26SewnfMd2AdjZWBlZgNLAvvKDH/+/WTg + 4GBn4ORhZ+AWYGVg54akaGA9xvD9/X+Gu8d+7AJ6wOvY8lc4a2SAAGLBXQ8w + fvz05mfFzXPvVmpZCDH+/vMXXBFxAKsVMR5Ohp+/oUkLnNEg6RrY9EDkeiDN + BGxVC4izMvCLAdX+44ameUi6Z2QEjdzxgZMmIxOkRgaHPNAPoDnDZ1d+ff7z + 838ZMEDwNicAAogFf3ePcfXDax8Nfv3/USWuzgIux0GOBGdEKAS79R+O0eT/ + 4MYgUrMboQe5mf4fqgaYGkFJhuHx+V9/P7/+mwl0/EVCJR9AAOFvjUJCp/r5 + 9Z9MwNq1QlKTlYGFDdha/MNAHviPqxKEJJufn/8zPLn06+unF/+ygY5fSoyR + AAHERLiGBReflW/u/k26d/zX088v/4GjGWQhpXPVMIeDYuHtg78Md47+vPDp + 5T8foNhCYs0ACCDiRiUgFs3/+u7f/nsnflbxSzKHC8ky83ELMzOA8ySkNwih + cYU0I7TFzQhJ5+CBr+/ATP76L9Dxf55+eftvLtBDfcBk9JGUQAAIIJKGVYCG + PwA6Lu3Dk7+TPj7/m8TJy+jNJ8GiBip92HmBjTBgEQhKx4wsDEitS0iFBcw+ + wPwAdPQPYHPi0z8GYGD8/vTi78WfX/9vAKpaANT3lJxYBAgg0seFILFxBeiw + ou+f/td8+/DbCmi5I1BMl42LSZmNm1ES2ABjYmaBli7ADArKmECH//755d+j + Pz/+3wXyLwALg13ApHkRqPc3JckQIMAAk6PyG5YPAiMAAAAASUVORK5CYII= diff --git a/images/scorecard-icon-48x48.png b/images/scorecard-icon-48x48.png index 80cb702..ca0f1c8 100644 Binary files a/images/scorecard-icon-48x48.png and b/images/scorecard-icon-48x48.png differ diff --git a/maemo/scorecard.conf b/maemo/scorecard.conf index 3371696..03979be 100644 --- a/maemo/scorecard.conf +++ b/maemo/scorecard.conf @@ -1,8 +1,6 @@ - /home/user/.config/garage/ScoreCard.conf - /home/user/.scorecard + $HOME/.config/garage/ScoreCard.conf + $HOME/MyDocs/.scorecard diff --git a/scorecard.pro b/scorecard.pro index 9c84851..a28297b 100644 --- a/scorecard.pro +++ b/scorecard.pro @@ -10,7 +10,7 @@ CONFIG += qt debug TEMPLATE = app QT += xml maemo5 -DEFINES += WANT_DEBUG +#DEFINES += WANT_DEBUG RESOURCES = scorecard.qrc diff --git a/src/course-dialog.cpp b/src/course-dialog.cpp index d8192ea..6621412 100644 --- a/src/course-dialog.cpp +++ b/src/course-dialog.cpp @@ -7,6 +7,9 @@ */ #include +#ifdef Q_WS_MAEMO_5 +#include +#endif #include #include #include @@ -66,65 +69,77 @@ void CourseWindow::setup(Course *course) //////////////////////////////////////////////////////////////////////////////// CourseSelectDialog::CourseSelectDialog(QWidget *parent) : QDialog(parent) { - QWidget *centralWidget = new QWidget(this); - createLayout(centralWidget); + QWidget *centralWidget = new QWidget(this); + createLayout(centralWidget); - setWindowTitle(tr("ScoreCard: New Club and Course")); + setWindowTitle(tr("ScoreCard: New Club and 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")); + 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())); + connect(pushButtonNext, SIGNAL(clicked()), this, SLOT(next())); - QDialogButtonBox * buttonBox = new QDialogButtonBox(Qt::Vertical); - buttonBox->addButton(pushButtonNext, QDialogButtonBox::ActionRole); + QDialogButtonBox * buttonBox = new QDialogButtonBox(Qt::Vertical); + buttonBox->addButton(pushButtonNext, QDialogButtonBox::ActionRole); - leftLayout = new QVBoxLayout; - leftLayout->addWidget(lineEditClub); - leftLayout->addWidget(lineEditCourse); + leftLayout = new QVBoxLayout; + leftLayout->addWidget(lineEditClub); + leftLayout->addWidget(lineEditCourse); - rightLayout = new QVBoxLayout; - rightLayout->addStretch(); - rightLayout->addWidget(buttonBox); + rightLayout = new QVBoxLayout; + rightLayout->addStretch(); + rightLayout->addWidget(buttonBox); - QHBoxLayout *mainLayout = new QHBoxLayout(parent); - mainLayout->addLayout(leftLayout); - mainLayout->addLayout(rightLayout); + QHBoxLayout *mainLayout = new QHBoxLayout(parent); + mainLayout->addLayout(leftLayout); + mainLayout->addLayout(rightLayout); - setLayout(mainLayout); + setLayout(mainLayout); +} + +void CourseSelectDialog::showNote(QString msg) +{ +#ifdef Q_WS_MAEMO_5 + QMaemo5InformationBox::information(this, + msg, + QMaemo5InformationBox::DefaultTimeout); +#endif } void CourseSelectDialog::results(QString &club, QString &course) { - club = lineEditClub->text(); - course = lineEditCourse->text(); + club = lineEditClub->text(); + course = lineEditCourse->text(); } bool CourseSelectDialog::validate(void) { - QString str1 = lineEditClub->text(); - QString str2 = lineEditCourse->text(); + QString str1 = lineEditClub->text(); + QString str2 = lineEditCourse->text(); - if (str1.isEmpty() || str2.isEmpty()) - return false; + if (str1.isEmpty() || str2.isEmpty()) + return false; - return true; + if (str1.contains(",") || str2.contains(",")) + return false; + + return true; } void CourseSelectDialog::next(void) { - if (validate()) - done(1); - else { - qDebug() << "CourseDialog: invalid data, cancel or correct"; - } + if (validate()) + done(1); + else { + showNote(tr("Invalid club or course name")); + } } //////////////////////////////////////////////////////////////////////////////// @@ -132,221 +147,242 @@ void CourseSelectDialog::next(void) //////////////////////////////////////////////////////////////////////////////// CourseDialog::CourseDialog(QWidget *parent) : QDialog(parent) { - resize(800, 400); + resize(800, 400); - QWidget *centralWidget = new QWidget(this); + QWidget *centralWidget = new QWidget(this); - createTable(); - createButton(); + createTable(); + createButton(); - createLayout(centralWidget); + createLayout(centralWidget); } void CourseDialog::createLayout(QWidget *parent) { - leftLayout = new QVBoxLayout; - leftLayout->addWidget(table); - - QDialogButtonBox * buttonBoxUp = new QDialogButtonBox(Qt::Vertical); - buttonBoxUp->addButton(pushButtonUp, QDialogButtonBox::ActionRole); - buttonBoxUp->addButton(pushButtonDown, QDialogButtonBox::ActionRole); - buttonBoxUp->addButton(pushButtonNext, QDialogButtonBox::ActionRole); - - QDialogButtonBox * buttonBoxDown = new QDialogButtonBox(Qt::Vertical); - buttonBoxDown->addButton(pushButtonFinish, QDialogButtonBox::ActionRole); - - rightLayout = new QVBoxLayout; - rightLayout->addWidget(buttonBoxUp); - rightLayout->addStretch(); - rightLayout->addWidget(buttonBoxDown); - - QHBoxLayout *mainLayout = new QHBoxLayout(parent); - mainLayout->addLayout(leftLayout); - mainLayout->addLayout(rightLayout); - setLayout(mainLayout); + leftLayout = new QVBoxLayout; + leftLayout->addWidget(table); + + QDialogButtonBox * buttonBoxUp = new QDialogButtonBox(Qt::Vertical); + buttonBoxUp->addButton(pushButtonUp, QDialogButtonBox::ActionRole); + buttonBoxUp->addButton(pushButtonDown, QDialogButtonBox::ActionRole); + buttonBoxUp->addButton(pushButtonNext, QDialogButtonBox::ActionRole); + + QDialogButtonBox * buttonBoxDown = new QDialogButtonBox(Qt::Vertical); + buttonBoxDown->addButton(pushButtonFinish, QDialogButtonBox::ActionRole); + + rightLayout = new QVBoxLayout; + rightLayout->addWidget(buttonBoxUp); + rightLayout->addStretch(); + rightLayout->addWidget(buttonBoxDown); + + QHBoxLayout *mainLayout = new QHBoxLayout(parent); + mainLayout->addLayout(leftLayout); + mainLayout->addLayout(rightLayout); + setLayout(mainLayout); } void CourseDialog::createButton(QWidget *parent) { - Q_UNUSED(parent); - pushButtonUp = new QPushButton(tr("+")); - connect(pushButtonUp, SIGNAL(clicked()), this, SLOT(up())); + Q_UNUSED(parent); + pushButtonUp = new QPushButton(tr("+")); + connect(pushButtonUp, SIGNAL(clicked()), this, SLOT(up())); - pushButtonDown = new QPushButton(tr("-")); - connect(pushButtonDown, SIGNAL(clicked()), this, SLOT(down())); + pushButtonDown = new QPushButton(tr("-")); + connect(pushButtonDown, SIGNAL(clicked()), this, SLOT(down())); - pushButtonNext = new QPushButton(tr("Next")); - connect(pushButtonNext, SIGNAL(clicked()), this, SLOT(next())); + pushButtonNext = new QPushButton(tr("Next")); + connect(pushButtonNext, SIGNAL(clicked()), this, SLOT(next())); - pushButtonFinish = new QPushButton(tr("Finish")); - connect(pushButtonFinish, SIGNAL(clicked()), this, SLOT(finish())); + pushButtonFinish = new QPushButton(tr("Finish")); + connect(pushButtonFinish, SIGNAL(clicked()), this, SLOT(finish())); } void CourseDialog::createTable(QWidget *parent) { - table = new QTableWidget(ROWS, COLS, parent); - - QStringList headers; - headers << "" << "Par" << "HCP" << "Len" << "" << "Par" << "HCP" << "Len"; - table->setVerticalHeaderLabels(headers); - table->horizontalHeader()->hide(); - table->horizontalHeader()->setResizeMode(QHeaderView::Stretch); - table->verticalHeader()->setResizeMode(QHeaderView::Stretch); - table->setStyleSheet(defaultStyleSheet); + table = new QTableWidget(ROWS, COLS, parent); + + QStringList headers; + headers << "" << "Par" << "HCP" << "Len" << "" << "Par" << "HCP" << "Len"; + table->setVerticalHeaderLabels(headers); + table->horizontalHeader()->hide(); + table->horizontalHeader()->setResizeMode(QHeaderView::Stretch); + table->verticalHeader()->setResizeMode(QHeaderView::Stretch); + table->setStyleSheet(defaultStyleSheet); } void CourseDialog::init(Course *course) { - QTableWidgetItem *par, *hcp; - - for (int i=0; i<18; i++) { - if (course) { - par = new QTableWidgetItem(course->getPar(i)); - hcp = new QTableWidgetItem(course->getHcp(i)); - } - else { - par = new QTableWidgetItem("4"); - hcp = new QTableWidgetItem("9"); - } - QTableWidgetItem *len = new QTableWidgetItem(""); - - QTableWidgetItem *holeNum = new QTableWidgetItem(QString::number(i+1)); - holeNum->setForeground(ScoreColor::holeBg()); - holeNum->setFlags(Qt::NoItemFlags); - - holeNum->setTextAlignment(Qt::AlignCenter); - par->setTextAlignment(Qt::AlignCenter); - hcp->setTextAlignment(Qt::AlignCenter); - len->setTextAlignment(Qt::AlignCenter); - // len is not in use - here just to confuse ;( - len->setFlags(Qt::NoItemFlags); + QTableWidgetItem *par, *hcp; + + for (int i=0; i<18; i++) { + if (course) { + // TODO: del or allocate statically... + par = new QTableWidgetItem(course->getPar(i)); + hcp = new QTableWidgetItem(course->getHcp(i)); + } + else { + par = new QTableWidgetItem("4"); + if (i < 9) + hcp = new QTableWidgetItem("9"); + else + hcp = new QTableWidgetItem("10"); + } + QTableWidgetItem *len = new QTableWidgetItem(""); + + QTableWidgetItem *holeNum = new QTableWidgetItem(QString::number(i+1)); + holeNum->setForeground(ScoreColor::holeBg()); + holeNum->setFlags(Qt::NoItemFlags); + + holeNum->setTextAlignment(Qt::AlignCenter); + par->setTextAlignment(Qt::AlignCenter); + hcp->setTextAlignment(Qt::AlignCenter); + len->setTextAlignment(Qt::AlignCenter); + // len is not in use - here just to confuse ;( + len->setFlags(Qt::NoItemFlags); - if (i < 9) { - table->setItem(0, i, holeNum); - table->setItem(1, i, par); - table->setItem(2, i, hcp); - table->setItem(3, i, len); + if (i < 9) { + table->setItem(0, i, holeNum); + table->setItem(1, i, par); + table->setItem(2, i, hcp); + table->setItem(3, i, len); + } + else { + table->setItem(4, i-9, holeNum); + table->setItem(5, i-9, par); + table->setItem(6, i-9, hcp); + table->setItem(7, i-9, len); + } } - else { - table->setItem(4, i-9, holeNum); - table->setItem(5, i-9, par); - table->setItem(6, i-9, hcp); - table->setItem(7, i-9, len); - } - } - table->setCurrentCell(1, 0); + table->setCurrentCell(1, 0); } void CourseDialog::up(void) { - QTableWidgetItem *item = table->currentItem(); + QVariant value; + QTableWidgetItem *item = table->currentItem(); - if (!item) - return; + if (!item) + return; - int i = (item->text()).toInt(); - QVariant value(i+1); - item->setData(Qt::DisplayRole, value); + int i = (item->text()).toInt(); + if (item->row() == ROW_HCP || item->row() == ROW_HCP_2) + value.setValue(i+2); + else + value.setValue(i+1); + + item->setData(Qt::DisplayRole, value); } void CourseDialog::down(void) { - QTableWidgetItem *item = table->currentItem(); + QVariant value; + QTableWidgetItem *item = table->currentItem(); - if (!item) - return; + if (!item) + return; - int i = (item->text()).toInt(); - QVariant value(i-1); - item->setData(Qt::DisplayRole, value); + int i = (item->text()).toInt(); + if (item->row() == ROW_HCP || item->row() == ROW_HCP_2) + value.setValue(i-2); + else + value.setValue(i-1); + + item->setData(Qt::DisplayRole, value); } void CourseDialog::next(void) { - if (table) { - QTableWidgetItem *item = table->currentItem(); - moveToNextCell(item); - //setDefaultScore(table); - } + if (table) { + QTableWidgetItem *item = table->currentItem(); + moveToNextCell(item); + //setDefaultScore(table); + } } void CourseDialog::moveToNextCell(QTableWidgetItem *item) { - if (!item) - return; - - QTableWidget *table = item->tableWidget(); - - if (!table) - return; - - int row = table->currentRow(); - int col = table->currentColumn(); - - if (col < (COLS-1)) { - col++; - } - else if (col == (COLS-1)) { - col = 0; - row = (row == ROW_PAR_2) ? ROW_PAR : ROW_PAR_2; - } - //qDebug() << "new cell: " << row << "/" << col; - table->setCurrentCell(row, col); + if (!item) + return; + + QTableWidget *table = item->tableWidget(); + + if (!table) + return; + + int row = table->currentRow(); + int col = table->currentColumn(); + + if (col < (COLS-1)) { + col++; + } + else if (col == (COLS-1)) { + col = 0; + if (row == ROW_PAR) + row = ROW_PAR_2; + else if (row == ROW_PAR_2) + row = ROW_PAR; + else if (row == ROW_HCP_2) + row = ROW_HCP; + else if (row == ROW_HCP) + row = ROW_HCP_2; + } + //qDebug() << "new cell: " << row << "/" << col; + table->setCurrentCell(row, col); } void CourseDialog::results(QVector &par, - QVector &hcp, - QVector &len) + QVector &hcp, + QVector &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(); - } + 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); + 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; + if (!frontItem || !backItem) + return false; - QString str1 = frontItem->text(); - QString str2 = backItem->text(); + QString str1 = frontItem->text(); + QString str2 = backItem->text(); - if (str1.isEmpty() || str2.isEmpty()) - return false; - } - return true; + if (str1.isEmpty() || str2.isEmpty()) + return false; + } + return true; } void CourseDialog::finish(void) { - if (validate()) - done(1); - else { - qDebug() << "CourseDialog: invalid data, cancel or correct"; - } + if (validate()) + done(1); + else { + qDebug() << "CourseDialog: invalid data, cancel or correct"; + } } diff --git a/src/course-dialog.h b/src/course-dialog.h index 35e7c8d..41d9535 100644 --- a/src/course-dialog.h +++ b/src/course-dialog.h @@ -53,6 +53,7 @@ private slots: private: void createLayout(QWidget *parent); + void showNote(QString msg); bool validate(void); QLineEdit *lineEditClub; diff --git a/src/score-dialog.cpp b/src/score-dialog.cpp index 29b018c..20b839b 100644 --- a/src/score-dialog.cpp +++ b/src/score-dialog.cpp @@ -61,7 +61,7 @@ ScoreWindow::~ScoreWindow() void ScoreWindow::setup(Score *score, Course *course) { TRACE; - QString title = QString("Score: %1, %2 - %3").arg(score->getClubName()).arg(score->getCourseName()).arg(score->getDate()); + QString title = QString("%1, %2 - %3").arg(score->getClubName()).arg(score->getCourseName()).arg(score->getDate()); setWindowTitle(title); model->set(score, course); }