X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Fmainwindow.cpp;h=9d9984def763d869b21f60914765aff5453d1109;hp=64a5aa903b2bb8d4fb6006bf9a27c530436d68b7;hb=469014c551522b73afea7af43e73fa7194657b05;hpb=afbc416a1a09e00162dd5ba4080cf7018b98208f diff --git a/Client/mainwindow.cpp b/Client/mainwindow.cpp index 64a5aa9..9d9984d 100644 --- a/Client/mainwindow.cpp +++ b/Client/mainwindow.cpp @@ -14,6 +14,7 @@ #include #include #include +#include "usersettings.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -25,22 +26,24 @@ MainWindow::MainWindow(QWidget *parent) : 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))); + helpDialog = NULL; accstart = NULL; + routeSaveDialog = NULL; + topResultDialog = NULL; + + settingsDialog = new SettingsDialog; + connect(settingsDialog,SIGNAL(sendregistration()),this,SLOT(clientRegUserToServer())); + connect(settingsDialog,SIGNAL(userNameChanged()),this,SLOT(clientUserLogin())); + connect(settingsDialog, SIGNAL(logout()), this, SLOT(setUsernameToMainPanel())); httpClient = new HttpClient(this); connect(httpClient->myXmlreader, SIGNAL(receivedCategoryList()), this, SLOT(setCategoryCompoBox())); - connect(httpClient->myXmlreader, SIGNAL(receivedTop10List()), this, SLOT(showTop10())); + connect(httpClient->myXmlreader, SIGNAL(receivedTop10List()), this, SLOT(showTop10())); welcomeDialog = new WelcomeDialog; - welcomeDialog->show(); + //welcomeDialog->show(); + + this->setUsernameToMainPanel(); //Button settings ui->pushButtonAccelerate->setAutoFillBackground(true); @@ -53,15 +56,34 @@ MainWindow::MainWindow(QWidget *parent) : ui->pushButtonSettings->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); ui->pushButtonWWW->setAutoFillBackground(true); ui->pushButtonWWW->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); + ui->pushButtonCredits->setAutoFillBackground(true); + ui->pushButtonCredits->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); } MainWindow::~MainWindow() { delete ui; - delete routeSaveDialog; - if(!accstart) + if(routeSaveDialog) + delete routeSaveDialog; + + if(accstart) delete accstart; + + if(topResultDialog) + delete topResultDialog; + + if(settingsDialog) + delete settingsDialog; + + if(welcomeDialog) + delete welcomeDialog; + + if(httpClient) + delete httpClient; + + if(helpDialog) + delete helpDialog; } void MainWindow::changeEvent(QEvent *e) @@ -76,35 +98,72 @@ void MainWindow::changeEvent(QEvent *e) } } +/** + * This slot function opens browser to project www page. + */ void MainWindow::on_pushButtonWWW_clicked() { QDesktopServices::openUrl(QUrl("http://garage.maemo.org/projects/speedfreak/")); } +/** + * This slot function opens the credits dialog + */ void MainWindow::on_pushButtonCredits_clicked() { - creditsDialog->show(); + if(!helpDialog) + helpDialog = new HelpDialog; + + connect(helpDialog, SIGNAL(rejected()), this, SLOT(killDialog())); + helpDialog->show(); } +/** + * This slot function opens the route save dialog + */ void MainWindow::on_pushButtonRoute_clicked() { + if(!routeSaveDialog) + routeSaveDialog = new RouteSaveDialog; + + connect(routeSaveDialog, SIGNAL(sendroute()), this, SLOT(clientSendRoute())); + connect(routeSaveDialog, SIGNAL(rejected()), this, SLOT(killDialog())); routeSaveDialog->show(); } +/** + * This slot function opens the settings dialog + */ void MainWindow::on_pushButtonSettings_clicked() { settingsDialog->show(); } +/** + * This slot function opens the acceleration dialog + */ void MainWindow::on_pushButtonAccelerate_clicked() { if(!accstart) accstart = new accelerationstart(this); + + connect(accstart, SIGNAL(sendresult(QString, double)), this, SLOT(clientSendResult(QString, double))); + connect(accstart, SIGNAL(rejected()), this, SLOT(killDialog())); accstart->show(); } +/** + * This slot function opens the top results dialog + */ void MainWindow::on_pushButtonResults_clicked() { + if (!topResultDialog) + topResultDialog = new TopResultDialog; + + clientRequestCategoryList(); + connect(topResultDialog, SIGNAL(refreshCategoryList()), this, SLOT(clientRequestCategoryList())); + connect(topResultDialog, SIGNAL(refreshTopList(int)), this, SLOT(clientRequestTopList(int))); + connect(topResultDialog, SIGNAL(rejected()), this, SLOT(killDialog())); topResultDialog->show(); } @@ -113,7 +172,8 @@ void MainWindow::on_pushButtonResults_clicked() */ void MainWindow::clientRequestCategoryList() { - httpClient->requestCategories(); + if(httpClient) + httpClient->requestCategories(); } /** @@ -121,9 +181,13 @@ void MainWindow::clientRequestCategoryList() */ 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); + QString limit; + + if(topResultDialog && httpClient->myXmlreader->myCategoryList) + { + limit = QString::number(topResultDialog->getLimitNr()); + httpClient->requestTopList(httpClient->myXmlreader->myCategoryList->getRecentCategory(index), limit); + } } /** @@ -132,8 +196,8 @@ void MainWindow::clientRequestTopList(int index) */ void MainWindow::setCategoryCompoBox() { - qDebug() << "_setCategoryCompoBox"; - topResultDialog->setCompoBoxCategories(httpClient->myXmlreader->myCategoryList->getCategoryList()); + if(topResultDialog && httpClient->myXmlreader->myCategoryList) + topResultDialog->setCompoBoxCategories(httpClient->myXmlreader->myCategoryList->getCategoryList()); } /** @@ -142,9 +206,13 @@ void MainWindow::setCategoryCompoBox() */ void MainWindow::showTop10() { - qDebug() << "_showTop10"; - int ind = topResultDialog->getRecentCategoryIndex(); - setListViewTopList(httpClient->myXmlreader->myCategoryList->getRecentCategory(ind), topResultDialog->getLimitNr()); + int ind; + + if(topResultDialog && httpClient->myXmlreader->myCategoryList && topResultDialog) + { + ind = topResultDialog->getRecentCategoryIndex(); + setListViewTopList(httpClient->myXmlreader->myCategoryList->getRecentCategory(ind), topResultDialog->getLimitNr()); + } } /** @@ -154,18 +222,103 @@ void MainWindow::showTop10() */ void MainWindow::setListViewTopList(QString category, int size) { - qDebug() << "_setListViewTopList" << category; QString topList; - topList.append(httpClient->myXmlreader->myCategoryList->getTopList(category, size)); - topResultDialog->showTopList(topList); + + if(httpClient->myXmlreader->myCategoryList && topResultDialog) + { + topList.append(httpClient->myXmlreader->myCategoryList->getTopList(category, size)); + topResultDialog->showTopList(topList); + } +} + +/** + * This function register user to server. + */ +void MainWindow::clientRegUserToServer() +{ + if(httpClient) + httpClient->requestRegistration(); +} + +/** + * This function performs login to server. + */ +void MainWindow::clientUserLogin() +{ + + if(httpClient) + { + connect(httpClient, SIGNAL(loginOK()), this, SLOT(setUsernameToMainPanel())); + httpClient->checkLogin(); + } +} + +/** + * This function send route data to server. + */ +void MainWindow::clientSendRoute() +{ + if(httpClient) + httpClient->sendRouteXml(); } -void MainWindow::regUserToServer() +/** + * This function send acceleration data to server. + */ +void MainWindow::clientSendResult(QString category, double result) { - httpClient->requestRegistration(); + qDebug() << "__clientSendResult"; + if(accstart) { + qDebug() << "_clientSendResult, calling server"; + if(httpClient) + httpClient->sendResultXml(category, result); + } +} +/** + * This slot function called when ever dialog finished. + */ +void MainWindow::killDialog() +{ + if(topResultDialog) + { + qDebug() << "__MW kill: topResultDialog"; + delete topResultDialog; + topResultDialog = NULL; + } + if(routeSaveDialog) + { + qDebug() << "__MW kill: routeSaveDialog"; + //delete routeSaveDialog; + //routeSaveDialog = NULL; + } + if(accstart) + { + qDebug() << "__MW kill: accstart"; + delete accstart; + accstart = NULL; + } + if(welcomeDialog) + { + qDebug() << "__MW kill: welcomeDialog"; + delete welcomeDialog; + welcomeDialog = NULL; + } + if(helpDialog) + { + qDebug() << "__MW kill: helpDialog"; + delete helpDialog; + helpDialog = NULL; + } } -void MainWindow::userLogin() +void MainWindow::setUsernameToMainPanel() { - httpClient->checkLogin(); + if (loginSaved()) + { + this->setWindowTitle("SpeedFreak - " + settingsDialog->getUserName()); + } + else + { + this->setWindowTitle("SpeedFreak - Not logged"); + } }