1 #include "basicscorecard.h"
\r
2 #include "ui_basicscorecard.h"
\r
3 #include "datahandling.h"
\r
7 BasicScorecard::BasicScorecard(QWidget *parent) :
\r
9 ui(new Ui::BasicScorecard)
\r
15 hideNotNeededFields();
\r
17 displayCourseData();
\r
18 calculateHcpsPerCourse();
\r
21 void BasicScorecard::loadPlayers()
\r
23 datahandling *CAPData = datahandling::instance();
\r
25 players << CAPData->selectedPlayers;
\r
26 qDebug() << players;
\r
28 for(int i = 0; i < players.count(); i++)
\r
30 for(int j = 0; j < 19; j++)
\r
33 hcpPerCourse[i][j] = 0;
\r
37 for(int i = 0; i < players.count(); i++)
\r
39 hcp[i] = CAPData->selectedPlayersHandicap[i].toInt();
\r
43 for(int y = 0; y < 19; y++)
\r
52 void BasicScorecard::drawPlayers()
\r
54 if(players.count() >= 1 )
\r
56 ui->label_leaderboardPlayer1->setText(players[0]);
\r
57 ui->label_player1->setText(players[0]);
\r
59 if(players.count() >= 2)
\r
61 ui->label_leaderboardPlayer2->setText(players[1]);
\r
62 ui->label_player2->setText(players[1]);
\r
64 if(players.count() >= 3)
\r
66 ui->label_leaderboardPlayer3->setText(players[2]);
\r
67 ui->label_player3->setText(players[2]);
\r
69 if(players.count() >= 4)
\r
71 ui->label_leaderboardPlayer4->setText(players[3]);
\r
72 ui->label_player4->setText(players[3]);
\r
76 void BasicScorecard::saveShots()
\r
78 if(players.count() >= 1 )
\r
79 scores[0][currentCourse] = ui->label_player1_score->text().toInt();
\r
80 if(players.count() >= 2 )
\r
81 scores[1][currentCourse] = ui->label_player2_score->text().toInt();
\r
82 if(players.count() >= 3 )
\r
83 scores[2][currentCourse] = ui->label_player3_score->text().toInt();
\r
84 if(players.count() >= 4 )
\r
85 scores[3][currentCourse] = ui->label_player4_score->text().toInt();
\r
88 void BasicScorecard::loadShots()
\r
90 if(players.count() >= 1 )
\r
91 ui->label_player1_score->setText(QString::number(scores[0][currentCourse]));
\r
92 if(players.count() >= 2 )
\r
93 ui->label_player2_score->setText(QString::number(scores[1][currentCourse]));
\r
94 if(players.count() >= 3 )
\r
95 ui->label_player3_score->setText(QString::number(scores[2][currentCourse]));
\r
96 if(players.count() >= 4 )
\r
97 ui->label_player4_score->setText(QString::number(scores[3][currentCourse]));
\r
100 void BasicScorecard::loadCourses()
\r
102 datahandling *CAPData = datahandling::instance();
\r
104 const QList<holeData>& holeData_2 = CAPData->getHoleData();
\r
105 const QList<whiteTee>& whiteTee_2 = CAPData->getWhiteTee();
\r
106 const QList<yellowTee>& yellowTee_2 = CAPData->getYellowTee();
\r
107 const QList<blueTee>& blueTee_2 = CAPData->getBlueTee();
\r
108 const QList<redTee>& redTee_2 = CAPData->getRedTee();
\r
110 courseDataName << "";
\r
111 courseDataPar << "";
\r
112 courseDataHcp << "";
\r
113 courseDataWhite << "";
\r
114 courseDataYellow << "";
\r
115 courseDataRed << "";
\r
116 courseDataBlue << "";
\r
118 foreach(holeData hD, holeData_2)
\r
120 courseDataName.push_back(hD.m_id);
\r
121 courseDataPar.push_back(hD.m_par);
\r
122 courseDataHcp.push_back(hD.m_hcp);
\r
125 foreach(whiteTee wT, whiteTee_2)
\r
127 courseDataWhite.push_back(wT.m_length);
\r
130 foreach(yellowTee yT, yellowTee_2)
\r
132 courseDataYellow.push_back(yT.m_length);
\r
135 foreach(blueTee bT, blueTee_2)
\r
137 courseDataBlue.push_back(bT.m_length);
\r
140 foreach(redTee rT, redTee_2)
\r
142 courseDataRed.push_back(rT.m_length);
\r
146 void BasicScorecard::displayCourseData()
\r
148 ui->label_course->setText(courseDataName[currentCourse]);
\r
149 ui->label_par->setText(courseDataPar[currentCourse]);
\r
150 ui->label_hcp->setText(courseDataHcp[currentCourse]);
\r
151 ui->label_white->setText(courseDataWhite[currentCourse]);
\r
152 ui->label_yellow->setText(courseDataYellow[currentCourse]);
\r
153 ui->label_red->setText(courseDataRed[currentCourse]);
\r
154 ui->label_blue->setText(courseDataBlue[currentCourse]);
\r
156 for(int i = 0; i < players.count(); i++)
\r
158 qDebug() << hcpPerCourse[i][currentCourse];
\r
160 qDebug() << "----------";
\r
164 void BasicScorecard::updateLeaderboard()
\r
173 for(int i = 0; i < 4; i++)
\r
182 for(int i = 0; i < players.count(); i++)
\r
184 for(int j = 1; j < 19; j++)
\r
186 if(scores[i][j] != 0)
\r
188 sp[i] = sp[i] + (scores[i][j] - courseDataPar[j].toInt());
\r
189 hcpsp[i] = hcpsp[i] + (scores[i][j] - hcpPerCourse[i][j] - courseDataPar[j].toInt());
\r
195 for(int i = 0; i < players.count(); i++)
\r
197 list.append(sp[i]);
\r
202 for(int i = 0; i < players.count(); i++)
\r
204 order[i] = (int)list.takeFirst();
\r
207 for(int i = 0; i < players.count(); i++)
\r
209 for(int j = 0; j < players.count(); j++)
\r
211 if((order[i] == sp[j]))
\r
213 if(flag[0] != 1 && set == 0 && flag2[j] == 0)
\r
220 else if(j == 1 && players.count() >= 2)
\r
222 else if(j == 2 && players.count() >= 3)
\r
224 else if(j == 3 && players.count() >= 4)
\r
228 ui->label_leaderboardPlayer1->setText(players[j]);
\r
231 ui->label_leaderboardPlayer1_2->setText("+"+QString::number(sp[j]));
\r
232 else if (sp[j] == 0)
\r
233 ui->label_leaderboardPlayer1_2->setText("PAR");
\r
235 ui->label_leaderboardPlayer1_2->setText(QString::number(sp[j]));
\r
238 ui->label_leaderboardPlayer1_3->setText("+"+QString::number(hcpsp[j]));
\r
239 else if (hcpsp[j] == 0)
\r
240 ui->label_leaderboardPlayer1_3->setText("PAR");
\r
242 ui->label_leaderboardPlayer1_3->setText(QString::number(hcpsp[j]));
\r
244 else if(flag[1] != 1 && set == 0 && flag2[j] == 0 && players.count() >= 2)
\r
251 else if(j == 1 && players.count() >= 2)
\r
253 else if(j == 2 && players.count() >= 3)
\r
255 else if(j == 3 && players.count() >= 4)
\r
258 ui->label_leaderboardPlayer2->setText(players[j]);
\r
261 ui->label_leaderboardPlayer2_2->setText("+"+QString::number(sp[j]));
\r
262 else if (sp[j] == 0)
\r
263 ui->label_leaderboardPlayer2_2->setText("PAR");
\r
265 ui->label_leaderboardPlayer2_2->setText(QString::number(sp[j]));
\r
268 ui->label_leaderboardPlayer2_3->setText("+"+QString::number(hcpsp[j]));
\r
269 else if (hcpsp[j] == 0)
\r
270 ui->label_leaderboardPlayer2_3->setText("PAR");
\r
272 ui->label_leaderboardPlayer2_3->setText(QString::number(hcpsp[j]));
\r
274 else if(flag[2] != 1 && set == 0 && flag2[j] == 0 && players.count() >= 3)
\r
281 else if(j == 1 && players.count() >= 2)
\r
283 else if(j == 2 && players.count() >= 3)
\r
285 else if(j == 3 && players.count() >= 4)
\r
288 ui->label_leaderboardPlayer3->setText(players[j]);
\r
291 ui->label_leaderboardPlayer3_2->setText("+"+QString::number(sp[j]));
\r
292 else if (sp[j] == 0)
\r
293 ui->label_leaderboardPlayer3_2->setText("PAR");
\r
295 ui->label_leaderboardPlayer3_2->setText(QString::number(sp[j]));
\r
298 ui->label_leaderboardPlayer3_3->setText("+"+QString::number(hcpsp[j]));
\r
299 else if (hcpsp[j] == 0)
\r
300 ui->label_leaderboardPlayer3_3->setText("PAR");
\r
302 ui->label_leaderboardPlayer3_3->setText(QString::number(hcpsp[j]));
\r
304 else if(flag[3] != 1 && set == 0 && flag2[j] == 0 && players.count() >= 4)
\r
311 else if(j == 1 && players.count() >= 2)
\r
313 else if(j == 2 && players.count() >= 3)
\r
315 else if(j == 3 && players.count() >= 4)
\r
318 ui->label_leaderboardPlayer4->setText(players[j]);
\r
321 ui->label_leaderboardPlayer4_2->setText("+"+QString::number(sp[j]));
\r
322 else if (sp[j] == 0)
\r
323 ui->label_leaderboardPlayer4_2->setText("PAR");
\r
325 ui->label_leaderboardPlayer4_2->setText(QString::number(sp[j]));
\r
328 ui->label_leaderboardPlayer4_3->setText("+"+QString::number(hcpsp[j]));
\r
329 else if (hcpsp[j] == 0)
\r
330 ui->label_leaderboardPlayer4_3->setText("PAR");
\r
332 ui->label_leaderboardPlayer4_3->setText(QString::number(hcpsp[j]));
\r
340 void BasicScorecard::calculateHcpsPerCourse()
\r
343 bool found = false;
\r
345 for(int i = 1; i < 19; i++)
\r
347 for(int j = 1; j < 19; j++)
\r
349 if(courseDataHcp[j].toInt() == temp && found == false)
\r
361 for(int j = 0; j < players.count(); j++)
\r
363 for(int i = 0; i < hcp[j]; i++)
\r
367 temp2 = hcpOrder[k];
\r
368 hcpPerCourse[j][temp2]++;
\r
375 void BasicScorecard::on_player1_up_clicked()
\r
378 temp = ui->label_player1_score->text().toInt();
\r
381 ui->label_player1_score->setText(QString::number(temp));
\r
384 void BasicScorecard::on_player1_down_clicked()
\r
387 temp = ui->label_player1_score->text().toInt();
\r
390 ui->label_player1_score->setText(QString::number(temp));
\r
393 void BasicScorecard::on_player2_up_clicked()
\r
396 temp = ui->label_player2_score->text().toInt();
\r
399 ui->label_player2_score->setText(QString::number(temp));
\r
402 void BasicScorecard::on_player2_down_clicked()
\r
405 temp = ui->label_player2_score->text().toInt();
\r
408 ui->label_player2_score->setText(QString::number(temp));
\r
411 void BasicScorecard::on_player3_up_clicked()
\r
414 temp = ui->label_player3_score->text().toInt();
\r
417 ui->label_player3_score->setText(QString::number(temp));
\r
420 void BasicScorecard::on_player3_down_clicked()
\r
423 temp = ui->label_player3_score->text().toInt();
\r
426 ui->label_player3_score->setText(QString::number(temp));
\r
429 void BasicScorecard::on_player4_up_clicked()
\r
432 temp = ui->label_player4_score->text().toInt();
\r
435 ui->label_player4_score->setText(QString::number(temp));
\r
438 void BasicScorecard::on_player4_down_clicked()
\r
441 temp = ui->label_player4_score->text().toInt();
\r
444 ui->label_player4_score->setText(QString::number(temp));
\r
447 void BasicScorecard::on_pushButton_nextCourse_clicked()
\r
451 if(currentCourse < 18)
\r
457 displayCourseData();
\r
458 updateLeaderboard();
\r
463 void BasicScorecard::on_pushButton_prevCourse_clicked()
\r
467 if(currentCourse > 1)
\r
470 currentCourse = 18;
\r
473 displayCourseData();
\r
474 updateLeaderboard();
\r
477 void BasicScorecard::on_courseMap_clicked()
\r
482 void BasicScorecard::hideNotNeededFields()
\r
484 if(players.count() == 1)
\r
486 ui->label_player2->setText("");
\r
487 ui->label_player2_score->setText("");;
\r
488 ui->player2_down->setHidden(true);
\r
489 ui->player2_up->setHidden(true);
\r
490 ui->label_leaderboardPlayer2->setHidden(true);
\r
491 ui->label_leaderboardPlayer2_2->setHidden(true);
\r
492 ui->label_leaderboardPlayer2_3->setHidden(true);
\r
494 ui->label_player3->setText("");
\r
495 ui->label_player3_score->setText("");;
\r
496 ui->player3_down->setHidden(true);
\r
497 ui->player3_up->setHidden(true);
\r
498 ui->label_leaderboardPlayer3->setHidden(true);
\r
499 ui->label_leaderboardPlayer3_2->setHidden(true);
\r
500 ui->label_leaderboardPlayer3_3->setHidden(true);
\r
502 ui->label_player4->setText("");
\r
503 ui->label_player4_score->setText("");;
\r
504 ui->player4_down->setHidden(true);
\r
505 ui->player4_up->setHidden(true);
\r
506 ui->label_leaderboardPlayer4->setHidden(true);
\r
507 ui->label_leaderboardPlayer4_2->setHidden(true);
\r
508 ui->label_leaderboardPlayer4_3->setHidden(true);
\r
510 else if(players.count() == 2)
\r
512 ui->label_player3->setText("");
\r
513 ui->label_player3_score->setText("");;
\r
514 ui->player3_down->setHidden(true);
\r
515 ui->player3_up->setHidden(true);
\r
516 ui->label_leaderboardPlayer3->setHidden(true);
\r
517 ui->label_leaderboardPlayer3_2->setHidden(true);
\r
518 ui->label_leaderboardPlayer3_3->setHidden(true);
\r
520 ui->label_player4->setText("");
\r
521 ui->label_player4_score->setText("");;
\r
522 ui->player4_down->setHidden(true);
\r
523 ui->player4_up->setHidden(true);
\r
524 ui->label_leaderboardPlayer4->setHidden(true);
\r
525 ui->label_leaderboardPlayer4_2->setHidden(true);
\r
526 ui->label_leaderboardPlayer4_3->setHidden(true);
\r
528 else if(players.count() == 3)
\r
530 ui->label_player4->setText("");
\r
531 ui->label_player4_score->setText("");;
\r
532 ui->player4_down->setHidden(true);
\r
533 ui->player4_up->setHidden(true);
\r
534 ui->label_leaderboardPlayer4->setHidden(true);
\r
535 ui->label_leaderboardPlayer4_2->setHidden(true);
\r
536 ui->label_leaderboardPlayer4_3->setHidden(true);
\r