Merge branch 'Cockatrice:master' into feat-5043

This commit is contained in:
Vorliz 2026-06-05 14:57:11 +01:00 committed by GitHub
commit d8bc09ff90
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 144 additions and 201 deletions

View file

@ -6,12 +6,12 @@
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QRegularExpression> #include <QRegularExpression>
#include <QUrlQuery> #include <QUrlQuery>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_list.h> #include <libcockatrice/deck_list/deck_list.h>
#include <libcockatrice/deck_list/tree/deck_list_card_node.h> #include <libcockatrice/deck_list/tree/deck_list_card_node.h>
#include <version_string.h> #include <version_string.h>
DeckStatsInterface::DeckStatsInterface(CardDatabase &_cardDatabase, QObject *parent) DeckStatsInterface::DeckStatsInterface(QObject *parent) : QObject(parent)
: QObject(parent), cardDatabase(_cardDatabase)
{ {
manager = new QNetworkAccessManager(this); manager = new QNetworkAccessManager(this);
connect(manager, &QNetworkAccessManager::finished, this, &DeckStatsInterface::queryFinished); connect(manager, &QNetworkAccessManager::finished, this, &DeckStatsInterface::queryFinished);
@ -70,8 +70,8 @@ void DeckStatsInterface::analyzeDeck(const DeckList &deck)
void DeckStatsInterface::copyDeckWithoutTokens(const DeckList &source, DeckList &destination) void DeckStatsInterface::copyDeckWithoutTokens(const DeckList &source, DeckList &destination)
{ {
auto copyIfNotAToken = [this, &destination](const auto node, const auto card) { auto copyIfNotAToken = [&destination](const auto node, const auto card) {
CardInfoPtr dbCard = cardDatabase.query()->getCardInfo(card->getName()); CardInfoPtr dbCard = CardDatabaseManager::query()->getCardInfo(card->getName());
if (dbCard && !dbCard->getIsToken()) { if (dbCard && !dbCard->getIsToken()) {
DecklistCardNode *addedCard = destination.addCard(card->getName(), node->getName(), -1); DecklistCardNode *addedCard = destination.addCard(card->getName(), node->getName(), -1);
addedCard->setNumber(card->getNumber()); addedCard->setNumber(card->getNumber());

View file

@ -7,7 +7,6 @@
#ifndef DECKSTATS_INTERFACE_H #ifndef DECKSTATS_INTERFACE_H
#define DECKSTATS_INTERFACE_H #define DECKSTATS_INTERFACE_H
#include <libcockatrice/card/database/card_database.h>
#include <libcockatrice/deck_list/deck_list.h> #include <libcockatrice/deck_list/deck_list.h>
class QByteArray; class QByteArray;
@ -21,8 +20,6 @@ class DeckStatsInterface : public QObject
private: private:
QNetworkAccessManager *manager; QNetworkAccessManager *manager;
CardDatabase &cardDatabase;
/** /**
* Deckstats doesn't recognize token cards, and instead tries to find the * Deckstats doesn't recognize token cards, and instead tries to find the
* closest non-token card instead. So we construct a new deck which has no * closest non-token card instead. So we construct a new deck which has no
@ -35,7 +32,7 @@ private slots:
void getAnalyzeRequestData(const DeckList &deck, QByteArray &data); void getAnalyzeRequestData(const DeckList &deck, QByteArray &data);
public: public:
explicit DeckStatsInterface(CardDatabase &_cardDatabase, QObject *parent = nullptr); explicit DeckStatsInterface(QObject *parent = nullptr);
void analyzeDeck(const DeckList &deck); void analyzeDeck(const DeckList &deck);
}; };

View file

@ -6,12 +6,12 @@
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QRegularExpression> #include <QRegularExpression>
#include <QUrlQuery> #include <QUrlQuery>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_list.h> #include <libcockatrice/deck_list/deck_list.h>
#include <libcockatrice/deck_list/tree/deck_list_card_node.h> #include <libcockatrice/deck_list/tree/deck_list_card_node.h>
#include <version_string.h> #include <version_string.h>
TappedOutInterface::TappedOutInterface(CardDatabase &_cardDatabase, QObject *parent) TappedOutInterface::TappedOutInterface(QObject *parent) : QObject(parent)
: QObject(parent), cardDatabase(_cardDatabase)
{ {
manager = new QNetworkAccessManager(this); manager = new QNetworkAccessManager(this);
connect(manager, &QNetworkAccessManager::finished, this, &TappedOutInterface::queryFinished); connect(manager, &QNetworkAccessManager::finished, this, &TappedOutInterface::queryFinished);
@ -97,8 +97,8 @@ void TappedOutInterface::analyzeDeck(const DeckList &deck)
void TappedOutInterface::copyDeckSplitMainAndSide(const DeckList &source, DeckList &mainboard, DeckList &sideboard) void TappedOutInterface::copyDeckSplitMainAndSide(const DeckList &source, DeckList &mainboard, DeckList &sideboard)
{ {
auto copyMainOrSide = [this, &mainboard, &sideboard](const auto node, const auto card) { auto copyMainOrSide = [&mainboard, &sideboard](const auto node, const auto card) {
CardInfoPtr dbCard = cardDatabase.query()->getCardInfo(card->getName()); CardInfoPtr dbCard = CardDatabaseManager::query()->getCardInfo(card->getName());
if (!dbCard || dbCard->getIsToken()) { if (!dbCard || dbCard->getIsToken()) {
return; return;
} }

View file

@ -7,8 +7,8 @@
#ifndef TAPPEDOUT_INTERFACE_H #ifndef TAPPEDOUT_INTERFACE_H
#define TAPPEDOUT_INTERFACE_H #define TAPPEDOUT_INTERFACE_H
#include <libcockatrice/card/database/card_database.h> #include <QLoggingCategory>
#include <libcockatrice/deck_list/deck_list.h> #include <QObject>
inline Q_LOGGING_CATEGORY(TappedOutInterfaceLog, "tapped_out_interface"); inline Q_LOGGING_CATEGORY(TappedOutInterfaceLog, "tapped_out_interface");
@ -29,14 +29,13 @@ class TappedOutInterface : public QObject
private: private:
QNetworkAccessManager *manager; QNetworkAccessManager *manager;
CardDatabase &cardDatabase;
void copyDeckSplitMainAndSide(const DeckList &source, DeckList &mainboard, DeckList &sideboard); void copyDeckSplitMainAndSide(const DeckList &source, DeckList &mainboard, DeckList &sideboard);
private slots: private slots:
void queryFinished(QNetworkReply *reply); void queryFinished(QNetworkReply *reply);
void getAnalyzeRequestData(const DeckList &deck, QByteArray &data); void getAnalyzeRequestData(const DeckList &deck, QByteArray &data);
public: public:
explicit TappedOutInterface(CardDatabase &_cardDatabase, QObject *parent = nullptr); explicit TappedOutInterface(QObject *parent = nullptr);
void analyzeDeck(const DeckList &deck); void analyzeDeck(const DeckList &deck);
}; };

View file

@ -58,16 +58,6 @@ void CardGroupDisplayWidget::mousePressEvent(QMouseEvent *event)
} }
} }
void CardGroupDisplayWidget::onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card)
{
emit cardClicked(event, card);
}
void CardGroupDisplayWidget::onHover(const ExactCard &card)
{
emit cardHovered(card);
}
void CardGroupDisplayWidget::onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected) void CardGroupDisplayWidget::onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
{ {
auto proxyModel = qobject_cast<QAbstractProxyModel *>(selectionModel->model()); auto proxyModel = qobject_cast<QAbstractProxyModel *>(selectionModel->model());
@ -154,8 +144,8 @@ QWidget *CardGroupDisplayWidget::constructWidgetForIndex(QPersistentModelIndex i
widget->setScaleFactor(cardSizeWidget->getSlider()->value()); widget->setScaleFactor(cardSizeWidget->getSlider()->value());
widget->setCard(CardDatabaseManager::query()->getCard({cardName, cardProviderId})); widget->setCard(CardDatabaseManager::query()->getCard({cardName, cardProviderId}));
connect(widget, &CardInfoPictureWithTextOverlayWidget::imageClicked, this, &CardGroupDisplayWidget::onClick); connect(widget, &CardInfoPictureWithTextOverlayWidget::cardClicked, this, &CardGroupDisplayWidget::cardClicked);
connect(widget, &CardInfoPictureWithTextOverlayWidget::hoveredOnCard, this, &CardGroupDisplayWidget::onHover); connect(widget, &CardInfoPictureWithTextOverlayWidget::hoveredOnCard, this, &CardGroupDisplayWidget::cardHovered);
connect(cardSizeWidget->getSlider(), &QSlider::valueChanged, widget, &CardInfoPictureWidget::setScaleFactor); connect(cardSizeWidget->getSlider(), &QSlider::valueChanged, widget, &CardInfoPictureWidget::setScaleFactor);
indexToWidgetMap[index].append(widget); indexToWidgetMap[index].append(widget);

View file

@ -48,8 +48,6 @@ public:
public slots: public slots:
void mousePressEvent(QMouseEvent *event) override; void mousePressEvent(QMouseEvent *event) override;
void onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card);
void onHover(const ExactCard &card);
virtual QWidget *constructWidgetForIndex(QPersistentModelIndex index); virtual QWidget *constructWidgetForIndex(QPersistentModelIndex index);
virtual void updateCardDisplays(); virtual void updateCardDisplays();
virtual void onCardAddition(const QModelIndex &parent, int first, int last); virtual void onCardAddition(const QModelIndex &parent, int first, int last);
@ -59,7 +57,7 @@ public slots:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
signals: signals:
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card); void cardClicked(QMouseEvent *event, const ExactCard &card);
void cardHovered(const ExactCard &card); void cardHovered(const ExactCard &card);
void cleanupRequested(CardGroupDisplayWidget *cardGroupDisplayWidget); void cleanupRequested(CardGroupDisplayWidget *cardGroupDisplayWidget);

View file

@ -345,7 +345,7 @@ void CardInfoPictureWidget::mousePressEvent(QMouseEvent *event)
createRightClickMenu()->popup(QCursor::pos()); createRightClickMenu()->popup(QCursor::pos());
} }
emit cardClicked(event); emit cardClicked(event, exactCard);
} }
void CardInfoPictureWidget::hideEvent(QHideEvent *event) void CardInfoPictureWidget::hideEvent(QHideEvent *event)
@ -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

@ -43,7 +43,7 @@ signals:
void hoveredOnCard(const ExactCard &hoveredCard); void hoveredOnCard(const ExactCard &hoveredCard);
void cardScaleFactorChanged(int _scale); void cardScaleFactorChanged(int _scale);
void cardChanged(const ExactCard &card); void cardChanged(const ExactCard &card);
void cardClicked(QMouseEvent *event); void cardClicked(QMouseEvent *event, const ExactCard &card);
protected: protected:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;

View file

@ -93,7 +93,7 @@ void CardInfoPictureWithTextOverlayWidget::setHighlighted(bool _highlighted)
void CardInfoPictureWithTextOverlayWidget::mousePressEvent(QMouseEvent *event) void CardInfoPictureWithTextOverlayWidget::mousePressEvent(QMouseEvent *event)
{ {
emit imageClicked(event, this); emit cardClicked(event, getCard());
} }
/** /**

View file

@ -35,8 +35,6 @@ public:
void setHighlighted(bool _highlighted); void setHighlighted(bool _highlighted);
[[nodiscard]] QSize sizeHint() const override; [[nodiscard]] QSize sizeHint() const override;
signals:
void imageClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
protected: protected:
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;

View file

@ -51,7 +51,7 @@ DeckCardZoneDisplayWidget::DeckCardZoneDisplayWidget(QWidget *parent,
// User Interaction // User Interaction
// ===================================================================================================================== // =====================================================================================================================
void DeckCardZoneDisplayWidget::onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card) void DeckCardZoneDisplayWidget::onClick(QMouseEvent *event, const ExactCard &card)
{ {
emit cardClicked(event, card, zoneName); emit cardClicked(event, card, zoneName);
} }

View file

@ -42,7 +42,7 @@ public:
void addCardsToOverlapWidget(); void addCardsToOverlapWidget();
public slots: public slots:
void onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card); void onClick(QMouseEvent *event, const ExactCard &card);
void onHover(const ExactCard &card); void onHover(const ExactCard &card);
void cleanupInvalidCardGroup(CardGroupDisplayWidget *displayWidget); void cleanupInvalidCardGroup(CardGroupDisplayWidget *displayWidget);
void constructAppropriateWidget(QPersistentModelIndex index); void constructAppropriateWidget(QPersistentModelIndex index);
@ -55,7 +55,7 @@ public slots:
void onCategoryRemoval(const QModelIndex &parent, int first, int last); void onCategoryRemoval(const QModelIndex &parent, int first, int last);
signals: signals:
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card, QString zoneName); void cardClicked(QMouseEvent *event, const ExactCard &card, const QString &zoneName);
void cardHovered(const ExactCard &card); void cardHovered(const ExactCard &card);
void activeSortCriteriaChanged(QStringList activeSortCriteria); void activeSortCriteriaChanged(QStringList activeSortCriteria);
void requestCleanup(DeckCardZoneDisplayWidget *displayWidget); void requestCleanup(DeckCardZoneDisplayWidget *displayWidget);

View file

@ -29,14 +29,16 @@ 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, connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::edhrecRequested, deckEditor,
&AbstractTabDeckEditor::actDecrementCard); &AbstractTabDeckEditor::openEdhrecTab);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::decrementCardFromSideboard, deckEditor, connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::printingSelectorRequested, deckEditor,
&AbstractTabDeckEditor::actDecrementCardFromSideboard); &AbstractTabDeckEditor::showPrintingSelector);
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardInfoRequested, deckEditor,
&AbstractTabDeckEditor::updateCardInfo);
} }
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
@ -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));

View file

@ -48,12 +48,14 @@ 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);
void edhrecRequested(const CardInfoPtr &cardInfo, bool isCommander);
void printingSelectorRequested();
void cardInfoRequested(const ExactCard &card);
private: private:
KeySignals searchKeySignals; KeySignals searchKeySignals;
QTreeView *databaseView; QTreeView *databaseView;

View file

@ -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()
{ {
@ -139,32 +140,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
@ -564,14 +539,14 @@ void AbstractTabDeckEditor::actExportDeckDecklistXyz()
/** @brief Analyzes the deck using DeckStats. */ /** @brief Analyzes the deck using DeckStats. */
void AbstractTabDeckEditor::actAnalyzeDeckDeckstats() void AbstractTabDeckEditor::actAnalyzeDeckDeckstats()
{ {
auto *interface = new DeckStatsInterface(*cardDatabaseDockWidget->getDatabase(), this); auto *interface = new DeckStatsInterface(this);
interface->analyzeDeck(deckStateManager->getDeckList()); interface->analyzeDeck(deckStateManager->getDeckList());
} }
/** @brief Analyzes the deck using TappedOut. */ /** @brief Analyzes the deck using TappedOut. */
void AbstractTabDeckEditor::actAnalyzeDeckTappedout() void AbstractTabDeckEditor::actAnalyzeDeckTappedout()
{ {
auto *interface = new TappedOutInterface(*cardDatabaseDockWidget->getDatabase(), this); auto *interface = new TappedOutInterface(this);
interface->analyzeDeck(deckStateManager->getDeckList()); interface->analyzeDeck(deckStateManager->getDeckList());
} }
@ -614,3 +589,15 @@ bool AbstractTabDeckEditor::closeRequest()
} }
return close(); return close();
} }
void AbstractTabDeckEditor::showPrintingSelector()
{
printingSelectorDockWidget->printingSelector->setCard(cardInfoDockWidget->cardInfo->getCard().getCardPtr());
printingSelectorDockWidget->printingSelector->updateDisplay();
printingSelectorDockWidget->setVisible(true);
}
void AbstractTabDeckEditor::openEdhrecTab(const CardInfoPtr &info, bool isCommander)
{
getTabSupervisor()->addEdhrecTab(info, isCommander);
}

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.
@ -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.
@ -163,18 +170,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);
@ -184,8 +179,15 @@ public slots:
/** @brief Requests closing the tab. */ /** @brief Requests closing the tab. */
bool closeRequest() override; bool closeRequest() override;
/** @brief Shows the printing selector dock. Pure virtual. */ /** @brief Shows the printing selector dock and updates it with the current card. */
virtual void showPrintingSelector() = 0; 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. */

View file

@ -120,16 +120,6 @@ void TabDeckEditor::refreshShortcuts()
aResetLayout->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aResetLayout")); aResetLayout->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aResetLayout"));
} }
/**
* @brief Displays the printing selector dock with the current card.
*/
void TabDeckEditor::showPrintingSelector()
{
printingSelectorDockWidget->printingSelector->setCard(cardInfoDockWidget->cardInfo->getCard().getCardPtr());
printingSelectorDockWidget->printingSelector->updateDisplay();
printingSelectorDockWidget->setVisible(true);
}
/** /**
* @brief Loads deck editor layout from settings or resets to default. * @brief Loads deck editor layout from settings or resets to default.
*/ */

