+void MainWindow::viewScore(Score * score, Course * course)
+{
+ TRACE;
+ qDebug() << score << course;
+ scoreWindow->setup(score, course);
+ scoreWindow->show();
+}
+
+void MainWindow::newScore()
+{
+ TRACE;
+ SelectDialog *selectDialog = new SelectDialog(this);
+
+ selectDialog->init(clubList);
+
+ int result = selectDialog->exec();
+ if (result) {
+ QString clubName;
+ QString courseName;
+ QString date;
+
+ selectDialog->results(clubName, courseName, date);
+
+ ScoreDialog *scoreDialog = new ScoreDialog(this);
+ QString title = "New Score: " + courseName + ", " + date;
+ scoreDialog->setWindowTitle(title);
+
+ Club *club = findClub(clubName);
+ if (!club) {
+ showNote(tr("Error: no such club"));
+ return;
+ }
+ Course *course = club->getCourse(courseName);
+ if (!course) {
+ showNote(tr("Error: no such course:"));
+ return;
+ }
+ scoreDialog->init(course);
+ result = scoreDialog->exec();
+ if (result) {
+ QVector<QString> scores(18);
+
+ scoreDialog->results(scores);
+ Score *score = new Score(scores, clubName, courseName, date);
+ scoreList << score;
+
+ // Sort the scores based on dates
+ qSort(scoreList.begin(), scoreList.end(), dateMoreThan);
+ // Save it
+ saveScoreFile(scoreFile, scoreList);
+ scoreListModel->update(scoreList);
+ list->update();
+ }
+ }
+}
+
+void MainWindow::editScore()
+{
+ TRACE;
+ Course * course = 0;
+ Score *score = currentScore();
+
+ if (score)
+ course = findCourse(score->getClubName(), score->getCourseName());
+
+ if (!course || !score) {
+ qDebug() << "No score/course to edit";
+ return;
+ }
+
+ QString date = score->getDate();
+
+ ScoreDialog *scoreDialog = new ScoreDialog(this);
+ scoreDialog->init(course, score);
+
+ QString title = "Edit Score: " + course->getName() + ", " + date;
+ scoreDialog->setWindowTitle(title);
+
+ int result = scoreDialog->exec();
+ if (result) {
+ QVector<QString> scores(18);
+
+ scoreDialog->results(scores);
+
+ score->update(scores);
+
+ // Sort the scores based on dates
+ qSort(scoreList.begin(), scoreList.end(), dateMoreThan);
+ // Save it
+ saveScoreFile(scoreFile, scoreList);
+ }
+ if (scoreDialog)
+ delete scoreDialog;
+}
+
+void MainWindow::deleteScore()
+{
+ TRACE;
+ if (scoreWindow)
+ scoreWindow->close();
+
+ QModelIndex index = selectionModel->currentIndex();
+ if (!index.isValid()) {
+ qDebug() << "Invalid index";
+ return;
+ }
+
+ scoreList.removeAt(index.row());
+ // Save it
+ saveScoreFile(scoreFile, scoreList);
+ scoreListModel->update(scoreList);
+ list->update();
+}
+
+void MainWindow::viewCourse(Course * course)
+{
+ TRACE;
+ courseWindow->setup(course);
+ courseWindow->show();
+}