Update of /home/kde/kdegames/atlantik/libatlantikui In directory office:/tmp/cvs-serv27872/libatlantikui Modified Files: portfolioview.cpp portfolioview.h Log Message: bugfix: clear portfolioviews when playerSelf is not in game Index: portfolioview.cpp =================================================================== RCS file: /home/kde/kdegames/atlantik/libatlantikui/portfolioview.cpp,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- portfolioview.cpp 18 Nov 2003 22:20:08 -0000 1.57 +++ portfolioview.cpp 8 Dec 2003 17:10:20 -0000 1.58 @@ -1,4 +1,4 @@ -// Copyright (c) 2002 Rob Kaper +// Copyright (c) 2002-2003 Rob Kaper // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -48,11 +48,11 @@ m_inactiveColor = inactiveColor; m_lastPE = 0; - setBackgroundColor(Qt::white); - qpixmap = 0; b_recreate = true; + m_portfolioEstates.setAutoDelete(true); + setBackgroundColor(Qt::white); setMinimumHeight(ICONSIZE); // Init icon @@ -63,8 +63,9 @@ PortfolioView::~PortfolioView() { - delete m_image; - delete qpixmap; + clearPortfolio(); + delete m_image; + delete qpixmap; } Player *PortfolioView::player() @@ -74,7 +75,9 @@ void PortfolioView::buildPortfolio() { - // TODO: clear current portfolioEstateMap + if ( m_portfolioEstates.count() ) + clearPortfolio(); + // Loop through estate groups in order QPtrList estateGroups = m_atlanticCore->estateGroups(); PortfolioEstate *lastPE = 0, *firstPEprevGroup = 0; @@ -99,7 +102,7 @@ { // Create PE PortfolioEstate *portfolioEstate = new PortfolioEstate(estate, m_player, false, this, "portfolioestate"); - portfolioEstateMap[estate->id()] = portfolioEstate; + m_portfolioEstates.append(portfolioEstate); connect(portfolioEstate, SIGNAL(estateClicked(Estate *)), this, SIGNAL(estateClicked(Estate *))); if (lastPE) @@ -140,6 +143,11 @@ setMinimumHeight(minHeight); } +void PortfolioView::clearPortfolio() +{ + m_portfolioEstates.clear(); +} + void PortfolioView::loadIcon() { if (m_imageName == m_player->image()) @@ -211,7 +219,7 @@ painter.setFont(QFont(KGlobalSettings::generalFont().family(), KGlobalSettings::generalFont().pointSize(), QFont::Bold)); painter.drawText(ICONSIZE + KDialog::marginHint(), 15, m_player->name()); - if (portfolioEstateMap.size()) + if ( m_portfolioEstates.count() ) painter.drawText(width() - 50, 15, QString::number(m_player->money())); else { @@ -242,7 +250,7 @@ void PortfolioView::mousePressEvent(QMouseEvent *e) { - if (e->button()==RightButton && !m_player->isSelf() && portfolioEstateMap.size()) + if (e->button()==RightButton && !m_player->isSelf() && m_portfolioEstates.count() ) { KPopupMenu *rmbMenu = new KPopupMenu(this); rmbMenu->insertTitle(m_player->name()); Index: portfolioview.h =================================================================== RCS file: /home/kde/kdegames/atlantik/libatlantikui/portfolioview.h,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- portfolioview.h 18 Nov 2003 22:20:08 -0000 1.27 +++ portfolioview.h 8 Dec 2003 17:10:20 -0000 1.28 @@ -19,7 +19,7 @@ #include #include -#include +#include #include "portfolioestate.h" @@ -36,8 +36,11 @@ public: PortfolioView(AtlanticCore *core, Player *_player, QColor activeColor, QColor inactiveColor, QWidget *parent, const char *name = 0); + ~PortfolioView(); + void buildPortfolio(); - ~PortfolioView(); + void clearPortfolio(); + Player *player(); protected: @@ -63,7 +66,7 @@ QPixmap *qpixmap, *m_image; QString m_imageName; bool b_recreate; - QMap portfolioEstateMap; + QPtrList m_portfolioEstates; }; #endif _______________________________________________ atlantik-cvs mailing list atlantik-cvs@kde.org https://mail.kde.org/mailman/listinfo/atlantik-cvs