[prev in list] [next in list] [prev in thread] [next in thread]
List: atlantik-devel
Subject: [atlantik-cvs] CVS: kdegames/atlantik/client atlantik.cpp,1.135,1.136 atlantik.h,1.53,1.54
From: kde () office ! kde ! org
Date: 2003-01-20 0:57:28
[Download RAW message or body]
Update of /home/kde/kdegames/atlantik/client
In directory office:/tmp/cvs-serv20549/client
Modified Files:
atlantik.cpp atlantik.h
Log Message:
better handling of portfolioview add/remove's
Index: atlantik.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/atlantik.cpp,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -d -r1.135 -r1.136
--- atlantik.cpp 19 Jan 2003 23:58:59 -0000 1.135
+++ atlantik.cpp 20 Jan 2003 00:57:23 -0000 1.136
@@ -174,20 +174,13 @@
initBoard();
m_board->addToken(player);
- PortfolioView *portfolioView = new PortfolioView(m_atlanticCore, player, \
m_config.activeColor, m_config.inactiveColor, m_portfolioWidget);
- m_portfolioViews.append(portfolioView);
+ addPortfolioView(player);
if (player->isSelf())
m_playerSelf = player;
connect(player, SIGNAL(changed(Player *)), this, SLOT(playerChanged(Player *)));
- connect(player, SIGNAL(changed(Player *)), portfolioView, SLOT(playerChanged()));
connect(player, SIGNAL(changed(Player *)), m_board, SLOT(playerChanged(Player *)));
- connect(portfolioView, SIGNAL(newTrade(Player *)), m_atlantikNetwork, \
SLOT(newTrade(Player *)));
- connect(portfolioView, SIGNAL(estateClicked(Estate *)), m_board, \
SLOT(prependEstateDetails(Estate *)));
-
- m_portfolioLayout->addWidget(portfolioView);
- portfolioView->show();
}
void Atlantik::newEstate(Estate *estate)
@@ -212,6 +205,13 @@
void Atlantik::removeGUI(Player *player)
{
// Find and remove portfolioview
+ PortfolioView *portfolioView = findPortfolioView(player);
+ if (portfolioView)
+ {
+ m_portfolioViews.remove(portfolioView);
+ delete portfolioView;
+ }
+
// TODO: Remove tokens from board
}
@@ -507,10 +507,14 @@
void Atlantik::playerChanged(Player *player)
{
- if (player->gameId() == -1)
+ PortfolioView *portfolioView = findPortfolioView(player);
+ if (portfolioView && player->gameId() == -1)
{
- // Find and remove portfolioview
+ m_portfolioViews.remove(portfolioView);
+ delete portfolioView;
}
+ else if (!portfolioView && player->gameId() != -1)
+ addPortfolioView(player);
if (player == m_playerSelf)
{
@@ -559,4 +563,27 @@
connect(this, SIGNAL(jailCard()), m_atlantikNetwork, SLOT(jailCard()));
connect(this, SIGNAL(jailPay()), m_atlantikNetwork, SLOT(jailPay()));
connect(this, SIGNAL(jailRoll()), m_atlantikNetwork, SLOT(jailRoll()));
+}
+
+void Atlantik::addPortfolioView(Player *player)
+{
+ PortfolioView *portfolioView = new PortfolioView(m_atlanticCore, player, \
m_config.activeColor, m_config.inactiveColor, m_portfolioWidget); \
+ m_portfolioViews.append(portfolioView); +
+ connect(player, SIGNAL(changed(Player *)), portfolioView, SLOT(playerChanged()));
+ connect(portfolioView, SIGNAL(newTrade(Player *)), m_atlantikNetwork, \
SLOT(newTrade(Player *))); + connect(portfolioView, SIGNAL(estateClicked(Estate *)), \
m_board, SLOT(prependEstateDetails(Estate *))); +
+ m_portfolioLayout->addWidget(portfolioView);
+ portfolioView->show();
+}
+
+PortfolioView *Atlantik::findPortfolioView(Player *player)
+{
+ PortfolioView *portfolioView = 0;
+ for (QPtrListIterator<PortfolioView> it(m_portfolioViews); (portfolioView = *it) ; \
++it) + if (player == portfolioView->player())
+ return portfolioView;
+
+ return 0;
}
Index: atlantik.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/atlantik.h,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- atlantik.h 19 Jan 2003 23:58:59 -0000 1.53
+++ atlantik.h 20 Jan 2003 00:57:23 -0000 1.54
@@ -186,6 +186,8 @@
private:
void initNetworkObject();
+ void addPortfolioView(Player *player);
+ PortfolioView *findPortfolioView(Player *player);
QWidget *m_mainWidget, *m_portfolioWidget;
QGridLayout *m_mainLayout;
_______________________________________________
atlantik-cvs mailing list
atlantik-cvs@mail.kde.org
http://mail.kde.org/mailman/listinfo/atlantik-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic