Changes in measuredialog.cpp, .h and carmainwindow.cpp and .h
[speedfreak] / Client / carmainwindow.cpp
1 #include "carmainwindow.h"
2 #include "ui_carmainwindow.h"
3 #include "stringlistmodel.h"
4 #include <QStandardItemModel>
5 #include <QStringList>
6 #include <QString>
7
8 /**
9   *Constructor of this class.
10   *@param QWidget pointer to parent object. By default the value is NULL.
11   */
12 CarMainWindow::CarMainWindow(QWidget *parent):QMainWindow(parent), ui(new Ui::CarMainWindow)
13 {
14     ui->setupUi(this);
15     result = new ResultDialog();
16     measure = new MeasureDialog();
17
18     initUnitCompoBox();
19     initSpeedListView();
20     initCategoryCompoBox();
21 }
22
23 /**
24   *Destructor of this class. Should be used to release all allocated resources.
25   */
26 CarMainWindow::~CarMainWindow()
27 {
28     delete ui;
29     delete result;
30     delete measure;
31 }
32
33 /**
34   *This function is used to .
35   *@param
36   */
37 void CarMainWindow::changeEvent(QEvent *e)
38 {
39     QMainWindow::changeEvent(e);
40     switch (e->type()) {
41     case QEvent::LanguageChange:
42         ui->retranslateUi(this);
43         break;
44     default:
45         break;
46     }
47 }
48
49 /**
50   *This slot function is called when ever list view is update.
51   *@param QModelIndex index.
52   */
53 void CarMainWindow::on_listView_clicked(QModelIndex index)
54 {
55     QString str = index.data().toString();
56     QStringList list = str.split("-");
57     QStringList list2 = list[1].split(" ");
58
59     ui->minLineEdit->setText(list[0]);
60     ui->maxLineEdit->setText(list2[0]);
61     updateUnitCompoBox(list2[1]);
62 }
63
64 /**
65   *This slot function is called when ever auto start button clicked.
66   */
67 void CarMainWindow::on_autoStartButton_clicked()
68 {
69     if(measure)
70     {
71         delete measure;
72         measure = NULL;
73         measure = new MeasureDialog();
74     }
75
76     connect(measure, SIGNAL(speedAchieved()), this, SLOT(openResultView()));
77
78     // Show measure dialog.
79     measure->show();
80 }
81
82 /**
83   *This slot function is called when ever list view is update.
84   *@param QString unit.
85   */
86 void CarMainWindow::updateUnitCompoBox(QString unit)
87 {
88     ui->unitComboBox->setCurrentIndex(ui->unitComboBox->findText(unit, Qt::MatchExactly));
89 }
90
91 /**
92   *This function is used to init unit combobox.
93   */
94 void CarMainWindow::initUnitCompoBox()
95 {
96     units << "km/h" << "km" << "h" << "m" << "min" << "mil" << "in" << "ft" << "yrd";
97     ui->unitComboBox->addItems(units);
98 }
99
100 /**
101   *This function is used to set items to unit combobox.
102   *@param QStringlist numbers
103   */
104 void CarMainWindow::setUnitCompoBox(QStringList units)
105 {
106     ui->unitComboBox->addItems(units);
107 }
108
109 /**
110   *This function is used to init speed listview.
111   */
112 void CarMainWindow::initSpeedListView()
113 {
114     numbers << "0-100 km/h" << "0-1/4 mil" << "0-50 km" << "50-100 mil" << "0-100 m" << "0-50 ft" << "0-50 yrd" << "0-500 in";
115     QAbstractItemModel *model = new StringListModel(numbers);
116     ui->listView->setModel(model);
117 }
118
119 /**
120 <<<<<<< HEAD:Client/carmainwindow.cpp
121   *This function is used to set items to speed listview.
122   *@param QStringlist numbers
123   */
124 void CarMainWindow::setSpeedListView(QStringList numbers)
125 {
126     QAbstractItemModel *model = new StringListModel(numbers);
127     ui->listView->setModel(model);
128 }
129
130 /**
131   *This function is used to init category combobox.
132   */
133 void CarMainWindow::initCategoryCompoBox()
134 {
135     categories << "Top 10 1/4 mile" << "Top 10 0-100 km/h" << "Top 10 car";
136     ui->comboBoxTopCategory->addItems(categories);
137 }
138
139 /**
140   *This function is used to set items to category combobox.
141   *@param QStringlist categories
142   */
143 void CarMainWindow::setCategoryCompoBox(QStringList categories)
144 {
145     ui->comboBoxTopCategory->addItems(categories);
146 }
147
148 /**
149   *This slot function is called when ever categories combobox is update.
150   *@param QString category
151   */
152 void CarMainWindow::on_comboBoxTopCategory_activated(QString category)
153 {
154     //TODO: get top list
155
156     QStringList topList;
157     topList << "1. Pertti 7,5s" << "2. Ville 10,2s";
158
159     QAbstractItemModel *model = new StringListModel(topList);
160     ui->listViewTopList->setModel(model);
161 }
162
163 /**
164   *This slot function is called when speed is achieved in measure dialog. Opens result dialog.
165   */
166 void CarMainWindow::openResultView()
167 {
168     // Show result dialog.
169     result->show();
170 }