From b439b640bdd842278096aad3513755bb9cb782a3 Mon Sep 17 00:00:00 2001 From: RickyRister Date: Sat, 28 Dec 2024 20:24:40 -0800 Subject: [PATCH] get thing to work --- .../widgets/cards/card_info_frame_widget.cpp | 3 +++ .../cards/card_info_picture_widget.cpp | 22 ++++++++++--------- .../widgets/cards/card_info_picture_widget.h | 4 ++++ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/cards/card_info_frame_widget.cpp b/cockatrice/src/client/ui/widgets/cards/card_info_frame_widget.cpp index fd9c84750..a7a789be1 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_info_frame_widget.cpp +++ b/cockatrice/src/client/ui/widgets/cards/card_info_frame_widget.cpp @@ -3,6 +3,7 @@ #include "../../../../game/cards/card_database_manager.h" #include "../../../../game/cards/card_item.h" #include "../../../../settings/cache_settings.h" +#include "card_info_display_widget.h" #include "card_info_picture_widget.h" #include "card_info_text_widget.h" @@ -16,6 +17,8 @@ CardInfoFrameWidget::CardInfoFrameWidget(const QString &cardName, QWidget *paren setContentsMargins(3, 3, 3, 3); pic = new CardInfoPictureWidget(); pic->setObjectName("pic"); + connect(pic, &CardInfoPictureWidget::cardChanged, this, qOverload(&CardInfoFrameWidget::setCard)); + text = new CardInfoTextWidget(); text->setObjectName("text"); connect(text, SIGNAL(linkActivated(const QString &)), this, SLOT(setCard(const QString &))); diff --git a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp index 6d3215f2e..6f3badc88 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp +++ b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp @@ -253,6 +253,9 @@ QMenu *CardInfoPictureWidget::createRightClickMenu() return cardMenu; } + auto viewRelatedCards = new QMenu(tr("View related cards")); + cardMenu->addMenu(viewRelatedCards); + bool atLeastOneGoodRelationFound = false; QList relatedCards = info->getAllRelatedCards(); for (const CardRelation *cardRelation : relatedCards) { @@ -264,20 +267,19 @@ QMenu *CardInfoPictureWidget::createRightClickMenu() } if (!atLeastOneGoodRelationFound) { + viewRelatedCards->setEnabled(false); return cardMenu; } - const auto ¤tCardSet = CardDatabase::getSetInfoForCard(info); - - auto viewRelatedCards = new QMenu(tr("View related cards")); - cardMenu->addMenu(viewRelatedCards); - for (const CardRelation *relatedCard : relatedCards) { - QString relatedCardName = relatedCard->getName(); - // QAction *viewCard = viewRelatedCards->addAction(relatedCardName); - /*connect(viewCard, &QAction::triggered, game, [this, relatedCardName, currentCardSet] { - game->viewCardInfo(relatedCardName, currentCardSet.getProperty("uuid")); - });*/ + for (const auto &relatedCard : relatedCards) { + const auto &relatedCardName = relatedCard->getName(); + QAction *viewCard = viewRelatedCards->addAction(relatedCardName); + connect(viewCard, &QAction::triggered, this, [this, &relatedCardName] { + emit cardChanged(CardDatabaseManager::getInstance()->getCard(relatedCardName)); + }); + viewRelatedCards->addAction(viewCard); } + return cardMenu; } diff --git a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h index 7a98c468e..779d74ced 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h +++ b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h @@ -31,6 +31,7 @@ public slots: signals: void hoveredOnCard(CardInfoPtr hoveredCard); void cardScaleFactorChanged(int _scale); + void cardChanged(CardInfoPtr card); protected: void resizeEvent(QResizeEvent *event) override; @@ -67,6 +68,9 @@ private: QTimer *hoverTimer; QMenu *createRightClickMenu(); + +private slots: + void actChangeCard(const QString &cardName); }; #endif