From 40d292c4acdc3764c444e3ebe8219af4856c31b7 Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Thu, 2 Jul 2009 18:03:23 +0200 Subject: [PATCH] really fixed zone view bug --- cockatrice/src/player.cpp | 3 ++- cockatrice/src/zoneviewlayout.cpp | 4 ++-- cockatrice/src/zoneviewwidget.cpp | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index d7aa4eda..646a2f58 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -4,6 +4,7 @@ #include "playerarea.h" #include "counter.h" #include "zoneviewzone.h" +#include "zoneviewwidget.h" #include "game.h" #include #include @@ -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(); } diff --git a/cockatrice/src/zoneviewlayout.cpp b/cockatrice/src/zoneviewlayout.cpp index 9b9b54d8..0f27cea6 100644 --- a/cockatrice/src/zoneviewlayout.cpp +++ b/cockatrice/src/zoneviewlayout.cpp @@ -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(); } diff --git a/cockatrice/src/zoneviewwidget.cpp b/cockatrice/src/zoneviewwidget.cpp index d6bb7013..2df08ed4 100644 --- a/cockatrice/src/zoneviewwidget.cpp +++ b/cockatrice/src/zoneviewwidget.cpp @@ -69,5 +69,6 @@ void ZoneViewWidget::closeEvent(QCloseEvent *event) if (shuffleCheckBox->isChecked()) player->client->shuffle(); emit closePressed(this); + deleteLater(); event->accept(); }