[TabDeckEditor] Refactor: consolidate add/decrement card signals (#6961)

This commit is contained in:
RickyRister 2026-06-02 20:13:39 -07:00 committed by GitHub
parent 3fa377a11c
commit f52dc6dda8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 40 additions and 76 deletions

View file

@ -431,13 +431,13 @@ QMenu *CardInfoPictureWidget::createAddToOpenDeckMenu()
QAction *addCard = addCardMenu->addAction(tr("Mainboard")); QAction *addCard = addCardMenu->addAction(tr("Mainboard"));
connect(addCard, &QAction::triggered, this, [this, deckEditorTab] { connect(addCard, &QAction::triggered, this, [this, deckEditorTab] {
deckEditorTab->updateCard(exactCard); deckEditorTab->updateCard(exactCard);
deckEditorTab->actAddCard(exactCard); deckEditorTab->addCard(exactCard, DECK_ZONE_MAIN);
}); });
QAction *addCardSideboard = addCardMenu->addAction(tr("Sideboard")); QAction *addCardSideboard = addCardMenu->addAction(tr("Sideboard"));
connect(addCardSideboard, &QAction::triggered, this, [this, deckEditorTab] { connect(addCardSideboard, &QAction::triggered, this, [this, deckEditorTab] {
deckEditorTab->updateCard(exactCard); deckEditorTab->updateCard(exactCard);
deckEditorTab->actAddCardToSideboard(exactCard); deckEditorTab->addCard(exactCard, DECK_ZONE_SIDE);
}); });
} }

View file

@ -29,14 +29,10 @@ void DeckEditorCardDatabaseDockWidget::createDatabaseDisplayDock(AbstractTabDeck
// connect signals // connect signals
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardChanged, deckEditor, connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardChanged, deckEditor,
&AbstractTabDeckEditor::updateCard); &AbstractTabDeckEditor::updateCard);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::addCardToMainDeck, deckEditor, connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardAdded, deckEditor,
&AbstractTabDeckEditor::actAddCard); &AbstractTabDeckEditor::addCard);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::addCardToSideboard, deckEditor, connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardDecremented, deckEditor,
&AbstractTabDeckEditor::actAddCardToSideboard); &AbstractTabDeckEditor::decrementCard);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::decrementCardFromMainDeck, deckEditor,
&AbstractTabDeckEditor::actDecrementCard);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::decrementCardFromSideboard, deckEditor,
&AbstractTabDeckEditor::actDecrementCardFromSideboard);
} }
CardDatabase *DeckEditorCardDatabaseDockWidget::getDatabase() const CardDatabase *DeckEditorCardDatabaseDockWidget::getDatabase() const

View file

@ -158,23 +158,23 @@ void DeckEditorDatabaseDisplayWidget::actAddCard()
void DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck() void DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck()
{ {
highlightAllSearchEdit(); highlightAllSearchEdit();
emit addCardToMainDeck(currentCard()); emit cardAdded(currentCard(), DECK_ZONE_MAIN);
} }
void DeckEditorDatabaseDisplayWidget::actAddCardToSideboard() void DeckEditorDatabaseDisplayWidget::actAddCardToSideboard()
{ {
highlightAllSearchEdit(); highlightAllSearchEdit();
emit addCardToSideboard(currentCard()); emit cardAdded(currentCard(), DECK_ZONE_SIDE);
} }
void DeckEditorDatabaseDisplayWidget::actDecrementCardFromMainDeck() void DeckEditorDatabaseDisplayWidget::actDecrementCardFromMainDeck()
{ {
emit decrementCardFromMainDeck(currentCard()); emit cardDecremented(currentCard(), DECK_ZONE_MAIN);
} }
void DeckEditorDatabaseDisplayWidget::actDecrementCardFromSideboard() void DeckEditorDatabaseDisplayWidget::actDecrementCardFromSideboard()
{ {
emit decrementCardFromSideboard(currentCard()); emit cardDecremented(currentCard(), DECK_ZONE_SIDE);
} }
ExactCard DeckEditorDatabaseDisplayWidget::currentCard() const ExactCard DeckEditorDatabaseDisplayWidget::currentCard() const

View file

@ -48,10 +48,8 @@ public slots:
void copyDatabaseCellContents(); void copyDatabaseCellContents();
signals: signals:
void addCardToMainDeck(const ExactCard &card); void cardAdded(const ExactCard &card, const QString &zoneName);
void addCardToSideboard(const ExactCard &card); void cardDecremented(const ExactCard &card, const QString &zoneName);
void decrementCardFromMainDeck(const ExactCard &card);
void decrementCardFromSideboard(const ExactCard &card);
void cardChanged(const ExactCard &_card); void cardChanged(const ExactCard &_card);
private: private:

View file

@ -139,32 +139,6 @@ void AbstractTabDeckEditor::decrementCard(const ExactCard &card, const QString &
deckStateManager->decrementCard(card, zoneName); deckStateManager->decrementCard(card, zoneName);
} }
/**
* @brief Adds a card to the main deck or sideboard depending on Ctrl key.
*/
void AbstractTabDeckEditor::actAddCard(const ExactCard &card)
{
addCard(card, DECK_ZONE_MAIN);
}
/** @brief Adds a card to the sideboard explicitly. */
void AbstractTabDeckEditor::actAddCardToSideboard(const ExactCard &card)
{
addCard(card, DECK_ZONE_SIDE);
}
/** @brief Decrements a card from the main deck. */
void AbstractTabDeckEditor::actDecrementCard(const ExactCard &card)
{
decrementCard(card, DECK_ZONE_MAIN);
}
/** @brief Decrements a card from the sideboard. */
void AbstractTabDeckEditor::actDecrementCardFromSideboard(const ExactCard &card)
{
decrementCard(card, DECK_ZONE_SIDE);
}
/** /**
* @brief Opens a deck in this tab. * @brief Opens a deck in this tab.
* @param deck The deck * @param deck The deck

View file

@ -77,8 +77,8 @@ class QAction;
* *
* **Key Methods:** * **Key Methods:**
* *
* - actAddCard(const ExactCard &card) Adds a card to the deck. * - addCard(const ExactCard &card, const QString &zoneName) Adds a card to the deck.
* - actDecrementCard(const ExactCard &card) Removes a single instance of a card from the deck. * - decrementCard(const ExactCard &card, const QString &zoneName) Removes a single instance of a card from the deck.
* - actRemoveCard() Removes the currently selected card from the deck. * - actRemoveCard() Removes the currently selected card from the deck.
* - actSaveDeckAs() Performs a "Save As" action for the deck. * - actSaveDeckAs() Performs a "Save As" action for the deck.
* - updateCard(const ExactCard &card) Updates the currently displayed card info in the dock. * - updateCard(const ExactCard &card) Updates the currently displayed card info in the dock.
@ -163,18 +163,6 @@ public slots:
*/ */
void decrementCard(const ExactCard &card, const QString &zoneName); void decrementCard(const ExactCard &card, const QString &zoneName);
/** @brief Adds a card to the main deck or sideboard based on Ctrl key. */
void actAddCard(const ExactCard &card);
/** @brief Adds a card to the sideboard explicitly. */
void actAddCardToSideboard(const ExactCard &card);
/** @brief Decrements a card from the main deck. */
void actDecrementCard(const ExactCard &card);
/** @brief Decrements a card from the sideboard. */
void actDecrementCardFromSideboard(const ExactCard &card);
/** @brief Opens a recently opened deck file. */ /** @brief Opens a recently opened deck file. */
void actOpenRecent(const QString &fileName); void actOpenRecent(const QString &fileName);

View file

