[prev in list] [next in list] [prev in thread] [next in thread]
List: atlantik-devel
Subject: [atlantik-cvs] CVS: kdegames/atlantik/libatlantikui board.cpp,1.91,1.92 board.h,1.56,1.57 display_wi
From: kde () office ! kde ! org
Date: 2002-07-23 23:39:43
[Download RAW message or body]
Update of /home/kde/kdegames/atlantik/libatlantikui
In directory office:/tmp/cvs-serv22616/libatlantikui
Modified Files:
board.cpp board.h display_widget.cpp display_widget.h
estatedetails.cpp estatedetails.h
Log Message:
less braindead display widgets
Index: board.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/board.cpp,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -d -r1.91 -r1.92
--- board.cpp 2002/07/22 22:07:30 1.91
+++ board.cpp 2002/07/23 23:39:41 1.92
@@ -40,6 +40,7 @@
m_maxEstates = maxEstates;
m_mode = mode;
m_animateTokens = false;
+ m_removeFirstOnPrepend = false;
int sideLen = maxEstates/4;
@@ -66,7 +67,7 @@
// spacer = new QWidget(this);
// m_gridLayout->addWidget(spacer, sideLen, sideLen); // SE
- m_center = 0;
+ m_displayQueue.setAutoDelete(true);
displayDefault();
QColor color;
@@ -175,7 +176,7 @@
// Designer has its own LMBClicked slot
if (m_mode == Play)
- connect(estateView, SIGNAL(LMBClicked(Estate *)), this, SLOT(displayEstateDetails(Estate *)));
+ connect(estateView, SIGNAL(LMBClicked(Estate *)), this, SLOT(prependEstateDetails(Estate *)));
if (estateId<sideLen)
m_gridLayout->addWidget(estateView, sideLen, sideLen-estateId);
@@ -200,12 +201,9 @@
void AtlantikBoard::addAuctionWidget(Auction *auction)
{
- if (m_center != 0)
- delete m_center;
-
- m_center = new AuctionWidget(m_atlanticCore, auction, this);
- m_gridLayout->addMultiCellWidget(m_center, 1, m_gridLayout->numRows()-2, 1, m_gridLayout->numCols()-2);
- m_center->show();
+ AuctionWidget *auctionW = new AuctionWidget(m_atlanticCore, auction, this);
+ m_displayQueue.prepend(auctionW);
+ updateCenter();
connect(auction, SIGNAL(completed()), this, SLOT(displayDefault()));
}
@@ -399,50 +397,100 @@
void AtlantikBoard::displayDefault()
{
- if (m_center != 0)
- delete m_center;
-
- m_center = new QWidget(this);
- m_gridLayout->addMultiCellWidget(m_center, 1, m_gridLayout->numRows()-2, 1, m_gridLayout->numCols()-2);
- m_center->show();
+ switch(m_displayQueue.count())
+ {
+ case 0:
+ m_displayQueue.prepend(new QWidget(this));
+ break;
+ case 1:
+ m_displayQueue.removeFirst();
+ m_displayQueue.prepend(new QWidget(this));
+ break;
+ default:
+ m_displayQueue.removeFirst();
+ break;
+ }
+ updateCenter();
}
void AtlantikBoard::displayText(QString caption, QString body)
{
- if (m_center != 0)
- delete m_center;
-
- BoardDisplay *display = new BoardDisplay(caption, body, this);
- m_center = display;
- m_gridLayout->addMultiCellWidget(m_center, 1, m_gridLayout->numRows()-2, 1, m_gridLayout->numCols()-2);
- m_center->show();
+ BoardDisplay *bDisplay = new BoardDisplay(caption, body, this);
- connect(display, SIGNAL(buttonCommand(QString)), this, SIGNAL(buttonCommand(QString)));
+ if (m_removeFirstOnPrepend)
+ m_displayQueue.removeFirst();
+ m_removeFirstOnPrepend = false;
+ m_displayQueue.prepend(bDisplay);
+ updateCenter();
-// QTimer::singleShot(3000, this, SLOT(displayDefault()));
+ connect(bDisplay, SIGNAL(buttonCommand(QString)), this, SIGNAL(buttonCommand(QString)));
+ connect(bDisplay, SIGNAL(buttonClose()), this, SLOT(displayDefault()));
}
void AtlantikBoard::displayButton(QString command, QString caption, bool enabled)
{
- if (BoardDisplay *display = dynamic_cast<BoardDisplay*>(m_center))
+ if (BoardDisplay *display = dynamic_cast<BoardDisplay*>(m_displayQueue.getFirst()))
display->addButton(command, caption, enabled);
- else if (EstateDetails *display = dynamic_cast<EstateDetails*>(m_center))
+ else if (EstateDetails *display = dynamic_cast<EstateDetails*>(m_displayQueue.getFirst()))
display->addButton(command, caption, enabled);
}
-void AtlantikBoard::displayEstateDetails(Estate *estate)
+void AtlantikBoard::addCloseButton()
+{
+ if (BoardDisplay *display = dynamic_cast<BoardDisplay*>(m_displayQueue.getFirst()))
+ display->addCloseButton();
+ else if (EstateDetails *display = dynamic_cast<EstateDetails*>(m_displayQueue.getFirst()))
+ display->addCloseButton();
+}
+
+void AtlantikBoard::insertEstateDetails(Estate *estate)
{
if (!estate)
return;
- // TODO: store m_center, it might be an auction or something else we'd like to restore
- if (m_center != 0)
- delete m_center;
+ if (m_removeFirstOnPrepend)
+ m_displayQueue.removeFirst();
+ m_removeFirstOnPrepend = false;
- EstateDetails *display = new EstateDetails(estate, this);
- m_center = display;
- m_gridLayout->addMultiCellWidget(display, 1, m_gridLayout->numRows()-2, 1, m_gridLayout->numCols()-2);
- display->show();
+ EstateDetails *eDetails = new EstateDetails(estate, this);
+ connect(eDetails, SIGNAL(buttonCommand(QString)), this, SIGNAL(buttonCommand(QString)));
+ connect(eDetails, SIGNAL(buttonClose()), this, SLOT(displayDefault()));
- connect(display, SIGNAL(buttonCommand(QString)), this, SIGNAL(buttonCommand(QString)));
+ // Don't overwrite possible chance cards or previous estates
+ int uid = 0;
+ if (BoardDisplay *display = dynamic_cast<BoardDisplay*>(m_displayQueue.getFirst()))
+ uid = 1;
+ else if (EstateDetails *display = dynamic_cast<EstateDetails*>(m_displayQueue.getFirst()))
+ uid = 1;
+
+ m_displayQueue.insert(uid, eDetails);
+
+ if (uid == 0)
+ updateCenter();
+}
+
+void AtlantikBoard::prependEstateDetails(Estate *estate)
+{
+ if (!estate)
+ return;
+
+ EstateDetails *eDetails = new EstateDetails(estate, this);
+ eDetails->addCloseButton();
+
+ if (m_removeFirstOnPrepend)
+ m_displayQueue.removeFirst();
+ m_removeFirstOnPrepend = true;
+ m_displayQueue.prepend(eDetails);
+ updateCenter();
+
+ connect(eDetails, SIGNAL(buttonCommand(QString)), this, SIGNAL(buttonCommand(QString)));
+ connect(eDetails, SIGNAL(buttonClose()), this, SLOT(displayDefault()));
+
+}
+
+void AtlantikBoard::updateCenter()
+{
+ QWidget *center = m_displayQueue.getFirst();
+ m_gridLayout->addMultiCellWidget(center, 1, m_gridLayout->numRows()-2, 1, m_gridLayout->numCols()-2);
+ center->show();
}
Index: board.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/board.h,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- board.h 2002/07/17 22:39:21 1.56
+++ board.h 2002/07/23 23:39:41 1.57
@@ -45,7 +45,6 @@
void addAuctionWidget(Auction *auction);
void addToken(Player *player, EstateView *location = 0);
void indicateUnownedChanged();
- QWidget *centerWidget() { return m_center; };
QPtrList<EstateView> estateViews();
public slots:
@@ -57,7 +56,9 @@
void displayDefault();
void displayText(QString caption, QString body);
void displayButton(QString command, QString caption, bool enabled);
- void displayEstateDetails(Estate *);
+ void prependEstateDetails(Estate *);
+ void insertEstateDetails(Estate *);
+ void addCloseButton();
signals:
void tokenConfirmation(Estate *estate);
@@ -65,15 +66,15 @@
protected:
void resizeEvent(QResizeEvent *);
- QWidget *m_center;
private:
- AtlanticCore *m_atlanticCore;
- DisplayMode m_mode;
-
EstateView *getEstateView(Estate *estate);
void moveToken(Token *, int destination);
+ void updateCenter();
+ AtlanticCore *m_atlanticCore;
+ DisplayMode m_mode;
+
QWidget *spacer;
QGridLayout *m_gridLayout;
Token *move_token;
@@ -85,6 +86,8 @@
QPtrList<EstateView> m_estateViews;
QMap<Player *, Token *> tokenMap;
+ QPtrList<QWidget> m_displayQueue;
+ bool m_removeFirstOnPrepend;
};
#endif
Index: display_widget.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/display_widget.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- display_widget.cpp 2002/07/23 10:45:46 1.13
+++ display_widget.cpp 2002/07/23 23:39:41 1.14
@@ -48,6 +48,15 @@
connect(button, SIGNAL(pressed()), this, SLOT(buttonPressed()));
}
+void BoardDisplay::addCloseButton()
+{
+ KPushButton *button = new KPushButton("Close", this);
+ m_buttonBox->addWidget(button);
+ button->show();
+
+ connect(button, SIGNAL(pressed()), this, SIGNAL(buttonClose()));
+}
+
void BoardDisplay::buttonPressed()
{
QObject *o = QObject::sender();
Index: display_widget.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/display_widget.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- display_widget.h 2002/07/23 10:45:46 1.12
+++ display_widget.h 2002/07/23 23:39:41 1.13
@@ -33,6 +33,7 @@
BoardDisplay(const QString &caption, const QString &body, QWidget *parent, const char *name=0);
void addButton(const QString &command, const QString &caption, bool enabled);
+ void addCloseButton();
private slots:
void buttonPressed();
@@ -40,6 +41,7 @@
signals:
void buttonCommand(QString);
+ void buttonClose();
private:
QHBoxLayout *m_buttonBox;
Index: estatedetails.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/estatedetails.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- estatedetails.cpp 2002/07/17 22:39:21 1.6
+++ estatedetails.cpp 2002/07/23 23:39:41 1.7
@@ -209,6 +209,14 @@
connect(button, SIGNAL(pressed()), this, SLOT(buttonPressed()));
}
+void EstateDetails::addCloseButton()
+{
+ KPushButton *button = new KPushButton("Close", this);
+ m_buttonBox->addWidget(button);
+ button->show();
+
+ connect(button, SIGNAL(pressed()), this, SIGNAL(buttonClose()));
+}
void EstateDetails::buttonPressed()
{
Index: estatedetails.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/estatedetails.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- estatedetails.h 2002/07/17 22:39:22 1.4
+++ estatedetails.h 2002/07/23 23:39:41 1.5
@@ -38,6 +38,7 @@
Estate *estate() { return m_estate; }
void addButton(const QString command, const QString caption, bool enabled);
+ void addCloseButton();
protected:
void paintEvent(QPaintEvent *);
@@ -48,6 +49,7 @@
signals:
void buttonCommand(QString);
+ void buttonClose();
private:
Estate *m_estate;
_______________________________________________
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