Initial stat view attempt
[scorecard] / src / main-window.cpp
index c575116..1fa5527 100644 (file)
@@ -1,13 +1,11 @@
 #include <QtGui>
 #include <QDirModel>
-#include <QTreeView>
 #include <QListView>
 #include <QStandardItemModel>
 
 #include "main-window.h"
 #include "score-dialog.h"
 #include "course-dialog.h"
-#include "tree-widget.h"
 #include "xml-parser.h"
 #include "xml-dom-parser.h"
 
@@ -34,7 +32,7 @@ MainWindow::MainWindow(QMainWindow *parent): QMainWindow(parent)
 
   loadSettings();
 
-  QWidget *centralWidget = new QWidget(this);
+  centralWidget = new QWidget(this);
 
   setCentralWidget(centralWidget);
 
@@ -48,7 +46,6 @@ MainWindow::MainWindow(QMainWindow *parent): QMainWindow(parent)
   createMenus();
 
   createTableView(scoreList, clubList);
-  //createTreeView(scoreList, parent);
   createStatusBar();
 
   createLayout(centralWidget);
@@ -58,10 +55,6 @@ void MainWindow::loadSettings(void)
 {
   bool external = false;
 
-#ifndef Q_WS_HILDON
-  topDir = ".";
-#endif
-
   QDir mmc(mmcDir);
   if (mmc.exists())
     external = true;
@@ -69,12 +62,16 @@ void MainWindow::loadSettings(void)
   // 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;
 
@@ -135,48 +132,10 @@ void MainWindow::createTableView(QList<Score *> &scoreList, QList <Club *> &club
   // 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();
 }
 
-// When selection down in 'stat' view, this is called.
-void MainWindow::updateTreeView(const QModelIndex & index)
-{
-  QString scope("Scope");
-  QString count("Rounds");
-  QString scoreAvg("Score (avg.)");
-  QString scoreBest("Score (best)");
-  QString score("Total");
-  QString scoreIn("Total in");
-  QString scoreOut("Total out");
-
-  QVariant str = scoreTreeModel->data(index, Qt::DisplayRole);
-  QVariant type = scoreTreeModel->data(index, ScoreTreeModel::Type);
-
-  qDebug() << "update(" << index.row() << "/" << index.column() << "):" << str << type;
-
-  tableModel->setData(tableModel->index(0, 0, QModelIndex()), scope);
-  tableModel->setData(tableModel->index(0, 1, QModelIndex()), str);
-
-  if (type == TreeItem::TypeDate) {
-    tableModel->setData(tableModel->index(1, 0, QModelIndex()), count);
-    tableModel->setData(tableModel->index(2, 0, QModelIndex()), scoreAvg);
-    tableModel->setData(tableModel->index(3, 0, QModelIndex()), scoreBest);
-  }    
-  else if (type == TreeItem::TypeScore) {
-    QVariant value = scoreTreeModel->data(index, ScoreTreeModel::Total);
-    tableModel->setData(tableModel->index(1, 0, QModelIndex()), score);
-    tableModel->setData(tableModel->index(1, 1, QModelIndex()), value);
-
-    value = scoreTreeModel->data(index, ScoreTreeModel::TotalOut);
-    tableModel->setData(tableModel->index(2, 0, QModelIndex()), scoreOut);
-    tableModel->setData(tableModel->index(2, 1, QModelIndex()), value);
-
-    value = scoreTreeModel->data(index, ScoreTreeModel::TotalIn);
-    tableModel->setData(tableModel->index(3, 0, QModelIndex()), scoreIn);
-    tableModel->setData(tableModel->index(3, 1, QModelIndex()), value);
-  }
-}
-
 void MainWindow::createStatusBar()
 {
 #if 0
@@ -211,11 +170,11 @@ void MainWindow::createActions()
 
   viewCourseAct = new QAction(tr("&View Courses"), this);
   connect(viewCourseAct, SIGNAL(triggered()), this, SLOT(viewCourse()));
-
-  viewStatisticAct = new QAction(tr("&View Statistics"), this);
-  connect(viewStatisticAct, SIGNAL(triggered()), this, SLOT(viewStatistic()));
 #endif
 
+  statAct = new QAction(tr("Statistics"), this);
+  connect(statAct, SIGNAL(triggered()), this, SLOT(viewStatistics()));
+
   nextAct = new QAction(tr( "   Next   "), this);
   connect(nextAct, SIGNAL(triggered()), this, SLOT(nextButtonClicked()));
 
@@ -231,7 +190,7 @@ void MainWindow::createActions()
 
 void MainWindow::createMenus()
 {
-  menu = menuBar()->addMenu(tr("fremantle"));
+  menu = menuBar()->addMenu("");
 #if 0
   menu->addAction(viewScoreAct);
   menu->addAction(viewCourseAct);
@@ -241,11 +200,16 @@ void MainWindow::createMenus()
   menu->addAction(newCourseAct);
   menu->addAction(editScoreAct);
   menu->addAction(editCourseAct);
+  menu->addAction(statAct);
 }
 
 void MainWindow::updateStatusBar()
 {
-  setWindowTitle(scoreTableModel->getInfoText());
+  QString title = scoreTableModel->getInfoText();
+  if (title.isEmpty())
+    title = "ScoreCard - No Scores";
+
+  setWindowTitle(title);
 }
 
 void MainWindow::firstButtonClicked()
@@ -344,6 +308,11 @@ void MainWindow::editCourse()
 {
   Course *course = scoreTableModel->getCourse();
 
+  if (!course) {
+    qWarning() << "No course on edit";
+    return;
+  }
+
   CourseDialog *courseDialog = new CourseDialog(this);
   courseDialog->init(course);
 
@@ -445,6 +414,41 @@ void MainWindow::editScore()
   }
 }
 
+void MainWindow::viewStatistics()
+{
+  QMainWindow *statWindow = new QMainWindow(this);
+
+  //QWidget *centralWidget = new QWidget(statWindow);
+
+  //setCentralWidget(centralWidget);
+
+
+  QString foo = "some longer text is needed here : 17";
+  QTextEdit *textEdit = new QTextEdit(foo);
+  
+  QLabel *label = new QLabel;
+  label->setScaledContents(true);
+
+  QString text = "foo : bar";
+
+  text.append("Scores: 17");
+
+  label->setAlignment(Qt::AlignCenter);
+  label->setText(text);
+
+  QString title = "Statistics";
+  statWindow->setWindowTitle(title);
+
+  QVBoxLayout *layout = new QVBoxLayout;
+  //layout->addWidget(label);
+  layout->addWidget(textEdit);
+
+  //statWindow->setLayout(layout);
+
+  //setCentralWidget(statWindow);
+  statWindow->show();
+}
+
 void MainWindow::loadScoreFile(QString &fileName, QList<Score *> &list)
 {
   ScoreXmlHandler handler(list);