diff --git a/cockatrice/src/abstractcounter.cpp b/cockatrice/src/abstractcounter.cpp index 64c19253..42cf6ad8 100644 --- a/cockatrice/src/abstractcounter.cpp +++ b/cockatrice/src/abstractcounter.cpp @@ -46,7 +46,7 @@ AbstractCounter::AbstractCounter(Player *_player, } else menu = nullptr; - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); retranslateUi(); } diff --git a/cockatrice/src/dlg_load_deck_from_clipboard.cpp b/cockatrice/src/dlg_load_deck_from_clipboard.cpp index 8d39ea41..32d1dec4 100644 --- a/cockatrice/src/dlg_load_deck_from_clipboard.cpp +++ b/cockatrice/src/dlg_load_deck_from_clipboard.cpp @@ -32,7 +32,7 @@ DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent) : QDialog(pa resize(500, 500); actRefresh(); - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); } diff --git a/cockatrice/src/gameview.cpp b/cockatrice/src/gameview.cpp index b96e5f5b..26f97550 100644 --- a/cockatrice/src/gameview.cpp +++ b/cockatrice/src/gameview.cpp @@ -22,7 +22,7 @@ GameView::GameView(QGraphicsScene *scene, QWidget *parent) : QGraphicsView(scene connect(aCloseMostRecentZoneView, SIGNAL(triggered()), scene, SLOT(closeMostRecentZoneView())); addAction(aCloseMostRecentZoneView); - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); rubberBand = new QRubberBand(QRubberBand::Rectangle, this); } diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 782bc3de..95a55152 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -24,7 +24,8 @@ #include #include #include -#include +#include +#include #include #include "pb/command_attach_card.pb.h" @@ -219,8 +220,12 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare connect(aMulligan, SIGNAL(triggered()), this, SLOT(actMulligan())); aMoveTopToPlayFaceDown = new QAction(this); connect(aMoveTopToPlayFaceDown, SIGNAL(triggered()), this, SLOT(actMoveTopCardToPlayFaceDown())); - aMoveTopCardsToGrave = new QAction(this); - connect(aMoveTopCardsToGrave, SIGNAL(triggered()), this, SLOT(actMoveTopCardsToGrave())); + aMoveTopCardToGraveyard = new QAction(this); + connect(aMoveTopCardToGraveyard, SIGNAL(triggered()), this, SLOT(actMoveTopCardToGrave())); + aMoveTopCardToExile = new QAction(this); + connect(aMoveTopCardToExile, SIGNAL(triggered()), this, SLOT(actMoveTopCardToExile())); + aMoveTopCardsToGraveyard = new QAction(this); + connect(aMoveTopCardsToGraveyard, SIGNAL(triggered()), this, SLOT(actMoveTopCardsToGrave())); aMoveTopCardsToExile = new QAction(this); connect(aMoveTopCardsToExile, SIGNAL(triggered()), this, SLOT(actMoveTopCardsToExile())); aMoveTopCardToBottom = new QAction(this); @@ -266,7 +271,9 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare libraryMenu->addAction(aMoveTopCardToBottom); libraryMenu->addAction(aMoveBottomCardToGrave); libraryMenu->addSeparator(); - libraryMenu->addAction(aMoveTopCardsToGrave); + libraryMenu->addAction(aMoveTopCardToGraveyard); + libraryMenu->addAction(aMoveTopCardToExile); + libraryMenu->addAction(aMoveTopCardsToGraveyard); libraryMenu->addAction(aMoveTopCardsToExile); libraryMenu->addSeparator(); libraryMenu->addAction(aOpenDeckInDeckEditor); @@ -449,7 +456,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare rearrangeZones(); retranslateUi(); - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); } @@ -483,8 +490,9 @@ void Player::clear() void Player::addPlayer(Player *player) { - if (player == nullptr || player == this) + if (player == nullptr || player == this) { return; + } for (int i = 0; i < playerLists.size(); ++i) { QAction *newAction = playerLists[i]->addAction(player->getName()); @@ -495,8 +503,9 @@ void Player::addPlayer(Player *player) void Player::removePlayer(Player *player) { - if (player == nullptr) + if (player == nullptr) { return; + } for (int i = 0; i < playerLists.size(); ++i) { QList actionList = playerLists[i]->actions(); @@ -515,8 +524,9 @@ void Player::playerListActionTriggered() Command_RevealCards cmd; const int otherPlayerId = action->data().toInt(); - if (otherPlayerId != -1) + if (otherPlayerId != -1) { cmd.set_player_id(otherPlayerId); + } if (menu == mRevealLibrary) { cmd.set_zone_name("deck"); @@ -533,13 +543,14 @@ void Player::playerListActionTriggered() cmd.set_card_id(0); } - } else if (menu == mRevealHand) + } else if (menu == mRevealHand) { cmd.set_zone_name("hand"); - else if (menu == mRevealRandomHandCard) { + } else if (menu == mRevealRandomHandCard) { cmd.set_zone_name("hand"); cmd.set_card_id(RANDOM_CARD_FROM_ZONE); - } else + } else { return; + } sendGameCommand(cmd); } @@ -603,9 +614,10 @@ void Player::updateBoundingRect() if (settingsCache->getHorizontalHand()) { qreal handHeight = handVisible ? hand->boundingRect().height() : 0; bRect = QRectF(0, 0, width + table->boundingRect().width(), table->boundingRect().height() + handHeight); - } else + } else { bRect = QRectF(0, 0, width + hand->boundingRect().width() + table->boundingRect().width(), table->boundingRect().height()); + } playerArea->setSize(CARD_HEIGHT + counterAreaWidth + 15, bRect.height()); emit sizeChanged(); @@ -652,7 +664,9 @@ void Player::retranslateUi() aMulligan->setText(tr("Take &mulligan")); aShuffle->setText(tr("&Shuffle")); aMoveTopToPlayFaceDown->setText(tr("Play top card &face down")); - aMoveTopCardsToGrave->setText(tr("Move top cards to &graveyard...")); + aMoveTopCardToGraveyard->setText(tr("Move top card to grave&yard")); + aMoveTopCardToExile->setText(tr("Move top card to e&xile")); + aMoveTopCardsToGraveyard->setText(tr("Move top cards to &graveyard...")); aMoveTopCardsToExile->setText(tr("Move top cards to &exile...")); aMoveTopCardToBottom->setText(tr("Put top card on &bottom")); aMoveBottomCardToGrave->setText(tr("Put bottom card &in graveyard")); @@ -730,52 +744,54 @@ void Player::retranslateUi() aMoveToExile->setText(tr("&Exile")); QMapIterator zoneIterator(zones); - while (zoneIterator.hasNext()) + while (zoneIterator.hasNext()) { zoneIterator.next().value()->retranslateUi(); + } } void Player::setShortcutsActive() { shortcutsActive = true; + ShortcutsSettings &shortcuts = settingsCache->shortcuts(); - aPlay->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aPlay")); - aTap->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aTap")); - aDoesntUntap->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDoesntUntap")); - aFlip->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aFlip")); - aPeek->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aPeek")); - aClone->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aClone")); - aAttach->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aAttach")); - aUnattach->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aUnattach")); - aDrawArrow->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDrawArrow")); - aIncP->setShortcuts(settingsCache->shortcuts().getShortcut("Player/IncP")); - aDecP->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDecP")); - aIncT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aIncT")); - aDecT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDecT")); - aIncPT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aIncPT")); - aDecPT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDecPT")); - aSetPT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aSetPT")); - aResetPT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aResetPT")); - aSetAnnotation->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aSetAnnotation")); - aMoveToTopLibrary->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToTopLibrary")); - aMoveToBottomLibrary->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToBottomLibrary")); - aMoveToHand->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToHand")); - aMoveToGraveyard->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToGraveyard")); - aMoveToExile->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToExile")); + aPlay->setShortcuts(shortcuts.getShortcut("Player/aPlay")); + aTap->setShortcuts(shortcuts.getShortcut("Player/aTap")); + aDoesntUntap->setShortcuts(shortcuts.getShortcut("Player/aDoesntUntap")); + aFlip->setShortcuts(shortcuts.getShortcut("Player/aFlip")); + aPeek->setShortcuts(shortcuts.getShortcut("Player/aPeek")); + aClone->setShortcuts(shortcuts.getShortcut("Player/aClone")); + aAttach->setShortcuts(shortcuts.getShortcut("Player/aAttach")); + aUnattach->setShortcuts(shortcuts.getShortcut("Player/aUnattach")); + aDrawArrow->setShortcuts(shortcuts.getShortcut("Player/aDrawArrow")); + aIncP->setShortcuts(shortcuts.getShortcut("Player/IncP")); + aDecP->setShortcuts(shortcuts.getShortcut("Player/aDecP")); + aIncT->setShortcuts(shortcuts.getShortcut("Player/aIncT")); + aDecT->setShortcuts(shortcuts.getShortcut("Player/aDecT")); + aIncPT->setShortcuts(shortcuts.getShortcut("Player/aIncPT")); + aDecPT->setShortcuts(shortcuts.getShortcut("Player/aDecPT")); + aSetPT->setShortcuts(shortcuts.getShortcut("Player/aSetPT")); + aResetPT->setShortcuts(shortcuts.getShortcut("Player/aResetPT")); + aSetAnnotation->setShortcuts(shortcuts.getShortcut("Player/aSetAnnotation")); + aMoveToTopLibrary->setShortcuts(shortcuts.getShortcut("Player/aMoveToTopLibrary")); + aMoveToBottomLibrary->setShortcuts(shortcuts.getShortcut("Player/aMoveToBottomLibrary")); + aMoveToHand->setShortcuts(shortcuts.getShortcut("Player/aMoveToHand")); + aMoveToGraveyard->setShortcuts(shortcuts.getShortcut("Player/aMoveToGraveyard")); + aMoveToExile->setShortcuts(shortcuts.getShortcut("Player/aMoveToExile")); QList addCCShortCuts; - addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aCCRed")); - addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aCCYellow")); - addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aCCGreen")); + addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCRed")); + addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCYellow")); + addCCShortCuts.append(shortcuts.getSingleShortcut("Player/aCCGreen")); QList removeCCShortCuts; - removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aRCRed")); - removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aRCYellow")); - removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aRCGreen")); + removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCRed")); + removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCYellow")); + removeCCShortCuts.append(shortcuts.getSingleShortcut("Player/aRCGreen")); QList setCCShortCuts; - setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aSCRed")); - setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aSCYellow")); - setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aSCGreen")); + setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCRed")); + setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCYellow")); + setCCShortCuts.append(shortcuts.getSingleShortcut("Player/aSCGreen")); for (int i = 0; i < aAddCounter.size(); ++i) { aAddCounter[i]->setShortcut(addCCShortCuts.at(i)); @@ -788,24 +804,29 @@ void Player::setShortcutsActive() } QMapIterator counterIterator(counters); - while (counterIterator.hasNext()) + while (counterIterator.hasNext()) { counterIterator.next().value()->setShortcutsActive(); + } - aViewSideboard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewSideboard")); - aViewLibrary->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewLibrary")); - aViewTopCards->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewTopCards")); - aViewGraveyard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewGraveyard")); - aDrawCard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aDrawCard")); - aDrawCards->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aDrawCards")); - aUndoDraw->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aUndoDraw")); - aMulligan->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aMulligan")); - aShuffle->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aShuffle")); - aUntapAll->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aUntapAll")); - aRollDie->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aRollDie")); - aCreateToken->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aCreateToken")); - aCreateAnotherToken->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aCreateAnotherToken")); - aAlwaysRevealTopCard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aAlwaysRevealTopCard")); - aMoveTopToPlayFaceDown->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aMoveTopToPlayFaceDown")); + aViewSideboard->setShortcut(shortcuts.getSingleShortcut("Player/aViewSideboard")); + aViewLibrary->setShortcut(shortcuts.getSingleShortcut("Player/aViewLibrary")); + aViewTopCards->setShortcut(shortcuts.getSingleShortcut("Player/aViewTopCards")); + aViewGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aViewGraveyard")); + aDrawCard->setShortcut(shortcuts.getSingleShortcut("Player/aDrawCard")); + aDrawCards->setShortcut(shortcuts.getSingleShortcut("Player/aDrawCards")); + aUndoDraw->setShortcut(shortcuts.getSingleShortcut("Player/aUndoDraw")); + aMulligan->setShortcut(shortcuts.getSingleShortcut("Player/aMulligan")); + aShuffle->setShortcut(shortcuts.getSingleShortcut("Player/aShuffle")); + aUntapAll->setShortcut(shortcuts.getSingleShortcut("Player/aUntapAll")); + aRollDie->setShortcut(shortcuts.getSingleShortcut("Player/aRollDie")); + aCreateToken->setShortcut(shortcuts.getSingleShortcut("Player/aCreateToken")); + aCreateAnotherToken->setShortcut(shortcuts.getSingleShortcut("Player/aCreateAnotherToken")); + aAlwaysRevealTopCard->setShortcut(shortcuts.getSingleShortcut("Player/aAlwaysRevealTopCard")); + aMoveTopToPlayFaceDown->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopToPlayFaceDown")); + aMoveTopCardToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardToGraveyard")); + aMoveTopCardsToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardsToGraveyard")); + aMoveTopCardToExile->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardToExile")); + aMoveTopCardsToExile->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardsToExile")); } void Player::setShortcutsInactive() @@ -826,10 +847,16 @@ void Player::setShortcutsInactive() aCreateToken->setShortcut(QKeySequence()); aCreateAnotherToken->setShortcut(QKeySequence()); aAlwaysRevealTopCard->setShortcut(QKeySequence()); + aMoveTopToPlayFaceDown->setShortcut(QKeySequence()); + aMoveTopCardToGraveyard->setShortcut(QKeySequence()); + aMoveTopCardsToGraveyard->setShortcut(QKeySequence()); + aMoveTopCardToExile->setShortcut(QKeySequence()); + aMoveTopCardsToExile->setShortcut(QKeySequence()); QMapIterator counterIterator(counters); - while (counterIterator.hasNext()) + while (counterIterator.hasNext()) { counterIterator.next().value()->setShortcutsInactive(); + } } void Player::initSayMenu() @@ -838,7 +865,7 @@ void Player::initSayMenu() int count = settingsCache->messages().getCount(); - for (int i = 0; i < count; i++) { + for (int i = 0; i < count; ++i) { QAction *newAction = new QAction(settingsCache->messages().getMessageAt(i), this); if (i <= 10) { newAction->setShortcut(QKeySequence("Ctrl+" + QString::number((i + 1) % 10))); @@ -909,8 +936,9 @@ void Player::actRevealRandomGraveyardCard() Command_RevealCards cmd; QAction *action = dynamic_cast(sender()); const int otherPlayerId = action->data().toInt(); - if (otherPlayerId != -1) + if (otherPlayerId != -1) { cmd.set_player_id(otherPlayerId); + } cmd.set_zone_name("grave"); cmd.set_card_id(RANDOM_CARD_FROM_ZONE); sendGameCommand(cmd); @@ -958,15 +986,51 @@ void Player::actUndoDraw() sendGameCommand(Command_UndoDraw()); } +void Player::actMoveTopCardToGrave() +{ + if (zones.value("deck")->getCards().size() == 0) { + return; + } + + Command_MoveCard cmd; + cmd.set_start_zone("deck"); + cmd.mutable_cards_to_move()->add_card()->set_card_id(0); + cmd.set_target_player_id(getId()); + cmd.set_target_zone("grave"); + cmd.set_x(0); + cmd.set_y(0); + + sendGameCommand(cmd); +} + +void Player::actMoveTopCardToExile() +{ + if (zones.value("deck")->getCards().size() == 0) { + return; + } + + Command_MoveCard cmd; + cmd.set_start_zone("deck"); + cmd.mutable_cards_to_move()->add_card()->set_card_id(0); + cmd.set_target_player_id(getId()); + cmd.set_target_zone("rfg"); + cmd.set_x(0); + cmd.set_y(0); + + sendGameCommand(cmd); +} + void Player::actMoveTopCardsToGrave() { int number = QInputDialog::getInt(0, tr("Move top cards to grave"), tr("Number:")); - if (!number) + if (!number) { return; + } const int maxCards = zones.value("deck")->getCards().size(); - if (number > maxCards) + if (number > maxCards) { number = maxCards; + } Command_MoveCard cmd; cmd.set_start_zone("deck"); @@ -975,8 +1039,9 @@ void Player::actMoveTopCardsToGrave() cmd.set_x(0); cmd.set_y(0); - for (int i = 0; i < number; ++i) + for (int i = 0; i < number; ++i) { cmd.mutable_cards_to_move()->add_card()->set_card_id(i); + } sendGameCommand(cmd); } @@ -984,12 +1049,14 @@ void Player::actMoveTopCardsToGrave() void Player::actMoveTopCardsToExile() { int number = QInputDialog::getInt(0, tr("Move top cards to exile"), tr("Number:")); - if (!number) + if (!number) { return; + } const int maxCards = zones.value("deck")->getCards().size(); - if (number > maxCards) + if (number > maxCards) { number = maxCards; + } Command_MoveCard cmd; cmd.set_start_zone("deck"); @@ -998,8 +1065,9 @@ void Player::actMoveTopCardsToExile() cmd.set_x(0); cmd.set_y(0); - for (int i = 0; i < number; ++i) + for (int i = 0; i < number; ++i) { cmd.mutable_cards_to_move()->add_card()->set_card_id(i); + } sendGameCommand(cmd); } @@ -1071,8 +1139,9 @@ void Player::actRollDie() void Player::actCreateToken() { DlgCreateToken dlg(predefinedTokens); - if (!dlg.exec()) + if (!dlg.exec()) { return; + } lastTokenName = dlg.getName(); lastTokenPT = dlg.getPT(); @@ -1080,8 +1149,9 @@ void Player::actCreateToken() if (correctedCard) { lastTokenName = correctedCard->getName(); lastTokenTableRow = table->clampValidTableRow(2 - correctedCard->getTableRow()); - if (lastTokenPT.isEmpty()) + if (lastTokenPT.isEmpty()) { lastTokenPT = correctedCard->getPowTough(); + } } lastTokenColor = dlg.getColor(); lastTokenAnnotation = dlg.getAnnotation(); @@ -1093,8 +1163,9 @@ void Player::actCreateToken() void Player::actCreateAnotherToken() { - if (lastTokenName.isEmpty()) + if (lastTokenName.isEmpty()) { return; + } Command_CreateToken cmd; cmd.set_zone("table"); @@ -1113,8 +1184,9 @@ void Player::actCreatePredefinedToken() { QAction *action = static_cast(sender()); CardInfoPtr cardInfo = db->getCard(action->text()); - if (!cardInfo) + if (!cardInfo) { return; + } setLastToken(cardInfo); @@ -1124,8 +1196,9 @@ void Player::actCreatePredefinedToken() void Player::actCreateRelatedCard() { CardItem *sourceCard = game->getActiveCard(); - if (!sourceCard) + if (!sourceCard) { return; + } QAction *action = static_cast(sender()); // If there is a better way of passing a CardRelation through a QAction, please add it here. QList relatedCards = QList(); @@ -1146,70 +1219,70 @@ void Player::actCreateRelatedCard() void Player::actCreateAllRelatedCards() { CardItem *sourceCard = game->getActiveCard(); - if (!sourceCard) + if (!sourceCard) { return; + } - QList relatedCards = QList(); - relatedCards.append(sourceCard->getInfo()->getRelatedCards()); + QList relatedCards = sourceCard->getInfo()->getRelatedCards(); relatedCards.append(sourceCard->getInfo()->getReverseRelatedCards2Me()); + if (relatedCards.empty()) { + return; + } - QList nonExcludedRelatedCards = QList(); - QString dbName; CardRelation *cardRelation = nullptr; int tokensTypesCreated = 0; - switch (relatedCards.length()) { // Is an if/elseif/else pattern better? - case 0: // if (relatedCards.length() == 0) - return; - case 1: // else if (relatedCards.length() == 1) - cardRelation = relatedCards.at(0); - if (createRelatedFromRelation(sourceCard, cardRelation)) - tokensTypesCreated++; - break; - default: // else - foreach (CardRelation *cardRelationTemp, relatedCards) { - if (!cardRelationTemp->getIsCreateAllExclusion() && !cardRelationTemp->getDoesAttach()) { - nonExcludedRelatedCards.append(cardRelationTemp); + if (relatedCards.length() == 1) { + cardRelation = relatedCards.at(0); + if (createRelatedFromRelation(sourceCard, cardRelation)) { + ++tokensTypesCreated; + } + } else { + QList nonExcludedRelatedCards; + QString dbName; + for (CardRelation *cardRelationTemp : relatedCards) { + if (!cardRelationTemp->getIsCreateAllExclusion() && !cardRelationTemp->getDoesAttach()) { + nonExcludedRelatedCards.append(cardRelationTemp); + } + } + switch (nonExcludedRelatedCards.length()) { + case 1: // if nonExcludedRelatedCards == 1 + cardRelation = nonExcludedRelatedCards.at(0); + if (createRelatedFromRelation(sourceCard, cardRelation)) { + ++tokensTypesCreated; } - } - switch (nonExcludedRelatedCards.length()) { - case 1: // if nonExcludedRelatedCards == 1 - cardRelation = nonExcludedRelatedCards.at(0); - if (createRelatedFromRelation(sourceCard, cardRelation)) - tokensTypesCreated++; - break; - // If all are marked "Exclude", then treat the situation as if none of them are. - // We won't accept "garbage in, garbage out", here. - case 0: // else if nonExcludedRelatedCards == 0 - foreach (CardRelation *cardRelationAll, relatedCards) { - if (!cardRelationAll->getDoesAttach() && !cardRelationAll->getIsVariable()) { - dbName = dbNameFromTokenDisplayName(cardRelationAll->getName()); - for (int i = 0; i < cardRelationAll->getDefaultCount(); i++) { - createCard(sourceCard, dbName); - } - tokensTypesCreated++; - if (tokensTypesCreated == 1) { - cardRelation = cardRelationAll; - } + break; + // If all are marked "Exclude", then treat the situation as if none of them are. + // We won't accept "garbage in, garbage out", here. + case 0: // else if nonExcludedRelatedCards == 0 + for (CardRelation *cardRelationAll : relatedCards) { + if (!cardRelationAll->getDoesAttach() && !cardRelationAll->getIsVariable()) { + dbName = dbNameFromTokenDisplayName(cardRelationAll->getName()); + for (int i = 0; i < cardRelationAll->getDefaultCount(); ++i) { + createCard(sourceCard, dbName); + } + ++tokensTypesCreated; + if (tokensTypesCreated == 1) { + cardRelation = cardRelationAll; } } - break; - default: // else - foreach (CardRelation *cardRelationNotExcluded, nonExcludedRelatedCards) { - if (!cardRelationNotExcluded->getDoesAttach() && !cardRelationNotExcluded->getIsVariable()) { - dbName = dbNameFromTokenDisplayName(cardRelationNotExcluded->getName()); - for (int i = 0; i < cardRelationNotExcluded->getDefaultCount(); i++) { - createCard(sourceCard, dbName); - } - tokensTypesCreated++; - if (tokensTypesCreated == 1) { - cardRelation = cardRelationNotExcluded; - } + } + break; + default: // else + for (CardRelation *cardRelationNotExcluded : nonExcludedRelatedCards) { + if (!cardRelationNotExcluded->getDoesAttach() && !cardRelationNotExcluded->getIsVariable()) { + dbName = dbNameFromTokenDisplayName(cardRelationNotExcluded->getName()); + for (int i = 0; i < cardRelationNotExcluded->getDefaultCount(); ++i) { + createCard(sourceCard, dbName); + } + ++tokensTypesCreated; + if (tokensTypesCreated == 1) { + cardRelation = cardRelationNotExcluded; } } - break; - } - break; + } + break; + } } /* @@ -1224,8 +1297,9 @@ void Player::actCreateAllRelatedCards() bool Player::createRelatedFromRelation(const CardItem *sourceCard, const CardRelation *cardRelation) { - if (sourceCard == nullptr || cardRelation == nullptr) + if (sourceCard == nullptr || cardRelation == nullptr) { return false; + } QString dbName = dbNameFromTokenDisplayName(cardRelation->getName()); if (cardRelation->getIsVariable()) { bool ok; @@ -1233,13 +1307,14 @@ bool Player::createRelatedFromRelation(const CardItem *sourceCard, const CardRel int count = QInputDialog::getInt(0, tr("Create tokens"), tr("Number:"), cardRelation->getDefaultCount(), 1, MAX_TOKENS_PER_DIALOG, 1, &ok); dialogSemaphore = false; - if (!ok) + if (!ok) { return false; - for (int i = 0; i < count; i++) { + } + for (int i = 0; i < count; ++i) { createCard(sourceCard, dbName); } } else if (cardRelation->getDefaultCount() > 1) { - for (int i = 0; i < cardRelation->getDefaultCount(); i++) { + for (int i = 0; i < cardRelation->getDefaultCount(); ++i) { createCard(sourceCard, dbName); } } else { @@ -1256,8 +1331,9 @@ void Player::createCard(const CardItem *sourceCard, const QString &dbCardName, b { CardInfoPtr cardInfo = db->getCard(dbCardName); - if (cardInfo == nullptr || sourceCard == nullptr) + if (cardInfo == nullptr || sourceCard == nullptr) { return; + } // get the target token's location // TODO: Define this QPoint into its own function along with the one below @@ -1268,20 +1344,28 @@ void Player::createCard(const CardItem *sourceCard, const QString &dbCardName, b cmd.set_zone("table"); cmd.set_card_name(cardInfo->getName().toStdString()); if (cardInfo->getColors().length() > 1) // Multicoloured + { cmd.set_color("m"); - else - cmd.set_color(cardInfo->getColors().isEmpty() ? QString().toStdString() - : cardInfo->getColors().first().toLower().toStdString()); + } else if (cardInfo->getColors().isEmpty()) { + cmd.set_color(""); + } else { + cmd.set_color(cardInfo->getColors().first().toLower().toStdString()); + } + cmd.set_pt(cardInfo->getPowTough().toStdString()); - cmd.set_annotation(settingsCache->getAnnotateTokens() ? cardInfo->getText().toStdString() - : QString().toStdString()); + if (settingsCache->getAnnotateTokens()) { + cmd.set_annotation(cardInfo->getText().toStdString()); + } else { + cmd.set_annotation(""); + } cmd.set_destroy_on_zone_change(true); cmd.set_target_zone(sourceCard->getZone()->getName().toStdString()); cmd.set_x(gridPoint.x()); cmd.set_y(gridPoint.y()); - if (attach) + if (attach) { cmd.set_target_card_id(sourceCard->getId()); + } sendGameCommand(cmd); } @@ -1305,29 +1389,34 @@ void Player::setCardAttrHelper(const GameEventContext &context, const QString &avalue, bool allCards) { - if (card == nullptr) + if (card == nullptr) { return; + } bool moveCardContext = context.HasExtension(Context_MoveCard::ext); switch (attribute) { case AttrTapped: { bool tapped = avalue == "1"; if (!(!tapped && card->getDoesntUntap() && allCards)) { - if (!allCards) + if (!allCards) { emit logSetTapped(this, card, tapped); + } card->setTapped(tapped, !moveCardContext); } break; } - case AttrAttacking: + case AttrAttacking: { card->setAttacking(avalue == "1"); break; - case AttrFaceDown: + } + case AttrFaceDown: { card->setFaceDown(avalue == "1"); break; - case AttrColor: + } + case AttrColor: { card->setColor(avalue); break; + } case AttrAnnotation: { emit logSetAnnotation(this, card, avalue); card->setAnnotation(avalue); @@ -1352,11 +1441,10 @@ void Player::setCardAttrHelper(const GameEventContext &context, // trailing whitespace is significant; it is hacked on at the end as an additional identifier in our single key database QString Player::dbNameFromTokenDisplayName(const QString &tokenName) { - QRegExp tokenNamePattern(".*/\\S+\\s+(.*)"); - - int index = tokenNamePattern.indexIn(tokenName); - if (index != -1) { - return tokenNamePattern.capturedTexts()[1]; + QRegularExpression tokenNamePattern(".*/\\S+\\s+(.*)"); + QRegularExpressionMatch match = tokenNamePattern.match(tokenName); + if (match.hasMatch()) { + return match.captured(1); } else if (tokenName.indexOf(tr("Token: ")) != -1) { return tokenName.mid(tr("Token: ").length()); } else { @@ -1372,11 +1460,12 @@ void Player::eventGameSay(const Event_GameSay &event) void Player::eventShuffle(const Event_Shuffle &event) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name())); - if (!zone) + if (!zone) { return; - if (zone->getView()) - if (zone->getView()->getRevealZone()) - zone->getView()->setWriteableRevealZone(false); + } + if (zone->getView() && zone->getView()->getRevealZone()) { + zone->getView()->setWriteableRevealZone(false); + } emit logShuffle(this, zone); } @@ -1388,17 +1477,19 @@ void Player::eventRollDie(const Event_RollDie &event) void Player::eventCreateArrow(const Event_CreateArrow &event) { ArrowItem *arrow = addArrow(event.arrow_info()); - if (!arrow) + if (!arrow) { return; + } CardItem *startCard = static_cast(arrow->getStartItem()); CardItem *targetCard = qgraphicsitem_cast(arrow->getTargetItem()); - if (targetCard) + if (targetCard) { emit logCreateArrow(this, startCard->getOwner(), startCard->getName(), targetCard->getOwner(), targetCard->getName(), false); - else + } else { emit logCreateArrow(this, startCard->getOwner(), startCard->getName(), arrow->getTargetItem()->getOwner(), QString(), true); + } } void Player::eventDeleteArrow(const Event_DeleteArrow &event) @@ -1409,8 +1500,9 @@ void Player::eventDeleteArrow(const Event_DeleteArrow &event) void Player::eventCreateToken(const Event_CreateToken &event) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name()), 0); - if (!zone) + if (!zone) { return; + } CardItem *card = new CardItem(this, QString::fromStdString(event.card_name()), event.card_id()); // use db PT if not provided in event @@ -1418,8 +1510,9 @@ void Player::eventCreateToken(const Event_CreateToken &event) card->setPT(QString::fromStdString(event.pt())); } else { CardInfoPtr dbCard = db->getCard(QString::fromStdString(event.card_name())); - if (dbCard) + if (dbCard) { card->setPT(dbCard->getPowTough()); + } } card->setColor(QString::fromStdString(event.color())); card->setAnnotation(QString::fromStdString(event.annotation())); @@ -1432,16 +1525,19 @@ void Player::eventCreateToken(const Event_CreateToken &event) void Player::eventSetCardAttr(const Event_SetCardAttr &event, const GameEventContext &context) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name()), 0); - if (!zone) + if (!zone) { return; + } if (!event.has_card_id()) { const CardList &cards = zone->getCards(); - for (int i = 0; i < cards.size(); i++) + for (int i = 0; i < cards.size(); ++i) { setCardAttrHelper(context, cards.at(i), event.attribute(), QString::fromStdString(event.attr_value()), true); - if (event.attribute() == AttrTapped) + } + if (event.attribute() == AttrTapped) { emit logSetTapped(this, 0, event.attr_value() == "1"); + } } else { CardItem *card = zone->getCard(event.card_id(), QString()); if (!card) { @@ -1455,12 +1551,14 @@ void Player::eventSetCardAttr(const Event_SetCardAttr &event, const GameEventCon void Player::eventSetCardCounter(const Event_SetCardCounter &event) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name()), 0); - if (!zone) + if (!zone) { return; + } CardItem *card = zone->getCard(event.card_id(), QString()); - if (!card) + if (!card) { return; + } int oldValue = card->getCounters().value(event.counter_id(), 0); card->setCounter(event.counter_id(), event.counter_value()); @@ -1474,12 +1572,12 @@ void Player::eventCreateCounter(const Event_CreateCounter &event) void Player::eventSetCounter(const Event_SetCounter &event) { - AbstractCounter *c = counters.value(event.counter_id(), 0); - if (!c) + AbstractCounter *ctr = counters.value(event.counter_id(), 0); + if (!ctr) return; - int oldValue = c->getValue(); - c->setValue(event.value()); - emit logSetCounter(this, c->getName(), event.value(), oldValue); + int oldValue = ctr->getValue(); + ctr->setValue(event.value()); + emit logSetCounter(this, ctr->getName(), event.value(), oldValue); } void Player::eventDelCounter(const Event_DelCounter &event) @@ -1490,41 +1588,49 @@ void Player::eventDelCounter(const Event_DelCounter &event) void Player::eventDumpZone(const Event_DumpZone &event) { Player *zoneOwner = game->getPlayers().value(event.zone_owner_id(), 0); - if (!zoneOwner) + if (!zoneOwner) { return; + } CardZone *zone = zoneOwner->getZones().value(QString::fromStdString(event.zone_name()), 0); - if (!zone) + if (!zone) { return; + } emit logDumpZone(this, zone, event.number_cards()); } void Player::eventStopDumpZone(const Event_StopDumpZone &event) { Player *zoneOwner = game->getPlayers().value(event.zone_owner_id(), 0); - if (!zoneOwner) + if (!zoneOwner) { return; + } CardZone *zone = zoneOwner->getZones().value(QString::fromStdString(event.zone_name()), 0); - if (!zone) + if (!zone) { return; + } emit logStopDumpZone(this, zone); } void Player::eventMoveCard(const Event_MoveCard &event, const GameEventContext &context) { Player *startPlayer = game->getPlayers().value(event.start_player_id()); - if (!startPlayer) + if (!startPlayer) { return; + } CardZone *startZone = startPlayer->getZones().value(QString::fromStdString(event.start_zone()), 0); Player *targetPlayer = game->getPlayers().value(event.target_player_id()); - if (!targetPlayer) + if (!targetPlayer) { return; + } CardZone *targetZone; - if (event.has_target_zone()) + if (event.has_target_zone()) { targetZone = targetPlayer->getZones().value(QString::fromStdString(event.target_zone()), 0); - else + } else { targetZone = startZone; - if (!startZone || !targetZone) + } + if (!startZone || !targetZone) { return; + } int position = event.position(); int x = event.x(); @@ -1532,15 +1638,19 @@ void Player::eventMoveCard(const Event_MoveCard &event, const GameEventContext & int logPosition = position; int logX = x; - if (x == -1) + if (x == -1) { x = 0; + } CardItem *card = startZone->takeCard(position, event.card_id(), startZone != targetZone); - if (!card) + if (!card) { return; - if (startZone != targetZone) + } + if (startZone != targetZone) { card->deleteCardInfoPopup(); - if (event.has_card_name()) + } + if (event.has_card_name()) { card->setName(QString::fromStdString(event.card_name())); + } if (card->getAttachedTo() && (startZone != targetZone)) { CardItem *parentCard = card->getAttachedTo(); @@ -1557,19 +1667,22 @@ void Player::eventMoveCard(const Event_MoveCard &event, const GameEventContext & card->setHovered(false); const QList &attachedCards = card->getAttachedCards(); - for (int i = 0; i < attachedCards.size(); ++i) + for (int i = 0; i < attachedCards.size(); ++i) { attachedCards[i]->setParentItem(targetZone); + } - if (startZone->getPlayer() != targetZone->getPlayer()) + if (startZone->getPlayer() != targetZone->getPlayer()) { card->setOwner(targetZone->getPlayer()); + } } // The log event has to be sent before the card is added to the target zone // because the addCard function can modify the card object. - if (context.HasExtension(Context_UndoDraw::ext)) + if (context.HasExtension(Context_UndoDraw::ext)) { emit logUndoDraw(this, card->getName()); - else + } else { emit logMoveCard(this, card, startZone, logPosition, targetZone, logX); + } targetZone->addCard(card, true, x, y); @@ -1584,25 +1697,29 @@ void Player::eventMoveCard(const Event_MoveCard &event, const GameEventContext & while (arrowIterator.hasNext()) { ArrowItem *arrow = arrowIterator.next().value(); if ((arrow->getStartItem() == card) || (arrow->getTargetItem() == card)) { - if (startZone == targetZone) + if (startZone == targetZone) { arrow->updatePath(); - else + } else { arrowsToDelete.append(arrow); + } } } - for (int i = 0; i < arrowsToDelete.size(); ++i) + for (int i = 0; i < arrowsToDelete.size(); ++i) { arrowsToDelete[i]->delArrow(); + } } } void Player::eventFlipCard(const Event_FlipCard &event) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name()), 0); - if (!zone) + if (!zone) { return; + } CardItem *card = zone->getCard(event.card_id(), QString::fromStdString(event.card_name())); - if (!card) + if (!card) { return; + } emit logFlipCard(this, card->getName(), event.face_down()); card->setFaceDown(event.face_down()); } @@ -1610,17 +1727,20 @@ void Player::eventFlipCard(const Event_FlipCard &event) void Player::eventDestroyCard(const Event_DestroyCard &event) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name()), 0); - if (!zone) + if (!zone) { return; + } CardItem *card = zone->getCard(event.card_id(), QString()); - if (!card) + if (!card) { return; + } QList attachedCards = card->getAttachedCards(); // This list is always empty except for buggy server implementations. - for (int i = 0; i < attachedCards.size(); ++i) + for (int i = 0; i < attachedCards.size(); ++i) { attachedCards[i]->setAttachedTo(0); + } emit logDestroyCard(this, card->getName()); zone->takeCard(-1, event.card_id(), true); @@ -1637,33 +1757,39 @@ void Player::eventAttachCard(const Event_AttachCard &event) targetPlayer = playerList.value(event.target_player_id(), 0); if (targetPlayer) { targetZone = targetPlayer->getZones().value(QString::fromStdString(event.target_zone()), 0); - if (targetZone) + if (targetZone) { targetCard = targetZone->getCard(event.target_card_id(), QString()); + } } } CardZone *startZone = getZones().value(QString::fromStdString(event.start_zone()), 0); - if (!startZone) + if (!startZone) { return; + } CardItem *startCard = startZone->getCard(event.card_id(), QString()); - if (!startCard) + if (!startCard) { return; + } CardItem *oldParent = startCard->getAttachedTo(); startCard->setAttachedTo(targetCard); startZone->reorganizeCards(); - if ((startZone != targetZone) && targetZone) + if ((startZone != targetZone) && targetZone) { targetZone->reorganizeCards(); - if (oldParent) + } + if (oldParent) { oldParent->getZone()->reorganizeCards(); + } - if (targetCard) + if (targetCard) { emit logAttachCard(this, startCard->getName(), targetPlayer, targetCard->getName()); - else + } else { emit logUnattachCard(this, startCard->getName()); + } } void Player::eventDrawCards(const Event_DrawCards &event) @@ -1681,8 +1807,9 @@ void Player::eventDrawCards(const Event_DrawCards &event) } } else { const int number = event.number(); - for (int i = 0; i < number; ++i) + for (int i = 0; i < number; ++i) { hand->addCard(deck->takeCard(0, -1), false, -1); + } } hand->reorganizeCards(); @@ -1693,13 +1820,15 @@ void Player::eventDrawCards(const Event_DrawCards &event) void Player::eventRevealCards(const Event_RevealCards &event) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name())); - if (!zone) + if (!zone) { return; + } Player *otherPlayer = 0; if (event.has_other_player_id()) { otherPlayer = game->getPlayers().value(event.other_player_id()); - if (!otherPlayer) + if (!otherPlayer) { return; + } } bool peeking = false; @@ -1707,8 +1836,9 @@ void Player::eventRevealCards(const Event_RevealCards &event) const int cardListSize = event.cards_size(); for (int i = 0; i < cardListSize; ++i) { const ServerInfo_Card *temp = &event.cards(i); - if (temp->face_down()) + if (temp->face_down()) { peeking = true; + } cardList.append(temp); } @@ -1716,8 +1846,9 @@ void Player::eventRevealCards(const Event_RevealCards &event) for (int i = 0; i < cardList.size(); ++i) { QString cardName = QString::fromStdString(cardList.at(i)->name()); CardItem *card = zone->getCard(cardList.at(i)->id(), QString()); - if (!card) + if (!card) { continue; + } card->setName(cardName); emit logRevealCards(this, zone, cardList.at(i)->id(), cardName, this, true); } @@ -1732,8 +1863,9 @@ void Player::eventRevealCards(const Event_RevealCards &event) showZoneView = false; } } - if (showZoneView && !cardList.isEmpty()) + if (showZoneView && !cardList.isEmpty()) { static_cast(scene())->addRevealedZoneView(this, zone, cardList, event.grant_write_access()); + } emit logRevealCards(this, zone, event.card_id(), cardName, otherPlayer, false); } @@ -1742,8 +1874,9 @@ void Player::eventRevealCards(const Event_RevealCards &event) void Player::eventChangeZoneProperties(const Event_ChangeZoneProperties &event) { CardZone *zone = zones.value(QString::fromStdString(event.zone_name())); - if (!zone) + if (!zone) { return; + } if (event.has_always_reveal_top_card()) { zone->setAlwaysRevealTopCard(event.always_reveal_top_card()); @@ -1842,20 +1975,23 @@ void Player::processPlayerInfo(const ServerInfo_Player &info) clearArrows(); QMapIterator zoneIt(zones); - while (zoneIt.hasNext()) + while (zoneIt.hasNext()) { zoneIt.next().value()->clearContents(); + } const int zoneListSize = info.zone_list_size(); for (int i = 0; i < zoneListSize; ++i) { const ServerInfo_Zone &zoneInfo = info.zone_list(i); CardZone *zone = zones.value(QString::fromStdString(zoneInfo.name()), 0); - if (!zone) + if (!zone) { continue; + } const int cardListSize = zoneInfo.card_list_size(); if (!cardListSize) { - for (int j = 0; j < zoneInfo.card_count(); ++j) + for (int j = 0; j < zoneInfo.card_count(); ++j) { zone->addCard(new CardItem(this), false, -1); + } } else { for (int j = 0; j < cardListSize; ++j) { const ServerInfo_Card &cardInfo = zoneInfo.card_list(j); @@ -1864,15 +2000,17 @@ void Player::processPlayerInfo(const ServerInfo_Player &info) zone->addCard(card, false, cardInfo.x(), cardInfo.y()); } } - if (zoneInfo.has_always_reveal_top_card()) + if (zoneInfo.has_always_reveal_top_card()) { zone->setAlwaysRevealTopCard(zoneInfo.always_reveal_top_card()); + } zone->reorganizeCards(); } const int counterListSize = info.counter_list_size(); - for (int i = 0; i < counterListSize; ++i) + for (int i = 0; i < counterListSize; ++i) { addCounter(info.counter_list(i)); + } setConceded(info.properties().conceded()); } @@ -1883,8 +2021,9 @@ void Player::processCardAttachment(const ServerInfo_Player &info) for (int i = 0; i < zoneListSize; ++i) { const ServerInfo_Zone &zoneInfo = info.zone_list(i); CardZone *zone = zones.value(QString::fromStdString(zoneInfo.name()), 0); - if (!zone) + if (!zone) { continue; + } const int cardListSize = zoneInfo.card_list_size(); for (int j = 0; j < cardListSize; ++j) { @@ -1894,8 +2033,9 @@ void Player::processCardAttachment(const ServerInfo_Player &info) CardItem *targetCard = game->getCard(cardInfo.attach_player_id(), QString::fromStdString(cardInfo.attach_zone()), cardInfo.attach_card_id()); - if (!targetCard) + if (!targetCard) { continue; + } startCard->setAttachedTo(targetCard); } @@ -1903,36 +2043,39 @@ void Player::processCardAttachment(const ServerInfo_Player &info) } const int arrowListSize = info.arrow_list_size(); - for (int i = 0; i < arrowListSize; ++i) + for (int i = 0; i < arrowListSize; ++i) { addArrow(info.arrow_list(i)); + } } -void Player::playCard(CardItem *c, bool faceDown, bool tapped) +void Player::playCard(CardItem *card, bool faceDown, bool tapped) { - if (c == nullptr) + if (card == nullptr) { return; + } Command_MoveCard cmd; - cmd.set_start_player_id(c->getZone()->getPlayer()->getId()); - cmd.set_start_zone(c->getZone()->getName().toStdString()); + cmd.set_start_player_id(card->getZone()->getPlayer()->getId()); + cmd.set_start_zone(card->getZone()->getName().toStdString()); cmd.set_target_player_id(getId()); CardToMove *cardToMove = cmd.mutable_cards_to_move()->add_card(); - cardToMove->set_card_id(c->getId()); + cardToMove->set_card_id(card->getId()); - CardInfoPtr ci = c->getInfo(); - if (!ci) + CardInfoPtr info = card->getInfo(); + if (!info) { return; - if (!faceDown && ((!settingsCache->getPlayToStack() && ci->getTableRow() == 3) || - ((settingsCache->getPlayToStack() && ci->getTableRow() != 0) && - c->getZone()->getName().toStdString() != "stack"))) { + } + if (!faceDown && ((!settingsCache->getPlayToStack() && info->getTableRow() == 3) || + ((settingsCache->getPlayToStack() && info->getTableRow() != 0) && + card->getZone()->getName().toStdString() != "stack"))) { cmd.set_target_zone("stack"); cmd.set_x(0); cmd.set_y(0); } else { - int tableRow = faceDown ? 2 : ci->getTableRow(); + int tableRow = faceDown ? 2 : info->getTableRow(); QPoint gridPoint = QPoint(-1, table->clampValidTableRow(2 - tableRow)); cardToMove->set_face_down(faceDown); - cardToMove->set_pt(ci->getPowTough().toStdString()); + cardToMove->set_pt(info->getPowTough().toStdString()); cardToMove->set_tapped(faceDown ? false : tapped); if (tableRow != 3) cmd.set_target_zone("table"); @@ -1942,25 +2085,25 @@ void Player::playCard(CardItem *c, bool faceDown, bool tapped) sendGameCommand(cmd); } -void Player::addCard(CardItem *c) +void Player::addCard(CardItem *card) { - emit newCardAdded(c); + emit newCardAdded(card); } -void Player::deleteCard(CardItem *c) +void Player::deleteCard(CardItem *card) { - if (c == nullptr) { + if (card == nullptr) { return; } else if (dialogSemaphore) { - cardsToDelete.append(c); + cardsToDelete.append(card); } else { - c->deleteLater(); + card->deleteLater(); } } -void Player::addZone(CardZone *z) +void Player::addZone(CardZone *zone) { - zones.insert(z->getName(), z); + zones.insert(zone->getName(), zone); } AbstractCounter *Player::addCounter(const ServerInfo_Counter &counter) @@ -1972,30 +2115,35 @@ AbstractCounter *Player::addCounter(const ServerInfo_Counter &counter) AbstractCounter *Player::addCounter(int counterId, const QString &name, QColor color, int radius, int value) { qDebug() << "addCounter:" << getName() << counterId << name; - if (counters.contains(counterId)) + if (counters.contains(counterId)) { return 0; + } - AbstractCounter *c; - if (name == "life") - c = playerTarget->addCounter(counterId, name, value); - else - c = new GeneralCounter(this, counterId, name, color, radius, value, true, this); - counters.insert(counterId, c); - if (countersMenu) - countersMenu->addMenu(c->getMenu()); - if (shortcutsActive) - c->setShortcutsActive(); + AbstractCounter *ctr; + if (name == "life") { + ctr = playerTarget->addCounter(counterId, name, value); + } else { + ctr = new GeneralCounter(this, counterId, name, color, radius, value, true, this); + } + counters.insert(counterId, ctr); + if (countersMenu) { + countersMenu->addMenu(ctr->getMenu()); + } + if (shortcutsActive) { + ctr->setShortcutsActive(); + } rearrangeCounters(); - return c; + return ctr; } void Player::delCounter(int counterId) { - AbstractCounter *c = counters.value(counterId, 0); - if (!c) + AbstractCounter *ctr = counters.value(counterId, 0); + if (!ctr) { return; + } - c->delCounter(); + ctr->delCounter(); counters.remove(counterId); rearrangeCounters(); } @@ -2003,8 +2151,9 @@ void Player::delCounter(int counterId) void Player::clearCounters() { QMapIterator counterIterator(counters); - while (counterIterator.hasNext()) + while (counterIterator.hasNext()) { counterIterator.next().value()->delCounter(); + } counters.clear(); } @@ -2013,28 +2162,34 @@ ArrowItem *Player::addArrow(const ServerInfo_Arrow &arrow) const QMap &playerList = game->getPlayers(); Player *startPlayer = playerList.value(arrow.start_player_id(), 0); Player *targetPlayer = playerList.value(arrow.target_player_id(), 0); - if (!startPlayer || !targetPlayer) + if (!startPlayer || !targetPlayer) { return 0; + } CardZone *startZone = startPlayer->getZones().value(QString::fromStdString(arrow.start_zone()), 0); CardZone *targetZone = 0; - if (arrow.has_target_zone()) + if (arrow.has_target_zone()) { targetZone = targetPlayer->getZones().value(QString::fromStdString(arrow.target_zone()), 0); - if (!startZone || (!targetZone && arrow.has_target_zone())) + } + if (!startZone || (!targetZone && arrow.has_target_zone())) { return 0; + } CardItem *startCard = startZone->getCard(arrow.start_card_id(), QString()); CardItem *targetCard = 0; - if (targetZone) + if (targetZone) { targetCard = targetZone->getCard(arrow.target_card_id(), QString()); - if (!startCard || (!targetCard && arrow.has_target_card_id())) + } + if (!startCard || (!targetCard && arrow.has_target_card_id())) { return 0; + } - if (targetCard) + if (targetCard) { return addArrow(arrow.id(), startCard, targetCard, convertColorToQColor(arrow.arrow_color())); - else + } else { return addArrow(arrow.id(), startCard, targetPlayer->getPlayerTarget(), convertColorToQColor(arrow.arrow_color())); + } } ArrowItem *Player::addArrow(int arrowId, CardItem *startCard, ArrowTarget *targetItem, const QColor &color) @@ -2047,23 +2202,26 @@ ArrowItem *Player::addArrow(int arrowId, CardItem *startCard, ArrowTarget *targe void Player::delArrow(int arrowId) { - ArrowItem *a = arrows.value(arrowId, 0); - if (!a) + ArrowItem *arr = arrows.value(arrowId, 0); + if (!arr) { return; - a->delArrow(); + } + arr->delArrow(); } void Player::removeArrow(ArrowItem *arrow) { - if (arrow->getId() != -1) + if (arrow->getId() != -1) { arrows.remove(arrow->getId()); + } } void Player::clearArrows() { QMapIterator arrowIterator(arrows); - while (arrowIterator.hasNext()) + while (arrowIterator.hasNext()) { arrowIterator.next().value()->delArrow(); + } arrows.clear(); } @@ -2076,23 +2234,25 @@ void Player::rearrangeCounters() QMapIterator counterIterator(counters); while (counterIterator.hasNext()) { counterIterator.next(); - if (counterIterator.value()->getShownInCounterArea()) + if (counterIterator.value()->getShownInCounterArea()) { totalHeight += counterIterator.value()->boundingRect().height(); + } } const qreal padding = 5; - qreal y = boundingRect().y() + marginTop; + qreal ySize = boundingRect().y() + marginTop; // Place objects for (counterIterator.toFront(); counterIterator.hasNext();) { - AbstractCounter *c = counterIterator.next().value(); + AbstractCounter *ctr = counterIterator.next().value(); - if (!c->getShownInCounterArea()) + if (!ctr->getShownInCounterArea()) { continue; + } - QRectF br = c->boundingRect(); - c->setPos((counterAreaWidth - br.width()) / 2, y); - y += br.height() + padding; + QRectF br = ctr->boundingRect(); + ctr->setPos((counterAreaWidth - br.width()) / 2, ySize); + ySize += br.height() + padding; } } @@ -2118,8 +2278,9 @@ void Player::sendGameCommand(PendingCommand *pend) bool Player::clearCardsToDelete() { - if (cardsToDelete.isEmpty()) + if (cardsToDelete.isEmpty()) { return false; + } for (auto &i : cardsToDelete) { if (i != nullptr) { @@ -2139,23 +2300,27 @@ void Player::actMoveCardXCardsFromTop() defaultNumberTopCardsToPlaceBelow, 1, 2000000000, 1, &ok); number--; - if (!ok) + if (!ok) { return; + } defaultNumberTopCardsToPlaceBelow = number; QList sel = scene()->selectedItems(); QList cardList; - while (!sel.isEmpty()) + while (!sel.isEmpty()) { cardList.append(qgraphicsitem_cast(sel.takeFirst())); + } QList commandList; ListOfCardsToMove idList; - for (auto &i : cardList) + for (auto &i : cardList) { idList.add_card()->set_card_id(i->getId()); + } - if (cardList.isEmpty()) + if (cardList.isEmpty()) { return; + } int startPlayerId = cardList[0]->getZone()->getPlayer()->getId(); QString startZone = cardList[0]->getZone()->getName(); @@ -2170,10 +2335,11 @@ void Player::actMoveCardXCardsFromTop() cmd->set_y(0); commandList.append(cmd); - if (local) + if (local) { sendGameCommand(prepareGameCommand(commandList)); - else + } else { game->sendGameCommand(prepareGameCommand(commandList)); + } } void Player::cardMenuAction() @@ -2181,8 +2347,9 @@ void Player::cardMenuAction() QAction *a = dynamic_cast(sender()); QList sel = scene()->selectedItems(); QList cardList; - while (!sel.isEmpty()) + while (!sel.isEmpty()) { cardList.append(qgraphicsitem_cast(sel.takeFirst())); + } QList commandList; if (a->data().toInt() <= (int)cmClone) { @@ -2191,6 +2358,7 @@ void Player::cardMenuAction() switch (static_cast(a->data().toInt())) { // Leaving both for compatibility with server case cmUntap: + // fallthrough case cmTap: { Command_SetCardAttr *cmd = new Command_SetCardAttr; cmd->set_zone(card->getZone()->getName().toStdString()); @@ -2216,8 +2384,9 @@ void Player::cardMenuAction() cmd->set_face_down(!card->getFaceDown()); if (card->getFaceDown()) { CardInfoPtr ci = card->getInfo(); - if (ci) + if (ci) { cmd->set_pt(ci->getPowTough().toStdString()); + } } commandList.append(cmd); break; @@ -2249,7 +2418,7 @@ void Player::cardMenuAction() } } else { ListOfCardsToMove idList; - for (int i = 0; i < cardList.size(); i++) { + for (int i = 0; i < cardList.size(); ++i) { idList.add_card()->set_card_id(cardList[i]->getId()); } int startPlayerId = cardList[0]->getZone()->getPlayer()->getId(); @@ -2344,8 +2513,9 @@ void Player::actIncPT(int deltaP, int deltaT) cmd->set_attr_value(ptString.toStdString()); commandList.append(cmd); - if (local) + if (local) { playerid = card->getZone()->getPlayer()->getId(); + } } game->sendGameCommand(prepareGameCommand(commandList), playerid); @@ -2387,18 +2557,21 @@ void Player::actSetPT() QListIterator i(scene()->selectedItems()); while (i.hasNext()) { CardItem *card = static_cast(i.next()); - if (!card->getPT().isEmpty()) + if (!card->getPT().isEmpty()) { oldPT = card->getPT(); + } } bool ok; dialogSemaphore = true; QString pt = QInputDialog::getText(0, tr("Set power/toughness"), tr("Please enter the new PT:"), QLineEdit::Normal, oldPT, &ok); dialogSemaphore = false; - if (clearCardsToDelete()) + if (clearCardsToDelete()) { return; - if (!ok) + } + if (!ok) { return; + } QList commandList; QListIterator j(scene()->selectedItems()); @@ -2411,8 +2584,9 @@ void Player::actSetPT() cmd->set_attr_value(pt.toStdString()); commandList.append(cmd); - if (local) + if (local) { playerid = card->getZone()->getPlayer()->getId(); + } } game->sendGameCommand(prepareGameCommand(commandList), playerid); @@ -2420,8 +2594,9 @@ void Player::actSetPT() void Player::actDrawArrow() { - if (!game->getActiveCard()) + if (!game->getActiveCard()) { return; + } game->getActiveCard()->drawArrow(Qt::red); } @@ -2462,8 +2637,9 @@ void Player::actSetAnnotation() QListIterator i(scene()->selectedItems()); while (i.hasNext()) { CardItem *card = static_cast(i.next()); - if (!card->getAnnotation().isEmpty()) + if (!card->getAnnotation().isEmpty()) { oldAnnotation = card->getAnnotation(); + } } bool ok; @@ -2471,10 +2647,12 @@ void Player::actSetAnnotation() QString annotation = QInputDialog::getText(0, tr("Set annotation"), tr("Please enter the new annotation:"), QLineEdit::Normal, oldAnnotation, &ok); dialogSemaphore = false; - if (clearCardsToDelete()) + if (clearCardsToDelete()) { return; - if (!ok) + } + if (!ok) { return; + } QList commandList; i.toFront(); @@ -2492,8 +2670,9 @@ void Player::actSetAnnotation() void Player::actAttach() { - if (!game->getActiveCard()) + if (!game->getActiveCard()) { return; + } ArrowAttachItem *arrow = new ArrowAttachItem(game->getActiveCard()); scene()->addItem(arrow); @@ -2502,8 +2681,9 @@ void Player::actAttach() void Player::actUnattach() { - if (!game->getActiveCard()) + if (!game->getActiveCard()) { return; + } Command_AttachCard cmd; cmd.set_start_zone(game->getActiveCard()->getZone()->getName().toStdString()); @@ -2513,11 +2693,10 @@ void Player::actUnattach() void Player::actCardCounterTrigger() { - QAction *a = static_cast(sender()); - int counterId = a->data().toInt() / 1000; - int action = a->data().toInt() % 1000; + QAction *action = static_cast(sender()); + int counterId = action->data().toInt() / 1000; QList commandList; - switch (action) { + switch (action->data().toInt() % 1000) { // TODO: define case numbers case 9: { QListIterator i(scene()->selectedItems()); while (i.hasNext()) { @@ -2553,10 +2732,9 @@ void Player::actCardCounterTrigger() dialogSemaphore = true; int number = QInputDialog::getInt(0, tr("Set counters"), tr("Number:"), 0, 0, MAX_COUNTERS_ON_CARD, 1, &ok); dialogSemaphore = false; - if (clearCardsToDelete()) - return; - if (!ok) + if (clearCardsToDelete() || !ok) { return; + } QListIterator i(scene()->selectedItems()); while (i.hasNext()) { @@ -2577,8 +2755,9 @@ void Player::actCardCounterTrigger() void Player::actPlay() { - if (!game->getActiveCard()) + if (!game->getActiveCard()) { return; + } bool cipt = game->getActiveCard()->getInfo() ? game->getActiveCard()->getInfo()->getCipt() : false; playCard(game->getActiveCard(), false, cipt); @@ -2586,16 +2765,18 @@ void Player::actPlay() void Player::actHide() { - if (!game->getActiveCard()) + if (!game->getActiveCard()) { return; + } game->getActiveCard()->getZone()->removeCard(game->getActiveCard()); } void Player::actPlayFacedown() { - if (!game->getActiveCard()) + if (!game->getActiveCard()) { return; + } playCard(game->getActiveCard(), true, false); } @@ -2605,7 +2786,7 @@ void Player::refreshShortcuts() if (shortcutsActive) { setShortcutsActive(); - foreach (const CardItem *cardItem, table->getCards()) { + for (const CardItem *cardItem : table->getCards()) { updateCardMenu(cardItem); } } @@ -2769,85 +2950,66 @@ void Player::addRelatedCardView(const CardItem *card, QMenu *cardMenu) void Player::addRelatedCardActions(const CardItem *card, QMenu *cardMenu) { - if (card == nullptr || cardMenu == nullptr || card->getInfo() == nullptr) + if (card == nullptr || cardMenu == nullptr || card->getInfo() == nullptr) { return; - - QList relatedCards = QList(); - relatedCards.append(card->getInfo()->getRelatedCards()); - relatedCards.append(card->getInfo()->getReverseRelatedCards2Me()); - - switch (relatedCards.length()) { - case 0: - break; - case 1: { - cardMenu->addSeparator(); - QAction *createRelatedCards; - if (relatedCards.at(0)->getDoesAttach()) { - createRelatedCards = - new QAction(tr("Token: ") + tr("Attach to ") + "\"" + relatedCards.at(0)->getName() + "\"", this); - } else - createRelatedCards = new QAction( - tr("Token: ") + - (relatedCards.at(0)->getIsVariable() - ? "X " - : QString(relatedCards.at(0)->getDefaultCount() == 1 - ? QString() - : QString::number(relatedCards.at(0)->getDefaultCount()) + "x ")) + - relatedCards.at(0)->getName(), - this); - connect(createRelatedCards, SIGNAL(triggered()), this, SLOT(actCreateAllRelatedCards())); - if (shortcutsActive) { - createRelatedCards->setShortcut( - settingsCache->shortcuts().getSingleShortcut("Player/aCreateRelatedTokens")); - } - cardMenu->addAction(createRelatedCards); - break; - } - default: { - cardMenu->addSeparator(); - int i = 0; - foreach (CardRelation *cardRelation, relatedCards) { - QString cardName = cardRelation->getName(); - QAction *createRelated; - if (cardRelation->getDoesAttach()) - createRelated = new QAction(tr("Token: ") + tr("Attach to ") + "\"" + cardName + "\"", this); - else - createRelated = - new QAction(tr("Token: ") + - (cardRelation->getIsVariable() - ? "X " - : QString(cardRelation->getDefaultCount() == 1 - ? QString() - : QString::number(cardRelation->getDefaultCount()) + "x ")) + - cardName, - this); - createRelated->setData(QVariant(i)); - connect(createRelated, SIGNAL(triggered()), this, SLOT(actCreateRelatedCard())); - cardMenu->addAction(createRelated); - i++; - } - QAction *createRelatedCards = new QAction(tr("All tokens"), this); - connect(createRelatedCards, SIGNAL(triggered()), this, SLOT(actCreateAllRelatedCards())); - if (shortcutsActive) { - createRelatedCards->setShortcut( - settingsCache->shortcuts().getSingleShortcut("Player/aCreateRelatedTokens")); - } - cardMenu->addAction(createRelatedCards); - break; - } } + + QList relatedCards(card->getInfo()->getRelatedCards()); + relatedCards.append(card->getInfo()->getReverseRelatedCards2Me()); + if (relatedCards.empty()) { + return; + } + + cardMenu->addSeparator(); + int index = 0; + QAction *createRelatedCards = nullptr; + for (const CardRelation *cardRelation : relatedCards) { + QString cardName = cardRelation->getName(); + QString text = tr("Token: "); + if (cardRelation->getDoesAttach()) { + text += tr("Attach to ") + "\"" + cardName + "\""; + } else if (cardRelation->getIsVariable()) { + text += "X " + cardName; + } else if (cardRelation->getDefaultCount() != 1) { + text += QString(cardRelation->getDefaultCount()) + "x " + cardName; + } else { + text += cardName; + } + + if (createRelatedCards == nullptr) { + if (relatedCards.length() == 1) { + createRelatedCards = new QAction(text, this); // set actCreateAllRelatedCards with this text + break; // do not set an individual entry as there is only one entry + } else { + createRelatedCards = new QAction(tr("All tokens"), this); + } + } + + QAction *createRelated = new QAction(text, this); + createRelated->setData(QVariant(index++)); + connect(createRelated, SIGNAL(triggered()), this, SLOT(actCreateRelatedCard())); + cardMenu->addAction(createRelated); + } + + if (shortcutsActive) { + createRelatedCards->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aCreateRelatedTokens")); + } + connect(createRelatedCards, SIGNAL(triggered()), this, SLOT(actCreateAllRelatedCards())); + cardMenu->addAction(createRelatedCards); } void Player::setCardMenu(QMenu *menu) { - if (aCardMenu) + if (aCardMenu) { aCardMenu->setMenu(menu); + } } QMenu *Player::getCardMenu() const { - if (aCardMenu) + if (aCardMenu) { return aCardMenu->menu(); + } return 0; } @@ -2859,15 +3021,17 @@ QString Player::getName() const qreal Player::getMinimumWidth() const { qreal result = table->getMinimumWidth() + CARD_HEIGHT + 15 + counterAreaWidth + stack->boundingRect().width(); - if (!settingsCache->getHorizontalHand()) + if (!settingsCache->getHorizontalHand()) { result += hand->boundingRect().width(); + } return result; } void Player::setGameStarted() { - if (local) + if (local) { aAlwaysRevealTopCard->setChecked(false); + } setConceded(false); } @@ -2893,8 +3057,9 @@ void Player::processSceneSizeChange(int newPlayerWidth) { // Extend table (and hand, if horizontal) to accomodate the new player width. qreal tableWidth = newPlayerWidth - CARD_HEIGHT - 15 - counterAreaWidth - stack->boundingRect().width(); - if (!settingsCache->getHorizontalHand()) + if (!settingsCache->getHorizontalHand()) { tableWidth -= hand->boundingRect().width(); + } table->setWidth(tableWidth); hand->setWidth(tableWidth + stack->boundingRect().width()); @@ -2902,8 +3067,9 @@ void Player::processSceneSizeChange(int newPlayerWidth) void Player::setLastToken(CardInfoPtr cardInfo) { - if (cardInfo == nullptr || aCreateAnotherToken == nullptr) + if (cardInfo == nullptr || aCreateAnotherToken == nullptr) { return; + } lastTokenName = cardInfo->getName(); lastTokenColor = cardInfo->getColors().isEmpty() ? QString() : cardInfo->getColors().first().toLower(); diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h index e459d3d2..c4f6ed00 100644 --- a/cockatrice/src/player.h +++ b/cockatrice/src/player.h @@ -144,6 +144,8 @@ public slots: void actUndoDraw(); void actMulligan(); void actMoveTopCardToPlayFaceDown(); + void actMoveTopCardToGrave(); + void actMoveTopCardToExile(); void actMoveTopCardsToGrave(); void actMoveTopCardsToExile(); void actMoveTopCardToBottom(); @@ -201,10 +203,10 @@ private: QAction *aMoveHandToTopLibrary, *aMoveHandToBottomLibrary, *aMoveHandToGrave, *aMoveHandToRfg, *aMoveGraveToTopLibrary, *aMoveGraveToBottomLibrary, *aMoveGraveToHand, *aMoveGraveToRfg, *aMoveRfgToTopLibrary, *aMoveRfgToBottomLibrary, *aMoveRfgToHand, *aMoveRfgToGrave, *aViewLibrary, *aViewTopCards, - *aAlwaysRevealTopCard, *aOpenDeckInDeckEditor, *aMoveTopCardsToGrave, *aMoveTopCardsToExile, - *aMoveTopCardToBottom, *aViewGraveyard, *aViewRfg, *aViewSideboard, *aDrawCard, *aDrawCards, *aUndoDraw, - *aMulligan, *aShuffle, *aMoveTopToPlayFaceDown, *aUntapAll, *aRollDie, *aCreateToken, *aCreateAnotherToken, - *aCardMenu, *aMoveBottomCardToGrave; + *aAlwaysRevealTopCard, *aOpenDeckInDeckEditor, *aMoveTopCardToGraveyard, *aMoveTopCardToExile, + *aMoveTopCardsToGraveyard, *aMoveTopCardsToExile, *aMoveTopCardToBottom, *aViewGraveyard, *aViewRfg, + *aViewSideboard, *aDrawCard, *aDrawCards, *aUndoDraw, *aMulligan, *aShuffle, *aMoveTopToPlayFaceDown, + *aUntapAll, *aRollDie, *aCreateToken, *aCreateAnotherToken, *aCardMenu, *aMoveBottomCardToGrave; QList aAddCounter, aSetCounter, aRemoveCounter; QAction *aPlay, *aPlayFacedown, *aHide, *aTap, *aDoesntUntap, *aAttach, *aUnattach, *aDrawArrow, *aSetPT, *aResetPT, diff --git a/cockatrice/src/sequenceEdit/sequenceedit.cpp b/cockatrice/src/sequenceEdit/sequenceedit.cpp index 3553870d..c652a525 100644 --- a/cockatrice/src/sequenceEdit/sequenceedit.cpp +++ b/cockatrice/src/sequenceEdit/sequenceedit.cpp @@ -1,20 +1,12 @@ #include "sequenceedit.h" #include "../settingscache.h" -#include #include #include -#include -#include #include #include -SequenceEdit::SequenceEdit(QString _shorcutName, QWidget *parent) : QWidget(parent) +SequenceEdit::SequenceEdit(const QString &_shortcutName, QWidget *parent) : QWidget(parent), shortcutName(_shortcutName) { - shorcutName = std::move(_shorcutName); - currentKey = 0; - keys = 0; - valid = false; - lineEdit = new QLineEdit(this); clearButton = new QPushButton("", this); defaultButton = new QPushButton("", this); @@ -42,20 +34,20 @@ SequenceEdit::SequenceEdit(QString _shorcutName, QWidget *parent) : QWidget(pare connect(defaultButton, SIGNAL(clicked()), this, SLOT(restoreDefault())); lineEdit->installEventFilter(this); - lineEdit->setText(settingsCache->shortcuts().getShortcutString(shorcutName)); + lineEdit->setText(settingsCache->shortcuts().getShortcutString(shortcutName)); } -QString SequenceEdit::getSecuence() +QString SequenceEdit::getSequence() { return lineEdit->text(); } void SequenceEdit::removeLastShortcut() { - QString secuences = lineEdit->text(); - if (!secuences.isEmpty()) { - if (secuences.lastIndexOf(";") > 0) { - QString valid = secuences.left(secuences.lastIndexOf(";")); + QString sequences = lineEdit->text(); + if (!sequences.isEmpty()) { + if (sequences.lastIndexOf(";") > 0) { + QString valid = sequences.left(sequences.lastIndexOf(";")); lineEdit->setText(valid); } else { lineEdit->clear(); @@ -67,18 +59,18 @@ void SequenceEdit::removeLastShortcut() void SequenceEdit::restoreDefault() { - lineEdit->setText(settingsCache->shortcuts().getDefaultShortcutString(shorcutName)); + lineEdit->setText(settingsCache->shortcuts().getDefaultShortcutString(shortcutName)); updateSettings(); } void SequenceEdit::refreshShortcut() { - lineEdit->setText(settingsCache->shortcuts().getShortcutString(shorcutName)); + lineEdit->setText(settingsCache->shortcuts().getShortcutString(shortcutName)); } void SequenceEdit::clear() { - this->lineEdit->setText(""); + lineEdit->setText(""); } bool SequenceEdit::eventFilter(QObject *, QEvent *event) @@ -142,8 +134,8 @@ void SequenceEdit::finishShortcut() QKeySequence sequence(keys); if (!sequence.isEmpty() && valid) { QString sequenceString = sequence.toString(); - if (settingsCache->shortcuts().isKeyAllowed(shorcutName, sequenceString)) { - if (settingsCache->shortcuts().isValid(shorcutName, sequenceString)) { + if (settingsCache->shortcuts().isKeyAllowed(shortcutName, sequenceString)) { + if (settingsCache->shortcuts().isValid(shortcutName, sequenceString)) { if (!lineEdit->text().isEmpty()) { if (lineEdit->text().contains(sequenceString)) { return; @@ -167,5 +159,5 @@ void SequenceEdit::finishShortcut() void SequenceEdit::updateSettings() { - settingsCache->shortcuts().setShortcuts(shorcutName, lineEdit->text()); -} \ No newline at end of file + settingsCache->shortcuts().setShortcuts(shortcutName, lineEdit->text()); +} diff --git a/cockatrice/src/sequenceEdit/sequenceedit.h b/cockatrice/src/sequenceEdit/sequenceedit.h index 2dffc101..5f61127a 100644 --- a/cockatrice/src/sequenceEdit/sequenceedit.h +++ b/cockatrice/src/sequenceEdit/sequenceedit.h @@ -1,19 +1,18 @@ -#ifndef SECUENCEEDIT_H -#define SECUENCEEDIT_H +#ifndef SEQUENCEEDIT_H +#define SEQUENCEEDIT_H +#include #include +#include +#include #include -class QLineEdit; -class QPushButton; -class QEvent; - class SequenceEdit : public QWidget { Q_OBJECT public: - SequenceEdit(QString _shorcutName, QWidget *parent = nullptr); - QString getSecuence(); + SequenceEdit(const QString &_shortcutName, QWidget *parent = nullptr); + QString getSequence(); void refreshShortcut(); void clear(); @@ -25,13 +24,13 @@ protected: bool eventFilter(QObject *, QEvent *event); private: - QString shorcutName; + QString shortcutName; QLineEdit *lineEdit; QPushButton *clearButton; QPushButton *defaultButton; - int keys; - int currentKey; - bool valid; + int keys = 0; + int currentKey = 0; + bool valid = false; void processKey(QKeyEvent *e); int translateModifiers(Qt::KeyboardModifiers state, const QString &text); @@ -39,4 +38,4 @@ private: void updateSettings(); }; -#endif // SECUENCEEDIT_H +#endif // SEQUENCEEDIT_H diff --git a/cockatrice/src/sequenceEdit/ui_shortcutstab.h b/cockatrice/src/sequenceEdit/ui_shortcutstab.h index 1a6714df..17c786a8 100644 --- a/cockatrice/src/sequenceEdit/ui_shortcutstab.h +++ b/cockatrice/src/sequenceEdit/ui_shortcutstab.h @@ -279,42 +279,8 @@ public: QSpacerItem *verticalSpacer_2; QWidget *tab_3; QGridLayout *gridLayout_20; - QGroupBox *groupBox_15; - QGridLayout *gridLayout_15; - QLabel *lbl_Player_aMoveToBottomLibrary; - SequenceEdit *Player_aMoveToBottomLibrary; - QLabel *lbl_Player_aMoveToTopLibrary; - SequenceEdit *Player_aMoveToTopLibrary; - QLabel *lbl_Player_aMoveToGraveyard; - SequenceEdit *Player_aMoveToGraveyard; - QLabel *lbl_Player_aMoveToExile; - SequenceEdit *Player_aMoveToExile; - QLabel *lbl_Player_aMoveToHand; - SequenceEdit *Player_aMoveToHand; - QLabel *lbl_Player_aMoveTopToPlayFaceDown; - SequenceEdit *Player_aMoveTopToPlayFaceDown; - QGroupBox *groupBox_16; - QGridLayout *gridLayout_16; - QLabel *lbl_Player_aViewGraveyard; - SequenceEdit *Player_aViewGraveyard; - QLabel *lbl_Player_aViewLibrary; - SequenceEdit *Player_aViewLibrary; - QLabel *lbl_Player_aViewTopCards; - SequenceEdit *Player_aViewTopCards; - QLabel *lbl_Player_aViewSideboard; - SequenceEdit *Player_aViewSideboard; - QLabel *lbl_Player_aViewRfg; - SequenceEdit *Player_aViewRfg; - QLabel *lbl_GameView_aCloseMostRecentZoneView; - SequenceEdit *GameView_aCloseMostRecentZoneView; - QGroupBox *groupBox_17; - QGridLayout *gridLayout_18; - SequenceEdit *DeckViewContainer_loadRemoteButton; - SequenceEdit *DeckViewContainer_loadLocalButton; - QLabel *lbl_DeckViewContainer_loadRemoteButton; - QLabel *lbl_DeckViewContainer_loadLocalButton; - QGroupBox *groupBox_18; - QGridLayout *gridLayout_19; + QGroupBox *groupBox_gameplay; + QGridLayout *gridLayout_gameplay; QLabel *lbl_Player_aDrawArrow; SequenceEdit *Player_aDrawArrow; QLabel *lbl_TabGame_aLeaveGame; @@ -331,8 +297,36 @@ public: SequenceEdit *Player_aShuffle; QLabel *lbl_TabGame_aRotateViewCCW; SequenceEdit *TabGame_aRotateViewCCW; - QGroupBox *groupBox_14; - QGridLayout *gridLayout_14; + QGroupBox *groupBox_moveCard; + QGridLayout *gridLayout_moveCard; + QLabel *lbl_Player_aMoveToBottomLibrary; + SequenceEdit *Player_aMoveToBottomLibrary; + QLabel *lbl_Player_aMoveToTopLibrary; + SequenceEdit *Player_aMoveToTopLibrary; + QLabel *lbl_Player_aMoveToGraveyard; + SequenceEdit *Player_aMoveToGraveyard; + QLabel *lbl_Player_aMoveToExile; + SequenceEdit *Player_aMoveToExile; + QLabel *lbl_Player_aMoveToHand; + SequenceEdit *Player_aMoveToHand; + QLabel *lbl_Player_aMoveTopToPlayFaceDown; + SequenceEdit *Player_aMoveTopToPlayFaceDown; + QGroupBox *groupBox_view; + QGridLayout *gridLayout_view; + QLabel *lbl_Player_aViewGraveyard; + SequenceEdit *Player_aViewGraveyard; + QLabel *lbl_Player_aViewLibrary; + SequenceEdit *Player_aViewLibrary; + QLabel *lbl_Player_aViewTopCards; + SequenceEdit *Player_aViewTopCards; + QLabel *lbl_Player_aViewSideboard; + SequenceEdit *Player_aViewSideboard; + QLabel *lbl_Player_aViewRfg; + SequenceEdit *Player_aViewRfg; + QLabel *lbl_GameView_aCloseMostRecentZoneView; + SequenceEdit *GameView_aCloseMostRecentZoneView; + QGroupBox *groupBox_draw; + QGridLayout *gridLayout_draw; QLabel *lbl_Player_aMulligan; SequenceEdit *Player_aMulligan; QLabel *lbl_Player_aDrawCard; @@ -343,6 +337,22 @@ public: SequenceEdit *Player_aUndoDraw; QLabel *lbl_Player_aAlwaysRevealTopCard; SequenceEdit *Player_aAlwaysRevealTopCard; + QGroupBox *groupBox_moveDeck; + QGridLayout *gridLayout_moveDeck; + QLabel *lbl_Player_aMoveTopCardToGraveyard; + SequenceEdit *Player_aMoveTopCardToGraveyard; + QLabel *lbl_Player_aMoveTopCardToExile; + SequenceEdit *Player_aMoveTopCardToExile; + QLabel *lbl_Player_aMoveTopCardsToGraveyard; + SequenceEdit *Player_aMoveTopCardsToGraveyard; + QLabel *lbl_Player_aMoveTopCardsToExile; + SequenceEdit *Player_aMoveTopCardsToExile; + QGroupBox *groupBox_gameLobby; + QGridLayout *gridLayout_gameLobby; + SequenceEdit *DeckViewContainer_loadRemoteButton; + QLabel *lbl_DeckViewContainer_loadRemoteButton; + SequenceEdit *DeckViewContainer_loadLocalButton; + QLabel *lbl_DeckViewContainer_loadLocalButton; QSpacerItem *verticalSpacer_3; QWidget *tab_4; QLabel *faqLabel; @@ -1406,304 +1416,352 @@ public: tab_3->setObjectName("tab_3"); gridLayout_20 = new QGridLayout(tab_3); gridLayout_20->setObjectName("gridLayout_20"); - groupBox_15 = new QGroupBox(tab_3); - groupBox_15->setObjectName("groupBox_15"); - gridLayout_15 = new QGridLayout(groupBox_15); - gridLayout_15->setObjectName("gridLayout_15"); - lbl_Player_aMoveToBottomLibrary = new QLabel(groupBox_15); - lbl_Player_aMoveToBottomLibrary->setObjectName("lbl_Player_aMoveToBottomLibrary"); - gridLayout_15->addWidget(lbl_Player_aMoveToBottomLibrary, 0, 0, 1, 1); - - Player_aMoveToBottomLibrary = new SequenceEdit("Player/aMoveToBottomLibrary", groupBox_15); - Player_aMoveToBottomLibrary->setObjectName("Player_aMoveToBottomLibrary"); - - gridLayout_15->addWidget(Player_aMoveToBottomLibrary, 0, 1, 1, 1); - - lbl_Player_aMoveToTopLibrary = new QLabel(groupBox_15); - lbl_Player_aMoveToTopLibrary->setObjectName("lbl_Player_aMoveToTopLibrary"); - - gridLayout_15->addWidget(lbl_Player_aMoveToTopLibrary, 1, 0, 1, 1); - - Player_aMoveToTopLibrary = new SequenceEdit("Player/aMoveToTopLibrary", groupBox_15); - Player_aMoveToTopLibrary->setObjectName("Player_aMoveToTopLibrary"); - - gridLayout_15->addWidget(Player_aMoveToTopLibrary, 1, 1, 1, 1); - - lbl_Player_aMoveToGraveyard = new QLabel(groupBox_15); - lbl_Player_aMoveToGraveyard->setObjectName("lbl_Player_aMoveToGraveyard"); - - gridLayout_15->addWidget(lbl_Player_aMoveToGraveyard, 2, 0, 1, 1); - - Player_aMoveToGraveyard = new SequenceEdit("Player/aMoveToGraveyard", groupBox_15); - Player_aMoveToGraveyard->setObjectName("Player_aMoveToGraveyard"); - - gridLayout_15->addWidget(Player_aMoveToGraveyard, 2, 1, 1, 1); - - lbl_Player_aMoveToExile = new QLabel(groupBox_15); - lbl_Player_aMoveToExile->setObjectName("lbl_Player_aMoveToExile"); - - gridLayout_15->addWidget(lbl_Player_aMoveToExile, 3, 0, 1, 1); - - Player_aMoveToExile = new SequenceEdit("Player/aMoveToExile", groupBox_15); - Player_aMoveToExile->setObjectName("Player_aMoveToExile"); - - gridLayout_15->addWidget(Player_aMoveToExile, 3, 1, 1, 1); - - lbl_Player_aMoveToHand = new QLabel(groupBox_15); - lbl_Player_aMoveToHand->setObjectName("lbl_Player_aMoveToHand"); - - gridLayout_15->addWidget(lbl_Player_aMoveToHand, 4, 0, 1, 1); - - Player_aMoveToHand = new SequenceEdit("Player/aMoveToHand", groupBox_15); - Player_aMoveToHand->setObjectName("Player_aMoveToHand"); - - gridLayout_15->addWidget(Player_aMoveToHand, 4, 1, 1, 1); - - lbl_Player_aMoveTopToPlayFaceDown = new QLabel(groupBox_15); - lbl_Player_aMoveTopToPlayFaceDown->setObjectName("lbl_Player_aMoveTopToPlayFaceDown"); - - gridLayout_15->addWidget(lbl_Player_aMoveTopToPlayFaceDown, 5, 0, 1, 1); - - Player_aMoveTopToPlayFaceDown = new SequenceEdit("Player/aMoveTopToPlayFaceDown", groupBox_15); - Player_aMoveTopToPlayFaceDown->setObjectName("Player_aMoveTopToPlayFaceDown"); - - gridLayout_15->addWidget(Player_aMoveTopToPlayFaceDown, 5, 1, 1, 1); - - gridLayout_20->addWidget(groupBox_15, 0, 1, 1, 1); - - groupBox_16 = new QGroupBox(tab_3); - groupBox_16->setObjectName("groupBox_16"); - gridLayout_16 = new QGridLayout(groupBox_16); - gridLayout_16->setObjectName("gridLayout_16"); - lbl_Player_aViewGraveyard = new QLabel(groupBox_16); - lbl_Player_aViewGraveyard->setObjectName("lbl_Player_aViewGraveyard"); - - gridLayout_16->addWidget(lbl_Player_aViewGraveyard, 0, 0, 1, 1); - - Player_aViewGraveyard = new SequenceEdit("Player/aViewGraveyard", groupBox_16); - Player_aViewGraveyard->setObjectName("Player_aViewGraveyard"); - - gridLayout_16->addWidget(Player_aViewGraveyard, 0, 1, 1, 1); - - lbl_Player_aViewLibrary = new QLabel(groupBox_16); - lbl_Player_aViewLibrary->setObjectName("lbl_Player_aViewLibrary"); - - gridLayout_16->addWidget(lbl_Player_aViewLibrary, 1, 0, 1, 1); - - Player_aViewLibrary = new SequenceEdit("Player/aViewLibrary", groupBox_16); - Player_aViewLibrary->setObjectName("Player_aViewLibrary"); - - gridLayout_16->addWidget(Player_aViewLibrary, 1, 1, 1, 1); - - lbl_Player_aViewTopCards = new QLabel(groupBox_16); - lbl_Player_aViewTopCards->setObjectName("lbl_Player_aViewTopCards"); - - gridLayout_16->addWidget(lbl_Player_aViewTopCards, 2, 0, 1, 1); - - Player_aViewTopCards = new SequenceEdit("Player/aViewTopCards", groupBox_16); - Player_aViewTopCards->setObjectName("Player_aViewTopCards"); - - gridLayout_16->addWidget(Player_aViewTopCards, 2, 1, 1, 1); - - lbl_Player_aViewSideboard = new QLabel(groupBox_16); - lbl_Player_aViewSideboard->setObjectName("lbl_Player_aViewSideboard"); - - gridLayout_16->addWidget(lbl_Player_aViewSideboard, 3, 0, 1, 1); - - Player_aViewSideboard = new SequenceEdit("Player/aViewSideboard", groupBox_16); - Player_aViewSideboard->setObjectName("Player_aViewSideboard"); - - gridLayout_16->addWidget(Player_aViewSideboard, 3, 1, 1, 1); - - lbl_Player_aViewRfg = new QLabel(groupBox_16); - lbl_Player_aViewRfg->setObjectName("lbl_Player_aViewRfg"); - - gridLayout_16->addWidget(lbl_Player_aViewRfg, 4, 0, 1, 1); - - Player_aViewRfg = new SequenceEdit("Player/aViewRfg", groupBox_16); - Player_aViewRfg->setObjectName("Player_aViewRfg"); - - gridLayout_16->addWidget(Player_aViewRfg, 4, 1, 1, 1); - - lbl_GameView_aCloseMostRecentZoneView = new QLabel(groupBox_16); - lbl_GameView_aCloseMostRecentZoneView->setObjectName("lbl_GameView_aCloseMostRecentZoneView"); - - gridLayout_16->addWidget(lbl_GameView_aCloseMostRecentZoneView, 5, 0, 1, 1); - - GameView_aCloseMostRecentZoneView = new SequenceEdit("Player/aCloseMostRecentZoneView", groupBox_16); - GameView_aCloseMostRecentZoneView->setObjectName("GameView_aCloseMostRecentZoneView"); - - gridLayout_16->addWidget(GameView_aCloseMostRecentZoneView, 5, 1, 1, 1); - - gridLayout_20->addWidget(groupBox_16, 0, 2, 1, 1); - - groupBox_17 = new QGroupBox(tab_3); - groupBox_17->setObjectName("groupBox_17"); - gridLayout_18 = new QGridLayout(groupBox_17); - gridLayout_18->setObjectName("gridLayout_18"); - DeckViewContainer_loadRemoteButton = new SequenceEdit("DeckViewContainer/loadRemoteButton", groupBox_17); - DeckViewContainer_loadRemoteButton->setObjectName("DeckViewContainer_loadRemoteButton"); - - gridLayout_18->addWidget(DeckViewContainer_loadRemoteButton, 2, 1, 1, 1); - - DeckViewContainer_loadLocalButton = new SequenceEdit("DeckViewContainer/loadLocalButton", groupBox_17); - DeckViewContainer_loadLocalButton->setObjectName("DeckViewContainer_loadLocalButton"); - - gridLayout_18->addWidget(DeckViewContainer_loadLocalButton, 0, 1, 1, 1); - - lbl_DeckViewContainer_loadRemoteButton = new QLabel(groupBox_17); - lbl_DeckViewContainer_loadRemoteButton->setObjectName("lbl_DeckViewContainer_loadRemoteButton"); - - gridLayout_18->addWidget(lbl_DeckViewContainer_loadRemoteButton, 2, 0, 1, 1); - - lbl_DeckViewContainer_loadLocalButton = new QLabel(groupBox_17); - lbl_DeckViewContainer_loadLocalButton->setObjectName("lbl_DeckViewContainer_loadLocalButton"); - - gridLayout_18->addWidget(lbl_DeckViewContainer_loadLocalButton, 0, 0, 1, 1); - - gridLayout_20->addWidget(groupBox_17, 1, 0, 1, 1); - - groupBox_18 = new QGroupBox(tab_3); - groupBox_18->setObjectName("groupBox_18"); - gridLayout_19 = new QGridLayout(groupBox_18); - gridLayout_19->setObjectName("gridLayout_19"); - lbl_Player_aDrawArrow = new QLabel(groupBox_18); + groupBox_gameplay = new QGroupBox(tab_3); + groupBox_gameplay->setObjectName("groupBox_gameplay"); + gridLayout_gameplay = new QGridLayout(groupBox_gameplay); + gridLayout_gameplay->setObjectName("gridLayout_gameplay"); + lbl_Player_aDrawArrow = new QLabel(groupBox_gameplay); lbl_Player_aDrawArrow->setObjectName("lbl_Player_aDrawArrow"); - gridLayout_19->addWidget(lbl_Player_aDrawArrow, 0, 0, 1, 1); + gridLayout_gameplay->addWidget(lbl_Player_aDrawArrow, 0, 0, 1, 1); - Player_aDrawArrow = new SequenceEdit("Player/aDrawArrow", groupBox_18); + Player_aDrawArrow = new SequenceEdit("Player/aDrawArrow", groupBox_gameplay); Player_aDrawArrow->setObjectName("Player_aDrawArrow"); - gridLayout_19->addWidget(Player_aDrawArrow, 0, 1, 1, 1); + gridLayout_gameplay->addWidget(Player_aDrawArrow, 0, 1, 1, 1); - lbl_TabGame_aLeaveGame = new QLabel(groupBox_18); - lbl_TabGame_aLeaveGame->setObjectName("lbl_TabGame_aLeaveGame"); - - gridLayout_19->addWidget(lbl_TabGame_aLeaveGame, 0, 2, 1, 1); - - TabGame_aLeaveGame = new SequenceEdit("Player/aLeaveGame", groupBox_18); - TabGame_aLeaveGame->setObjectName("TabGame_aLeaveGame"); - - gridLayout_19->addWidget(TabGame_aLeaveGame, 0, 3, 1, 1); - - lbl_TabGame_aRemoveLocalArrows = new QLabel(groupBox_18); + lbl_TabGame_aRemoveLocalArrows = new QLabel(groupBox_gameplay); lbl_TabGame_aRemoveLocalArrows->setObjectName("lbl_TabGame_aRemoveLocalArrows"); - gridLayout_19->addWidget(lbl_TabGame_aRemoveLocalArrows, 1, 0, 1, 1); + gridLayout_gameplay->addWidget(lbl_TabGame_aRemoveLocalArrows, 1, 0, 1, 1); - TabGame_aRemoveLocalArrows = new SequenceEdit("Player/aRemoveLocalArrows", groupBox_18); + TabGame_aRemoveLocalArrows = new SequenceEdit("Player/aRemoveLocalArrows", groupBox_gameplay); TabGame_aRemoveLocalArrows->setObjectName("TabGame_aRemoveLocalArrows"); - gridLayout_19->addWidget(TabGame_aRemoveLocalArrows, 1, 1, 1, 1); + gridLayout_gameplay->addWidget(TabGame_aRemoveLocalArrows, 1, 1, 1, 1); - lbl_TabGame_aConcede = new QLabel(groupBox_18); + lbl_TabGame_aConcede = new QLabel(groupBox_gameplay); lbl_TabGame_aConcede->setObjectName("lbl_TabGame_aConcede"); - gridLayout_19->addWidget(lbl_TabGame_aConcede, 1, 2, 1, 1); + gridLayout_gameplay->addWidget(lbl_TabGame_aConcede, 2, 0, 1, 1); - TabGame_aConcede = new SequenceEdit("Player/aConcede", groupBox_18); + TabGame_aConcede = new SequenceEdit("Player/aConcede", groupBox_gameplay); TabGame_aConcede->setObjectName("TabGame_aConcede"); - gridLayout_19->addWidget(TabGame_aConcede, 1, 3, 1, 1); + gridLayout_gameplay->addWidget(TabGame_aConcede, 2, 1, 1, 1); - lbl_Player_aRollDie = new QLabel(groupBox_18); + lbl_TabGame_aLeaveGame = new QLabel(groupBox_gameplay); + lbl_TabGame_aLeaveGame->setObjectName("lbl_TabGame_aLeaveGame"); + + gridLayout_gameplay->addWidget(lbl_TabGame_aLeaveGame, 3, 0, 1, 1); + + TabGame_aLeaveGame = new SequenceEdit("Player/aLeaveGame", groupBox_gameplay); + TabGame_aLeaveGame->setObjectName("TabGame_aLeaveGame"); + + gridLayout_gameplay->addWidget(TabGame_aLeaveGame, 3, 1, 1, 1); + + lbl_Player_aRollDie = new QLabel(groupBox_gameplay); lbl_Player_aRollDie->setObjectName("lbl_Player_aRollDie"); - gridLayout_19->addWidget(lbl_Player_aRollDie, 2, 0, 1, 1); + gridLayout_gameplay->addWidget(lbl_Player_aRollDie, 4, 0, 1, 1); - Player_aRollDie = new SequenceEdit("Player/aRollDie", groupBox_18); + Player_aRollDie = new SequenceEdit("Player/aRollDie", groupBox_gameplay); Player_aRollDie->setObjectName("Player_aRollDie"); - gridLayout_19->addWidget(Player_aRollDie, 2, 1, 1, 1); + gridLayout_gameplay->addWidget(Player_aRollDie, 4, 1, 1, 1); - lbl_TabGame_aRotateViewCW = new QLabel(groupBox_18); - lbl_TabGame_aRotateViewCW->setObjectName("lbl_TabGame_aRotateViewCW"); - - gridLayout_19->addWidget(lbl_TabGame_aRotateViewCW, 2, 2, 1, 1); - - TabGame_aRotateViewCW = new SequenceEdit("Player/aRotateViewCW", groupBox_18); - TabGame_aRotateViewCW->setObjectName("TabGame_aRotateViewCW"); - - gridLayout_19->addWidget(TabGame_aRotateViewCW, 2, 3, 1, 1); - - lbl_Player_aShuffle = new QLabel(groupBox_18); + lbl_Player_aShuffle = new QLabel(groupBox_gameplay); lbl_Player_aShuffle->setObjectName("lbl_Player_aShuffle"); - gridLayout_19->addWidget(lbl_Player_aShuffle, 3, 0, 1, 1); + gridLayout_gameplay->addWidget(lbl_Player_aShuffle, 5, 0, 1, 1); - Player_aShuffle = new SequenceEdit("Player/aShuffle", groupBox_18); + Player_aShuffle = new SequenceEdit("Player/aShuffle", groupBox_gameplay); Player_aShuffle->setObjectName("Player_aShuffle"); - gridLayout_19->addWidget(Player_aShuffle, 3, 1, 1, 1); + gridLayout_gameplay->addWidget(Player_aShuffle, 5, 1, 1, 1); - lbl_TabGame_aRotateViewCCW = new QLabel(groupBox_18); + lbl_TabGame_aRotateViewCW = new QLabel(groupBox_gameplay); + lbl_TabGame_aRotateViewCW->setObjectName("lbl_TabGame_aRotateViewCW"); + + gridLayout_gameplay->addWidget(lbl_TabGame_aRotateViewCW, 6, 0, 1, 1); + + TabGame_aRotateViewCW = new SequenceEdit("Player/aRotateViewCW", groupBox_gameplay); + TabGame_aRotateViewCW->setObjectName("TabGame_aRotateViewCW"); + + gridLayout_gameplay->addWidget(TabGame_aRotateViewCW, 6, 1, 1, 1); + + lbl_TabGame_aRotateViewCCW = new QLabel(groupBox_gameplay); lbl_TabGame_aRotateViewCCW->setObjectName("lbl_TabGame_aRotateViewCCW"); - gridLayout_19->addWidget(lbl_TabGame_aRotateViewCCW, 3, 2, 1, 1); + gridLayout_gameplay->addWidget(lbl_TabGame_aRotateViewCCW, 7, 0, 1, 1); - TabGame_aRotateViewCCW = new SequenceEdit("Player/aRotateViewCCW", groupBox_18); + TabGame_aRotateViewCCW = new SequenceEdit("Player/aRotateViewCCW", groupBox_gameplay); TabGame_aRotateViewCCW->setObjectName("TabGame_aRotateViewCCW"); - gridLayout_19->addWidget(TabGame_aRotateViewCCW, 3, 3, 1, 1); + gridLayout_gameplay->addWidget(TabGame_aRotateViewCCW, 7, 1, 1, 1); - gridLayout_20->addWidget(groupBox_18, 1, 1, 1, 2); + gridLayout_20->addWidget(groupBox_gameplay, 0, 0, 1, 1); - groupBox_14 = new QGroupBox(tab_3); - groupBox_14->setObjectName("groupBox_14"); - gridLayout_14 = new QGridLayout(groupBox_14); - gridLayout_14->setObjectName("gridLayout_14"); - lbl_Player_aMulligan = new QLabel(groupBox_14); + groupBox_moveCard = new QGroupBox(tab_3); + groupBox_moveCard->setObjectName("groupBox_moveCard"); + gridLayout_moveCard = new QGridLayout(groupBox_moveCard); + gridLayout_moveCard->setObjectName("gridLayout_moveCard"); + lbl_Player_aMoveToBottomLibrary = new QLabel(groupBox_moveCard); + lbl_Player_aMoveToBottomLibrary->setObjectName("lbl_Player_aMoveToBottomLibrary"); + + gridLayout_moveCard->addWidget(lbl_Player_aMoveToBottomLibrary, 0, 0, 1, 1); + + Player_aMoveToBottomLibrary = new SequenceEdit("Player/aMoveToBottomLibrary", groupBox_moveCard); + Player_aMoveToBottomLibrary->setObjectName("Player_aMoveToBottomLibrary"); + + gridLayout_moveCard->addWidget(Player_aMoveToBottomLibrary, 0, 1, 1, 1); + + lbl_Player_aMoveToTopLibrary = new QLabel(groupBox_moveCard); + lbl_Player_aMoveToTopLibrary->setObjectName("lbl_Player_aMoveToTopLibrary"); + + gridLayout_moveCard->addWidget(lbl_Player_aMoveToTopLibrary, 1, 0, 1, 1); + + Player_aMoveToTopLibrary = new SequenceEdit("Player/aMoveToTopLibrary", groupBox_moveCard); + Player_aMoveToTopLibrary->setObjectName("Player_aMoveToTopLibrary"); + + gridLayout_moveCard->addWidget(Player_aMoveToTopLibrary, 1, 1, 1, 1); + + lbl_Player_aMoveToGraveyard = new QLabel(groupBox_moveCard); + lbl_Player_aMoveToGraveyard->setObjectName("lbl_Player_aMoveToGraveyard"); + + gridLayout_moveCard->addWidget(lbl_Player_aMoveToGraveyard, 2, 0, 1, 1); + + Player_aMoveToGraveyard = new SequenceEdit("Player/aMoveToGraveyard", groupBox_moveCard); + Player_aMoveToGraveyard->setObjectName("Player_aMoveToGraveyard"); + + gridLayout_moveCard->addWidget(Player_aMoveToGraveyard, 2, 1, 1, 1); + + lbl_Player_aMoveToExile = new QLabel(groupBox_moveCard); + lbl_Player_aMoveToExile->setObjectName("lbl_Player_aMoveToExile"); + + gridLayout_moveCard->addWidget(lbl_Player_aMoveToExile, 3, 0, 1, 1); + + Player_aMoveToExile = new SequenceEdit("Player/aMoveToExile", groupBox_moveCard); + Player_aMoveToExile->setObjectName("Player_aMoveToExile"); + + gridLayout_moveCard->addWidget(Player_aMoveToExile, 3, 1, 1, 1); + + lbl_Player_aMoveToHand = new QLabel(groupBox_moveCard); + lbl_Player_aMoveToHand->setObjectName("lbl_Player_aMoveToHand"); + + gridLayout_moveCard->addWidget(lbl_Player_aMoveToHand, 4, 0, 1, 1); + + Player_aMoveToHand = new SequenceEdit("Player/aMoveToHand", groupBox_moveCard); + Player_aMoveToHand->setObjectName("Player_aMoveToHand"); + + gridLayout_moveCard->addWidget(Player_aMoveToHand, 4, 1, 1, 1); + + lbl_Player_aMoveTopToPlayFaceDown = new QLabel(groupBox_moveCard); + lbl_Player_aMoveTopToPlayFaceDown->setObjectName("lbl_Player_aMoveTopToPlayFaceDown"); + + gridLayout_moveCard->addWidget(lbl_Player_aMoveTopToPlayFaceDown, 5, 0, 1, 1); + + Player_aMoveTopToPlayFaceDown = new SequenceEdit("Player/aMoveTopToPlayFaceDown", groupBox_moveCard); + Player_aMoveTopToPlayFaceDown->setObjectName("Player_aMoveTopToPlayFaceDown"); + + gridLayout_moveCard->addWidget(Player_aMoveTopToPlayFaceDown, 5, 1, 1, 1); + + gridLayout_20->addWidget(groupBox_moveCard, 0, 1, 1, 1); + + groupBox_view = new QGroupBox(tab_3); + groupBox_view->setObjectName("groupBox_view"); + gridLayout_view = new QGridLayout(groupBox_view); + gridLayout_view->setObjectName("gridLayout_view"); + lbl_Player_aViewGraveyard = new QLabel(groupBox_view); + lbl_Player_aViewGraveyard->setObjectName("lbl_Player_aViewGraveyard"); + + gridLayout_view->addWidget(lbl_Player_aViewGraveyard, 0, 0, 1, 1); + + Player_aViewGraveyard = new SequenceEdit("Player/aViewGraveyard", groupBox_view); + Player_aViewGraveyard->setObjectName("Player_aViewGraveyard"); + + gridLayout_view->addWidget(Player_aViewGraveyard, 0, 1, 1, 1); + + lbl_Player_aViewLibrary = new QLabel(groupBox_view); + lbl_Player_aViewLibrary->setObjectName("lbl_Player_aViewLibrary"); + + gridLayout_view->addWidget(lbl_Player_aViewLibrary, 1, 0, 1, 1); + + Player_aViewLibrary = new SequenceEdit("Player/aViewLibrary", groupBox_view); + Player_aViewLibrary->setObjectName("Player_aViewLibrary"); + + gridLayout_view->addWidget(Player_aViewLibrary, 1, 1, 1, 1); + + lbl_Player_aViewTopCards = new QLabel(groupBox_view); + lbl_Player_aViewTopCards->setObjectName("lbl_Player_aViewTopCards"); + + gridLayout_view->addWidget(lbl_Player_aViewTopCards, 2, 0, 1, 1); + + Player_aViewTopCards = new SequenceEdit("Player/aViewTopCards", groupBox_view); + Player_aViewTopCards->setObjectName("Player_aViewTopCards"); + + gridLayout_view->addWidget(Player_aViewTopCards, 2, 1, 1, 1); + + lbl_Player_aViewSideboard = new QLabel(groupBox_view); + lbl_Player_aViewSideboard->setObjectName("lbl_Player_aViewSideboard"); + + gridLayout_view->addWidget(lbl_Player_aViewSideboard, 3, 0, 1, 1); + + Player_aViewSideboard = new SequenceEdit("Player/aViewSideboard", groupBox_view); + Player_aViewSideboard->setObjectName("Player_aViewSideboard"); + + gridLayout_view->addWidget(Player_aViewSideboard, 3, 1, 1, 1); + + lbl_Player_aViewRfg = new QLabel(groupBox_view); + lbl_Player_aViewRfg->setObjectName("lbl_Player_aViewRfg"); + + gridLayout_view->addWidget(lbl_Player_aViewRfg, 4, 0, 1, 1); + + Player_aViewRfg = new SequenceEdit("Player/aViewRfg", groupBox_view); + Player_aViewRfg->setObjectName("Player_aViewRfg"); + + gridLayout_view->addWidget(Player_aViewRfg, 4, 1, 1, 1); + + lbl_GameView_aCloseMostRecentZoneView = new QLabel(groupBox_view); + lbl_GameView_aCloseMostRecentZoneView->setObjectName("lbl_GameView_aCloseMostRecentZoneView"); + + gridLayout_view->addWidget(lbl_GameView_aCloseMostRecentZoneView, 5, 0, 1, 1); + + GameView_aCloseMostRecentZoneView = new SequenceEdit("Player/aCloseMostRecentZoneView", groupBox_view); + GameView_aCloseMostRecentZoneView->setObjectName("GameView_aCloseMostRecentZoneView"); + + gridLayout_view->addWidget(GameView_aCloseMostRecentZoneView, 5, 1, 1, 1); + + gridLayout_20->addWidget(groupBox_view, 0, 2, 1, 1); + + groupBox_draw = new QGroupBox(tab_3); + groupBox_draw->setObjectName("groupBox_draw"); + gridLayout_draw = new QGridLayout(groupBox_draw); + gridLayout_draw->setObjectName("gridLayout_draw"); + lbl_Player_aMulligan = new QLabel(groupBox_draw); lbl_Player_aMulligan->setObjectName("lbl_Player_aMulligan"); - gridLayout_14->addWidget(lbl_Player_aMulligan, 4, 0, 1, 1); + gridLayout_draw->addWidget(lbl_Player_aMulligan, 4, 0, 1, 1); - Player_aMulligan = new SequenceEdit("Player/aMulligan", groupBox_14); + Player_aMulligan = new SequenceEdit("Player/aMulligan", groupBox_draw); Player_aMulligan->setObjectName("Player_aMulligan"); - gridLayout_14->addWidget(Player_aMulligan, 4, 1, 1, 1); + gridLayout_draw->addWidget(Player_aMulligan, 4, 1, 1, 1); - lbl_Player_aDrawCard = new QLabel(groupBox_14); + lbl_Player_aDrawCard = new QLabel(groupBox_draw); lbl_Player_aDrawCard->setObjectName("lbl_Player_aDrawCard"); - gridLayout_14->addWidget(lbl_Player_aDrawCard, 0, 0, 1, 1); + gridLayout_draw->addWidget(lbl_Player_aDrawCard, 0, 0, 1, 1); - Player_aDrawCard = new SequenceEdit("Player/aDrawCard", groupBox_14); + Player_aDrawCard = new SequenceEdit("Player/aDrawCard", groupBox_draw); Player_aDrawCard->setObjectName("Player_aDrawCard"); - gridLayout_14->addWidget(Player_aDrawCard, 0, 1, 1, 1); + gridLayout_draw->addWidget(Player_aDrawCard, 0, 1, 1, 1); - lbl_Player_aDrawCards = new QLabel(groupBox_14); + lbl_Player_aDrawCards = new QLabel(groupBox_draw); lbl_Player_aDrawCards->setObjectName("lbl_Player_aDrawCards"); - gridLayout_14->addWidget(lbl_Player_aDrawCards, 1, 0, 1, 1); + gridLayout_draw->addWidget(lbl_Player_aDrawCards, 1, 0, 1, 1); - Player_aDrawCards = new SequenceEdit("Player/aDrawCards", groupBox_14); + Player_aDrawCards = new SequenceEdit("Player/aDrawCards", groupBox_draw); Player_aDrawCards->setObjectName("Player_aDrawCards"); - gridLayout_14->addWidget(Player_aDrawCards, 1, 1, 1, 1); + gridLayout_draw->addWidget(Player_aDrawCards, 1, 1, 1, 1); - lbl_Player_aUndoDraw = new QLabel(groupBox_14); + lbl_Player_aUndoDraw = new QLabel(groupBox_draw); lbl_Player_aUndoDraw->setObjectName("lbl_Player_aUndoDraw"); - gridLayout_14->addWidget(lbl_Player_aUndoDraw, 2, 0, 1, 1); + gridLayout_draw->addWidget(lbl_Player_aUndoDraw, 2, 0, 1, 1); - Player_aUndoDraw = new SequenceEdit("Player/aUndoDraw", groupBox_14); + Player_aUndoDraw = new SequenceEdit("Player/aUndoDraw", groupBox_draw); Player_aUndoDraw->setObjectName("Player_aUndoDraw"); - gridLayout_14->addWidget(Player_aUndoDraw, 2, 1, 1, 1); + gridLayout_draw->addWidget(Player_aUndoDraw, 2, 1, 1, 1); - lbl_Player_aAlwaysRevealTopCard = new QLabel(groupBox_14); + lbl_Player_aAlwaysRevealTopCard = new QLabel(groupBox_draw); lbl_Player_aAlwaysRevealTopCard->setObjectName("lbl_Player_aAlwaysRevealTopCard"); - gridLayout_14->addWidget(lbl_Player_aAlwaysRevealTopCard, 3, 0, 1, 1); + gridLayout_draw->addWidget(lbl_Player_aAlwaysRevealTopCard, 3, 0, 1, 1); - Player_aAlwaysRevealTopCard = new SequenceEdit("Player/aAlwaysRevealTopCard", groupBox_14); + Player_aAlwaysRevealTopCard = new SequenceEdit("Player/aAlwaysRevealTopCard", groupBox_draw); Player_aAlwaysRevealTopCard->setObjectName("Player_aAlwaysRevealTopCard"); - gridLayout_14->addWidget(Player_aAlwaysRevealTopCard, 3, 1, 1, 1); - gridLayout_20->addWidget(groupBox_14, 0, 0, 1, 1); + gridLayout_draw->addWidget(Player_aAlwaysRevealTopCard, 3, 1, 1, 1); + gridLayout_20->addWidget(groupBox_draw, 1, 0, 1, 1); + + groupBox_moveDeck = new QGroupBox(tab_3); + groupBox_moveDeck->setObjectName("groupBox_moveDeck"); + gridLayout_moveDeck = new QGridLayout(groupBox_moveDeck); + gridLayout_moveDeck->setObjectName("gridLayout_moveDeck"); + lbl_Player_aMoveTopCardToGraveyard = new QLabel(groupBox_moveDeck); + lbl_Player_aMoveTopCardToGraveyard->setObjectName("lbl_Player_aMoveTopCardToGraveyard"); + + gridLayout_moveDeck->addWidget(lbl_Player_aMoveTopCardToGraveyard, 0, 0, 1, 1); + + Player_aMoveTopCardToGraveyard = new SequenceEdit("Player/aMoveTopCardToGraveyard", groupBox_moveDeck); + Player_aMoveTopCardToGraveyard->setObjectName("Player_aMoveTopCardToGraveyard"); + + gridLayout_moveDeck->addWidget(Player_aMoveTopCardToGraveyard, 0, 1, 1, 1); + + lbl_Player_aMoveTopCardsToGraveyard = new QLabel(groupBox_moveDeck); + lbl_Player_aMoveTopCardsToGraveyard->setObjectName("lbl_Player_aMoveTopCardsToGraveyard"); + + gridLayout_moveDeck->addWidget(lbl_Player_aMoveTopCardsToGraveyard, 1, 0, 1, 1); + + Player_aMoveTopCardsToGraveyard = new SequenceEdit("Player/aMoveTopCardsToGraveyard", groupBox_moveDeck); + Player_aMoveTopCardsToGraveyard->setObjectName("Player_aMoveTopCardsToGraveyard"); + + gridLayout_moveDeck->addWidget(Player_aMoveTopCardsToGraveyard, 1, 1, 1, 1); + + lbl_Player_aMoveTopCardToExile = new QLabel(groupBox_moveDeck); + lbl_Player_aMoveTopCardToExile->setObjectName("lbl_Player_aMoveTopCardToExile"); + + gridLayout_moveDeck->addWidget(lbl_Player_aMoveTopCardToExile, 2, 0, 1, 1); + + Player_aMoveTopCardToExile = new SequenceEdit("Player/aMoveTopCardToExile", groupBox_moveDeck); + Player_aMoveTopCardToExile->setObjectName("Player_aMoveTopCardToExile"); + + gridLayout_moveDeck->addWidget(Player_aMoveTopCardToExile, 2, 1, 1, 1); + + lbl_Player_aMoveTopCardsToExile = new QLabel(groupBox_moveDeck); + lbl_Player_aMoveTopCardsToExile->setObjectName("lbl_Player_aMoveTopCardsToExile"); + + gridLayout_moveDeck->addWidget(lbl_Player_aMoveTopCardsToExile, 3, 0, 1, 1); + + Player_aMoveTopCardsToExile = new SequenceEdit("Player/aMoveTopCardsToExile", groupBox_moveDeck); + Player_aMoveTopCardsToExile->setObjectName("Player_aMoveTopCardsToExile"); + + gridLayout_moveDeck->addWidget(Player_aMoveTopCardsToExile, 3, 1, 1, 1); + + gridLayout_20->addWidget(groupBox_moveDeck, 1, 1, 1, 1); + + groupBox_gameLobby = new QGroupBox(tab_3); + groupBox_gameLobby->setObjectName("groupBox_gameLobby"); + gridLayout_gameLobby = new QGridLayout(groupBox_gameLobby); + gridLayout_gameLobby->setObjectName("gridLayout_gameLobby"); + DeckViewContainer_loadRemoteButton = new SequenceEdit("DeckViewContainer/loadRemoteButton", groupBox_gameLobby); + DeckViewContainer_loadRemoteButton->setObjectName("DeckViewContainer_loadRemoteButton"); + + gridLayout_gameLobby->addWidget(DeckViewContainer_loadRemoteButton, 2, 1, 1, 1); + + DeckViewContainer_loadLocalButton = new SequenceEdit("DeckViewContainer/loadLocalButton", groupBox_gameLobby); + DeckViewContainer_loadLocalButton->setObjectName("DeckViewContainer_loadLocalButton"); + + gridLayout_gameLobby->addWidget(DeckViewContainer_loadLocalButton, 0, 1, 1, 1); + + lbl_DeckViewContainer_loadRemoteButton = new QLabel(groupBox_gameLobby); + lbl_DeckViewContainer_loadRemoteButton->setObjectName("lbl_DeckViewContainer_loadRemoteButton"); + + gridLayout_gameLobby->addWidget(lbl_DeckViewContainer_loadRemoteButton, 2, 0, 1, 1); + + lbl_DeckViewContainer_loadLocalButton = new QLabel(groupBox_gameLobby); + lbl_DeckViewContainer_loadLocalButton->setObjectName("lbl_DeckViewContainer_loadLocalButton"); + + gridLayout_gameLobby->addWidget(lbl_DeckViewContainer_loadLocalButton, 0, 0, 1, 1); + + gridLayout_20->addWidget(groupBox_gameLobby, 1, 2, 1, 1); + verticalSpacer_3 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); gridLayout_20->addItem(verticalSpacer_3, 2, 1, 1, 1); tabWidget->addTab(tab_3, QString()); @@ -1747,12 +1805,13 @@ public: gridLayout_11->setSpacing(3); gridLayout_12->setSpacing(3); gridLayout_13->setSpacing(3); - gridLayout_14->setSpacing(3); - gridLayout_15->setSpacing(3); - gridLayout_16->setSpacing(3); + gridLayout_moveDeck->setSpacing(3); + gridLayout_draw->setSpacing(3); + gridLayout_moveCard->setSpacing(3); + gridLayout_view->setSpacing(3); + gridLayout_gameLobby->setSpacing(3); + gridLayout_gameplay->setSpacing(3); gridLayout_17->setSpacing(3); - gridLayout_18->setSpacing(3); - gridLayout_19->setSpacing(3); gridLayout_20->setSpacing(3); verticalLayout->setSpacing(3); @@ -1893,24 +1952,29 @@ public: lbl_Player_aSetAnnotation->setText(QApplication::translate("shortcutsTab", "Set annotation", 0)); tabWidget->setTabText(tabWidget->indexOf(tab_2), QApplication::translate("shortcutsTab", "Phases | P/T | Playing Area", 0)); - groupBox_15->setTitle(QApplication::translate("shortcutsTab", "Move card to", 0)); + groupBox_moveCard->setTitle(QApplication::translate("shortcutsTab", "Move selected card to", 0)); lbl_Player_aMoveToBottomLibrary->setText(QApplication::translate("shortcutsTab", "Bottom library", 0)); lbl_Player_aMoveToTopLibrary->setText(QApplication::translate("shortcutsTab", "Top library", 0)); lbl_Player_aMoveToGraveyard->setText(QApplication::translate("shortcutsTab", "Graveyard", 0)); lbl_Player_aMoveToExile->setText(QApplication::translate("shortcutsTab", "Exile", 0)); lbl_Player_aMoveToHand->setText(QApplication::translate("shortcutsTab", "Hand", 0)); lbl_Player_aMoveTopToPlayFaceDown->setText(QApplication::translate("shortcutsTab", "Play face down")); - groupBox_16->setTitle(QApplication::translate("shortcutsTab", "View", 0)); + groupBox_view->setTitle(QApplication::translate("shortcutsTab", "View", 0)); lbl_Player_aViewGraveyard->setText(QApplication::translate("shortcutsTab", "Graveyard", 0)); lbl_Player_aViewLibrary->setText(QApplication::translate("shortcutsTab", "Library", 0)); - lbl_Player_aViewTopCards->setText(QApplication::translate("shortcutsTab", "Tops card of library", 0)); + lbl_Player_aViewTopCards->setText(QApplication::translate("shortcutsTab", "Top cards of library", 0)); lbl_Player_aViewSideboard->setText(QApplication::translate("shortcutsTab", "Sideboard", 0)); lbl_Player_aViewRfg->setText(QApplication::translate("shortcutsTab", "Exile", 0)); lbl_GameView_aCloseMostRecentZoneView->setText(QApplication::translate("shortcutsTab", "Close recent view", 0)); - groupBox_17->setTitle(QApplication::translate("shortcutsTab", "Game Lobby", 0)); + groupBox_moveDeck->setTitle(QApplication::translate("shortcutsTab", "Move top card to", 0)); + lbl_Player_aMoveTopCardToGraveyard->setText(QApplication::translate("shortcutsTab", "Graveyard Once", 0)); + lbl_Player_aMoveTopCardsToGraveyard->setText(QApplication::translate("shortcutsTab", "Graveyard Multiple", 0)); + lbl_Player_aMoveTopCardToExile->setText(QApplication::translate("shortcutsTab", "Exile Once", 0)); + lbl_Player_aMoveTopCardsToExile->setText(QApplication::translate("shortcutsTab", "Exile Multiple", 0)); + groupBox_gameLobby->setTitle(QApplication::translate("shortcutsTab", "Game Lobby", 0)); lbl_DeckViewContainer_loadRemoteButton->setText(QApplication::translate("shortcutsTab", "Load remote deck", 0)); lbl_DeckViewContainer_loadLocalButton->setText(QApplication::translate("shortcutsTab", "Load local deck", 0)); - groupBox_18->setTitle(QApplication::translate("shortcutsTab", "Gameplay", 0)); + groupBox_gameplay->setTitle(QApplication::translate("shortcutsTab", "Gameplay", 0)); lbl_Player_aDrawArrow->setText(QApplication::translate("shortcutsTab", "Draw arrow", 0)); lbl_TabGame_aLeaveGame->setText(QApplication::translate("shortcutsTab", "Leave game", 0)); lbl_TabGame_aRemoveLocalArrows->setText(QApplication::translate("shortcutsTab", "Remove local arrows", 0)); @@ -1919,14 +1983,14 @@ public: lbl_TabGame_aRotateViewCW->setText(QApplication::translate("shortcutsTab", "Rotate view CW", 0)); lbl_Player_aShuffle->setText(QApplication::translate("shortcutsTab", "Shuffle library", 0)); lbl_TabGame_aRotateViewCCW->setText(QApplication::translate("shortcutsTab", "Rotate view CCW", 0)); - groupBox_14->setTitle(QApplication::translate("shortcutsTab", "Draw", 0)); + groupBox_draw->setTitle(QApplication::translate("shortcutsTab", "Draw", 0)); lbl_Player_aMulligan->setText(QApplication::translate("shortcutsTab", "Mulligan", 0)); lbl_Player_aDrawCard->setText(QApplication::translate("shortcutsTab", "Draw card", 0)); lbl_Player_aDrawCards->setText(QApplication::translate("shortcutsTab", "Draw cards", 0)); lbl_Player_aUndoDraw->setText(QApplication::translate("shortcutsTab", "Undo draw", 0)); lbl_Player_aAlwaysRevealTopCard->setText(QApplication::translate("shortcutsTab", "Always reveal top card", 0)); tabWidget->setTabText(tabWidget->indexOf(tab_3), - QApplication::translate("shortcutsTab", "Draw | Move | View | Gameplay", 0)); + QApplication::translate("shortcutsTab", "Gameplay | Draw | Move | View", 0)); tabWidget->setTabText(tabWidget->indexOf(tab_4), QApplication::translate("shortcutsTab", "Counters", 0)); faqLabel->setText(QString("%2") .arg(WIKI) diff --git a/cockatrice/src/shortcutssettings.cpp b/cockatrice/src/shortcutssettings.cpp index 66078c29..002ae8e5 100644 --- a/cockatrice/src/shortcutssettings.cpp +++ b/cockatrice/src/shortcutssettings.cpp @@ -4,19 +4,18 @@ #include #include -ShortcutsSettings::ShortcutsSettings(QString settingsPath, QObject *parent) : QObject(parent) +ShortcutsSettings::ShortcutsSettings(const QString &settingsPath, QObject *parent) : QObject(parent) { - this->settingsFilePath = std::move(settingsPath); - this->settingsFilePath.append("shortcuts.ini"); - fillDefaultShorcuts(); - shortCuts = QMap>(defaultShortCuts); + shortCuts = defaultShortCuts; + settingsFilePath = settingsPath; + settingsFilePath.append("shortcuts.ini"); bool exists = QFile(settingsFilePath).exists(); QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat); if (exists) { - shortCutsFile.beginGroup("Custom"); + shortCutsFile.beginGroup(custom); const QStringList customKeys = shortCutsFile.allKeys(); QMap invalidItems; @@ -55,114 +54,123 @@ ShortcutsSettings::ShortcutsSettings(QString settingsPath, QObject *parent) : QO } } -QList ShortcutsSettings::getShortcut(QString name) +QList ShortcutsSettings::getDefaultShortcut(const QString &name) const +{ + return defaultShortCuts.value(name, QList()); +} + +QList ShortcutsSettings::getShortcut(const QString &name) const { if (shortCuts.contains(name)) { return shortCuts.value(name); } - return defaultShortCuts.value(name, QList()); + return getDefaultShortcut(name); } -QKeySequence ShortcutsSettings::getSingleShortcut(QString name) +QKeySequence ShortcutsSettings::getSingleShortcut(const QString &name) const { - return getShortcut(std::move(name)).at(0); + return getShortcut(name).at(0); } -QString ShortcutsSettings::getDefaultShortcutString(QString name) +QString ShortcutsSettings::getDefaultShortcutString(const QString &name) const { - return stringifySequence(defaultShortCuts.value(name)); + return stringifySequence(getDefaultShortcut(name)); } -QString ShortcutsSettings::getShortcutString(QString name) +QString ShortcutsSettings::getShortcutString(const QString &name) const { - return stringifySequence(shortCuts.value(name)); + return stringifySequence(getShortcut(name)); } -QString ShortcutsSettings::stringifySequence(QList Sequence) const +QString ShortcutsSettings::stringifySequence(const QList &Sequence) const { - QString stringSequence; + QStringList stringSequence; for (int i = 0; i < Sequence.size(); ++i) { stringSequence.append(Sequence.at(i).toString(QKeySequence::PortableText)); - if (i < Sequence.size() - 1) { - stringSequence.append(";"); - } } - return stringSequence; + return stringSequence.join(sep); } -QList ShortcutsSettings::parseSequenceString(QString stringSequence) +QList ShortcutsSettings::parseSequenceString(const QString &stringSequence) const { - QStringList Sequences = stringSequence.split(";"); QList SequenceList; - for (QStringList::const_iterator ss = Sequences.constBegin(); ss != Sequences.constEnd(); ++ss) { - SequenceList.append(QKeySequence(*ss, QKeySequence::PortableText)); + for (const QString &shortcut : stringSequence.split(sep)) { + SequenceList.append(QKeySequence(shortcut, QKeySequence::PortableText)); } return SequenceList; } -void ShortcutsSettings::setShortcuts(QString name, QList Sequence) +void ShortcutsSettings::setShortcuts(const QString &name, const QList &Sequence) { shortCuts[name] = Sequence; QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat); - shortCutsFile.beginGroup("Custom"); - QString stringSequence = stringifySequence(Sequence); - shortCutsFile.setValue(name, stringSequence); + shortCutsFile.beginGroup(custom); + shortCutsFile.setValue(name, stringifySequence(Sequence)); shortCutsFile.endGroup(); - emit shortCutchanged(); + emit shortCutChanged(); } -void ShortcutsSettings::setShortcuts(QString name, QKeySequence Sequence) +void ShortcutsSettings::setShortcuts(const QString &name, const QKeySequence &Sequence) { - setShortcuts(std::move(name), QList() << Sequence); + setShortcuts(name, QList{Sequence}); } -void ShortcutsSettings::setShortcuts(QString name, QString Sequences) +void ShortcutsSettings::setShortcuts(const QString &name, const QString &Sequences) { - setShortcuts(std::move(name), parseSequenceString(std::move(Sequences))); + setShortcuts(name, parseSequenceString(Sequences)); } -bool ShortcutsSettings::isKeyAllowed(QString name, QString Sequences) +void ShortcutsSettings::resetAllShortcuts() +{ + shortCuts = defaultShortCuts; + QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat); + shortCutsFile.beginGroup(custom); + shortCutsFile.remove(""); + shortCutsFile.endGroup(); + emit shortCutChanged(); + emit allShortCutsReset(); +} + +void ShortcutsSettings::clearAllShortcuts() +{ + QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat); + shortCutsFile.beginGroup(custom); + for (auto it = shortCuts.begin(); it != shortCuts.end(); ++it) { + it.value() = parseSequenceString(""); + shortCutsFile.setValue(it.key(), ""); + } + shortCutsFile.endGroup(); + emit shortCutChanged(); + emit allShortCutsClear(); +} + +bool ShortcutsSettings::isKeyAllowed(const QString &name, const QString &Sequences) const { // if the shortcut is not to be used in deck-editor then it doesn't matter if (name.startsWith("Player")) { return true; } - QString checkSequence = Sequences.split(";").last(); - QStringList forbiddenKeys = (QStringList() << "Del" - << "Backspace" - << "Down" - << "Up" - << "Left" - << "Right" - << "Return" - << "Enter" - << "Menu" - << "Ctrl+Alt+-" - << "Ctrl+Alt+=" - << "Ctrl+Alt+[" - << "Ctrl+Alt+]" - << "Tab" - << "Space" - << "Shift+S" - << "Shift+Left" - << "Shift+Right"); + QString checkSequence = Sequences.split(sep).last(); + QStringList forbiddenKeys{"Del", "Backspace", "Down", "Up", "Left", "Right", + "Return", "Enter", "Menu", "Ctrl+Alt+-", "Ctrl+Alt+=", "Ctrl+Alt+[", + "Ctrl+Alt+]", "Tab", "Space", "Shift+S", "Shift+Left", "Shift+Right"}; return !forbiddenKeys.contains(checkSequence); } -bool ShortcutsSettings::isValid(QString name, QString Sequences) +bool ShortcutsSettings::isValid(const QString &name, const QString &Sequences) const { - QString checkSequence = Sequences.split(";").last(); + QString checkSequence = Sequences.split(sep).last(); QString checkKey = name.left(name.indexOf("/")); QList allKeys = shortCuts.keys(); for (const auto &key : allKeys) { if (key.startsWith(checkKey) || key.startsWith("MainWindow") || checkKey.startsWith("MainWindow")) { QString storedSequence = stringifySequence(shortCuts.value(key)); - QStringList stringSequences = storedSequence.split(";"); + QStringList stringSequences = storedSequence.split(sep); if (stringSequences.contains(checkSequence)) { return false; } @@ -170,161 +178,3 @@ bool ShortcutsSettings::isValid(QString name, QString Sequences) } return true; } - -void ShortcutsSettings::resetAllShortcuts() -{ - for (auto it = defaultShortCuts.begin(); it != defaultShortCuts.end(); ++it) { - setShortcuts(it.key(), it.value()); - } - emit allShortCutsReset(); -} - -void ShortcutsSettings::clearAllShortcuts() -{ - for (auto it = shortCuts.begin(); it != shortCuts.end(); ++it) { - setShortcuts(it.key(), ""); - } - emit allShortCutsClear(); -} - -void ShortcutsSettings::fillDefaultShorcuts() -{ - defaultShortCuts["MainWindow/aCheckCardUpdates"] = parseSequenceString(""); - defaultShortCuts["MainWindow/aConnect"] = parseSequenceString("Ctrl+L"); - defaultShortCuts["MainWindow/aDeckEditor"] = parseSequenceString(""); - defaultShortCuts["MainWindow/aDisconnect"] = parseSequenceString(""); - defaultShortCuts["MainWindow/aExit"] = parseSequenceString(""); - defaultShortCuts["MainWindow/aFullScreen"] = parseSequenceString("Ctrl+F"); - defaultShortCuts["MainWindow/aRegister"] = parseSequenceString(""); - defaultShortCuts["MainWindow/aSettings"] = parseSequenceString(""); - defaultShortCuts["MainWindow/aSinglePlayer"] = parseSequenceString(""); - defaultShortCuts["MainWindow/aWatchReplay"] = parseSequenceString(""); - - defaultShortCuts["TabDeckEditor/aAnalyzeDeck"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aClearFilterAll"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aClearFilterOne"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aClose"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aDecrement"] = parseSequenceString("-"); - defaultShortCuts["TabDeckEditor/aManageSets"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aEditTokens"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aExportDeckDecklist"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aIncrement"] = parseSequenceString("+"); - defaultShortCuts["TabDeckEditor/aLoadDeck"] = parseSequenceString("Ctrl+O"); - defaultShortCuts["TabDeckEditor/aLoadDeckFromClipboard"] = parseSequenceString("Ctrl+Shift+V"); - defaultShortCuts["TabDeckEditor/aNewDeck"] = parseSequenceString("Ctrl+N"); - defaultShortCuts["TabDeckEditor/aOpenCustomFolder"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aPrintDeck"] = parseSequenceString("Ctrl+P"); - defaultShortCuts["TabDeckEditor/aRemoveCard"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aResetLayout"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aSaveDeck"] = parseSequenceString("Ctrl+S"); - defaultShortCuts["TabDeckEditor/aSaveDeckAs"] = parseSequenceString(""); - defaultShortCuts["TabDeckEditor/aSaveDeckToClipboard"] = parseSequenceString("Ctrl+Shift+C"); - defaultShortCuts["TabDeckEditor/aSaveDeckToClipboardRaw"] = parseSequenceString("Ctrl+Shift+R"); - - defaultShortCuts["DeckViewContainer/loadLocalButton"] = parseSequenceString("Ctrl+O"); - defaultShortCuts["DeckViewContainer/loadRemoteButton"] = parseSequenceString("Ctrl+Alt+O"); - - defaultShortCuts["Player/aDec"] = parseSequenceString("F11"); - defaultShortCuts["Player/aInc"] = parseSequenceString("F12"); - defaultShortCuts["Player/aSet"] = parseSequenceString("Ctrl+L"); - defaultShortCuts["Player/aCloseMostRecentZoneView"] = parseSequenceString("Esc"); - defaultShortCuts["Player/IncP"] = parseSequenceString("Ctrl++"); - defaultShortCuts["Player/aAlwaysRevealTopCard"] = parseSequenceString("Ctrl+N"); - defaultShortCuts["Player/aAttach"] = parseSequenceString("Ctrl+Alt+A"); - defaultShortCuts["Player/aCCGreen"] = parseSequenceString(""); - defaultShortCuts["Player/aCCRed"] = parseSequenceString(""); - defaultShortCuts["Player/aCCYellow"] = parseSequenceString(""); - defaultShortCuts["Player/aClone"] = parseSequenceString("Ctrl+J"); - defaultShortCuts["Player/aCreateAnotherToken"] = parseSequenceString("Ctrl+G"); - defaultShortCuts["Player/aCreateToken"] = parseSequenceString("Ctrl+T"); - defaultShortCuts["Player/aCreateRelatedTokens"] = parseSequenceString("Ctrl+Shift+T"); - defaultShortCuts["Player/aDecP"] = parseSequenceString("Ctrl+-"); - defaultShortCuts["Player/aDecPT"] = parseSequenceString("Ctrl+Alt+-"); - defaultShortCuts["Player/aDecT"] = parseSequenceString("Alt+-"); - defaultShortCuts["Player/aDoesntUntap"] = parseSequenceString(""); - defaultShortCuts["Player/aDrawArrow"] = parseSequenceString(""); - defaultShortCuts["Player/aDrawCard"] = parseSequenceString("Ctrl+D"); - defaultShortCuts["Player/aDrawCards"] = parseSequenceString("Ctrl+E"); - defaultShortCuts["Player/aFlip"] = parseSequenceString(""); - defaultShortCuts["Player/aIncPT"] = parseSequenceString("Ctrl+Alt++"); - defaultShortCuts["Player/aIncT"] = parseSequenceString("Alt++"); - defaultShortCuts["Player/aMoveToBottomLibrary"] = parseSequenceString(""); - defaultShortCuts["Player/aMoveToExile"] = parseSequenceString(""); - defaultShortCuts["Player/aMoveToGraveyard"] = parseSequenceString("Ctrl+Del"); - defaultShortCuts["Player/aMoveToHand"] = parseSequenceString(""); - defaultShortCuts["Player/aMoveToTopLibrary"] = parseSequenceString(""); - defaultShortCuts["Player/aMulligan"] = parseSequenceString("Ctrl+M"); - defaultShortCuts["Player/aPeek"] = parseSequenceString(""); - defaultShortCuts["Player/aPlay"] = parseSequenceString(""); - defaultShortCuts["Player/aRCGreen"] = parseSequenceString(""); - defaultShortCuts["Player/aRCRed"] = parseSequenceString(""); - defaultShortCuts["Player/aRCYellow"] = parseSequenceString(""); - defaultShortCuts["Player/aRollDie"] = parseSequenceString("Ctrl+I"); - defaultShortCuts["Player/aSCGreen"] = parseSequenceString(""); - defaultShortCuts["Player/aSCRed"] = parseSequenceString(""); - defaultShortCuts["Player/aSCYellow"] = parseSequenceString(""); - defaultShortCuts["Player/aSetAnnotation"] = parseSequenceString(""); - defaultShortCuts["Player/aSetPT"] = parseSequenceString("Ctrl+P"); - defaultShortCuts["Player/aResetPT"] = parseSequenceString("Ctrl+Alt+0"); - defaultShortCuts["Player/aShuffle"] = parseSequenceString("Ctrl+S"); - defaultShortCuts["Player/aTap"] = parseSequenceString(""); - defaultShortCuts["Player/aUnattach"] = parseSequenceString(""); - defaultShortCuts["Player/aUndoDraw"] = parseSequenceString("Ctrl+Shift+D"); - defaultShortCuts["Player/aUntapAll"] = parseSequenceString("Ctrl+U"); - defaultShortCuts["Player/aViewGraveyard"] = parseSequenceString("F4"); - defaultShortCuts["Player/aViewLibrary"] = parseSequenceString("F3"); - defaultShortCuts["Player/aViewRfg"] = parseSequenceString(""); - defaultShortCuts["Player/aViewSideboard"] = parseSequenceString("Ctrl+F3"); - defaultShortCuts["Player/aViewTopCards"] = parseSequenceString("Ctrl+W"); - defaultShortCuts["Player/aConcede"] = parseSequenceString("F2"); - defaultShortCuts["Player/aLeaveGame"] = parseSequenceString("Ctrl+Q"); - defaultShortCuts["Player/aNextPhase"] = parseSequenceString("Ctrl+Space;Tab"); - defaultShortCuts["Player/aNextTurn"] = parseSequenceString("Ctrl+Return;Ctrl+Enter"); - defaultShortCuts["Player/aRemoveLocalArrows"] = parseSequenceString("Ctrl+R"); - defaultShortCuts["Player/aRotateViewCCW"] = parseSequenceString(""); - defaultShortCuts["Player/aRotateViewCW"] = parseSequenceString(""); - defaultShortCuts["Player/phase0"] = parseSequenceString("F5"); - defaultShortCuts["Player/phase1"] = parseSequenceString(""); - defaultShortCuts["Player/phase10"] = parseSequenceString("F10"); - defaultShortCuts["Player/phase2"] = parseSequenceString("F6"); - defaultShortCuts["Player/phase3"] = parseSequenceString("F7"); - defaultShortCuts["Player/phase4"] = parseSequenceString("F8"); - defaultShortCuts["Player/phase5"] = parseSequenceString(""); - defaultShortCuts["Player/phase6"] = parseSequenceString(""); - defaultShortCuts["Player/phase7"] = parseSequenceString(""); - defaultShortCuts["Player/phase8"] = parseSequenceString(""); - defaultShortCuts["Player/phase9"] = parseSequenceString("F9"); - - defaultShortCuts["Player/aIncCounter_w"] = parseSequenceString(""); - defaultShortCuts["Player/aDecCounter_w"] = parseSequenceString(""); - defaultShortCuts["Player/aSetCounter_w"] = parseSequenceString(""); - - defaultShortCuts["Player/aIncCounter_u"] = parseSequenceString(""); - defaultShortCuts["Player/aDecCounter_u"] = parseSequenceString(""); - defaultShortCuts["Player/aSetCounter_u"] = parseSequenceString(""); - - defaultShortCuts["Player/aIncCounter_b"] = parseSequenceString(""); - defaultShortCuts["Player/aDecCounter_b"] = parseSequenceString(""); - defaultShortCuts["Player/aSetCounter_b"] = parseSequenceString(""); - - defaultShortCuts["Player/aIncCounter_r"] = parseSequenceString(""); - defaultShortCuts["Player/aDecCounter_r"] = parseSequenceString(""); - defaultShortCuts["Player/aSetCounter_r"] = parseSequenceString(""); - - defaultShortCuts["Player/aIncCounter_g"] = parseSequenceString(""); - defaultShortCuts["Player/aDecCounter_g"] = parseSequenceString(""); - defaultShortCuts["Player/aSetCounter_g"] = parseSequenceString(""); - - defaultShortCuts["Player/aIncCounter_x"] = parseSequenceString(""); - defaultShortCuts["Player/aDecCounter_x"] = parseSequenceString(""); - defaultShortCuts["Player/aSetCounter_x"] = parseSequenceString(""); - - defaultShortCuts["Player/aIncCounter_storm"] = parseSequenceString(""); - defaultShortCuts["Player/aDecCounter_storm"] = parseSequenceString(""); - defaultShortCuts["Player/aSetCounter_storm"] = parseSequenceString(""); - - defaultShortCuts["tab_room/aClearChat"] = parseSequenceString("F12"); - defaultShortCuts["DlgLoadDeckFromClipboard/refreshButton"] = parseSequenceString("F5"); - defaultShortCuts["Player/aResetLayout"] = parseSequenceString(""); - defaultShortCuts["Player/aMoveTopToPlayFaceDown"] = parseSequenceString("Ctrl+Shift+E"); -} diff --git a/cockatrice/src/shortcutssettings.h b/cockatrice/src/shortcutssettings.h index 6d799448..902db3d7 100644 --- a/cockatrice/src/shortcutssettings.h +++ b/cockatrice/src/shortcutssettings.h @@ -1,8 +1,8 @@ #ifndef SHORTCUTSSETTINGS_H #define SHORTCUTSSETTINGS_H +#include #include -#include #include #include @@ -10,37 +10,185 @@ class ShortcutsSettings : public QObject { Q_OBJECT public: - ShortcutsSettings(QString settingsFilePath, QObject *parent = nullptr); + ShortcutsSettings(const QString &settingsFilePath, QObject *parent = nullptr); - QList getShortcut(QString name); - QKeySequence getSingleShortcut(QString name); + QList getDefaultShortcut(const QString &name) const; + QList getShortcut(const QString &name) const; + QKeySequence getSingleShortcut(const QString &name) const; + QString getDefaultShortcutString(const QString &name) const; + QString getShortcutString(const QString &name) const; - QString getDefaultShortcutString(QString name); - QString getShortcutString(QString name); + void setShortcuts(const QString &name, const QList &Sequence); + void setShortcuts(const QString &name, const QKeySequence &Sequence); + void setShortcuts(const QString &name, const QString &Sequences); - void setShortcuts(QString name, QList Sequence); - void setShortcuts(QString name, QKeySequence Sequence); - void setShortcuts(QString name, QString Sequences); - - bool isKeyAllowed(QString name, QString Sequences); - bool isValid(QString name, QString Sequences); + bool isKeyAllowed(const QString &name, const QString &Sequences) const; + bool isValid(const QString &name, const QString &Sequences) const; void resetAllShortcuts(); void clearAllShortcuts(); signals: - void shortCutchanged(); + void shortCutChanged(); void allShortCutsReset(); void allShortCutsClear(); private: + const QChar sep = ';'; + const QString custom = "Custom"; QString settingsFilePath; - QMap> shortCuts; - QMap> defaultShortCuts; - void fillDefaultShorcuts(); + QHash> shortCuts; - QString stringifySequence(QList Sequence) const; - QList parseSequenceString(QString stringSequence); + QString stringifySequence(const QList &Sequence) const; + QList parseSequenceString(const QString &stringSequence) const; + + const QHash> defaultShortCuts{ + {"MainWindow/aCheckCardUpdates", parseSequenceString("")}, + {"MainWindow/aConnect", parseSequenceString("Ctrl+L")}, + {"MainWindow/aDeckEditor", parseSequenceString("")}, + {"MainWindow/aDisconnect", parseSequenceString("")}, + {"MainWindow/aExit", parseSequenceString("")}, + {"MainWindow/aFullScreen", parseSequenceString("Ctrl+F")}, + {"MainWindow/aRegister", parseSequenceString("")}, + {"MainWindow/aSettings", parseSequenceString("")}, + {"MainWindow/aSinglePlayer", parseSequenceString("")}, + {"MainWindow/aWatchReplay", parseSequenceString("")}, + + {"TabDeckEditor/aAnalyzeDeck", parseSequenceString("")}, + {"TabDeckEditor/aClearFilterAll", parseSequenceString("")}, + {"TabDeckEditor/aClearFilterOne", parseSequenceString("")}, + {"TabDeckEditor/aClose", parseSequenceString("")}, + {"TabDeckEditor/aDecrement", parseSequenceString("-")}, + {"TabDeckEditor/aManageSets", parseSequenceString("")}, + {"TabDeckEditor/aEditTokens", parseSequenceString("")}, + {"TabDeckEditor/aExportDeckDecklist", parseSequenceString("")}, + {"TabDeckEditor/aIncrement", parseSequenceString("+")}, + {"TabDeckEditor/aLoadDeck", parseSequenceString("Ctrl+O")}, + {"TabDeckEditor/aLoadDeckFromClipboard", parseSequenceString("Ctrl+Shift+V")}, + {"TabDeckEditor/aNewDeck", parseSequenceString("Ctrl+N")}, + {"TabDeckEditor/aOpenCustomFolder", parseSequenceString("")}, + {"TabDeckEditor/aPrintDeck", parseSequenceString("Ctrl+P")}, + {"TabDeckEditor/aRemoveCard", parseSequenceString("")}, + {"TabDeckEditor/aResetLayout", parseSequenceString("")}, + {"TabDeckEditor/aSaveDeck", parseSequenceString("Ctrl+S")}, + {"TabDeckEditor/aSaveDeckAs", parseSequenceString("")}, + {"TabDeckEditor/aSaveDeckToClipboard", parseSequenceString("Ctrl+Shift+C")}, + {"TabDeckEditor/aSaveDeckToClipboardRaw", parseSequenceString("Ctrl+Shift+R")}, + + {"DeckViewContainer/loadLocalButton", parseSequenceString("Ctrl+O")}, + {"DeckViewContainer/loadRemoteButton", parseSequenceString("Ctrl+Alt+O")}, + + {"Player/aSet", parseSequenceString("Ctrl+L")}, + {"Player/aAlwaysRevealTopCard", parseSequenceString("Ctrl+N")}, + {"Player/aCloseMostRecentZoneView", parseSequenceString("Esc")}, + {"Player/aDrawCard", parseSequenceString("Ctrl+D")}, + {"Player/aDrawCards", parseSequenceString("Ctrl+E")}, + {"Player/aDec", parseSequenceString("F11")}, + {"Player/aInc", parseSequenceString("F12")}, + {"Player/aMoveTopCardToGraveyard", parseSequenceString("")}, + {"Player/aMoveTopCardsToGraveyard", parseSequenceString("Ctrl+Shift+M")}, + {"Player/aMoveTopCardToExile", parseSequenceString("")}, + {"Player/aMoveTopCardsToExile", parseSequenceString("")}, + {"Player/aMoveTopToPlayFaceDown", parseSequenceString("Ctrl+Shift+E")}, + {"Player/aMulligan", parseSequenceString("Ctrl+M")}, + {"Player/aPeek", parseSequenceString("")}, + {"Player/aPlay", parseSequenceString("")}, + {"Player/aResetLayout", parseSequenceString("")}, + {"Player/aRollDie", parseSequenceString("Ctrl+I")}, + {"Player/aShuffle", parseSequenceString("Ctrl+S")}, + {"Player/aUndoDraw", parseSequenceString("Ctrl+Shift+D")}, + {"Player/aUntapAll", parseSequenceString("Ctrl+U")}, + {"Player/aViewGraveyard", parseSequenceString("F4")}, + {"Player/aViewLibrary", parseSequenceString("F3")}, + {"Player/aViewRfg", parseSequenceString("")}, + {"Player/aViewSideboard", parseSequenceString("Ctrl+F3")}, + {"Player/aViewTopCards", parseSequenceString("Ctrl+W")}, + + {"Player/aAttach", parseSequenceString("Ctrl+Alt+A")}, + {"Player/aClone", parseSequenceString("Ctrl+J")}, + {"Player/aCreateAnotherToken", parseSequenceString("Ctrl+G")}, + {"Player/aCreateToken", parseSequenceString("Ctrl+T")}, + {"Player/aCreateRelatedTokens", parseSequenceString("Ctrl+Shift+T")}, + {"Player/aDoesntUntap", parseSequenceString("")}, + {"Player/aDrawArrow", parseSequenceString("")}, + {"Player/aFlip", parseSequenceString("")}, + {"Player/aMoveToBottomLibrary", parseSequenceString("")}, + {"Player/aMoveToExile", parseSequenceString("")}, + {"Player/aMoveToGraveyard", parseSequenceString("Ctrl+Del")}, + {"Player/aMoveToHand", parseSequenceString("")}, + {"Player/aMoveToTopLibrary", parseSequenceString("")}, + {"Player/aSetAnnotation", parseSequenceString("")}, + {"Player/aTap", parseSequenceString("")}, + {"Player/aUnattach", parseSequenceString("")}, + + {"Player/aCCGreen", parseSequenceString("")}, + {"Player/aCCRed", parseSequenceString("")}, + {"Player/aCCYellow", parseSequenceString("")}, + {"Player/aRCGreen", parseSequenceString("")}, + {"Player/aRCRed", parseSequenceString("")}, + {"Player/aRCYellow", parseSequenceString("")}, + {"Player/aSCGreen", parseSequenceString("")}, + {"Player/aSCRed", parseSequenceString("")}, + {"Player/aSCYellow", parseSequenceString("")}, + + {"Player/aDecP", parseSequenceString("Ctrl+-")}, + {"Player/aDecPT", parseSequenceString("Ctrl+Alt+-")}, + {"Player/aDecT", parseSequenceString("Alt+-")}, + {"Player/aIncP", parseSequenceString("Ctrl++")}, + {"Player/aIncPT", parseSequenceString("Ctrl+Alt++")}, + {"Player/aIncT", parseSequenceString("Alt++")}, + {"Player/aSetPT", parseSequenceString("Ctrl+P")}, + {"Player/aResetPT", parseSequenceString("Ctrl+Alt+0")}, + + {"Player/aConcede", parseSequenceString("F2")}, + {"Player/aLeaveGame", parseSequenceString("Ctrl+Q")}, + {"Player/aNextPhase", parseSequenceString("Ctrl+Space;Tab")}, + {"Player/aNextTurn", parseSequenceString("Ctrl+Return;Ctrl+Enter")}, + {"Player/aRemoveLocalArrows", parseSequenceString("Ctrl+R")}, + {"Player/aRotateViewCCW", parseSequenceString("")}, + {"Player/aRotateViewCW", parseSequenceString("")}, + {"Player/phase0", parseSequenceString("F5")}, + {"Player/phase1", parseSequenceString("")}, + {"Player/phase10", parseSequenceString("F10")}, + {"Player/phase2", parseSequenceString("F6")}, + {"Player/phase3", parseSequenceString("F7")}, + {"Player/phase4", parseSequenceString("F8")}, + {"Player/phase5", parseSequenceString("")}, + {"Player/phase6", parseSequenceString("")}, + {"Player/phase7", parseSequenceString("")}, + {"Player/phase8", parseSequenceString("")}, + {"Player/phase9", parseSequenceString("F9")}, + + {"Player/aDecCounter_w", parseSequenceString("")}, + {"Player/aIncCounter_w", parseSequenceString("")}, + {"Player/aSetCounter_w", parseSequenceString("")}, + + {"Player/aDecCounter_u", parseSequenceString("")}, + {"Player/aIncCounter_u", parseSequenceString("")}, + {"Player/aSetCounter_u", parseSequenceString("")}, + + {"Player/aDecCounter_b", parseSequenceString("")}, + {"Player/aIncCounter_b", parseSequenceString("")}, + {"Player/aSetCounter_b", parseSequenceString("")}, + + {"Player/aDecCounter_r", parseSequenceString("")}, + {"Player/aIncCounter_r", parseSequenceString("")}, + {"Player/aSetCounter_r", parseSequenceString("")}, + + {"Player/aDecCounter_g", parseSequenceString("")}, + {"Player/aIncCounter_g", parseSequenceString("")}, + {"Player/aSetCounter_g", parseSequenceString("")}, + + {"Player/aDecCounter_x", parseSequenceString("")}, + {"Player/aIncCounter_x", parseSequenceString("")}, + {"Player/aSetCounter_x", parseSequenceString("")}, + + {"Player/aDecCounter_storm", parseSequenceString("")}, + {"Player/aIncCounter_storm", parseSequenceString("")}, + {"Player/aSetCounter_storm", parseSequenceString("")}, + + {"tab_room/aClearChat", parseSequenceString("F12")}, + {"DlgLoadDeckFromClipboard/refreshButton", parseSequenceString("F5")}}; }; #endif // SHORTCUTSSETTINGS_H diff --git a/cockatrice/src/tab_deck_editor.cpp b/cockatrice/src/tab_deck_editor.cpp index d44f8bab..79556bda 100644 --- a/cockatrice/src/tab_deck_editor.cpp +++ b/cockatrice/src/tab_deck_editor.cpp @@ -590,7 +590,7 @@ TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent) this->installEventFilter(this); retranslateUi(); - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); QTimer::singleShot(0, this, SLOT(loadLayout())); diff --git a/cockatrice/src/tab_game.cpp b/cockatrice/src/tab_game.cpp index 33be857f..9fdc79b1 100644 --- a/cockatrice/src/tab_game.cpp +++ b/cockatrice/src/tab_game.cpp @@ -130,7 +130,7 @@ DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent) setLayout(deckViewLayout); retranslateUi(); - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); } @@ -375,7 +375,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay) createReplayMenuItems(); createViewMenuItems(); retranslateUi(); - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); messageLog->logReplayStarted(gameInfo.game_id()); @@ -414,7 +414,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, createMenuItems(); createViewMenuItems(); retranslateUi(); - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); // append game to rooms game list for others to see diff --git a/cockatrice/src/window_main.cpp b/cockatrice/src/window_main.cpp index 603c4472..bdca76c9 100644 --- a/cockatrice/src/window_main.cpp +++ b/cockatrice/src/window_main.cpp @@ -811,7 +811,7 @@ MainWindow::MainWindow(QWidget *parent) createTrayIcon(); } - connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()), this, SLOT(refreshShortcuts())); + connect(&settingsCache->shortcuts(), SIGNAL(shortCutChanged()), this, SLOT(refreshShortcuts())); refreshShortcuts(); connect(db, SIGNAL(cardDatabaseLoadingFailed()), this, SLOT(cardDatabaseLoadingFailed()));