mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-30 02:23:55 -07:00
Fix certain game actions only recognizing first shortcut (#6059)
* doc * Fix non-counter shortcuts * Fix counter shortcuts
This commit is contained in:
parent
e10dd4ef42
commit
fd12a1f6be
2 changed files with 52 additions and 72 deletions
|
|
@ -959,38 +959,11 @@ void Player::setShortcutsActive()
|
||||||
aSelectRow->setShortcuts(shortcuts.getShortcut("Player/aSelectRow"));
|
aSelectRow->setShortcuts(shortcuts.getShortcut("Player/aSelectRow"));
|
||||||
aSelectColumn->setShortcuts(shortcuts.getShortcut("Player/aSelectColumn"));
|
aSelectColumn->setShortcuts(shortcuts.getShortcut("Player/aSelectColumn"));
|
||||||
|
|
||||||
QList<QKeySequence> addCCShortCuts;
|
static const QStringList colorWords = {"Red", "Yellow", "Green", "Cyan", "Purple", "Magenta"};
|
||||||
addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCRed"));
|
for (int i = 0; i < aAddCounter.size(); i++) {
|
||||||
addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCYellow"));
|
aAddCounter[i]->setShortcuts(shortcuts.getShortcut("Player/aCC" + colorWords[i]));
|
||||||
addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCGreen"));
|
aRemoveCounter[i]->setShortcuts(shortcuts.getShortcut("Player/aRC" + colorWords[i]));
|
||||||
addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCCyan"));
|
aSetCounter[i]->setShortcuts(shortcuts.getShortcut("Player/aSC" + colorWords[i]));
|
||||||
addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCPurple"));
|
|
||||||
addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCMagenta"));
|
|
||||||
|
|
||||||
QList<QKeySequence> removeCCShortCuts;
|
|
||||||
removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCRed"));
|
|
||||||
removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCYellow"));
|
|
||||||
removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCGreen"));
|
|
||||||
removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCCyan"));
|
|
||||||
removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCPurple"));
|
|
||||||
removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCMagenta"));
|
|
||||||
|
|
||||||
QList<QKeySequence> setCCShortCuts;
|
|
||||||
setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCRed"));
|
|
||||||
setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCYellow"));
|
|
||||||
setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCGreen"));
|
|
||||||
setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCCyan"));
|
|
||||||
setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCPurple"));
|
|
||||||
setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCMagenta"));
|
|
||||||
|
|
||||||
for (int i = 0; i < addCCShortCuts.size(); ++i) {
|
|
||||||
aAddCounter[i]->setShortcut(addCCShortCuts.at(i));
|
|
||||||
}
|
|
||||||
for (int i = 0; i < removeCCShortCuts.size(); ++i) {
|
|
||||||
aRemoveCounter[i]->setShortcut(removeCCShortCuts.at(i));
|
|
||||||
}
|
|
||||||
for (int i = 0; i < setCCShortCuts.size(); ++i) {
|
|
||||||
aSetCounter[i]->setShortcut(setCCShortCuts.at(i));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QMapIterator<int, AbstractCounter *> counterIterator(counters);
|
QMapIterator<int, AbstractCounter *> counterIterator(counters);
|
||||||
|
|
@ -998,44 +971,44 @@ void Player::setShortcutsActive()
|
||||||
counterIterator.next().value()->setShortcutsActive();
|
counterIterator.next().value()->setShortcutsActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
aViewSideboard->setShortcut(shortcuts.getSingleShortcut("Player/aViewSideboard"));
|
aViewSideboard->setShortcuts(shortcuts.getShortcut("Player/aViewSideboard"));
|
||||||
aViewLibrary->setShortcut(shortcuts.getSingleShortcut("Player/aViewLibrary"));
|
aViewLibrary->setShortcuts(shortcuts.getShortcut("Player/aViewLibrary"));
|
||||||
aViewHand->setShortcut(shortcuts.getSingleShortcut("Player/aViewHand"));
|
aViewHand->setShortcuts(shortcuts.getShortcut("Player/aViewHand"));
|
||||||
aViewTopCards->setShortcut(shortcuts.getSingleShortcut("Player/aViewTopCards"));
|
aViewTopCards->setShortcuts(shortcuts.getShortcut("Player/aViewTopCards"));
|
||||||
aViewBottomCards->setShortcut(shortcuts.getSingleShortcut("Player/aViewBottomCards"));
|
aViewBottomCards->setShortcuts(shortcuts.getShortcut("Player/aViewBottomCards"));
|
||||||
aViewGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aViewGraveyard"));
|
aViewGraveyard->setShortcuts(shortcuts.getShortcut("Player/aViewGraveyard"));
|
||||||
aDrawCard->setShortcut(shortcuts.getSingleShortcut("Player/aDrawCard"));
|
aDrawCard->setShortcuts(shortcuts.getShortcut("Player/aDrawCard"));
|
||||||
aDrawCards->setShortcut(shortcuts.getSingleShortcut("Player/aDrawCards"));
|
aDrawCards->setShortcuts(shortcuts.getShortcut("Player/aDrawCards"));
|
||||||
aUndoDraw->setShortcut(shortcuts.getSingleShortcut("Player/aUndoDraw"));
|
aUndoDraw->setShortcuts(shortcuts.getShortcut("Player/aUndoDraw"));
|
||||||
aMulligan->setShortcut(shortcuts.getSingleShortcut("Player/aMulligan"));
|
aMulligan->setShortcuts(shortcuts.getShortcut("Player/aMulligan"));
|
||||||
aShuffle->setShortcut(shortcuts.getSingleShortcut("Player/aShuffle"));
|
aShuffle->setShortcuts(shortcuts.getShortcut("Player/aShuffle"));
|
||||||
aShuffleTopCards->setShortcut(shortcuts.getSingleShortcut("Player/aShuffleTopCards"));
|
aShuffleTopCards->setShortcuts(shortcuts.getShortcut("Player/aShuffleTopCards"));
|
||||||
aShuffleBottomCards->setShortcut(shortcuts.getSingleShortcut("Player/aShuffleBottomCards"));
|
aShuffleBottomCards->setShortcuts(shortcuts.getShortcut("Player/aShuffleBottomCards"));
|
||||||
aUntapAll->setShortcut(shortcuts.getSingleShortcut("Player/aUntapAll"));
|
aUntapAll->setShortcuts(shortcuts.getShortcut("Player/aUntapAll"));
|
||||||
aRollDie->setShortcut(shortcuts.getSingleShortcut("Player/aRollDie"));
|
aRollDie->setShortcuts(shortcuts.getShortcut("Player/aRollDie"));
|
||||||
aCreateToken->setShortcut(shortcuts.getSingleShortcut("Player/aCreateToken"));
|
aCreateToken->setShortcuts(shortcuts.getShortcut("Player/aCreateToken"));
|
||||||
aCreateAnotherToken->setShortcut(shortcuts.getSingleShortcut("Player/aCreateAnotherToken"));
|
aCreateAnotherToken->setShortcuts(shortcuts.getShortcut("Player/aCreateAnotherToken"));
|
||||||
aAlwaysRevealTopCard->setShortcut(shortcuts.getSingleShortcut("Player/aAlwaysRevealTopCard"));
|
aAlwaysRevealTopCard->setShortcuts(shortcuts.getShortcut("Player/aAlwaysRevealTopCard"));
|
||||||
aAlwaysLookAtTopCard->setShortcut(shortcuts.getSingleShortcut("Player/aAlwaysLookAtTopCard"));
|
aAlwaysLookAtTopCard->setShortcuts(shortcuts.getShortcut("Player/aAlwaysLookAtTopCard"));
|
||||||
aMoveTopToPlay->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopToPlay"));
|
aMoveTopToPlay->setShortcuts(shortcuts.getShortcut("Player/aMoveTopToPlay"));
|
||||||
aMoveTopToPlayFaceDown->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopToPlayFaceDown"));
|
aMoveTopToPlayFaceDown->setShortcuts(shortcuts.getShortcut("Player/aMoveTopToPlayFaceDown"));
|
||||||
aMoveTopCardToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardToGraveyard"));
|
aMoveTopCardToGraveyard->setShortcuts(shortcuts.getShortcut("Player/aMoveTopCardToGraveyard"));
|
||||||
aMoveTopCardsToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardsToGraveyard"));
|
aMoveTopCardsToGraveyard->setShortcuts(shortcuts.getShortcut("Player/aMoveTopCardsToGraveyard"));
|
||||||
aMoveTopCardToExile->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardToExile"));
|
aMoveTopCardToExile->setShortcuts(shortcuts.getShortcut("Player/aMoveTopCardToExile"));
|
||||||
aMoveTopCardsToExile->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardsToExile"));
|
aMoveTopCardsToExile->setShortcuts(shortcuts.getShortcut("Player/aMoveTopCardsToExile"));
|
||||||
aMoveTopCardsUntil->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardsUntil"));
|
aMoveTopCardsUntil->setShortcuts(shortcuts.getShortcut("Player/aMoveTopCardsUntil"));
|
||||||
aMoveTopCardToBottom->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardToBottom"));
|
aMoveTopCardToBottom->setShortcuts(shortcuts.getShortcut("Player/aMoveTopCardToBottom"));
|
||||||
aDrawBottomCard->setShortcut(shortcuts.getSingleShortcut("Player/aDrawBottomCard"));
|
aDrawBottomCard->setShortcuts(shortcuts.getShortcut("Player/aDrawBottomCard"));
|
||||||
aDrawBottomCards->setShortcut(shortcuts.getSingleShortcut("Player/aDrawBottomCards"));
|
aDrawBottomCards->setShortcuts(shortcuts.getShortcut("Player/aDrawBottomCards"));
|
||||||
aMoveBottomToPlay->setShortcut(shortcuts.getSingleShortcut("Player/aMoveBottomToPlay"));
|
aMoveBottomToPlay->setShortcuts(shortcuts.getShortcut("Player/aMoveBottomToPlay"));
|
||||||
aMoveBottomToPlayFaceDown->setShortcut(shortcuts.getSingleShortcut("Player/aMoveBottomToPlayFaceDown"));
|
aMoveBottomToPlayFaceDown->setShortcuts(shortcuts.getShortcut("Player/aMoveBottomToPlayFaceDown"));
|
||||||
aMoveBottomCardToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveBottomCardToGrave"));
|
aMoveBottomCardToGraveyard->setShortcuts(shortcuts.getShortcut("Player/aMoveBottomCardToGrave"));
|
||||||
aMoveBottomCardsToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveBottomCardsToGrave"));
|
aMoveBottomCardsToGraveyard->setShortcuts(shortcuts.getShortcut("Player/aMoveBottomCardsToGrave"));
|
||||||
aMoveBottomCardToExile->setShortcut(shortcuts.getSingleShortcut("Player/aMoveBottomCardToExile"));
|
aMoveBottomCardToExile->setShortcuts(shortcuts.getShortcut("Player/aMoveBottomCardToExile"));
|
||||||
aMoveBottomCardsToExile->setShortcut(shortcuts.getSingleShortcut("Player/aMoveBottomCardsToExile"));
|
aMoveBottomCardsToExile->setShortcuts(shortcuts.getShortcut("Player/aMoveBottomCardsToExile"));
|
||||||
aMoveBottomCardToTop->setShortcut(shortcuts.getSingleShortcut("Player/aMoveBottomCardToTop"));
|
aMoveBottomCardToTop->setShortcuts(shortcuts.getShortcut("Player/aMoveBottomCardToTop"));
|
||||||
aPlayFacedown->setShortcut(shortcuts.getSingleShortcut("Player/aPlayFacedown"));
|
aPlayFacedown->setShortcuts(shortcuts.getShortcut("Player/aPlayFacedown"));
|
||||||
aPlay->setShortcut(shortcuts.getSingleShortcut("Player/aPlay"));
|
aPlay->setShortcuts(shortcuts.getShortcut("Player/aPlay"));
|
||||||
|
|
||||||
// Don't enable always-active shortcuts in local games, since it causes keyboard shortcuts to work inconsistently
|
// Don't enable always-active shortcuts in local games, since it causes keyboard shortcuts to work inconsistently
|
||||||
// when there are more than 1 player.
|
// when there are more than 1 player.
|
||||||
|
|
@ -4175,8 +4148,8 @@ void Player::addRelatedCardActions(const CardItem *card, QMenu *cardMenu)
|
||||||
|
|
||||||
if (createRelatedCards) {
|
if (createRelatedCards) {
|
||||||
if (shortcutsActive) {
|
if (shortcutsActive) {
|
||||||
createRelatedCards->setShortcut(
|
createRelatedCards->setShortcuts(
|
||||||
SettingsCache::instance().shortcuts().getSingleShortcut("Player/aCreateRelatedTokens"));
|
SettingsCache::instance().shortcuts().getShortcut("Player/aCreateRelatedTokens"));
|
||||||
}
|
}
|
||||||
connect(createRelatedCards, &QAction::triggered, this, &Player::actCreateAllRelatedCards);
|
connect(createRelatedCards, &QAction::triggered, this, &Player::actCreateAllRelatedCards);
|
||||||
cardMenu->addAction(createRelatedCards);
|
cardMenu->addAction(createRelatedCards);
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,13 @@ ShortcutKey ShortcutsSettings::getShortcut(const QString &name) const
|
||||||
return getDefaultShortcut(name);
|
return getDefaultShortcut(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first shortcut for the given action.
|
||||||
|
*
|
||||||
|
* NOTE: In most cases you should be using ShortcutsSettings::getShortcut instead,
|
||||||
|
* as that will return all shortcuts if there are multiple shortcuts.
|
||||||
|
* The only reason to use this method is if an object does not accept multiple shortcuts, such as with QButtons.
|
||||||
|
*/
|
||||||
QKeySequence ShortcutsSettings::getSingleShortcut(const QString &name) const
|
QKeySequence ShortcutsSettings::getSingleShortcut(const QString &name) const
|
||||||
{
|
{
|
||||||
return getShortcut(name).at(0);
|
return getShortcut(name).at(0);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue