// Sort the scores based on dates
qSort(scoreList.begin(), scoreList.end(), dateLessThan);
+ createActions();
+ createMenus();
+
createTableView(scoreList, clubList);
//createTreeView(scoreList, parent);
createStatusBar();
createLayout(centralWidget);
-
- createActions();
- createMenus();
}
void MainWindow::loadSettings(void)
{
bool external = false;
-#ifndef Q_WS_HILDON
- topDir = ".";
-#endif
-
QDir mmc(mmcDir);
if (mmc.exists())
external = true;
+ // TODO: make via user option, automatic will never work
+ external = false;
+
+#ifndef Q_WS_HILDON
+ dataDir = "./" + dataDirName;
+#else
if (external) {
dataDir = mmcDir + "/" + appName + "/" + dataDirName;
}
else {
dataDir = topDir + "/" + appName + "/" + dataDirName;
}
+#endif
scoreFile = dataDir + "/" + scoreFileName;
clubFile = dataDir + "/" + clubFileName;
QDir dir(dataDir);
if (!dir.exists())
if (!dir.mkpath(dataDir)) {
- qDebug() << "Unable to create: " + dataDir;
+ qWarning() << "Unable to create: " + dataDir;
return;
}
- qDebug() << "Data is at: " + dataDir;
+ qDebug() << "Data is at:" + dataDir;
}
void MainWindow::createLayout(QWidget *parent)
{
+
buttonLayout = new QVBoxLayout;
//labelLayout->addStretch();
buttonLayout->addWidget(nextButton);
QHBoxLayout *mainLayout = new QHBoxLayout(parent);
mainLayout->addLayout(tableLayout);
mainLayout->addLayout(buttonLayout);
- setLayout(mainLayout);
+ parent->setLayout(mainLayout);
}
// Setup 'score' tab view
{
table = new QTableView;
- nextButton = new QPushButton(tr(">"));
- prevButton = new QPushButton(tr("<"));
- firstButton = new QPushButton(tr("<<"));
- lastButton = new QPushButton(tr(">>"));
+ nextButton = new QPushButton(tr("Next"));
+ prevButton = new QPushButton(tr("Prev"));
+ firstButton = new QPushButton(tr("First"));
+ lastButton = new QPushButton(tr("Last"));
connect(nextButton, SIGNAL(clicked()), this, SLOT(nextButtonClicked()));
connect(prevButton, SIGNAL(clicked()), this, SLOT(prevButtonClicked()));
connect(lastButton, SIGNAL(clicked()), this, SLOT(lastButtonClicked()));
scoreTableModel = new ScoreTableModel();
- scoreTableModel->setScore(scoreList);
- scoreTableModel->setClub(clubList);
table->showGrid();
table->setModel(scoreTableModel);
+ QItemSelectionModel selectionModel();
+ table->setSelectionMode(QAbstractItemView::NoSelection);
+
+ scoreTableModel->setScore(scoreList);
+ scoreTableModel->setClub(clubList);
// Fill out all the space with the tables
table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
table->verticalHeader()->setResizeMode(QHeaderView::Stretch);
+ table->verticalHeader()->setAutoFillBackground(true);
table->horizontalHeader()->hide();
}
void MainWindow::createStatusBar()
{
+#if 0
+ // TODO: use toolbar or buttons. Toolbar seems not to be ready and
+ // requires more work.
+ toolbar = addToolBar(tr("foo"));
+ toolbar->addAction(firstAct);
+ toolbar->addAction(lastAct);
+ toolbar->addAction(prevAct);
+ toolbar->addAction(nextAct);
+#endif
updateStatusBar();
}
viewStatisticAct = new QAction(tr("&View Statistics"), this);
connect(viewStatisticAct, SIGNAL(triggered()), this, SLOT(viewStatistic()));
#endif
+
+ nextAct = new QAction(tr( " Next "), this);
+ connect(nextAct, SIGNAL(triggered()), this, SLOT(nextButtonClicked()));
+
+ prevAct = new QAction(" Prev ", this);
+ connect(prevAct, SIGNAL(triggered()), this, SLOT(prevButtonClicked()));
+
+ firstAct = new QAction(tr(" First "), this);
+ connect(firstAct, SIGNAL(triggered()), this, SLOT(firstButtonClicked()));
+
+ lastAct = new QAction(tr( " Last "), this);
+ connect(lastAct, SIGNAL(triggered()), this, SLOT(lastButtonClicked()));
}
void MainWindow::createMenus()
{
- menu = menuBar()->addMenu(tr("fremantle"));
+ menu = menuBar()->addMenu("");
#if 0
menu->addAction(viewScoreAct);
menu->addAction(viewCourseAct);
}
}
else {
+ // New club and course
club = new Club(clubName);
course = new Course(courseName, par, hcp);
club->addCourse(course);
// TODO: does this really work? No mem leaks?
scoreTableModel->setClub(clubList);
-
}
}
}
{
Course *course = scoreTableModel->getCourse();
+ if (!course) {
+ qWarning() << "No course on edit";
+ return;
+ }
+
CourseDialog *courseDialog = new CourseDialog(this);
courseDialog->init(course);
Club *club = findClub(clubName);
if (!club) {
- qDebug() << "Error: no such club: " << clubName;
+ qWarning() << "Error: no such club:" << clubName;
return;
}
Course *course = club->getCourse(courseName);
if (!course) {
- qDebug() << "Error: no such course: " << courseName;
+ qWarning() << "Error: no such course:" << courseName;
return;
}
scoreDialog->init(course);
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;
+ qWarning() << "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;
+ qWarning() << "Unable to save:" << fileName;
}