# HG changeset patch # User displacer # Date 1180909187 0 # Node ID a14eaf35cf4b4263b7bc077e7654acb17e87fcf9 # Parent 92fb2b0d5117d33a8d2ef7a9deba7ecbd53abefa "Setup" button instead of "New team", exclude playing teams from setup FIXME: still need more work if teamname is updated while configuring (or team added) diff -r 92fb2b0d5117 -r a14eaf35cf4b QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Sun Jun 03 17:21:57 2007 +0000 +++ b/QTfrontend/hwform.cpp Sun Jun 03 22:19:47 2007 +0000 @@ -45,7 +45,7 @@ #include "chatwidget.h" HWForm::HWForm(QWidget *parent) - : QMainWindow(parent), pnetserver(0), pUdpServer(0) + : QMainWindow(parent), pnetserver(0), pUdpServer(0), editedTeam(0) { ui.setupUi(this); @@ -94,20 +94,25 @@ connect(ui.pageNetGame->BtnGo, SIGNAL(clicked()), this, SLOT(NetStartGame())); connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(setEnabledGameStart(bool)), ui.pageNetGame->BtnGo, SLOT(setEnabled(bool))); - connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(NewTeam()), this, SLOT(NewTeam())); + connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(SetupClicked()), this, SLOT(IntermediateSetup())); connect(ui.pageInfo->BtnBack, SIGNAL(clicked()), this, SLOT(GoBack())); connect(ui.pageGameStats->BtnBack, SIGNAL(clicked()), this, SLOT(GoBack())); - connect(ui.pageMultiplayer->teamsSelect, SIGNAL(NewTeam()), this, SLOT(NewTeam())); + connect(ui.pageMultiplayer->teamsSelect, SIGNAL(SetupClicked()), this, SLOT(IntermediateSetup())); GoToPage(ID_PAGE_MAIN); } -void HWForm::UpdateTeamsLists() +void HWForm::UpdateTeamsLists(const QStringList* editable_teams) { - QStringList teamslist = config->GetTeamsList(); + QStringList teamslist; + if(editable_teams) { + teamslist=*editable_teams; + } else { + teamslist = config->GetTeamsList(); + } if(teamslist.empty()) { HWTeam defaultTeam("DefaultTeam"); @@ -177,8 +182,10 @@ team.LoadFromFile(); teamsList.push_back(team); } - if(lastid==ID_PAGE_SETUP_TEAM) { - if (editedTeam) curTeamSelWidget->addTeam(*editedTeam); + if(lastid==ID_PAGE_SETUP) { // _TEAM + if (editedTeam) { + curTeamSelWidget->addTeam(*editedTeam); + } } else { curTeamSelWidget->resetPlayingTeams(teamsList); } @@ -187,8 +194,9 @@ void HWForm::GoToPage(quint8 id) { + quint8 lastid=ui.Pages->currentIndex(); PagesStack.push(ui.Pages->currentIndex()); - OnPageShown(id); + OnPageShown(id, lastid); ui.Pages->setCurrentIndex(id); } @@ -221,6 +229,26 @@ } } +void HWForm::IntermediateSetup() +{ + quint8 id=ui.Pages->currentIndex(); + TeamSelWidget* curTeamSelWidget; + if(id == ID_PAGE_MULTIPLAYER) { + curTeamSelWidget=ui.pageMultiplayer->teamsSelect; + } else { + curTeamSelWidget=ui.pageNetGame->pNetTeamsWidget; + } + QList teams=curTeamSelWidget->getDontPlayingTeams(); + QStringList tmnames; + for(QList::iterator it = teams.begin(); it != teams.end(); ++it) { + qDebug() << it->TeamName; + tmnames+=it->TeamName; + } + UpdateTeamsLists(&tmnames); // FIXME: still need more work if teamname is updated while configuring + + GoToPage(ID_PAGE_SETUP); +} + void HWForm::NewTeam() { editedTeam = new HWTeam("unnamed"); @@ -240,10 +268,10 @@ { editedTeam->GetFromPage(this); editedTeam->SaveToFile(); + delete editedTeam; + editedTeam=0; UpdateTeamsLists(); GoBack(); - delete editedTeam; - editedTeam=0; } void HWForm::TeamDiscard() diff -r 92fb2b0d5117 -r a14eaf35cf4b QTfrontend/hwform.h --- a/QTfrontend/hwform.h Sun Jun 03 17:21:57 2007 +0000 +++ b/QTfrontend/hwform.h Sun Jun 03 22:19:47 2007 +0000 @@ -53,6 +53,7 @@ void GoBack(); void btnExitPressed(); void btnExitClicked(); + void IntermediateSetup(); void NewTeam(); void EditTeam(); void TeamSave(); @@ -76,7 +77,7 @@ private: void _NetConnect(const QString & hostName, quint16 port, const QString & nick); - void UpdateTeamsLists(); + void UpdateTeamsLists(const QStringList* editable_teams=0); void CreateGame(GameCFGWidget * gamecfg, TeamSelWidget* pTeamSelWidget); enum PageIDs { ID_PAGE_SINGLEPLAYER = 0, diff -r 92fb2b0d5117 -r a14eaf35cf4b QTfrontend/teamselect.cpp --- a/QTfrontend/teamselect.cpp Sun Jun 03 17:21:57 2007 +0000 +++ b/QTfrontend/teamselect.cpp Sun Jun 03 22:19:47 2007 +0000 @@ -196,10 +196,10 @@ QPalette p; addScrArea(framePlaying, p.color(QPalette::Window).light(105), 200); addScrArea(frameDontPlaying, p.color(QPalette::Window).dark(105), 0); - newTeam = new QPushButton(this); - newTeam->setText(QPushButton::tr("New team")); - connect(newTeam, SIGNAL(clicked()), this, SLOT(newTeamClicked())); - mainLayout.addWidget(newTeam); + QPushButton * btnSetup = new QPushButton(this); + btnSetup->setText(QPushButton::tr("Setup")); + connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked())); + mainLayout.addWidget(btnSetup); } void TeamSelWidget::setAcceptOuter(bool acceptOuter) @@ -237,13 +237,13 @@ return curPlayingTeams; } +QList TeamSelWidget::getDontPlayingTeams() const +{ + return curDontPlayingTeams; +} + void TeamSelWidget::pre_changeTeamStatus(HWTeam team) { team.teamColor=framePlaying->getNextColor(); emit acceptRequested(team); } - -void TeamSelWidget::newTeamClicked() -{ - emit NewTeam(); -} diff -r 92fb2b0d5117 -r a14eaf35cf4b QTfrontend/teamselect.h --- a/QTfrontend/teamselect.h Sun Jun 03 17:21:57 2007 +0000 +++ b/QTfrontend/teamselect.h Sun Jun 03 22:19:47 2007 +0000 @@ -44,6 +44,7 @@ void resetPlayingTeams(const QList& teamslist); bool isPlaying(HWTeam team) const; QList getPlayingTeams() const; + QList getDontPlayingTeams() const; void setNonInteractive(); public slots: @@ -55,7 +56,7 @@ signals: void setEnabledGameStart(bool); - void NewTeam(); + void SetupClicked(); void teamWillPlay(HWTeam team); void teamNotPlaying(const HWTeam& team); void hhogsNumChanged(const HWTeam&); @@ -64,7 +65,6 @@ private slots: void pre_changeTeamStatus(HWTeam); - void newTeamClicked(); void hhNumChanged(const HWTeam& team); void proxyTeamColorChanged(const HWTeam& team); @@ -75,7 +75,6 @@ QVBoxLayout mainLayout; bool m_acceptOuter; - QPushButton * newTeam; QList curPlayingTeams; QList curDontPlayingTeams;