Initial commit
[golf-scorecard] / src / newround.cpp
1 #include "newround.h"\r
2 #include "ui_newround.h"\r
3 #include "datahandling.h"\r
4 #include "xmlparser.h"\r
5 #include "basicscorecard.h"\r
6 #include <QMessageBox>\r
7 \r
8 #include <QtDebug>\r
9 \r
10 \r
11 newround::newround(QWidget *parent) :\r
12     QMainWindow(parent),\r
13     ui(new Ui::newround)\r
14 {\r
15     ui->setupUi(this);\r
16 \r
17     ui->comboBox_player2->setHidden(true);\r
18     ui->comboBox_player3->setHidden(true);\r
19     ui->comboBox_player4->setHidden(true);\r
20 \r
21     ui->hcp_player2->setHidden(true);\r
22     ui->hcp_player3->setHidden(true);\r
23     ui->hcp_player4->setHidden(true);\r
24 \r
25     ui->tee_player2->setHidden(true);\r
26     ui->tee_player3->setHidden(true);\r
27     ui->tee_player4->setHidden(true);\r
28 \r
29     datahandling *playerAndCourseData = datahandling::instance();\r
30     xmlparser *Parser = new xmlparser();\r
31 \r
32     playerAndCourseData->clearData();\r
33     Parser->loadPlayerXMLFile();\r
34     Parser->loadCourseXMLFile();\r
35 \r
36     const QList<player>& players = playerAndCourseData->getPlayers();\r
37     const QList<course>& courses = playerAndCourseData->getCourses();\r
38 \r
39     QStringList player_namelist;\r
40 \r
41     foreach(player plr,players)\r
42     {\r
43         player_namelist.push_back(plr.m_name);\r
44         hcps.push_back(plr.m_hcp);\r
45     }\r
46 \r
47     foreach(course crs, courses)\r
48     {\r
49         courseNames.push_back(crs.m_name);\r
50         courseFiles.push_back(crs.m_file);\r
51     }\r
52 \r
53     ui->comboBox_player1->addItems(player_namelist);\r
54     ui->comboBox_player2->addItems(player_namelist);\r
55     ui->comboBox_player3->addItems(player_namelist);\r
56     ui->comboBox_player4->addItems(player_namelist);\r
57     ui->comboBox_course->addItems(courseNames);\r
58 }\r
59 \r
60 \r
61 \r
62 void newround::on_checkBox_player1_toggled(bool checked)\r
63 {\r
64     if(checked)\r
65     {\r
66         ui->comboBox_player1->setHidden(true);\r
67         ui->hcp_player1->setHidden(true);\r
68         ui->tee_player1->setHidden(true);\r
69         ui->comboBox_player1->setHidden(false);\r
70         ui->hcp_player1->setHidden(false);\r
71         ui->tee_player1->setHidden(false);\r
72     }\r
73     if(!checked)\r
74     {\r
75         ui->comboBox_player1->setHidden(true);\r
76         ui->hcp_player1->setHidden(true);\r
77         ui->tee_player1->setHidden(true);\r
78         ui->comboBox_player1->setHidden(true);\r
79         ui->hcp_player1->setHidden(true);\r
80         ui->tee_player1->setHidden(true);\r
81     }\r
82 }\r
83 \r
84 void newround::on_checkBox_player2_toggled(bool checked)\r
85 {\r
86     if(checked)\r
87     {\r
88         ui->comboBox_player2->setEnabled(true);\r
89         ui->hcp_player2->setEnabled(true);\r
90         ui->tee_player2->setEnabled(true);\r
91         ui->comboBox_player2->setHidden(false);\r
92         ui->hcp_player2->setHidden(false);\r
93         ui->tee_player2->setHidden(false);\r
94 \r
95     }\r
96     if(!checked)\r
97     {\r
98         ui->comboBox_player2->setDisabled(true);\r
99         ui->hcp_player2->setDisabled(true);\r
100         ui->tee_player2->setDisabled(true);\r
101         ui->comboBox_player2->setHidden(true);\r
102         ui->hcp_player2->setHidden(true);\r
103         ui->tee_player2->setHidden(true);\r
104 \r
105     }\r
106 }\r
107 \r
108 void newround::on_checkBox_player3_toggled(bool checked)\r
109 {\r
110     if(checked)\r
111     {\r
112         ui->comboBox_player3->setEnabled(true);\r
113         ui->hcp_player3->setEnabled(true);\r
114         ui->tee_player3->setEnabled(true);\r
115         ui->comboBox_player3->setHidden(false);\r
116         ui->hcp_player3->setHidden(false);\r
117         ui->tee_player3->setHidden(false);\r
118 \r
119     }\r
120     if(!checked)\r
121     {\r
122         ui->comboBox_player3->setDisabled(true);\r
123         ui->hcp_player3->setDisabled(true);\r
124         ui->tee_player3->setDisabled(true);\r
125         ui->comboBox_player3->setHidden(true);\r
126         ui->hcp_player3->setHidden(true);\r
127         ui->tee_player3->setHidden(true);\r
128 \r
129     }\r
130 }\r
131 \r
132 void newround::on_checkBox_player4_toggled(bool checked)\r
133 {\r
134     if(checked)\r
135     {\r
136         ui->comboBox_player4->setEnabled(true);\r
137         ui->hcp_player4->setEnabled(true);\r
138         ui->tee_player4->setEnabled(true);\r
139         ui->comboBox_player4->setHidden(false);\r
140         ui->hcp_player4->setHidden(false);\r
141         ui->tee_player4->setHidden(false);\r
142 \r
143     }\r
144     if(!checked)\r
145     {\r
146         ui->comboBox_player4->setDisabled(true);\r
147         ui->hcp_player4->setDisabled(true);\r
148         ui->tee_player4->setDisabled(true);\r
149         ui->comboBox_player4->setHidden(true);\r
150         ui->hcp_player4->setHidden(true);\r
151         ui->tee_player4->setHidden(true);\r
152 \r
153     }\r
154 }\r
155 \r
156 void newround::on_comboBox_player1_currentIndexChanged(int index)\r
157 {\r
158     for(int i = 0; i < hcps.length(); i++)\r
159     {\r
160         if(index == i)\r
161             ui->hcp_player1->setPlainText(hcps[index]);\r
162     }\r
163 }\r
164 \r
165 void newround::on_comboBox_player2_currentIndexChanged(int index)\r
166 {\r
167     for(int i = 0; i < hcps.length(); i++)\r
168     {\r
169         if(index == i)\r
170             ui->hcp_player2->setPlainText(hcps[index]);\r
171     }\r
172 }\r
173 \r
174 void newround::on_comboBox_player3_currentIndexChanged(int index)\r
175 {\r
176     for(int i = 0; i < hcps.length(); i++)\r
177     {\r
178         if(index == i)\r
179             ui->hcp_player3->setPlainText(hcps[index]);\r
180     }\r
181 }\r
182 \r
183 void newround::on_comboBox_player4_currentIndexChanged(int index)\r
184 {\r
185     for(int i = 0; i < hcps.length(); i++)\r
186     {\r
187         if(index == i)\r
188             ui->hcp_player4->setPlainText(hcps[index]);\r
189     }\r
190 }\r
191 \r
192 void newround::on_pushButton_continue_clicked()\r
193 {\r
194     datahandling *playerAndCourseData = datahandling::instance();\r
195     xmlparser *Parser = new xmlparser();\r
196     int courseIndex;\r
197 \r
198     courseIndex = ui->comboBox_course->currentIndex();\r
199     playerAndCourseData->selectedCourse = courseFiles[courseIndex];\r
200 \r
201     Parser->parseSelectedCourse();\r
202     saveSelectedPlayers();\r
203     playerAndCourseData->calculateHandicaps();\r
204 \r
205     BasicScorecard *basicscorecard = new BasicScorecard();\r
206     QMessageBox msgBox;\r
207     msgBox.setText("Do you want to start a round?");\r
208     msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);\r
209     int ret = msgBox.exec();\r
210     switch (ret)\r
211     {\r
212       case QMessageBox::Yes:\r
213         basicscorecard->show();\r
214         this->hide();\r
215           break;\r
216       case QMessageBox::No:\r
217           break;\r
218     }\r
219 }\r
220 \r
221 void newround::saveSelectedPlayers()\r
222 {\r
223     datahandling *playerAndCourseData = datahandling::instance();\r
224     const QList<player>& players = playerAndCourseData->getPlayers();\r
225     QStringList gender;\r
226 \r
227     playerAndCourseData->selectedPlayers.clear();\r
228     playerAndCourseData->selectedPlayersHcp.clear();\r
229     playerAndCourseData->selectedPlayersTee.clear();\r
230     playerAndCourseData->selectedPlayersGender.clear();\r
231 \r
232     foreach(player plr,players)\r
233     {\r
234         gender.push_back(plr.m_gender);\r
235     }\r
236 \r
237     if(ui->checkBox_player1->isChecked())\r
238     {\r
239         playerAndCourseData->selectedPlayers << ui->comboBox_player1->currentText();\r
240         playerAndCourseData->selectedPlayersHcp << ui->hcp_player1->toPlainText();\r
241         playerAndCourseData->selectedPlayersTee << ui->tee_player1->currentText();\r
242         playerAndCourseData->selectedPlayersGender << gender[ui->comboBox_player1->currentIndex()];\r
243     }\r
244     if(ui->checkBox_player2->isChecked())\r
245     {\r
246         playerAndCourseData->selectedPlayers << ui->comboBox_player2->currentText();\r
247         playerAndCourseData->selectedPlayersHcp << ui->hcp_player2->toPlainText();\r
248         playerAndCourseData->selectedPlayersTee << ui->tee_player2->currentText();\r
249         playerAndCourseData->selectedPlayersGender << gender[ui->comboBox_player2->currentIndex()];\r
250 \r
251     }\r
252     if(ui->checkBox_player3->isChecked())\r
253     {\r
254         playerAndCourseData->selectedPlayers << ui->comboBox_player3->currentText();\r
255         playerAndCourseData->selectedPlayersHcp << ui->hcp_player3->toPlainText();\r
256         playerAndCourseData->selectedPlayersTee << ui->tee_player3->currentText();\r
257         playerAndCourseData->selectedPlayersGender << gender[ui->comboBox_player3->currentIndex()];\r
258 \r
259     }\r
260     if(ui->checkBox_player4->isChecked())\r
261     {\r
262         playerAndCourseData->selectedPlayers << ui->comboBox_player4->currentText();\r
263         playerAndCourseData->selectedPlayersHcp << ui->hcp_player4->toPlainText();\r
264         playerAndCourseData->selectedPlayersTee << ui->tee_player4->currentText();\r
265         playerAndCourseData->selectedPlayersGender << gender[ui->comboBox_player4->currentIndex()];\r
266 \r
267     }  \r
268 }\r
269 \r