return (*s1) < (*s2);
}
-MainWindow::MainWindow(QMainWindow *parent) : QMainWindow(parent)
+MainWindow::MainWindow(QMainWindow *parent): QMainWindow(parent)
{
resize(800, 480);
QWidget *centralWidget = new QWidget(this);
- // TODO: move to proper function
- table = new QTableView(centralWidget);
-
setCentralWidget(centralWidget);
loadScoreFile(scoreFile, scoreList);
// Setup 'score' tab view
void MainWindow::createTableView(QList<Score *> &scoreList, QList <Club *> &clubList)
{
+ table = new QTableView;
+
nextButton = new QPushButton(tr(">"));
prevButton = new QPushButton(tr("<"));
firstButton = new QPushButton(tr("<<"));
table->setModel(scoreTableModel);
- // Flag model items which one belongs to front and back nines
- table->setRootIndex(scoreTableModel->index(0, 1));
-
// Fill out all the space with the tables
table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
table->verticalHeader()->setResizeMode(QHeaderView::Stretch);
void MainWindow::createActions()
{
- newScoreAct = new QAction(tr("&New Score"), this);
+ newScoreAct = new QAction(tr("New Score"), this);
connect(newScoreAct, SIGNAL(triggered()), this, SLOT(newScore()));
- newCourseAct = new QAction(tr("&New Course"), this);
+ newCourseAct = new QAction(tr("New Course"), this);
connect(newCourseAct, SIGNAL(triggered()), this, SLOT(newCourse()));
+ editScoreAct = new QAction(tr("Edit Score"), this);
+ connect(editScoreAct, SIGNAL(triggered()), this, SLOT(editScore()));
+
#if 0
viewScoreAct = new QAction(tr("&View Scores"), this);
connect(viewScoreAct, SIGNAL(triggered()), this, SLOT(viewScore()));
#endif
menu->addAction(newScoreAct);
menu->addAction(newCourseAct);
+ menu->addAction(editScoreAct);
}
void MainWindow::updateStatusBar()
CourseDialog *courseDialog = new CourseDialog(this);
- QString title = "New Course : " + clubName + "," + courseName;
+ QString title = "New Course: " + clubName + "," + courseName;
courseDialog->setWindowTitle(title);
int result = courseDialog->exec();
selectDialog->results(clubName, courseName, date);
ScoreDialog *scoreDialog = new ScoreDialog(this);
- QString title = "New Score : " + courseName + ", " + date;
+ QString title = "New Score: " + courseName + ", " + date;
scoreDialog->setWindowTitle(title);
Club *club = findClub(clubName);
}
}
+void MainWindow::editScore()
+{
+ Course *course = scoreTableModel->getCourse();
+ Score *score = scoreTableModel->getScore();
+ QString date = score->getDate();
+
+ ScoreDialog *scoreDialog = new ScoreDialog(this);
+
+ QString title = "Edit Score: " + course->getName() + ", " + date;
+ scoreDialog->setWindowTitle(title);
+
+ scoreDialog->init(course, score);
+
+ 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(), dateLessThan);
+ // Save it
+ saveScoreFile(scoreFile, scoreList);
+
+ // TODO: does this really work? No mem leaks?
+ scoreTableModel->setScore(scoreList, score);
+ updateStatusBar();
+ }
+}
+
void MainWindow::loadScoreFile(QString &fileName, QList<Score *> &list)
{
ScoreXmlHandler handler(list);
if (handler.parse(fileName))
- qDebug() << "File loaded: " << fileName << " entries : " << list.size();
+ qDebug() << "File loaded: " << fileName << " entries: " << list.size();
}
void MainWindow::saveScoreFile(QString &fileName, QList<Score *> &list)
if (handler.save(fileName))
// TODO: banner
- qDebug() << "File saved : " << fileName << " entries : " << list.size();
+ qDebug() << "File saved: " << fileName << " entries: " << list.size();
else
- qDebug() << "Unable to save : " << fileName;
+ qDebug() << "Unable to save: " << fileName;
}
void MainWindow::loadClubFile(QString &fileName, QList<Club *> &list)
ClubXmlHandler handler(list);
if (handler.parse(fileName))
- qDebug() << "File loaded: " << fileName << " entries : " << list.size();
+ qDebug() << "File loaded: " << fileName << " entries: " << list.size();
}
void MainWindow::saveClubFile(QString &fileName, QList<Club *> &list)
if (handler.save(fileName))
// TODO: banner
- qDebug() << "File saved : " << fileName << " entries : " << list.size();
+ qDebug() << "File saved: " << fileName << " entries: " << list.size();
else
- qDebug() << "Unable to save : " << fileName;
+ qDebug() << "Unable to save: " << fileName;
}