Version 0.3
[aspt.git] / playertab.cc
1 /*******************************************************************
2 Jan Cermak | johniez | aspt.johniez.com
3 Creative Commons 2.5 Attribution-NonCommercial-NoDerivs 2.5 license
4 http://creativecommons.org/licenses/by-nc-nd/2.5/legalcode
5 *******************************************************************/
6
7 #include "playertab.h"
8
9 /**
10  * \brief Player Container constructor.
11  *
12  * Add player to adequate Tab by player possition (GK, LB etc.).
13  */
14 PlayerCont::PlayerCont(int pos, QWidget *parent) : QWidget(parent) {
15         tabWidget = new QTabWidget;
16         tabWidget->setTabPosition(QTabWidget::West);
17         for(int i=0; i<playerCnt; ++i) {
18                 if(pos==0) {
19                         if(pls[i].position=="GK") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
20                 } else if(pos==1) {
21                         if(pls[i].position=="LB") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
22                 } else if(pos==2) {
23                         if(pls[i].position=="CB") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
24                 } else if(pos==3) {
25                         if(pls[i].position=="SW") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
26                 } else if(pos==4) {
27                         if(pls[i].position=="RB") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
28                 } else if(pos==5) {
29                         if(pls[i].position=="LM") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
30                 } else if(pos==6) {
31                         if(pls[i].position=="CM") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
32                 } else if(pos==7) {
33                         if(pls[i].position=="RM") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
34                 } else if(pos==8) {
35                         if(pls[i].position=="LF") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
36                 } else if(pos==9) {
37                         if(pls[i].position=="CF") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
38                 } else if(pos==10) {
39                         if(pls[i].position=="RF") tabWidget->addTab(new PlayerDetail(i, this), pls[i].fname + " " + pls[i].lname);
40                 }
41         }
42         mainLayout = new QVBoxLayout;
43         mainLayout->addWidget(tabWidget);
44         setLayout(mainLayout);
45 }
46
47 /**
48  * \brief Player Container destructor.
49  */
50 PlayerCont::~PlayerCont() {
51         delete tabWidget;
52         delete mainLayout;
53 }
54
55 /**
56  * \brief Players Tab constructor.
57  *
58  * Hold player possition Tabs (GK, LB...).
59  */
60 PlayerTab::PlayerTab(QWidget *parent) : QWidget(parent) {
61         initTabs();
62 }
63
64 /**
65  * \brief Players Tab destructor.
66  */
67 PlayerTab::~PlayerTab() {
68         delete tabWidget;
69         delete mainLayout;
70 }
71
72 /**
73  * \brief Init Player Tab - add Tabs with player possition.
74  */
75 void PlayerTab::initTabs() {
76         tabWidget = new QTabWidget;
77         tabWidget->setTabPosition(QTabWidget::North);
78         tabWidget->addTab(new PlayerCont(0), "GK");
79         tabWidget->addTab(new PlayerCont(1), "LB");
80         tabWidget->addTab(new PlayerCont(2), "CB");
81         tabWidget->addTab(new PlayerCont(3), "SW");
82         tabWidget->addTab(new PlayerCont(4), "RB");
83         tabWidget->addTab(new PlayerCont(5), "LM");
84         tabWidget->addTab(new PlayerCont(6), "CM");
85         tabWidget->addTab(new PlayerCont(7), "RM");
86         tabWidget->addTab(new PlayerCont(8), "LF");
87         tabWidget->addTab(new PlayerCont(9), "CF");
88         tabWidget->addTab(new PlayerCont(10), "RF");
89         
90         mainLayout = new QVBoxLayout;
91         mainLayout->addWidget(tabWidget);
92         setLayout(mainLayout);
93 }
94
95 /**
96  * \brief Slot assigned to data change action.
97  */
98 void PlayerTab::dataChanged() {
99         rebuildUI();
100 }
101
102 /**
103  * \brief Redraw UI with new data.
104  */
105 void PlayerTab::rebuildUI() {
106         delete tabWidget;
107         delete mainLayout;
108         
109         initTabs();
110 }
111