X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Fmainwindow.cpp;h=8dbfc7900ae6ac13bbb79b934adec3d07ba9c16f;hp=09ce0f00fa15c618bd92672fd4a37e2aeb0956ce;hb=74a1541fc05869163401c4885da4445c8940c822;hpb=1f36faa8f303b72492ad538f571f1fa07b5151fe diff --git a/Client/mainwindow.cpp b/Client/mainwindow.cpp index 09ce0f0..8dbfc79 100644 --- a/Client/mainwindow.cpp +++ b/Client/mainwindow.cpp @@ -1,7 +1,8 @@ /* * Mainwindow for speedFreak project * - * @author Rikhard Kuutti + * @author Rikhard Kuutti + * @author Toni Jussila * @copyright (c) 2010 Speed Freak team * @license http://opensource.org/licenses/gpl-license.php GNU Public License */ @@ -11,6 +12,8 @@ #include #include +#include +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -18,18 +21,60 @@ MainWindow::MainWindow(QWidget *parent) : { ui->setupUi(this); - creditsDialog = new CreditsDialog; + QCoreApplication::setOrganizationName("Fudeco Oy"); + QCoreApplication::setOrganizationDomain("fudeco.com"); + QCoreApplication::setApplicationName("Speed Freak"); + + routeDialog = new RouteDialog; + connect(routeDialog,SIGNAL(sendroute()),this,SLOT(clientSendRoute())); + routeSaveDialog = new RouteSaveDialog; + settingsDialog = new SettingsDialog; + connect(settingsDialog,SIGNAL(sendregistration()),this,SLOT(clientRegUserToServer())); + connect(settingsDialog,SIGNAL(userNameChanged()),this,SLOT(clientUserLogin())); + + topResultDialog = new TopResultDialog; + connect(topResultDialog, SIGNAL(refreshCategoryList()), this, SLOT(clientRequestCategoryList())); + connect(topResultDialog, SIGNAL(refreshTopList(int)), this, SLOT(clientRequestTopList(int))); + + httpClient = new HttpClient(this); + connect(httpClient->myXmlreader, SIGNAL(receivedCategoryList()), this, SLOT(setCategoryCompoBox())); + connect(httpClient->myXmlreader, SIGNAL(receivedTop10List()), this, SLOT(showTop10())); + + resultDialog = new ResultDialog; + connect(resultDialog, SIGNAL(sendresult()), this, SLOT(clientSendResult())); + + accstart = NULL; + + creditsDialog = new CreditsDialog; + welcomeDialog = new WelcomeDialog; welcomeDialog->show(); + + //Button settings + ui->pushButtonAccelerate->setAutoFillBackground(true); + ui->pushButtonAccelerate->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); + ui->pushButtonRoute->setAutoFillBackground(true); + ui->pushButtonRoute->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); + ui->pushButtonResults->setAutoFillBackground(true); + ui->pushButtonResults->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); + ui->pushButtonSettings->setAutoFillBackground(true); + 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; + delete routeDialog; + + if(accstart) + delete accstart; } void MainWindow::changeEvent(QEvent *e) @@ -44,17 +89,133 @@ 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(); } +/** + * This slot function opens the route save dialog + */ void MainWindow::on_pushButtonRoute_clicked() { 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); + accstart->show(); +} + +/** + * This slot function opens the top results dialog + */ +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) +{ + 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() +{ + 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() +{ + 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) +{ + QString topList; + topList.append(httpClient->myXmlreader->myCategoryList->getTopList(category, size)); + topResultDialog->showTopList(topList); +} + +void MainWindow::clientRegUserToServer() +{ + httpClient->requestRegistration(); +} + +/** + * This function performs login to server + */ +void MainWindow::clientUserLogin() +{ + httpClient->checkLogin(); +} + +/** + * This function send route to server + */ +void MainWindow::clientSendRoute() +{ + httpClient->sendRouteXml(); +} + +/** + * This function send acceleration data to server + */ +void MainWindow::clientSendResult() +{ + qDebug() << "_clientSendResult"; + if(accstart) { + qDebug() << "_clientSendResult, calling server"; + httpClient->sendResultXml(accstart->getMeasureCategory(), resultDialog->getResult()); + } +}