QTfrontend/teamselect.cpp
changeset 2948 3f21a9dc93d0
parent 2522 42986b9ebc74
child 4410 f9e38ce1e813
equal deleted inserted replaced
2947:803b277e4894 2948:3f21a9dc93d0
    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;