2 * CarMainWindow main class
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 * @author Rikhard Kuutti <rikhard.kuutti@fudeco.com>
9 * @author Kai Rasilainen <kai.rasilainen@fudeco.com>
10 * @copyright (c) 2010 Speed Freak team
11 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
14 #ifndef CARMAINWINDOW_H
15 #define CARMAINWINDOW_H
17 #include <QMainWindow>
18 #include <QStandardItemModel>
19 #include <QModelIndex>
20 #include <QStringList>
22 #include <QNetworkAccessManager>
23 #include <QNetworkRequest>
24 #include <QNetworkReply>
25 #include <QMessageBox>
26 #include <QStandardItemModel>
30 #include <qdatetime.h>
31 #include "resultdialog.h"
32 //#include "measuredialog.h"
33 #include "welcomedialog.h"
34 #include "loginwindow.h"
35 #include "registration.h"
36 #include "xmlwriter.h"
37 #include "xmlreader.h"
38 #include "ui_carmainwindow.h"
39 #include "stringlistmodel.h"
41 #include "accelerometer.h"
42 #include "categorylist.h"
43 #include "httpclient.h"
44 #include "routedialog.h"
45 #include "calculate.h"
47 #include "movingaverage.h"
48 #include <maemo5location.h>
54 class CarMainWindow : public QMainWindow {
57 CarMainWindow(QWidget *parent = 0);
59 Registration *myRegistration; //Check if this should be public or private
63 void setComboBoxStartTabUnits(QStringList units); //Start-tab view
64 void setListViewStartTabAccelerationCategories(QStringList numbers); //Start-tab view
65 void setLabelInfoToUser(QString infoText);
68 void changeEvent(QEvent *e);
71 Ui::CarMainWindow *ui;
73 //MeasureDialog *measure;
74 WelcomeDialog *welcomeDialog;
75 CategoryList *myCategorylist;
76 HttpClient *myHttpClient;
78 Maemo5Location *location;
79 //void initCategoryCompoBox();
80 void initComboBoxStartTabUnits(); //Start-tab view
81 void initListViewStartTabAccelerationCategories(); //Start-tab view
82 void setListViewTopList(QString category, int size); //Top-tab view
83 void resetAccelerometerMeasurements();
84 void calibrateAccelerometer();
85 void setTimeAxisGapAndShowResult(double pTime);
88 QStringList accelerationCategoriesStartTab; //Start-tab view
89 QStringList units; //Start-tab view
90 QString recentCategory;
93 Accelerometer *accelerometer;
94 MovingAverage* movingAverageZ;
103 Calculate *calculate;
105 bool reverseAccelerationFlag;
106 bool vehicleStartedMoving;
111 double accelerationStartThreshold;
112 double currentAcceleration;
115 //double firstAcceleration;
117 QTimer *accelerometerTimer;
120 QString currentAccelerationString;
121 QString currentSpeed;
122 QString distanceTraveled;
128 double gpsSpeedNow; //Route-tab view
129 double gpsSpeedPrevious;//Route-tab view
130 double gpsAcceleration; //Route-tab view
131 double timeFromGps; //Route-tab view
132 double gpsSpeed; //Route-tab view
133 int gpsUpdateTime; //Route-tab view
135 int counterForSaveResults;
138 void speedAchieved();
139 void userNameChanged();
142 void on_calibrateButton_clicked();
143 void gpsTimerTimeout(); //Route-tab view
144 void on_startRecPushButton_clicked(); //Route-tab view
145 void on_pushButtonShowResultDialog_clicked();
146 void on_gpsOnCheckBox_stateChanged(int GPSState); //Route-tab view
147 void gpsStatus(); //Route-tab view
148 void on_drawRoutePushButton_clicked();
149 void on_pushButtonSendResult_clicked();
150 void on_pushButtonMeasureTabAbort_clicked();
151 void on_manualStartButton_clicked();
152 void on_setUserPushButton_clicked();
153 void on_registratePushButton_clicked();
154 void on_comboBoxTopCategory_currentIndexChanged(QString category); //Top-tab view
155 void on_listViewStartTabAccelerationCategories_clicked(QModelIndex index); //Start-tab view
156 void updateComboBoxStartTabUnits(QString unit); //Start-tab view
157 void openResultView();
158 void on_buttonTopRefresh_clicked(); //Top-tab view: button
159 void on_autoStartButton_clicked(); //Start-tab view: button
160 void after_timeout();
161 void updateUserName();
162 void regUserToServer();
164 void readAccelerometerData();
165 void handleCheckPoint(double totalTime, double currentSpeed);
166 void setCategoryCompoBox(); //Top-tab
171 #endif // CARMAINWINDOW_H