View file

@ -83,10 +83,6 @@ public:
/** @brief Creates menus for deck editing and view options. */ /** @brief Creates menus for deck editing and view options. */
void createMenus() override; void createMenus() override;
public slots:
/** @brief Shows the printing selector dock and updates it with current card. */
void showPrintingSelector() override;
}; };
#endif #endif

View file

@ -74,7 +74,7 @@ void TabDeckEditorVisual::createCentralFrame()
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardClicked, this, connect(tabContainer, &TabDeckEditorVisualTabWidget::cardClicked, this,
&TabDeckEditorVisual::processMainboardCardClick); &TabDeckEditorVisual::processMainboardCardClick);
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardClickedDatabaseDisplay, this, connect(tabContainer, &TabDeckEditorVisualTabWidget::cardClickedDatabaseDisplay, this,
&TabDeckEditorVisual::processCardClickDatabaseDisplay); &TabDeckEditorVisual::processDatabaseCardClick);
centralFrame->addWidget(tabContainer); centralFrame->addWidget(tabContainer);
setCentralWidget(centralWidget); setCentralWidget(centralWidget);
@ -143,12 +143,10 @@ void TabDeckEditorVisual::changeModelIndexToCard(const ExactCard &activeCard)
} }
} }
void TabDeckEditorVisual::processMainboardCardClick(QMouseEvent *event, void TabDeckEditorVisual::processMainboardCardClick(const QMouseEvent *event,
CardInfoPictureWithTextOverlayWidget *instance, const ExactCard &card,
const QString &zoneName) const QString &zoneName)
{ {
auto card = instance->getCard();
// Get the model index for the card // Get the model index for the card
QModelIndex idx = deckStateManager->getModel()->findCard(card.getName(), zoneName); QModelIndex idx = deckStateManager->getModel()->findCard(card.getName(), zoneName);
if (!idx.isValid()) { if (!idx.isValid()) {
@ -168,22 +166,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;
} }
@ -219,17 +209,16 @@ void TabDeckEditorVisual::processMainboardCardClick(QMouseEvent *event,
} }
/** @brief Handles clicks on cards in the database display. */ /** @brief Handles clicks on cards in the database display. */
void TabDeckEditorVisual::processCardClickDatabaseDisplay(QMouseEvent *event, void TabDeckEditorVisual::processDatabaseCardClick(const QMouseEvent *event, const ExactCard &card)
CardInfoPictureWithTextOverlayWidget *instance)
{ {
if (event->button() == Qt::LeftButton) { if (event->button() == Qt::LeftButton) {
if (QApplication::keyboardModifiers() & Qt::ControlModifier) { if (QApplication::keyboardModifiers() & Qt::ControlModifier) {
actAddCardToSideboard(instance->getCard()); addCard(card, DECK_ZONE_SIDE);
} else { } else {
actAddCard(instance->getCard()); addCard(card, DECK_ZONE_MAIN);
} }
} else if (event->button() == Qt::RightButton) { } else if (event->button() == Qt::RightButton) {
actDecrementCard(instance->getCard()); decrementCard(card, DECK_ZONE_MAIN);
} else if (event->button() == Qt::MiddleButton) { } else if (event->button() == Qt::MiddleButton) {
deckDockWidget->actRemoveCard(); deckDockWidget->actRemoveCard();
} }
@ -244,14 +233,6 @@ bool TabDeckEditorVisual::actSaveDeckAs()
return result; return result;
} }
/** @brief Shows the printing selector dock and updates it with the current card. */
void TabDeckEditorVisual::showPrintingSelector()
{
printingSelectorDockWidget->printingSelector->setCard(cardInfoDockWidget->cardInfo->getCard().getCardPtr());
printingSelectorDockWidget->printingSelector->updateDisplay();
printingSelectorDockWidget->setVisible(true);
}
/** @brief Refreshes keyboard shortcuts for this tab from settings. */ /** @brief Refreshes keyboard shortcuts for this tab from settings. */
void TabDeckEditorVisual::refreshShortcuts() void TabDeckEditorVisual::refreshShortcuts()
{ {

View file

@ -41,7 +41,7 @@
* - changeModelIndexAndCardInfo(const ExactCard &card) Updates deck model selection and card info. * - changeModelIndexAndCardInfo(const ExactCard &card) Updates deck model selection and card info.
* - changeModelIndexToCard(const ExactCard &card) Selects the card in the deck view. * - changeModelIndexToCard(const ExactCard &card) Selects the card in the deck view.
* - processMainboardCardClick(QMouseEvent *event, ...) Handles clicks on mainboard cards. * - processMainboardCardClick(QMouseEvent *event, ...) Handles clicks on mainboard cards.
* - processCardClickDatabaseDisplay(QMouseEvent *event, ...) Handles clicks on database cards. * - processDatabaseCardClick(QMouseEvent *event, ...) Handles clicks on database cards.
* - actSaveDeckAs() Overrides save action with temporary UI adjustments. * - actSaveDeckAs() Overrides save action with temporary UI adjustments.
* - showPrintingSelector() Opens the printing selector dock for the current card. * - showPrintingSelector() Opens the printing selector dock for the current card.
* - freeDocksSize() Frees constraints on dock widget sizes. * - freeDocksSize() Frees constraints on dock widget sizes.
@ -144,27 +144,20 @@ public slots:
*/ */
void onDeckChanged() override; void onDeckChanged() override;
/**
* @brief Show the printing selector dock for the currently active card.
*/
void showPrintingSelector() override;
/** /**
* @brief Handle card clicks in the mainboard visual deck. * @brief Handle card clicks in the mainboard visual deck.
* @param event Mouse event triggering the action. * @param event Mouse event triggering the action.
* @param instance Widget representing the clicked card. * @param card The clicked card.
* @param zoneName Deck zone of the card. * @param zoneName Deck zone of the card.
*/ */
void processMainboardCardClick(QMouseEvent *event, void processMainboardCardClick(const QMouseEvent *event, const ExactCard &card, const QString &zoneName);
CardInfoPictureWithTextOverlayWidget *instance,
const QString &zoneName);
/** /**
* @brief Handle card clicks in the database visual display. * @brief Handle card clicks in the database visual display.
* @param event Mouse event triggering the action. * @param event Mouse event triggering the action.
* @param instance Widget representing the clicked card. * @param card The clicked card.
*/ */
void processCardClickDatabaseDisplay(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance); void processDatabaseCardClick(const QMouseEvent *event, const ExactCard &card);
/** /**
* @brief Save the deck under a new name. * @brief Save the deck under a new name.

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);
@ -82,25 +82,24 @@ void TabDeckEditorVisualTabWidget::onCardChangedDatabaseDisplay(const ExactCard
/** /**
* @brief Emits the cardClicked signal when a card is clicked in the visual deck view. * @brief Emits the cardClicked signal when a card is clicked in the visual deck view.
* @param event The mouse event. * @param event The mouse event.
* @param instance The widget instance of the clicked card. * @param card The clicked card.
* @param zoneName The zone of the deck where the card is located. * @param zoneName The zone of the deck where the card is located.
*/ */
void TabDeckEditorVisualTabWidget::onCardClickedDeckEditor(QMouseEvent *event, void TabDeckEditorVisualTabWidget::onCardClickedDeckEditor(QMouseEvent *event,
CardInfoPictureWithTextOverlayWidget *instance, const ExactCard &card,
QString zoneName) const QString &zoneName)
{ {
emit cardClicked(event, instance, zoneName); emit cardClicked(event, card, zoneName);
} }
/** /**
* @brief Emits the cardClickedDatabaseDisplay signal when a card is clicked in the database display. * @brief Emits the cardClickedDatabaseDisplay signal when a card is clicked in the database display.
* @param event The mouse event. * @param event The mouse event.
* @param instance The widget instance of the clicked card. * @param card The clicked card.
*/ */
void TabDeckEditorVisualTabWidget::onCardClickedDatabaseDisplay(QMouseEvent *event, void TabDeckEditorVisualTabWidget::onCardClickedDatabaseDisplay(QMouseEvent *event, const ExactCard &card)
CardInfoPictureWithTextOverlayWidget *instance)
{ {
emit cardClickedDatabaseDisplay(event, instance); emit cardClickedDatabaseDisplay(event, card);
} }
/** /**
@ -166,3 +165,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

@ -101,23 +101,23 @@ public slots:
/** /**
* @brief Emitted when a card is clicked in the deck view. * @brief Emitted when a card is clicked in the deck view.
* @param event Mouse event. * @param event Mouse event.
* @param instance Widget representing the clicked card. * @param card The clicked card.
* @param zoneName Deck zone of the card. * @param zoneName Deck zone of the card.
*/ */
void onCardClickedDeckEditor(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName); void onCardClickedDeckEditor(QMouseEvent *event, const ExactCard &card, const QString &zoneName);
/** /**
* @brief Emitted when a card is clicked in the database display. * @brief Emitted when a card is clicked in the database display.
* @param event Mouse event. * @param event Mouse event.
* @param instance Widget representing the clicked card. * @param card The clicked card.
*/ */
void onCardClickedDatabaseDisplay(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance); void onCardClickedDatabaseDisplay(QMouseEvent *event, const ExactCard &card);
signals: signals:
void cardChanged(const ExactCard &activeCard); void cardChanged(const ExactCard &activeCard);
void cardChangedDatabaseDisplay(const ExactCard &activeCard); void cardChangedDatabaseDisplay(const ExactCard &activeCard);
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName); void cardClicked(QMouseEvent *event, const ExactCard &card, const QString &zoneName);
void cardClickedDatabaseDisplay(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance); void cardClickedDatabaseDisplay(QMouseEvent *event, const ExactCard &card);
private: private:
QVBoxLayout *layout; ///< Layout for tabs and controls. QVBoxLayout *layout; ///< Layout for tabs and controls.
@ -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();
@ -216,9 +214,9 @@ void VisualDatabaseDisplayWidget::onDisplayModeChanged(bool checked)
} }
} }
void VisualDatabaseDisplayWidget::onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance) void VisualDatabaseDisplayWidget::onClick(QMouseEvent *event, const ExactCard &card)
{ {
emit cardClickedDatabaseDisplay(event, instance); emit cardClickedDatabaseDisplay(event, card);
} }
void VisualDatabaseDisplayWidget::onHover(const ExactCard &hoveredCard) void VisualDatabaseDisplayWidget::onHover(const ExactCard &hoveredCard)
@ -233,7 +231,7 @@ void VisualDatabaseDisplayWidget::addCard(const ExactCard &cardToAdd)
display->setScaleFactor(cardSizeWidget->getSlider()->value()); display->setScaleFactor(cardSizeWidget->getSlider()->value());
display->setCard(cardToAdd); display->setCard(cardToAdd);
flowWidget->addWidget(display); flowWidget->addWidget(display);
connect(display, &CardInfoPictureWithTextOverlayWidget::imageClicked, this, &VisualDatabaseDisplayWidget::onClick); connect(display, &CardInfoPictureWithTextOverlayWidget::cardClicked, this, &VisualDatabaseDisplayWidget::onClick);
connect(display, &CardInfoPictureWithTextOverlayWidget::hoveredOnCard, this, &VisualDatabaseDisplayWidget::onHover); connect(display, &CardInfoPictureWithTextOverlayWidget::hoveredOnCard, this, &VisualDatabaseDisplayWidget::onHover);
connect(cardSizeWidget->getSlider(), &QSlider::valueChanged, display, &CardInfoPictureWidget::setScaleFactor); connect(cardSizeWidget->getSlider(), &QSlider::valueChanged, display, &CardInfoPictureWidget::setScaleFactor);
} }

