mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-24 23:53:54 -07:00
[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:
parent
f37c418865
commit
86256602ff
5 changed files with 43 additions and 12 deletions
|
|
@ -33,6 +33,12 @@ void DeckEditorCardDatabaseDockWidget::createDatabaseDisplayDock(AbstractTabDeck
|
||||||
&AbstractTabDeckEditor::addCard);
|
&AbstractTabDeckEditor::addCard);
|
||||||
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardDecremented, deckEditor,
|
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardDecremented, deckEditor,
|
||||||
&AbstractTabDeckEditor::decrementCard);
|
&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
|
CardDatabase *DeckEditorCardDatabaseDockWidget::getDatabase() const
|
||||||
|
|
|
||||||
|
|
@ -200,18 +200,18 @@ void DeckEditorDatabaseDisplayWidget::databaseCustomMenu(QPoint point)
|
||||||
addToDeck = menu.addAction(tr("Add to Deck"));
|
addToDeck = menu.addAction(tr("Add to Deck"));
|
||||||
addToSideboard = menu.addAction(tr("Add to Sideboard"));
|
addToSideboard = menu.addAction(tr("Add to Sideboard"));
|
||||||
selectPrinting = menu.addAction(tr("Select Printing"));
|
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())) {
|
if (canBeCommander(card.getInfo())) {
|
||||||
edhRecCommander = menu.addAction(tr("Show on EDHRec (Commander)"));
|
edhRecCommander = menu.addAction(tr("Show on EDHRec (Commander)"));
|
||||||
connect(edhRecCommander, &QAction::triggered, this,
|
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)"));
|
edhRecCard = menu.addAction(tr("Show on EDHRec (Card)"));
|
||||||
|
|
||||||
connect(addToDeck, &QAction::triggered, this, &DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck);
|
connect(addToDeck, &QAction::triggered, this, &DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck);
|
||||||
connect(addToSideboard, &QAction::triggered, this, &DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
connect(addToSideboard, &QAction::triggered, this, &DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
||||||
connect(edhRecCard, &QAction::triggered, this,
|
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
|
// filling out the related cards submenu
|
||||||
auto *relatedMenu = new QMenu(tr("Show Related cards"));
|
auto *relatedMenu = new QMenu(tr("Show Related cards"));
|
||||||
|
|
@ -223,9 +223,10 @@ void DeckEditorDatabaseDisplayWidget::databaseCustomMenu(QPoint point)
|
||||||
for (const CardRelation *rel : relatedCards) {
|
for (const CardRelation *rel : relatedCards) {
|
||||||
const QString &relatedCardName = rel->getName();
|
const QString &relatedCardName = rel->getName();
|
||||||
QAction *relatedCard = relatedMenu->addAction(relatedCardName);
|
QAction *relatedCard = relatedMenu->addAction(relatedCardName);
|
||||||
connect(
|
connect(relatedCard, &QAction::triggered, this, [this, relatedCardName] {
|
||||||
relatedCard, &QAction::triggered, deckEditor->cardInfoDockWidget->cardInfo,
|
ExactCard card = CardDatabaseManager::query()->guessCard({relatedCardName});
|
||||||
[this, relatedCardName] { deckEditor->cardInfoDockWidget->cardInfo->setCard(relatedCardName); });
|
emit cardInfoRequested(card);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
menu.exec(databaseView->mapToGlobal(point));
|
menu.exec(databaseView->mapToGlobal(point));
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,10 @@ signals:
|
||||||
void cardDecremented(const ExactCard &card, const QString &zoneName);
|
void cardDecremented(const ExactCard &card, const QString &zoneName);
|
||||||
void cardChanged(const ExactCard &_card);
|
void cardChanged(const ExactCard &_card);
|
||||||
|
|
||||||
|
void edhrecRequested(const CardInfoPtr &cardInfo, bool isCommander);
|
||||||
|
void printingSelectorRequested();
|
||||||
|
void cardInfoRequested(const ExactCard &card);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
KeySignals searchKeySignals;
|
KeySignals searchKeySignals;
|
||||||
QTreeView *databaseView;
|
QTreeView *databaseView;
|
||||||
|
|
|
||||||
|
|
@ -105,16 +105,17 @@ void AbstractTabDeckEditor::registerDockWidget(QMenu *_viewMenu, QDockWidget *wi
|
||||||
dockToActions.insert(widget, {menu, aVisible, aFloating, defaultSize});
|
dockToActions.insert(widget, {menu, aVisible, aFloating, defaultSize});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Updates the card info dock and printing selector.
|
|
||||||
* @param card The card to display.
|
|
||||||
*/
|
|
||||||
void AbstractTabDeckEditor::updateCard(const ExactCard &card)
|
void AbstractTabDeckEditor::updateCard(const ExactCard &card)
|
||||||
{
|
{
|
||||||
cardInfoDockWidget->updateCard(card);
|
cardInfoDockWidget->updateCard(card);
|
||||||
printingSelectorDockWidget->printingSelector->setCard(card.getCardPtr());
|
printingSelectorDockWidget->printingSelector->setCard(card.getCardPtr());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AbstractTabDeckEditor::updateCardInfo(const ExactCard &card)
|
||||||
|
{
|
||||||
|
cardInfoDockWidget->updateCard(card);
|
||||||
|
}
|
||||||
|
|
||||||
/** @brief Placeholder: called when the deck changes. */
|
/** @brief Placeholder: called when the deck changes. */
|
||||||
void AbstractTabDeckEditor::onDeckChanged()
|
void AbstractTabDeckEditor::onDeckChanged()
|
||||||
{
|
{
|
||||||
|
|
@ -595,3 +596,8 @@ void AbstractTabDeckEditor::showPrintingSelector()
|
||||||
printingSelectorDockWidget->printingSelector->updateDisplay();
|
printingSelectorDockWidget->printingSelector->updateDisplay();
|
||||||
printingSelectorDockWidget->setVisible(true);
|
printingSelectorDockWidget->setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AbstractTabDeckEditor::openEdhrecTab(const CardInfoPtr &info, bool isCommander)
|
||||||
|
{
|
||||||
|
getTabSupervisor()->addEdhrecTab(info, isCommander);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -140,11 +140,18 @@ public slots:
|
||||||
/** @brief Called when the deck is modified. */
|
/** @brief Called when the deck is modified. */
|
||||||
virtual void onDeckModified();
|
virtual void onDeckModified();
|
||||||
|
|
||||||
/** @brief Updates the card info panel.
|
/**
|
||||||
* @param card The card to display.
|
* @brief Updates the card info dock and printing selector.
|
||||||
|
* @param card The card to display.
|
||||||
*/
|
*/
|
||||||
void updateCard(const ExactCard &card);
|
void updateCard(const ExactCard &card);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Updates just the card info dock
|
||||||
|
* @param card The card to display
|
||||||
|
*/
|
||||||
|
void updateCardInfo(const ExactCard &card);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Adds a card to the given zone
|
* @brief Adds a card to the given zone
|
||||||
* @param card Card to add.
|
* @param card Card to add.
|
||||||
|
|
@ -175,6 +182,13 @@ public slots:
|
||||||
/** @brief Shows the printing selector dock and updates it with the current card. */
|
/** @brief Shows the printing selector dock and updates it with the current card. */
|
||||||
void showPrintingSelector();
|
void showPrintingSelector();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Opens an EDHRec tab for the given card
|
||||||
|
* @param info The card
|
||||||
|
* @param isCommander The type of search
|
||||||
|
*/
|
||||||
|
void openEdhrecTab(const CardInfoPtr &info, bool isCommander);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/** @brief Emitted when a deck should be opened in a new editor tab. */
|
/** @brief Emitted when a deck should be opened in a new editor tab. */
|
||||||
void openDeckEditor(const LoadedDeck &deck);
|
void openDeckEditor(const LoadedDeck &deck);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue