diff -r 57c2ef19f719 -r f97a7a3dc8f6 QTfrontend/teamselect.cpp --- a/QTfrontend/teamselect.cpp Thu Oct 05 16:33:18 2006 +0000 +++ b/QTfrontend/teamselect.cpp Thu Oct 05 17:02:09 2006 +0000 @@ -1,133 +1,133 @@ -/* - * Hedgewars, a worms-like game - * Copyright (c) 2006 Ulyanov Igor - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - -#include -#include -#include -#include -#include - -#include -#include "teamselect.h" -#include "teamselhelper.h" -#include "frameTeam.h" - -void TeamSelWidget::addTeam(HWTeam team) -{ - frameDontPlaying->addTeam(team, false); - curDontPlayingTeams.push_back(team); - QObject::connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), - this, SLOT(changeTeamStatus(HWTeam))); -} - -//void TeamSelWidget::removeTeam(__attribute__ ((unused)) HWTeam team) -//{ - //curDontPlayingTeams.erase(std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team)); -//} - -void TeamSelWidget::changeTeamStatus(HWTeam team) -{ - list::iterator itDontPlay=std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team); - list::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); - - bool willBePlaying=itDontPlay!=curDontPlayingTeams.end(); - - if(!willBePlaying) { - // playing team => dont playing - curDontPlayingTeams.push_back(*itPlay); - curPlayingTeams.erase(itPlay); - } else { - // return if max playing teams reached - if(framePlaying->isFullTeams()) return; - // dont playing team => playing - curPlayingTeams.push_back(*itDontPlay); - curDontPlayingTeams.erase(itDontPlay); - } - - FrameTeams* pRemoveTeams; - FrameTeams* pAddTeams; - if(!willBePlaying) { - pRemoveTeams=framePlaying; - pAddTeams=frameDontPlaying; - } else { - pRemoveTeams=frameDontPlaying; - pAddTeams=framePlaying; - } - - pAddTeams->addTeam(team, willBePlaying); - pRemoveTeams->removeTeam(team); - QObject::connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), - this, SLOT(changeTeamStatus(HWTeam))); - - QSize szh=pAddTeams->sizeHint(); - QSize szh1=pRemoveTeams->sizeHint(); - if(szh.isValid() && szh1.isValid()) { - pAddTeams->resize(pAddTeams->size().width(), szh.height()); - pRemoveTeams->resize(pRemoveTeams->size().width(), szh1.height()); - } -} - -void TeamSelWidget::addScrArea(FrameTeams* pfteams, QColor color) -{ - VertScrArea* area=new VertScrArea(color); - area->setWidget(pfteams); - mainLayout.addWidget(area, 30); -} - -TeamSelWidget::TeamSelWidget(QWidget* parent) : - QWidget(parent), mainLayout(this) -{ - framePlaying=new FrameTeams(); - frameDontPlaying=new FrameTeams(); - addScrArea(framePlaying, QColor("DarkTurquoise")); - addScrArea(frameDontPlaying, QColor("LightGoldenrodYellow")); -} - -void TeamSelWidget::resetPlayingTeams(const QStringList& teamslist) -{ - list::iterator it; - for(it=curPlayingTeams.begin(); it!=curPlayingTeams.end(); it++) { - framePlaying->removeTeam(*it); - } - curPlayingTeams.clear(); - for(it=curDontPlayingTeams.begin(); it!=curDontPlayingTeams.end(); it++) { - frameDontPlaying->removeTeam(*it); - } - curDontPlayingTeams.clear(); - - for (QStringList::ConstIterator it = teamslist.begin(); it != teamslist.end(); ++it ) { - addTeam(*it); - } -} - -bool TeamSelWidget::isPlaying(HWTeam team) const -{ - return std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team)!=curPlayingTeams.end(); -} - -list TeamSelWidget::getPlayingTeams() const -{ - return curPlayingTeams; -} - -unsigned char TeamSelWidget::numHedgedogs(HWTeam team) const -{ - const TeamShowWidget* tsw=dynamic_cast(framePlaying->getTeamWidget(team)); - if(!tsw) return 0; - return tsw->getHedgehogsNum(); -} +/* + * Hedgewars, a worms-like game + * Copyright (c) 2006 Ulyanov Igor + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include +#include +#include +#include +#include + +#include +#include "teamselect.h" +#include "teamselhelper.h" +#include "frameTeam.h" + +void TeamSelWidget::addTeam(HWTeam team) +{ + frameDontPlaying->addTeam(team, false); + curDontPlayingTeams.push_back(team); + QObject::connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), + this, SLOT(changeTeamStatus(HWTeam))); +} + +//void TeamSelWidget::removeTeam(__attribute__ ((unused)) HWTeam team) +//{ + //curDontPlayingTeams.erase(std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team)); +//} + +void TeamSelWidget::changeTeamStatus(HWTeam team) +{ + list::iterator itDontPlay=std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team); + list::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); + + bool willBePlaying=itDontPlay!=curDontPlayingTeams.end(); + + if(!willBePlaying) { + // playing team => dont playing + curDontPlayingTeams.push_back(*itPlay); + curPlayingTeams.erase(itPlay); + } else { + // return if max playing teams reached + if(framePlaying->isFullTeams()) return; + // dont playing team => playing + curPlayingTeams.push_back(*itDontPlay); + curDontPlayingTeams.erase(itDontPlay); + } + + FrameTeams* pRemoveTeams; + FrameTeams* pAddTeams; + if(!willBePlaying) { + pRemoveTeams=framePlaying; + pAddTeams=frameDontPlaying; + } else { + pRemoveTeams=frameDontPlaying; + pAddTeams=framePlaying; + } + + pAddTeams->addTeam(team, willBePlaying); + pRemoveTeams->removeTeam(team); + QObject::connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), + this, SLOT(changeTeamStatus(HWTeam))); + + QSize szh=pAddTeams->sizeHint(); + QSize szh1=pRemoveTeams->sizeHint(); + if(szh.isValid() && szh1.isValid()) { + pAddTeams->resize(pAddTeams->size().width(), szh.height()); + pRemoveTeams->resize(pRemoveTeams->size().width(), szh1.height()); + } +} + +void TeamSelWidget::addScrArea(FrameTeams* pfteams, QColor color) +{ + VertScrArea* area=new VertScrArea(color); + area->setWidget(pfteams); + mainLayout.addWidget(area, 30); +} + +TeamSelWidget::TeamSelWidget(QWidget* parent) : + QWidget(parent), mainLayout(this) +{ + framePlaying=new FrameTeams(); + frameDontPlaying=new FrameTeams(); + addScrArea(framePlaying, QColor("DarkTurquoise")); + addScrArea(frameDontPlaying, QColor("LightGoldenrodYellow")); +} + +void TeamSelWidget::resetPlayingTeams(const QStringList& teamslist) +{ + list::iterator it; + for(it=curPlayingTeams.begin(); it!=curPlayingTeams.end(); it++) { + framePlaying->removeTeam(*it); + } + curPlayingTeams.clear(); + for(it=curDontPlayingTeams.begin(); it!=curDontPlayingTeams.end(); it++) { + frameDontPlaying->removeTeam(*it); + } + curDontPlayingTeams.clear(); + + for (QStringList::ConstIterator it = teamslist.begin(); it != teamslist.end(); ++it ) { + addTeam(*it); + } +} + +bool TeamSelWidget::isPlaying(HWTeam team) const +{ + return std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team)!=curPlayingTeams.end(); +} + +list TeamSelWidget::getPlayingTeams() const +{ + return curPlayingTeams; +} + +unsigned char TeamSelWidget::numHedgedogs(HWTeam team) const +{ + const TeamShowWidget* tsw=dynamic_cast(framePlaying->getTeamWidget(team)); + if(!tsw) return 0; + return tsw->getHedgehogsNum(); +}