Added feature which scales result diagrams speed axel right way concerning the choice...
[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 #include "httpclient.h"
41 #include "routedialog.h"
42
43 namespace Ui {
44     class CarMainWindow;
45 }
46
47 class CarMainWindow : public QMainWindow {
48     Q_OBJECT
49 public:
50     CarMainWindow(QWidget *parent = 0);
51     ~CarMainWindow();
52     Registration *myRegistration;       //Check if this should be public or private
53
54
55     void setComboBoxStartTabUnits(QStringList units);       //Start-tab view
56     void setListViewStartTabAccelerationCategories(QStringList numbers); //Start-tab view
57     void setListViewTopList(QString category, int size);    //Top-tab view
58     void setCategoryCompoBox();                             //Top-tab
59
60 protected:
61     void changeEvent(QEvent *e);
62
63 private:
64     Ui::CarMainWindow *ui;
65     ResultDialog *result;
66     //MeasureDialog *measure;
67     WelcomeDialog *welcomeDialog;
68     CategoryList *categorylist;
69     HttpClient *myHttpClient;
70     LoginWindow *myLogin;
71     RouteDialog *myRoute;
72     //void initCategoryCompoBox();
73     void initComboBoxStartTabUnits();                   //Start-tab view
74     void initListViewStartTabAccelerationCategories();  //Start-tab view
75     void initializeMeasures();
76
77 private:
78     QStringList accelerationCategoriesStartTab;         //Start-tab view
79     QStringList units;                                  //Start-tab view
80     QStringList categories;                             //Top-tab view
81
82     QTimer *timer;
83     Accelerometer *accelerometer;
84     double time;
85     double speed;
86     Measures *measures;
87
88     QModelIndex choice;
89     int choiceInt;
90
91 signals:
92     void speedAchieved();
93     void userNameChanged();
94
95 private slots:
96     void on_pushButtonShowResultDialog_clicked();
97     void on_drawRoutePushButton_clicked();
98     void on_pushButtonSendResult_clicked();
99     void on_pushButtonMeasureTabAbort_clicked();
100     void on_manualStartButton_clicked();
101     void on_setUserPushButton_clicked();
102     void on_registratePushButton_clicked();
103     void on_comboBoxTopCategory_activated(QString );
104     //void on_pushButton_clicked();
105     void on_comboBoxTopCategory_currentIndexChanged(QString category);          //Top-tab view
106     void on_listViewStartTabAccelerationCategories_clicked(QModelIndex index);  //Start-tab view
107     void updateComboBoxStartTabUnits(QString unit);     //Start-tab view
108     void openResultView();
109     void on_buttonTopRefresh_clicked();                 //Top-tab view: button
110     void on_autoStartButton_clicked();                  //Start-tab view: button
111     void after_timeout();
112     void updateUserName();
113     void regUserToServer();
114     void userLogin();
115 };
116
117 #endif // CARMAINWINDOW_H