[TabDeckEditor] Refactor to use signal instead of calling tab (#6965)

* [TabDeckEditor] Refactor to use signal instead of calling tab

* update docs

* fix cardInfoRequest
This commit is contained in:
RickyRister 2026-06-03 10:41:55 -07:00 committed by GitHub
parent f37c418865
commit 86256602ff
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 43 additions and 12 deletions

View file

@ -33,6 +33,12 @@ void DeckEditorCardDatabaseDockWidget::createDatabaseDisplayDock(AbstractTabDeck
&AbstractTabDeckEditor::addCard);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardDecremented, deckEditor,
&AbstractTabDeckEditor::decrementCard);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::edhrecRequested, deckEditor,
&AbstractTabDeckEditor::openEdhrecTab);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::printingSelectorRequested, deckEditor,
&AbstractTabDeckEditor::showPrintingSelector);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardInfoRequested, deckEditor,
&AbstractTabDeckEditor::updateCardInfo);
}
CardDatabase *DeckEditorCardDatabaseDockWidget::getDatabase() const

View file

@ -200,18 +200,18 @@ void DeckEditorDatabaseDisplayWidget::databaseCustomMenu(QPoint point)
addToDeck = menu.addAction(tr("Add to Deck"));
addToSideboard = menu.addAction(tr("Add to Sideboard"));
selectPrinting = menu.addAction(tr("Select Printing"));
connect(selectPrinting, &QAction::triggered, this, [this, card] { deckEditor->showPrintingSelector(); });
connect(selectPrinting, &QAction::triggered, this, &DeckEditorDatabaseDisplayWidget::printingSelectorRequested);
if (canBeCommander(card.getInfo())) {
edhRecCommander = menu.addAction(tr("Show on EDHRec (Commander)"));
connect(edhRecCommander, &QAction::triggered, this,
[this, card] { deckEditor->getTabSupervisor()->addEdhrecTab(card.getCardPtr(), true); });
[this, card] { emit edhrecRequested(card.getCardPtr(), true); });
}
edhRecCard = menu.addAction(tr("Show on EDHRec (Card)"));
connect(addToDeck, &QAction::triggered, this, &DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck);
connect(addToSideboard, &QAction::triggered, this, &DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
connect(edhRecCard, &QAction::triggered, this,
[this, card] { deckEditor->getTabSupervisor()->addEdhrecTab(card.getCardPtr()); });
[this, card] { emit edhrecRequested(card.getCardPtr(), false); });
// filling out the related cards submenu
auto *relatedMenu = new QMenu(tr("Show Related cards"));
@ -223,9 +223,10 @@ void DeckEditorDatabaseDisplayWidget::databaseCustomMenu(QPoint point)
for (const CardRelation *rel : relatedCards) {
const QString &relatedCardName = rel->getName();
QAction *relatedCard = relatedMenu->addAction(relatedCardName);
connect(
relatedCard, &QAction::triggered, deckEditor->cardInfoDockWidget->cardInfo,
[this, relatedCardName] { deckEditor->cardInfoDockWidget->cardInfo->setCard(relatedCardName); });
connect(relatedCard, &QAction::triggered, this, [this, relatedCardName] {
ExactCard card = CardDatabaseManager::query()->guessCard({relatedCardName});
emit cardInfoRequested(card);
});
}
}
menu.exec(databaseView->mapToGlobal(point));

View file

@ -52,6 +52,10 @@ signals:
void cardDecremented(const ExactCard &card, const QString &zoneName);
void cardChanged(const ExactCard &_card);
void edhrecRequested(const CardInfoPtr &cardInfo, bool isCommander);
void printingSelectorRequested();
void cardInfoRequested(const ExactCard &card);
private:
KeySignals searchKeySignals;
QTreeView *databaseView;