Categorylist class
[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 "loginwindow.h"
31 #include "registration.h"
32 #include "xmlwriter.h"
33 #include "xmlreader.h"
34 #include "ui_carmainwindow.h"
35 #include "stringlistmodel.h"
36 #include "measures.h"
37 #include "accelerometer.h"
38 #include "categorylist.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, int size);  //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     XmlReader *xmlreader;
63     XmlWriter *xmlwriter;
64     QNetworkAccessManager* manager;
65     LoginWindow *myLogin;
66     Registration *myRegistration;
67     //void initCategoryCompoBox();    //
68     void initComboBoxStartTabUnits();    //Start-tab view
69     void initListViewStartTabAccelerationCategories();   //Start-tab view
70
71     void initializeMeasures();
72
73 private:
74     QStringList accelerationCategoriesStartTab; //Start-tab view
75     QStringList units;  //Start-tab view
76     QStringList categories; //Top-tab view
77     CategoryList *categorylist;
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 on_comboBoxTopCategory_currentIndexChanged(QString category); //Top-tab view
98     void on_listViewStartTabAccelerationCategories_clicked(QModelIndex index); //Start-tab view
99     void updateComboBoxStartTabUnits(QString unit);  //Start-tab view
100     void openResultView();
101     void on_buttonTopRefresh_clicked(); //Top-tab view: button
102     void on_autoStartButton_clicked();  //Start-tab view: button
103     void registrate();
104     void sendResultXml();
105     void requestTopList(QString category, QString limit);
106     void requestCategories();
107     void ackOfResult();
108     void ackOfRegistration();
109     void ackOfCategories();
110     void ackOfToplist();
111     void errorFromServer(QNetworkReply::NetworkError);
112     void after_timeout();
113     void updateUserName();
114 };
115
116 #endif // CARMAINWINDOW_H