Route save dialog development. Added: GPS,icons...
[speedfreak] / Client / mainwindow.cpp
index 6e5ea66..64a5aa9 100644 (file)
@@ -1,7 +1,8 @@
 /*
  * Mainwindow for speedFreak project
  *
- * @author      Rikhard Kuutti <rikhard.kuutti@fudeco.com>
+ * @author      Rikhard Kuutti         <rikhard.kuutti@fudeco.com>
+ * @author      Toni Jussila   <toni.jussila@fudeco.com>
  * @copyright   (c) 2010 Speed Freak team
  * @license     http://opensource.org/licenses/gpl-license.php GNU Public License
  */
@@ -11,6 +12,8 @@
 
 #include <QDesktopServices>
 #include <QUrl>
+#include <QSettings>
+#include <QDebug>
 
 MainWindow::MainWindow(QWidget *parent) :
     QMainWindow(parent),
@@ -18,8 +21,26 @@ MainWindow::MainWindow(QWidget *parent) :
 {
     ui->setupUi(this);
 
+    QCoreApplication::setOrganizationName("Fudeco Oy");
+    QCoreApplication::setOrganizationDomain("fudeco.com");
+    QCoreApplication::setApplicationName("Speed Freak");
+
     creditsDialog = new CreditsDialog;
     routeSaveDialog = new RouteSaveDialog;
+    settingsDialog = new SettingsDialog;
+    connect(settingsDialog,SIGNAL(sendregistration()),this,SLOT(regUserToServer()));
+    connect(settingsDialog,SIGNAL(userNameChanged()),this,SLOT(userLogin()));
+    topResultDialog = new TopResultDialog;
+    connect(topResultDialog, SIGNAL(refreshCategoryList()), this, SLOT(clientRequestCategoryList()));
+    connect(topResultDialog, SIGNAL(refreshTopList(int)), this, SLOT(clientRequestTopList(int)));
+    accstart = NULL;
+
+    httpClient = new HttpClient(this);
+    connect(httpClient->myXmlreader, SIGNAL(receivedCategoryList()), this, SLOT(setCategoryCompoBox()));
+    connect(httpClient->myXmlreader, SIGNAL(receivedTop10List()), this, SLOT(showTop10()));
+
+    welcomeDialog = new WelcomeDialog;
+    welcomeDialog->show();
 
     //Button settings
     ui->pushButtonAccelerate->setAutoFillBackground(true);
@@ -38,6 +59,9 @@ MainWindow::~MainWindow()
 {
     delete ui;
     delete routeSaveDialog;
+
+    if(!accstart)
+        delete accstart;
 }
 
 void MainWindow::changeEvent(QEvent *e)
@@ -66,3 +90,82 @@ void MainWindow::on_pushButtonRoute_clicked()
 {
     routeSaveDialog->show();
 }
+
+void MainWindow::on_pushButtonSettings_clicked()
+{
+    settingsDialog->show();
+}
+
+void MainWindow::on_pushButtonAccelerate_clicked()
+{
+    if(!accstart)
+        accstart = new accelerationstart(this);
+    accstart->show();
+}
+
+void MainWindow::on_pushButtonResults_clicked()
+{
+    topResultDialog->show();
+}
+
+/**
+  *This slot function is called when ever mytTopResultDialog emits signal refreshCategoryList button clicked.
+  */
+void MainWindow::clientRequestCategoryList()
+{
+    httpClient->requestCategories();
+}
+
+/**
+  *This slot function is called when ever mytTopResultDialog emits signal refreshTopList button clicked.
+  */
+void MainWindow::clientRequestTopList(int index)
+{
+    qDebug() << "index" << index << httpClient->myXmlreader->myCategoryList->getRecentCategory(index);
+    QString limit = QString::number(topResultDialog->getLimitNr());
+    httpClient->requestTopList(httpClient->myXmlreader->myCategoryList->getRecentCategory(index), limit);
+}
+
+/**
+  *This function is used to set items to category combobox. Top-tab view.
+  *@param
+  */
+void MainWindow::setCategoryCompoBox()
+{
+    qDebug() << "_setCategoryCompoBox";
+    topResultDialog->setCompoBoxCategories(httpClient->myXmlreader->myCategoryList->getCategoryList());
+}
+
+/**
+  *This function prcesses UI updating after a new top10List has been received.
+  *@todo Check where limitNr is taken, fixed or user input, see on_comboBoxTopCategory_currentIndexChanged.
+  */
+void MainWindow::showTop10()
+{
+    qDebug() << "_showTop10";
+    int ind = topResultDialog->getRecentCategoryIndex();
+    setListViewTopList(httpClient->myXmlreader->myCategoryList->getRecentCategory(ind), topResultDialog->getLimitNr());
+}
+
+/**
+  *This function is used to set items to labelTopList. Top-tab view.
+  *@param Category
+  *@param Size, number of results.
+  */
+void MainWindow::setListViewTopList(QString category, int size)
+{
+    qDebug() << "_setListViewTopList" << category;
+    QString topList;
+    topList.append(httpClient->myXmlreader->myCategoryList->getTopList(category, size));
+    topResultDialog->showTopList(topList);
+}
+
+void MainWindow::regUserToServer()
+{
+    httpClient->requestRegistration();
+}
+
+void MainWindow::userLogin()
+{
+    httpClient->checkLogin();
+}