Display top performer in certain category.
[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    result->show();
70 }
71
72 /**
73   *This slot function is called when ever list view is update.
74   *@param QString unit.
75   */
76 void CarMainWindow::updateUnitCompoBox(QString unit)
77 {
78     ui->unitComboBox->setCurrentIndex(ui->unitComboBox->findText(unit, Qt::MatchExactly));
79 }
80
81 /**
82   *This function is used to init unit combobox.
83   */
84 void CarMainWindow::initUnitCompoBox()
85 {
86     units << "km/h" << "km" << "h" << "m" << "min" << "mil" << "in" << "ft" << "yrd";
87     ui->unitComboBox->addItems(units);
88 }
89
90 /**
91   *This function is used to set items to unit combobox.
92   *@param QStringlist numbers
93   */
94 void CarMainWindow::setUnitCompoBox(QStringList units)
95 {
96     ui->unitComboBox->addItems(units);
97 }
98
99 /**
100   *This function is used to init speed listview.
101   */
102 void CarMainWindow::initSpeedListView()
103 {
104     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";
105     QAbstractItemModel *model = new StringListModel(numbers);
106     ui->listView->setModel(model);
107 }
108
109 /**
110   *This function is used to set items to speed listview.
111   *@param QStringlist numbers
112   */
113 void CarMainWindow::setSpeedListView(QStringList numbers)
114 {
115     QAbstractItemModel *model = new StringListModel(numbers);
116     ui->listView->setModel(model);
117 }
118
119 /**
120   *This function is used to init category combobox.
121   */
122 void CarMainWindow::initCategoryCompoBox()
123 {
124     categories << "Top 10 1/4 mile" << "Top 10 0-100 km/h" << "Top 10 car";
125     ui->comboBoxTopCategory->addItems(categories);
126 }
127
128 /**
129   *This function is used to set items to category combobox.
130   *@param QStringlist categories
131   */
132 void CarMainWindow::setCategoryCompoBox(QStringList categories)
133 {
134     ui->comboBoxTopCategory->addItems(categories);
135 }
136
137 /**
138   *This slot function is called when ever categories combobox is update.
139   *@param QString category
140   */
141 void CarMainWindow::on_comboBoxTopCategory_activated(QString category)
142 {
143     //TODO: get top list
144
145     QStringList topList;
146     topList << "1. Pertti 7,5s" << "2. Ville 10,2s";
147
148     QAbstractItemModel *model = new StringListModel(topList);
149     ui->listViewTopList->setModel(model);
150 }