24 #include "frameTeam.h" |
24 #include "frameTeam.h" |
25 #include "teamselhelper.h" |
25 #include "teamselhelper.h" |
26 #include "hwconsts.h" |
26 #include "hwconsts.h" |
27 |
27 |
28 FrameTeams::FrameTeams(QWidget* parent) : |
28 FrameTeams::FrameTeams(QWidget* parent) : |
29 QFrame(parent), maxHedgehogsPerGame(48), overallHedgehogs(0), mainLayout(this), nonInteractive(false) |
29 QFrame(parent), maxHedgehogsPerGame(48), overallHedgehogs(0), mainLayout(this), nonInteractive(false) |
30 { |
30 { |
31 QPalette newPalette = palette(); |
31 QPalette newPalette = palette(); |
32 newPalette.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00)); |
32 newPalette.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00)); |
33 setPalette(newPalette); |
33 setPalette(newPalette); |
34 setAutoFillBackground(true); |
34 setAutoFillBackground(true); |
44 } |
44 } |
45 |
45 |
46 void FrameTeams::setInteractivity(bool interactive) |
46 void FrameTeams::setInteractivity(bool interactive) |
47 { |
47 { |
48 nonInteractive = !interactive; |
48 nonInteractive = !interactive; |
49 for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ++it) { |
49 for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ++it) |
|
50 { |
50 TeamShowWidget* pts = dynamic_cast<TeamShowWidget*>(it.value()); |
51 TeamShowWidget* pts = dynamic_cast<TeamShowWidget*>(it.value()); |
51 if(!pts) throw; |
52 if(!pts) throw; |
52 pts->setInteractivity(interactive); |
53 pts->setInteractivity(interactive); |
53 } |
54 } |
54 } |
55 } |
55 |
56 |
56 void FrameTeams::resetColors() |
57 void FrameTeams::resetColors() |
57 { |
58 { |
58 currentColor=availableColors.end() - 1; // ensure next color is the first one |
59 currentColor=availableColors.end() - 1; // ensure next color is the first one |
59 } |
60 } |
60 |
61 |
61 QColor FrameTeams::getNextColor() const |
62 QColor FrameTeams::getNextColor() const |
62 { |
63 { |
63 QList<QColor>::ConstIterator nextColor=currentColor; |
64 QList<QColor>::ConstIterator nextColor=currentColor; |
64 ++nextColor; |
65 ++nextColor; |
65 if (nextColor==availableColors.end()) nextColor=availableColors.begin(); |
66 if (nextColor==availableColors.end()) nextColor=availableColors.begin(); |
66 return *nextColor; |
67 return *nextColor; |
67 } |
68 } |
68 |
69 |
69 void FrameTeams::addTeam(HWTeam team, bool willPlay) |
70 void FrameTeams::addTeam(HWTeam team, bool willPlay) |
70 { |
71 { |
71 TeamShowWidget* pTeamShowWidget = new TeamShowWidget(team, willPlay, this); |
72 TeamShowWidget* pTeamShowWidget = new TeamShowWidget(team, willPlay, this); |
72 if(nonInteractive) pTeamShowWidget->setInteractivity(false); |
73 if(nonInteractive) pTeamShowWidget->setInteractivity(false); |
73 // int hght=teamToWidget.empty() ? 0 : teamToWidget.begin()->second->size().height(); |
74 // int hght=teamToWidget.empty() ? 0 : teamToWidget.begin()->second->size().height(); |
74 mainLayout.addWidget(pTeamShowWidget); |
75 mainLayout.addWidget(pTeamShowWidget); |
75 teamToWidget.insert(team, pTeamShowWidget); |
76 teamToWidget.insert(team, pTeamShowWidget); |
76 QResizeEvent* pevent=new QResizeEvent(parentWidget()->size(), parentWidget()->size()); |
77 QResizeEvent* pevent=new QResizeEvent(parentWidget()->size(), parentWidget()->size()); |
77 QCoreApplication::postEvent(parentWidget(), pevent); |
78 QCoreApplication::postEvent(parentWidget(), pevent); |
78 } |
79 } |
79 |
80 |
80 void FrameTeams::removeTeam(HWTeam team) |
81 void FrameTeams::removeTeam(HWTeam team) |
81 { |
82 { |
82 tmapTeamToWidget::iterator it=teamToWidget.find(team); |
83 tmapTeamToWidget::iterator it=teamToWidget.find(team); |
83 if(it==teamToWidget.end()) return; |
84 if(it==teamToWidget.end()) return; |
84 mainLayout.removeWidget(it.value()); |
85 mainLayout.removeWidget(it.value()); |
85 it.value()->deleteLater(); |
86 it.value()->deleteLater(); |
86 teamToWidget.erase(it); |
87 teamToWidget.erase(it); |
87 } |
88 } |
88 |
89 |
89 void FrameTeams::resetTeams() |
90 void FrameTeams::resetTeams() |
90 { |
91 { |
91 for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ) { |
92 for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ) |
92 mainLayout.removeWidget(it.value()); |
93 { |
93 it.value()->deleteLater(); |
94 mainLayout.removeWidget(it.value()); |
94 teamToWidget.erase(it++); |
95 it.value()->deleteLater(); |
95 } |
96 teamToWidget.erase(it++); |
|
97 } |
96 } |
98 } |
97 |
99 |
98 void FrameTeams::setHHNum(const HWTeam& team) |
100 void FrameTeams::setHHNum(const HWTeam& team) |
99 { |
101 { |
100 TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team)); |
102 TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team)); |
101 if(!pTeamShowWidget) return; |
103 if(!pTeamShowWidget) return; |
102 pTeamShowWidget->setHHNum(team.numHedgehogs()); |
104 pTeamShowWidget->setHHNum(team.numHedgehogs()); |
103 } |
105 } |
104 |
106 |
105 void FrameTeams::setTeamColor(const HWTeam& team) |
107 void FrameTeams::setTeamColor(const HWTeam& team) |
106 { |
108 { |
107 TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team)); |
109 TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team)); |
108 if(!pTeamShowWidget) return; |
110 if(!pTeamShowWidget) return; |
109 pTeamShowWidget->changeTeamColor(team.color()); |
111 pTeamShowWidget->changeTeamColor(team.color()); |
110 } |
112 } |
111 |
113 |
112 QWidget* FrameTeams::getTeamWidget(HWTeam team) |
114 QWidget* FrameTeams::getTeamWidget(HWTeam team) |
113 { |
115 { |
114 //qDebug() << "FrameTeams::getTeamWidget getNetID() = " << team.getNetID(); |
116 //qDebug() << "FrameTeams::getTeamWidget getNetID() = " << team.getNetID(); |
115 tmapTeamToWidget::iterator it=teamToWidget.find(team); |
117 tmapTeamToWidget::iterator it=teamToWidget.find(team); |
116 QWidget* ret = it!=teamToWidget.end() ? it.value() : 0; |
118 QWidget* ret = it!=teamToWidget.end() ? it.value() : 0; |
117 return ret; |
119 return ret; |
118 } |
120 } |
119 |
121 |
120 bool FrameTeams::isFullTeams() const |
122 bool FrameTeams::isFullTeams() const |
121 { |
123 { |
122 return overallHedgehogs==maxHedgehogsPerGame; |
124 return overallHedgehogs==maxHedgehogsPerGame; |
123 } |
125 } |
124 |
126 |
125 void FrameTeams::emitTeamColorChanged(const HWTeam& team) |
127 void FrameTeams::emitTeamColorChanged(const HWTeam& team) |
126 { |
128 { |
127 emit teamColorChanged(team); |
129 emit teamColorChanged(team); |
128 } |
130 } |