@ -168,22 +168,14 @@ void TabDeckEditorVisual::processMainboardCardClick(QMouseEvent *event,
// Alt + Right-click = decrement // Alt + Right-click = decrement
if (event->button() == Qt::RightButton && event->modifiers().testFlag(Qt::AltModifier)) { if (event->button() == Qt::RightButton && event->modifiers().testFlag(Qt::AltModifier)) {
if (zoneName == DECK_ZONE_MAIN) { decrementCard(card, zoneName);
actDecrementCard(card);
} else {
actDecrementCardFromSideboard(card);
}
// Keep selection intact. // Keep selection intact.
return; return;
} }
// Alt + Left click = increment // Alt + Left click = increment
if (event->button() == Qt::LeftButton && event->modifiers().testFlag(Qt::AltModifier)) { if (event->button() == Qt::LeftButton && event->modifiers().testFlag(Qt::AltModifier)) {
if (zoneName == DECK_ZONE_MAIN) { addCard(card, zoneName);
actAddCard(card);
} else {
actAddCardToSideboard(card);
}
// Keep selection intact. // Keep selection intact.
return; return;
} }
@ -224,12 +216,12 @@ void TabDeckEditorVisual::processCardClickDatabaseDisplay(QMouseEvent *event,
{ {
if (event->button() == Qt::LeftButton) { if (event->button() == Qt::LeftButton) {
if (QApplication::keyboardModifiers() & Qt::ControlModifier) { if (QApplication::keyboardModifiers() & Qt::ControlModifier) {
actAddCardToSideboard(instance->getCard()); addCard(instance->getCard(), DECK_ZONE_SIDE);
} else { } else {
actAddCard(instance->getCard()); addCard(instance->getCard(), DECK_ZONE_MAIN);
} }
} else if (event->button() == Qt::RightButton) { } else if (event->button() == Qt::RightButton) {
actDecrementCard(instance->getCard()); decrementCard(instance->getCard(), DECK_ZONE_MAIN);
} else if (event->button() == Qt::MiddleButton) { } else if (event->button() == Qt::MiddleButton) {
deckDockWidget->actRemoveCard(); deckDockWidget->actRemoveCard();
} }

View file

@ -34,8 +34,8 @@ TabDeckEditorVisualTabWidget::TabDeckEditorVisualTabWidget(QWidget *parent,
&TabDeckEditorVisualTabWidget::onCardChanged); &TabDeckEditorVisualTabWidget::onCardChanged);
connect(visualDeckView, &VisualDeckEditorWidget::cardClicked, this, connect(visualDeckView, &VisualDeckEditorWidget::cardClicked, this,
&TabDeckEditorVisualTabWidget::onCardClickedDeckEditor); &TabDeckEditorVisualTabWidget::onCardClickedDeckEditor);
connect(visualDeckView, &VisualDeckEditorWidget::cardAdditionRequested, deckEditor, connect(visualDeckView, &VisualDeckEditorWidget::cardAdditionRequested, this,
&AbstractTabDeckEditor::actAddCard); &TabDeckEditorVisualTabWidget::actAddCard);
visualDatabaseDisplay = visualDatabaseDisplay =
new VisualDatabaseDisplayWidget(this, deckEditor, _cardDatabaseModel, _cardDatabaseDisplayModel); new VisualDatabaseDisplayWidget(this, deckEditor, _cardDatabaseModel, _cardDatabaseDisplayModel);
@ -166,3 +166,15 @@ void TabDeckEditorVisualTabWidget::handleTabClose(int index)
this->removeTab(index); this->removeTab(index);
delete tab; delete tab;
} }
void TabDeckEditorVisualTabWidget::actAddCard(const ExactCard &card)
{
QString zoneName;
if (QApplication::keyboardModifiers() & Qt::ControlModifier) {
zoneName = DECK_ZONE_SIDE;
} else {
zoneName = DECK_ZONE_MAIN;
}
deckEditor->addCard(card, zoneName);
}

View file

@ -132,6 +132,12 @@ private slots:
* @param index Index of the tab to close. * @param index Index of the tab to close.
*/ */
void handleTabClose(int index); void handleTabClose(int index);
/**
* @brief Adds card to maindeck or side depending on whether ctrl is held
* @param card
*/
void actAddCard(const ExactCard &card);
}; };
#endif // TAB_DECK_EDITOR_VISUAL_TAB_WIDGET_H #endif // TAB_DECK_EDITOR_VISUAL_TAB_WIDGET_H

View file

@ -97,9 +97,7 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
&DeckEditorDatabaseDisplayWidget::copyDatabaseCellContents); &DeckEditorDatabaseDisplayWidget::copyDatabaseCellContents);
connect(help, &QAction::triggered, this, [this] { createSearchSyntaxHelpWindow(searchEdit); }); connect(help, &QAction::triggered, this, [this] { createSearchSyntaxHelpWindow(searchEdit); });
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::addCardToMainDeck, this, connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardAdded, this,
&VisualDatabaseDisplayWidget::highlightAllSearchEdit);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::addCardToSideboard, this,
&VisualDatabaseDisplayWidget::highlightAllSearchEdit); &VisualDatabaseDisplayWidget::highlightAllSearchEdit);
databaseView = databaseDisplayWidget->getDatabaseView(); databaseView = databaseDisplayWidget->getDatabaseView();