fix
This commit is contained in:
parent
2cf57ad95d
commit
55e7feeebe
1 changed files with 23 additions and 13 deletions
|
@ -153,21 +153,31 @@ bool GameScene::event(QEvent *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QGraphicsItem *> itemList = items(mouseEvent->scenePos());
|
QList<QGraphicsItem *> itemList = items(mouseEvent->scenePos());
|
||||||
qreal maxZ = 0;
|
|
||||||
CardItem *maxZCard = 0;
|
// Search for the topmost zone and ignore all cards not belonging to that zone.
|
||||||
QList<CardItem *> cardList;
|
CardZone *zone = 0;
|
||||||
for (int i = 0; i < itemList.size(); ++i) {
|
for (int i = 0; i < itemList.size(); ++i)
|
||||||
CardItem *card = qgraphicsitem_cast<CardItem *>(itemList[i]);
|
if ((zone = qgraphicsitem_cast<CardZone *>(itemList[i])))
|
||||||
if (!card)
|
break;
|
||||||
continue;
|
if (zone) {
|
||||||
cardList.append(card);
|
qreal maxZ = -1;
|
||||||
if (card->getRealZValue() > maxZ) {
|
CardItem *maxZCard = 0;
|
||||||
maxZ = card->getRealZValue();
|
QList<CardItem *> cardList;
|
||||||
maxZCard = card;
|
for (int i = 0; i < itemList.size(); ++i) {
|
||||||
|
CardItem *card = qgraphicsitem_cast<CardItem *>(itemList[i]);
|
||||||
|
if (!card)
|
||||||
|
continue;
|
||||||
|
if (card->getZone() != zone)
|
||||||
|
continue;
|
||||||
|
cardList.append(card);
|
||||||
|
if (card->getRealZValue() > maxZ) {
|
||||||
|
maxZ = card->getRealZValue();
|
||||||
|
maxZCard = card;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < cardList.size(); ++i)
|
||||||
|
cardList[i]->setZValue(cardList[i] == maxZCard ? 2000000004 : cardList[i]->getRealZValue());
|
||||||
}
|
}
|
||||||
for (int i = 0; i < cardList.size(); ++i)
|
|
||||||
cardList[i]->setZValue(cardList[i] == maxZCard ? 2000000004 : cardList[i]->getRealZValue());
|
|
||||||
}
|
}
|
||||||
return QGraphicsScene::event(event);
|
return QGraphicsScene::event(event);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue