mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-08-03 01:15:41 -07:00
Qt 4.8 crash fix
This commit is contained in:
@@ -1577,10 +1577,9 @@ void Player::delCounter(int counterId)
|
||||
AbstractCounter *c = counters.value(counterId, 0);
|
||||
if (!c)
|
||||
return;
|
||||
if (c->getName() == "life")
|
||||
playerTarget->delCounter();
|
||||
counters.remove(counterId);
|
||||
|
||||
c->delCounter();
|
||||
counters.remove(counterId);
|
||||
rearrangeCounters();
|
||||
}
|
||||
|
||||
@@ -1590,7 +1589,6 @@ void Player::clearCounters()
|
||||
while (counterIterator.hasNext())
|
||||
counterIterator.next().value()->delCounter();
|
||||
counters.clear();
|
||||
playerTarget->delCounter();
|
||||
}
|
||||
|
||||
ArrowItem *Player::addArrow(const ServerInfo_Arrow &arrow)
|
||||
|
||||
@@ -56,6 +56,13 @@ PlayerTarget::PlayerTarget(Player *_owner, QGraphicsItem *parentItem)
|
||||
fullPixmap = QPixmap();
|
||||
}
|
||||
|
||||
PlayerTarget::~PlayerTarget()
|
||||
{
|
||||
// Explicit deletion is necessary in spite of parent/child relationship
|
||||
// as we need this object to be alive to receive the destroyed() signal.
|
||||
delete playerCounter;
|
||||
}
|
||||
|
||||
QRectF PlayerTarget::boundingRect() const
|
||||
{
|
||||
return QRectF(0, 0, 160, 64);
|
||||
@@ -136,12 +143,12 @@ AbstractCounter *PlayerTarget::addCounter(int _counterId, const QString &_name,
|
||||
|
||||
playerCounter = new PlayerCounter(owner, _counterId, _name, _value, this);
|
||||
playerCounter->setPos(boundingRect().width() - playerCounter->boundingRect().width(), boundingRect().height() - playerCounter->boundingRect().height());
|
||||
connect(playerCounter, SIGNAL(destroyed()), this, SLOT(delCounter()));
|
||||
connect(playerCounter, SIGNAL(destroyed()), this, SLOT(counterDeleted()));
|
||||
|
||||
return playerCounter;
|
||||
}
|
||||
|
||||
void PlayerTarget::delCounter()
|
||||
void PlayerTarget::counterDeleted()
|
||||
{
|
||||
playerCounter = 0;
|
||||
}
|
||||
|
||||
@@ -22,12 +22,13 @@ private:
|
||||
QPixmap fullPixmap;
|
||||
PlayerCounter *playerCounter;
|
||||
public slots:
|
||||
void delCounter();
|
||||
void counterDeleted();
|
||||
public:
|
||||
enum { Type = typePlayerTarget };
|
||||
int type() const { return Type; }
|
||||
|
||||
PlayerTarget(Player *_player = 0, QGraphicsItem *parentItem = 0);
|
||||
~PlayerTarget();
|
||||
QRectF boundingRect() const;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user