33 { |
33 { |
34 if(team.isNetTeam()) { |
34 if(team.isNetTeam()) { |
35 framePlaying->addTeam(team, true); |
35 framePlaying->addTeam(team, true); |
36 curPlayingTeams.push_back(team); |
36 curPlayingTeams.push_back(team); |
37 connect(framePlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
37 connect(framePlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
38 this, SLOT(netTeamStatusChanged(const HWTeam&))); |
38 this, SLOT(netTeamStatusChanged(const HWTeam&))); |
39 connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)), |
39 connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)), |
40 this, SLOT(hhNumChanged(const HWTeam&))); |
40 this, SLOT(hhNumChanged(const HWTeam&))); |
41 dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged(); |
41 dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged(); |
42 connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)), |
42 connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)), |
43 this, SLOT(proxyTeamColorChanged(const HWTeam&))); |
43 this, SLOT(proxyTeamColorChanged(const HWTeam&))); |
44 } else { |
44 } else { |
45 frameDontPlaying->addTeam(team, false); |
45 frameDontPlaying->addTeam(team, false); |
46 curDontPlayingTeams.push_back(team); |
46 curDontPlayingTeams.push_back(team); |
47 if(m_acceptOuter) { |
47 if(m_acceptOuter) { |
48 connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
48 connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
49 this, SLOT(pre_changeTeamStatus(HWTeam))); |
49 this, SLOT(pre_changeTeamStatus(HWTeam))); |
50 } else { |
50 } else { |
51 connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
51 connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
52 this, SLOT(changeTeamStatus(HWTeam))); |
52 this, SLOT(changeTeamStatus(HWTeam))); |
53 } |
53 } |
54 } |
54 } |
55 emit setEnabledGameStart(curPlayingTeams.size()>1); |
55 emit setEnabledGameStart(curPlayingTeams.size()>1); |
56 } |
56 } |
57 |
57 |
58 void TeamSelWidget::setInteractivity(bool interactive) |
58 void TeamSelWidget::setInteractivity(bool interactive) |
59 { |
59 { |
60 framePlaying->setInteractivity(interactive); |
60 framePlaying->setInteractivity(interactive); |
61 } |
61 } |
62 |
62 |
63 void TeamSelWidget::hhNumChanged(const HWTeam& team) |
63 void TeamSelWidget::hhNumChanged(const HWTeam& team) |
64 { |
64 { |
65 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
65 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
66 if(itPlay==curPlayingTeams.end()) |
66 if(itPlay==curPlayingTeams.end()) |
67 { |
67 { |
68 qWarning() << QString("hhNumChanged: team '%1' not found").arg(team.TeamName); |
68 qWarning() << QString("hhNumChanged: team '%1' not found").arg(team.TeamName); |
69 return; |
69 return; |
70 } |
70 } |
71 itPlay->numHedgehogs=team.numHedgehogs; |
71 itPlay->numHedgehogs=team.numHedgehogs; |
72 emit hhogsNumChanged(team); |
72 emit hhogsNumChanged(team); |
73 } |
73 } |
74 |
74 |
75 void TeamSelWidget::proxyTeamColorChanged(const HWTeam& team) |
75 void TeamSelWidget::proxyTeamColorChanged(const HWTeam& team) |
76 { |
76 { |
77 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
77 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
78 if(itPlay==curPlayingTeams.end()) |
78 if(itPlay==curPlayingTeams.end()) |
79 { |
79 { |
80 qWarning() << QString("proxyTeamColorChanged: team '%1' not found").arg(team.TeamName); |
80 qWarning() << QString("proxyTeamColorChanged: team '%1' not found").arg(team.TeamName); |
81 return; |
81 return; |
82 } |
82 } |
83 itPlay->teamColor=team.teamColor; |
83 itPlay->teamColor=team.teamColor; |
84 emit teamColorChanged(team); |
84 emit teamColorChanged(team); |
85 } |
85 } |
86 |
86 |
87 void TeamSelWidget::changeHHNum(const HWTeam& team) |
87 void TeamSelWidget::changeHHNum(const HWTeam& team) |
88 { |
88 { |
89 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
89 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
90 if(itPlay==curPlayingTeams.end()) |
90 if(itPlay==curPlayingTeams.end()) |
91 { |
91 { |
92 qWarning() << QString("changeHHNum: team '%1' not found").arg(team.TeamName); |
92 qWarning() << QString("changeHHNum: team '%1' not found").arg(team.TeamName); |
93 return; |
93 return; |
94 } |
94 } |
95 itPlay->numHedgehogs=team.numHedgehogs; |
95 itPlay->numHedgehogs=team.numHedgehogs; |
96 |
96 |
97 framePlaying->setHHNum(team); |
97 framePlaying->setHHNum(team); |
98 } |
98 } |
99 |
99 |
100 void TeamSelWidget::changeTeamColor(const HWTeam& team) |
100 void TeamSelWidget::changeTeamColor(const HWTeam& team) |
101 { |
101 { |
102 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
102 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
103 if(itPlay==curPlayingTeams.end()) |
103 if(itPlay==curPlayingTeams.end()) |
104 { |
104 { |
105 qWarning() << QString("changeTeamColor: team '%1' not found").arg(team.TeamName); |
105 qWarning() << QString("changeTeamColor: team '%1' not found").arg(team.TeamName); |
106 return; |
106 return; |
107 } |
107 } |
108 itPlay->teamColor=team.teamColor; |
108 itPlay->teamColor=team.teamColor; |
109 |
109 |
110 framePlaying->setTeamColor(team); |
110 framePlaying->setTeamColor(team); |
111 } |
111 } |
112 |
112 |
113 void TeamSelWidget::removeNetTeam(const HWTeam& team) |
113 void TeamSelWidget::removeNetTeam(const HWTeam& team) |
114 { |
114 { |
115 //qDebug() << QString("removeNetTeam: removing team '%1'").arg(team.TeamName); |
115 //qDebug() << QString("removeNetTeam: removing team '%1'").arg(team.TeamName); |
116 for(;;) { |
116 for(;;) { |
117 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
117 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
118 if(itPlay==curPlayingTeams.end()) |
118 if(itPlay==curPlayingTeams.end()) |
119 { |
119 { |
120 qWarning() << QString("removeNetTeam: team '%1' not found").arg(team.TeamName); |
120 qWarning() << QString("removeNetTeam: team '%1' not found").arg(team.TeamName); |
121 break; |
121 break; |
122 } |
122 } |
123 if(itPlay->isNetTeam()) { |
123 if(itPlay->isNetTeam()) { |
124 QObject::disconnect(framePlaying->getTeamWidget(*itPlay), SIGNAL(teamStatusChanged(HWTeam))); |
124 QObject::disconnect(framePlaying->getTeamWidget(*itPlay), SIGNAL(teamStatusChanged(HWTeam))); |
125 framePlaying->removeTeam(team); |
125 framePlaying->removeTeam(team); |
126 curPlayingTeams.erase(itPlay); |
126 curPlayingTeams.erase(itPlay); |
127 break; |
127 break; |
128 } |
128 } |
129 } |
129 } |
130 emit setEnabledGameStart(curPlayingTeams.size()>1); |
130 emit setEnabledGameStart(curPlayingTeams.size()>1); |
131 } |
131 } |
132 |
132 |
133 void TeamSelWidget::netTeamStatusChanged(const HWTeam& team) |
133 void TeamSelWidget::netTeamStatusChanged(const HWTeam& team) |
134 { |
134 { |
135 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
135 QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); |
176 |
176 |
177 pAddTeams->addTeam(team, willBePlaying); |
177 pAddTeams->addTeam(team, willBePlaying); |
178 pRemoveTeams->removeTeam(team); |
178 pRemoveTeams->removeTeam(team); |
179 if(!team.isNetTeam() && m_acceptOuter && !willBePlaying) { |
179 if(!team.isNetTeam() && m_acceptOuter && !willBePlaying) { |
180 connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
180 connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
181 this, SLOT(pre_changeTeamStatus(HWTeam))); |
181 this, SLOT(pre_changeTeamStatus(HWTeam))); |
182 } else { |
182 } else { |
183 connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
183 connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), |
184 this, SLOT(changeTeamStatus(HWTeam))); |
184 this, SLOT(changeTeamStatus(HWTeam))); |
185 } |
185 } |
186 if(willBePlaying) { |
186 if(willBePlaying) { |
187 connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)), |
187 connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)), |
188 this, SLOT(hhNumChanged(const HWTeam&))); |
188 this, SLOT(hhNumChanged(const HWTeam&))); |
189 dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged(); |
189 dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged(); |
190 connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)), |
190 connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)), |
191 this, SLOT(proxyTeamColorChanged(const HWTeam&))); |
191 this, SLOT(proxyTeamColorChanged(const HWTeam&))); |
192 emit teamColorChanged(((TeamShowWidget*)framePlaying->getTeamWidget(team))->getTeam()); |
192 emit teamColorChanged(((TeamShowWidget*)framePlaying->getTeamWidget(team))->getTeam()); |
193 } |
193 } |
194 |
194 |
195 QSize szh=pAddTeams->sizeHint(); |
195 QSize szh=pAddTeams->sizeHint(); |
196 QSize szh1=pRemoveTeams->sizeHint(); |
196 QSize szh1=pRemoveTeams->sizeHint(); |
202 emit setEnabledGameStart(curPlayingTeams.size()>1); |
202 emit setEnabledGameStart(curPlayingTeams.size()>1); |
203 } |
203 } |
204 |
204 |
205 void TeamSelWidget::addScrArea(FrameTeams* pfteams, QColor color, int fixedHeight) |
205 void TeamSelWidget::addScrArea(FrameTeams* pfteams, QColor color, int fixedHeight) |
206 { |
206 { |
207 VertScrArea* area = new VertScrArea(color); |
207 VertScrArea* area = new VertScrArea(color); |
208 area->setWidget(pfteams); |
208 area->setWidget(pfteams); |
209 mainLayout.addWidget(area, 30); |
209 mainLayout.addWidget(area, 30); |
210 if (fixedHeight > 0) |
210 if (fixedHeight > 0) |
211 { |
211 { |
212 area->setMinimumHeight(fixedHeight); |
212 area->setMinimumHeight(fixedHeight); |
213 area->setMaximumHeight(fixedHeight); |
213 area->setMaximumHeight(fixedHeight); |
214 area->setStyleSheet( |
214 area->setStyleSheet( |
215 "FrameTeams{" |
215 "FrameTeams{" |
216 "border: solid;" |
216 "border: solid;" |
217 "border-width: 1px;" |
217 "border-width: 1px;" |
218 "border-radius: 16px;" |
218 "border-radius: 16px;" |
219 "border-color: #ffcc00;" |
219 "border-color: #ffcc00;" |
220 "}" |
220 "}" |
221 ); |
221 ); |
222 } |
222 } |
223 } |
223 } |
224 |
224 |
225 TeamSelWidget::TeamSelWidget(QWidget* parent) : |
225 TeamSelWidget::TeamSelWidget(QWidget* parent) : |
226 QGroupBox(parent), mainLayout(this), m_acceptOuter(false) |
226 QGroupBox(parent), mainLayout(this), m_acceptOuter(false) |
227 { |
227 { |
228 setTitle(QGroupBox::tr("Playing teams")); |
228 setTitle(QGroupBox::tr("Playing teams")); |
229 framePlaying = new FrameTeams(); |
229 framePlaying = new FrameTeams(); |
230 frameDontPlaying = new FrameTeams(); |
230 frameDontPlaying = new FrameTeams(); |
231 |
231 |
232 QPalette p; |
232 QPalette p; |
233 p.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00)); |
233 p.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00)); |
234 addScrArea(framePlaying, p.color(QPalette::Window).light(105), 250); |
234 addScrArea(framePlaying, p.color(QPalette::Window).light(105), 250); |
235 addScrArea(frameDontPlaying, p.color(QPalette::Window).dark(105), 0); |
235 addScrArea(frameDontPlaying, p.color(QPalette::Window).dark(105), 0); |
236 QPushButton * btnSetup = new QPushButton(this); |
236 QPushButton * btnSetup = new QPushButton(this); |
237 btnSetup->setText(QPushButton::tr("Setup")); |
237 btnSetup->setText(QPushButton::tr("Setup")); |
238 connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked())); |
238 connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked())); |
239 mainLayout.addWidget(btnSetup); |
239 mainLayout.addWidget(btnSetup); |
240 } |
240 } |
241 |
241 |
242 void TeamSelWidget::setAcceptOuter(bool acceptOuter) |
242 void TeamSelWidget::setAcceptOuter(bool acceptOuter) |
243 { |
243 { |
244 m_acceptOuter=acceptOuter; |
244 m_acceptOuter=acceptOuter; |