View file

@ -76,12 +76,12 @@ public slots:
void onSearchModelChanged(); void onSearchModelChanged();
signals: signals:
void cardClickedDatabaseDisplay(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance); void cardClickedDatabaseDisplay(QMouseEvent *event, const ExactCard &card);
void cardHoveredDatabaseDisplay(const ExactCard &hoveredCard); void cardHoveredDatabaseDisplay(const ExactCard &hoveredCard);
protected slots: protected slots:
void initialize(); void initialize();
void onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance); void onClick(QMouseEvent *event, const ExactCard &card);
void onHover(const ExactCard &hoveredCard); void onHover(const ExactCard &hoveredCard);
void addCard(const ExactCard &cardToAdd); void addCard(const ExactCard &cardToAdd);
void databaseDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); void databaseDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);

View file

@ -281,7 +281,7 @@ void VisualDeckEditorWidget::constructZoneWidgetForIndex(QPersistentModelIndex p
displayOptionsWidget->getActiveGroupCriteria(), displayOptionsWidget->getActiveSortCriteria(), displayOptionsWidget->getActiveGroupCriteria(), displayOptionsWidget->getActiveSortCriteria(),
displayOptionsWidget->getDisplayType(), 20, 10, cardSizeWidget); displayOptionsWidget->getDisplayType(), 20, 10, cardSizeWidget);
connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardHovered, this, &VisualDeckEditorWidget::onHover); connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardHovered, this, &VisualDeckEditorWidget::onHover);
connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardClicked, this, &VisualDeckEditorWidget::onCardClick); connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::cardClicked, this, &VisualDeckEditorWidget::cardClicked);
connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::requestCleanup, this, connect(zoneDisplayWidget, &DeckCardZoneDisplayWidget::requestCleanup, this,
&VisualDeckEditorWidget::cleanupInvalidZones); &VisualDeckEditorWidget::cleanupInvalidZones);
connect(this, &VisualDeckEditorWidget::activeSortCriteriaChanged, zoneDisplayWidget, connect(this, &VisualDeckEditorWidget::activeSortCriteriaChanged, zoneDisplayWidget,
@ -401,13 +401,6 @@ void VisualDeckEditorWidget::decklistDataChanged(QModelIndex topLeft, QModelInde
// User Interaction // User Interaction
// ===================================================================================================================== // =====================================================================================================================
void VisualDeckEditorWidget::onCardClick(QMouseEvent *event,
CardInfoPictureWithTextOverlayWidget *instance,
QString zoneName)
{
emit cardClicked(event, instance, zoneName);
}
void VisualDeckEditorWidget::onHover(const ExactCard &hoveredCard) void VisualDeckEditorWidget::onHover(const ExactCard &hoveredCard)
{ {
// If user has any card selected, ignore hover // If user has any card selected, ignore hover

View file

@ -69,7 +69,7 @@ signals:
void activeCardChanged(const ExactCard &activeCard); void activeCardChanged(const ExactCard &activeCard);
void activeGroupCriteriaChanged(QString activeGroupCriteria); void activeGroupCriteriaChanged(QString activeGroupCriteria);
void activeSortCriteriaChanged(QStringList activeSortCriteria); void activeSortCriteriaChanged(QStringList activeSortCriteria);
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName); void cardClicked(QMouseEvent *event, const ExactCard &card, const QString &zoneName);
void cardAdditionRequested(const ExactCard &card); void cardAdditionRequested(const ExactCard &card);
void displayTypeChanged(DisplayType displayType); void displayTypeChanged(DisplayType displayType);
@ -82,7 +82,6 @@ protected:
protected slots: protected slots:
void onHover(const ExactCard &hoveredCard); void onHover(const ExactCard &hoveredCard);
void onCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName);
void decklistModelReset(); void decklistModelReset();
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;