mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-15 19:47:46 -07:00
Fix for #4284
-> The menus have the update menu thing emitted when they get triggered. | -> works surprising well https://youtu.be/KOOmhxvHA2c is a demo on a 10000ish card deck
This commit is contained in:
parent
0a73162bcf
commit
34d500cfaf
2 changed files with 9 additions and 8 deletions
|
|
@ -36,7 +36,10 @@ CardItem::CardItem(Player *_owner,
|
||||||
|
|
||||||
retranslateUi();
|
retranslateUi();
|
||||||
if (updateMenu) { // avoid updating card menu too often
|
if (updateMenu) { // avoid updating card menu too often
|
||||||
emit updateCardMenu(this);
|
// Add a lambda that updates the card menu on right clicked
|
||||||
|
connect(getPTMenu(), &QMenu::triggered, this, [this] { emit updateCardMenu(this); });
|
||||||
|
connect(getCardMenu(), &QMenu::triggered, this, [this] { emit updateCardMenu(this); });
|
||||||
|
connect(getMoveMenu(), &QMenu::triggered, this, [this] { emit updateCardMenu(this); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -84,7 +87,6 @@ void CardItem::deleteLater()
|
||||||
void CardItem::setZone(CardZone *_zone)
|
void CardItem::setZone(CardZone *_zone)
|
||||||
{
|
{
|
||||||
zone = _zone;
|
zone = _zone;
|
||||||
emit updateCardMenu(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardItem::retranslateUi()
|
void CardItem::retranslateUi()
|
||||||
|
|
@ -372,7 +374,6 @@ void CardItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (event->button() == Qt::RightButton) {
|
if (event->button() == Qt::RightButton) {
|
||||||
if (cardMenu && !cardMenu->isEmpty() && owner != nullptr) {
|
if (cardMenu && !cardMenu->isEmpty() && owner != nullptr) {
|
||||||
owner->updateCardMenu(this);
|
|
||||||
cardMenu->exec(event->screenPos());
|
cardMenu->exec(event->screenPos());
|
||||||
}
|
}
|
||||||
} else if ((event->modifiers() != Qt::AltModifier) && (event->button() == Qt::LeftButton) &&
|
} else if ((event->modifiers() != Qt::AltModifier) && (event->button() == Qt::LeftButton) &&
|
||||||
|
|
|
||||||
|
|
@ -1946,7 +1946,6 @@ void Player::eventSetCardCounter(const Event_SetCardCounter &event)
|
||||||
|
|
||||||
int oldValue = card->getCounters().value(event.counter_id(), 0);
|
int oldValue = card->getCounters().value(event.counter_id(), 0);
|
||||||
card->setCounter(event.counter_id(), event.counter_value());
|
card->setCounter(event.counter_id(), event.counter_value());
|
||||||
updateCardMenu(card);
|
|
||||||
emit logSetCardCounter(this, card->getName(), event.counter_id(), event.counter_value(), oldValue);
|
emit logSetCardCounter(this, card->getName(), event.counter_id(), event.counter_value(), oldValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3295,15 +3294,16 @@ void Player::refreshShortcuts()
|
||||||
{
|
{
|
||||||
if (shortcutsActive) {
|
if (shortcutsActive) {
|
||||||
setShortcutsActive();
|
setShortcutsActive();
|
||||||
|
|
||||||
for (const CardItem *cardItem : table->getCards()) {
|
|
||||||
updateCardMenu(cardItem);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::updateCardMenu(const CardItem *card)
|
void Player::updateCardMenu(const CardItem *card)
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Regarding issue https://github.com/Cockatrice/Cockatrice/issues/4284
|
||||||
|
* The best fix is to add the QActions when a card is right clicked on,
|
||||||
|
* so this method is not needed
|
||||||
|
*/
|
||||||
// If bad card OR is a spectator (as spectators don't need card menus), return
|
// If bad card OR is a spectator (as spectators don't need card menus), return
|
||||||
if (card == nullptr || (game->isSpectator() && !judge)) {
|
if (card == nullptr || (game->isSpectator() && !judge)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue