Welcome dialog added.
[speedfreak] / Client / carmainwindow.h
1 /*
2  * CarMainWindow main class
3  *
4  * @author     Toni Jussila <toni.jussila@fudeco.com>
5  * @author     Janne Änäkkälä <janne.anakkala@fudeco.com>
6  * @author     Tiina Kivilinna-Korhola <tiina.kivilinna-korhola@fudeco.com>
7  * @author     Olavi Pulkkinen <olavi.pulkkinen@fudeco.com>
8  * @copyright  (c) 2010 Speed Freak team
9  * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
10  */
11
12 #ifndef CARMAINWINDOW_H
13 #define CARMAINWINDOW_H
14
15 #include <QMainWindow>
16 #include <QStandardItemModel>
17 #include <QModelIndex>
18 #include <QStringList>
19 #include <QString>
20 #include <QNetworkAccessManager>
21 #include <QNetworkRequest>
22 #include <QNetworkReply>
23 #include <QMessageBox>
24 #include <QStandardItemModel>
25 #include <QBuffer>
26 #include <QByteArray>
27 #include <QDebug>
28 //#include "resultdialog.h"
29 //#include "measuredialog.h"
30 #include "welcomedialog.h"
31 #include "loginwindow.h"
32 #include "registration.h"
33 #include "xmlwriter.h"
34 #include "xmlreader.h"
35 #include "ui_carmainwindow.h"
36 #include "stringlistmodel.h"
37 #include "measures.h"
38 #include "accelerometer.h"
39 #include "categorylist.h"
40
41 namespace Ui {
42     class CarMainWindow;
43 }
44
45 class CarMainWindow : public QMainWindow {
46     Q_OBJECT
47 public:
48     CarMainWindow(QWidget *parent = 0);
49     ~CarMainWindow();
50
51     void setComboBoxStartTabUnits(QStringList units);    //Start-tab view
52     void setListViewStartTabAccelerationCategories(QStringList numbers); //Start-tab view
53     void setListViewTopList(QString category, int size);  //Top-tab view
54     void setCategoryCompoBox(); //Top-tab
55
56 protected:
57     void changeEvent(QEvent *e);
58
59 private:
60     Ui::CarMainWindow *ui;
61     //ResultDialog *result;
62     //MeasureDialog *measure;
63     WelcomeDialog *welcomeDialog;
64     XmlReader *xmlreader;
65     XmlWriter *xmlwriter;
66     QNetworkAccessManager* manager;
67     LoginWindow *myLogin;
68     Registration *myRegistration;
69     //void initCategoryCompoBox();    //
70     void initComboBoxStartTabUnits();    //Start-tab view
71     void initListViewStartTabAccelerationCategories();   //Start-tab view
72
73     void initializeMeasures();
74
75 private:
76     QStringList accelerationCategoriesStartTab; //Start-tab view
77     QStringList units;  //Start-tab view
78     QStringList categories; //Top-tab view
79     CategoryList *categorylist;
80
81     QTimer *timer;
82     Accelerometer *accelerometer;
83     double time;
84     double speed;
85     Measures *measures;
86
87 signals:
88     void speedAchieved();
89     void userNameChanged();
90
91 private slots:
92     void on_pushButtonSendResult_clicked();
93     void on_pushButtonMeasureTabAbort_clicked();
94     void on_manualStartButton_clicked();
95     void on_setUserPushButton_clicked();
96     void on_registratePushButton_clicked();
97     void on_comboBoxTopCategory_activated(QString );
98     //void on_pushButton_clicked();
99     void on_comboBoxTopCategory_currentIndexChanged(QString category); //Top-tab view
100     void on_listViewStartTabAccelerationCategories_clicked(QModelIndex index); //Start-tab view
101     void updateComboBoxStartTabUnits(QString unit);  //Start-tab view
102     void openResultView();
103     void on_buttonTopRefresh_clicked(); //Top-tab view: button
104     void on_autoStartButton_clicked();  //Start-tab view: button
105     void registrate();
106     void sendResultXml();
107     void requestTopList(QString category, QString limit);
108     void requestCategories();
109     void ackOfResult();
110     void ackOfRegistration();
111     void ackOfCategories();
112     void ackOfToplist();
113     void errorFromServer(QNetworkReply::NetworkError);
114     void after_timeout();
115     void updateUserName();
116 };
117
118 #endif // CARMAINWINDOW_H