# HG changeset patch # User displacer # Date 1169919668 0 # Node ID 4bac77f8cd38e5e2200a87890ed94f0e69ce31b6 # Parent 731ad6d27bd1f8e97b7dc05aa6d80832d4398852 network colors (alpha) diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/frameTeam.cpp --- a/QTfrontend/frameTeam.cpp Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/frameTeam.cpp Sat Jan 27 17:41:08 2007 +0000 @@ -76,10 +76,17 @@ void FrameTeams::setHHNum(const HWTeam& team) { TeamShowWidget* pTeamShowWidget = dynamic_cast(getTeamWidget(team)); - if(!pTeamShowWidget) throw; + if(!pTeamShowWidget) return; pTeamShowWidget->setHHNum(team.numHedgehogs); } +void FrameTeams::setTeamColor(const HWTeam& team) +{ + TeamShowWidget* pTeamShowWidget = dynamic_cast(getTeamWidget(team)); + if(!pTeamShowWidget) return; + pTeamShowWidget->changeTeamColor(team.teamColor); +} + QWidget* FrameTeams::getTeamWidget(HWTeam team) { tmapTeamToWidget::iterator it=teamToWidget.find(team); @@ -91,3 +98,8 @@ { return overallHedgehogs==maxHedgehogsPerGame; } + +void FrameTeams::emitTeamColorChanged(const HWTeam& team) +{ + emit teamColorChanged(team); +} diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/frameTeam.h --- a/QTfrontend/frameTeam.h Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/frameTeam.h Sat Jan 27 17:41:08 2007 +0000 @@ -39,8 +39,12 @@ bool isFullTeams() const; void resetColors(); void setHHNum(const HWTeam& team); + void setTeamColor(const HWTeam& team); void setNonInteractive(); + signals: + void teamColorChanged(const HWTeam&); + public slots: void addTeam(HWTeam team, bool willPlay); void removeTeam(HWTeam team); @@ -51,6 +55,8 @@ QList availableColors; QList::Iterator currentColor; + void emitTeamColorChanged(const HWTeam& team); + QVBoxLayout mainLayout; typedef QMultiMap tmapTeamToWidget; tmapTeamToWidget teamToWidget; diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/hwform.cpp Sat Jan 27 17:41:08 2007 +0000 @@ -248,6 +248,8 @@ connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(hhogsNumChanged(const HWTeam&)), hwnet, SLOT(onHedgehogsNumChanged(const HWTeam&))); + connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(teamColorChanged(const HWTeam&)), + hwnet, SLOT(onTeamColorChanged(const HWTeam&))); connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(teamWillPlay(HWTeam)), hwnet, SLOT(AddTeam(HWTeam))); connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(teamNotPlaying(const HWTeam&)), hwnet, SLOT(RemoveTeam(const HWTeam&))); @@ -266,7 +268,8 @@ connect(hwnet, SIGNAL(fortsModeChanged(bool)), ui.pageNetGame->pGameCFG, SLOT(setFortsMode(bool))); connect(hwnet, SIGNAL(hhnumChanged(const HWTeam&)), ui.pageNetGame->pNetTeamsWidget, SLOT(changeHHNum(const HWTeam&))); - + connect(hwnet, SIGNAL(teamColorChanged(const HWTeam&)), + ui.pageNetGame->pNetTeamsWidget, SLOT(changeTeamColor(const HWTeam&))); hwnet->Connect(hostName, port, nick); config->SaveOptions(); diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/newnetclient.cpp --- a/QTfrontend/newnetclient.cpp Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/newnetclient.cpp Sat Jan 27 17:41:08 2007 +0000 @@ -245,6 +245,15 @@ emit hhnumChanged(tmptm); return; } + if (lst[1] == "TEAM_COLOR") { + HWTeam tmptm(lst[2], lst[3].toUInt()); + if(m_networkToLocalteams.find(lst[3].toUInt())!=m_networkToLocalteams.end()) { + tmptm=HWTeam(lst[2]); // local team should be changed + } + tmptm.teamColor=QColor(lst[4]); + emit teamColorChanged(tmptm); + return; + } qDebug() << "unknow config param: " << lst[1]; return; } @@ -289,6 +298,14 @@ .arg(team.numHedgehogs)); } +void HWNewNet::onTeamColorChanged(const HWTeam& team) +{ + qDebug() << team.getNetID() << ":" << team.teamColor.name(); + RawSendNet(QString("CONFIG_PARAM%1TEAM_COLOR%1%2%1%3%1%4").arg(delimeter).arg(team.TeamName)\ + .arg(team.getNetID() ? team.getNetID() : m_networkToLocalteams.key(team.TeamName))\ + .arg(team.teamColor.name())); +} + void HWNewNet::onSeedChanged(const QString & seed) { RawSendNet(QString("CONFIG_PARAM%1SEED%1%2").arg(delimeter).arg(seed)); diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/newnetclient.h --- a/QTfrontend/newnetclient.h Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/newnetclient.h Sat Jan 27 17:41:08 2007 +0000 @@ -98,6 +98,7 @@ void turnTimeChanged(quint32 time); void fortsModeChanged(bool value); void hhnumChanged(const HWTeam&); + void teamColorChanged(const HWTeam&); public slots: void SendNet(const QByteArray & buf); @@ -110,6 +111,7 @@ void onTurnTimeChanged(quint32 time); void onFortsModeChanged(bool value); void onHedgehogsNumChanged(const HWTeam& team); + void onTeamColorChanged(const HWTeam& team); private slots: void ClientRead(); diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/teamselect.cpp --- a/QTfrontend/teamselect.cpp Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/teamselect.cpp Sat Jan 27 17:41:08 2007 +0000 @@ -35,6 +35,8 @@ this, SLOT(netTeamStatusChanged(const HWTeam&))); connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)), this, SLOT(hhNumChanged(const HWTeam&))); + connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)), + this, SLOT(proxyTeamColorChanged(const HWTeam&))); } else { frameDontPlaying->addTeam(team, false); curDontPlayingTeams.push_back(team); @@ -55,14 +57,31 @@ emit hhogsNumChanged(team); } +void TeamSelWidget::proxyTeamColorChanged(const HWTeam& team) +{ + QList::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); + itPlay->teamColor=team.teamColor; + emit teamColorChanged(team); +} + void TeamSelWidget::changeHHNum(const HWTeam& team) { QList::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); + if(itPlay==curPlayingTeams.end()) return; itPlay->numHedgehogs=team.numHedgehogs; framePlaying->setHHNum(team); } +void TeamSelWidget::changeTeamColor(const HWTeam& team) +{ + QList::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); + if(itPlay==curPlayingTeams.end()) return; + itPlay->teamColor=team.teamColor; + + framePlaying->setTeamColor(team); +} + void TeamSelWidget::removeNetTeam(const HWTeam& team) { for(;;) { @@ -123,8 +142,13 @@ pRemoveTeams->removeTeam(team); QObject::connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), this, SLOT(changeTeamStatus(HWTeam))); - if(willBePlaying) connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)), - this, SLOT(hhNumChanged(const HWTeam&))); + if(willBePlaying) { + connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)), + this, SLOT(hhNumChanged(const HWTeam&))); + connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)), + this, SLOT(proxyTeamColorChanged(const HWTeam&))); + emit teamColorChanged(((TeamShowWidget*)framePlaying->getTeamWidget(team))->getTeam()); + } QSize szh=pAddTeams->sizeHint(); QSize szh1=pRemoveTeams->sizeHint(); diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/teamselect.h --- a/QTfrontend/teamselect.h Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/teamselect.h Sat Jan 27 17:41:08 2007 +0000 @@ -50,17 +50,20 @@ void addTeam(HWTeam team); void netTeamStatusChanged(const HWTeam& team); void changeHHNum(const HWTeam&); + void changeTeamColor(const HWTeam&); signals: void NewTeam(); void teamWillPlay(HWTeam team); void teamNotPlaying(const HWTeam& team); void hhogsNumChanged(const HWTeam&); + void teamColorChanged(const HWTeam&); private slots: void changeTeamStatus(HWTeam team); void newTeamClicked(); void hhNumChanged(const HWTeam& team); + void proxyTeamColorChanged(const HWTeam& team); private: void addScrArea(FrameTeams* pfteams, QColor color, int maxHeight); diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/teamselhelper.cpp --- a/QTfrontend/teamselhelper.cpp Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/teamselhelper.cpp Sat Jan 27 17:41:08 2007 +0000 @@ -111,17 +111,27 @@ return params; }*/ -void TeamShowWidget::changeTeamColor() +void TeamShowWidget::changeTeamColor(QColor color) { FrameTeams* pOurFrameTeams=dynamic_cast(parentWidget()); - if(++pOurFrameTeams->currentColor==pOurFrameTeams->availableColors.end()) { - pOurFrameTeams->currentColor=pOurFrameTeams->availableColors.begin(); + if(!color.isValid()) { + if(++pOurFrameTeams->currentColor==pOurFrameTeams->availableColors.end()) { + pOurFrameTeams->currentColor=pOurFrameTeams->availableColors.begin(); + } + color=QColor(*pOurFrameTeams->currentColor); } QPalette newPalette = palette(); - newPalette.setColor(QPalette::Button, QColor(*pOurFrameTeams->currentColor)); - newPalette.setColor(QPalette::Highlight, QColor(*pOurFrameTeams->currentColor)); + newPalette.setColor(QPalette::Button, color); + newPalette.setColor(QPalette::Highlight, color); //colorButt->setStyleSheet(QString("background-color : ")+pOurFrameTeams->currentColor->name()); colorButt->setStyle(QStyleFactory::create("plastique")); colorButt->setPalette(newPalette); + m_team.teamColor=color; + emit teamColorChanged(m_team); } + +HWTeam TeamShowWidget::getTeam() const +{ + return m_team; +} diff -r 731ad6d27bd1 -r 4bac77f8cd38 QTfrontend/teamselhelper.h --- a/QTfrontend/teamselhelper.h Sat Jan 27 14:18:33 2007 +0000 +++ b/QTfrontend/teamselhelper.h Sat Jan 27 17:41:08 2007 +0000 @@ -46,15 +46,19 @@ { Q_OBJECT + public slots: + void changeTeamColor(QColor color=QColor()); + private slots: void activateTeam(); - void changeTeamColor(); + void hhNumChanged(); public: TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent); void setPlaying(bool isPlaying); void setHHNum(unsigned int num); void setNonInteractive(); + HWTeam getTeam() const; private: TeamShowWidget(); @@ -66,12 +70,10 @@ QPushButton* butt; QPushButton* bText; - private slots: - void hhNumChanged(); - signals: void teamStatusChanged(HWTeam team); void hhNmChanged(const HWTeam&); + void teamColorChanged(const HWTeam&); }; #endif // _TEAMSEL_HELPER_INCLUDED