really fixed zone view bug

This commit is contained in:
Max-Wilhelm Bruker 2009-07-02 18:03:23 +02:00
parent f308e9edef
commit 40d292c4ac
3 changed files with 5 additions and 3 deletions

View file

@ -4,6 +4,7 @@
#include "playerarea.h"
#include "counter.h"
#include "zoneviewzone.h"
#include "zoneviewwidget.h"
#include "game.h"
#include <QGraphicsScene>
#include <QMenu>
@ -157,7 +158,7 @@ void Player::gameEvent(const ServerEventData &event)
// Clean up existing zones first
for (int i = 0; i < zones.size(); i++) {
if (ZoneViewZone *view = zones.at(i)->getView())
emit closeZoneView(view);
((ZoneViewWidget *) view->parentItem())->close();
zones.at(i)->clearContents();
}

View file

@ -36,7 +36,7 @@ void ZoneViewLayout::toggleZoneView(Player *player, const QString &zoneName, int
for (int i = 0; i < views.size(); i++) {
ZoneViewZone *temp = views[i]->getZone();
if ((temp->getName() == zoneName) && (temp->getPlayer() == player)) { // view is already open
removeItem(views[i]);
views[i]->close();
if (temp->getNumberCards() == numberCards)
return;
}
@ -51,7 +51,7 @@ void ZoneViewLayout::toggleZoneView(Player *player, const QString &zoneName, int
void ZoneViewLayout::removeItem(ZoneViewWidget *item)
{
qDebug("ZoneViewLayout::removeItem");
delete views.takeAt(views.indexOf(item));
views.removeAt(views.indexOf(item));
reorganize();
}

View file

@ -69,5 +69,6 @@ void ZoneViewWidget::closeEvent(QCloseEvent *event)
if (shuffleCheckBox->isChecked())
player->client->shuffle();
emit closePressed(this);
deleteLater();
event->accept();
}