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
40 namespace Ui {
41     class CarMainWindow;
42 }
43
44 class CarMainWindow : public QMainWindow {
45     Q_OBJECT
46 public:
47     CarMainWindow(QWidget *parent = 0);
48     ~CarMainWindow();
49
50     void setComboBoxStartTabUnits(QStringList units);    //Start-tab view
51     void setListViewStartTabAccelerationCategories(QStringList numbers); //Start-tab view
52     void setListViewTopList(QString category);  //Top-tab view
53     void setCategoryCompoBox(); //Top-tab
54
55 protected:
56     void changeEvent(QEvent *e);
57
58 private:
59     Ui::CarMainWindow *ui;
60     //ResultDialog *result;
61     //MeasureDialog *measure;
62     WelcomeDialog *welcomeDialog;
63     XmlReader *xmlreader;
64     XmlWriter *xmlwriter;
65     QNetworkAccessManager* manager;
66     LoginWindow *myLogin;
67     Registration *myRegistration;
68     //void initCategoryCompoBox();    //
69     void initComboBoxStartTabUnits();    //Start-tab view
70     void initListViewStartTabAccelerationCategories();   //Start-tab view
71
72     void initializeMeasures();
73
74 private:
75     QStringList accelerationCategoriesStartTab; //Start-tab view
76     QStringList units;  //Start-tab view
77     QStringList categories; //Top-tab view
78
79     QTimer *timer;
80     Accelerometer *accelerometer;
81     double time;
82     double speed;
83     Measures *measures;
84
85 signals:
86 void speedAchieved();
87 void userNameChanged();
88
89 private slots:
90     void on_pushButtonSendResult_clicked();
91     void on_pushButtonMeasureTabAbort_clicked();
92     void on_manualStartButton_clicked();
93     void on_setUserPushButton_clicked();
94     void on_registratePushButton_clicked();
95     void on_comboBoxTopCategory_activated(QString );
96     //void on_pushButton_clicked();
97     void networkResponse(QNetworkReply*);
98     void on_comboBoxTopCategory_currentIndexChanged(QString category); //Top-tab view
99     void on_listViewStartTabAccelerationCategories_clicked(QModelIndex index); //Start-tab view
100     void updateComboBoxStartTabUnits(QString unit);  //Start-tab view
101     void openResultView();
102     void on_buttonTopRefresh_clicked(); //Top-tab view: button
103     void on_autoStartButton_clicked();  //Start-tab view: button
104     void registrate();
105     void sendXml();
106     void requestTopList();
107     void ackOfResult(QNetworkReply* reply);
108     void ackOfRegistration(QNetworkReply* reply);
109     void errorFromServer(QNetworkReply* reply);
110
111     void after_timeout();
112     void updateUserName();
113 };
114
115 #endif // CARMAINWINDOW_H