From abca5514af0d8f603fd519aff216e7db9f3fb25f Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Sat, 15 Feb 2025 18:43:20 -0800 Subject: [PATCH] support right-click menu in VDS (#5622) * support right-click menu in VDS * move methods around --- .../cards/deck_preview_card_picture_widget.cpp | 3 +++ .../deck_preview/deck_preview_widget.cpp | 15 ++++++++++++++- .../deck_preview/deck_preview_widget.h | 4 ++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/client/ui/widgets/cards/deck_preview_card_picture_widget.cpp b/cockatrice/src/client/ui/widgets/cards/deck_preview_card_picture_widget.cpp index 85a8200c8..bf51a232d 100644 --- a/cockatrice/src/client/ui/widgets/cards/deck_preview_card_picture_widget.cpp +++ b/cockatrice/src/client/ui/widgets/cards/deck_preview_card_picture_widget.cpp @@ -38,6 +38,9 @@ void DeckPreviewCardPictureWidget::mousePressEvent(QMouseEvent *event) if (event->button() == Qt::LeftButton) { lastMouseEvent = event; singleClickTimer->start(QApplication::doubleClickInterval()); + } else { + emit imageClicked(event, this); + event->accept(); } } diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp index e7b44d1cf..c907e697a 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp @@ -259,8 +259,11 @@ void DeckPreviewWidget::setBannerCard(int /* changedIndex */) void DeckPreviewWidget::imageClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance) { - Q_UNUSED(event); Q_UNUSED(instance); + + if (event && event->button() == Qt::RightButton) { + createRightClickMenu()->popup(QCursor::pos()); + } } void DeckPreviewWidget::imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance) @@ -269,3 +272,13 @@ void DeckPreviewWidget::imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewC Q_UNUSED(instance); emit deckLoadRequested(filePath); } + +QMenu *DeckPreviewWidget::createRightClickMenu() +{ + auto *menu = new QMenu(this); + + auto loadDeckAction = menu->addAction(tr("Load Deck")); + connect(loadDeckAction, &QAction::triggered, this, [this] { emit deckLoadRequested(filePath); }); + + return menu; +} diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h index adbee912f..527d92f46 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h @@ -10,6 +10,7 @@ #include #include +class QMenu; class VisualDeckStorageWidget; class DeckPreviewDeckTagsDisplayWidget; @@ -53,6 +54,9 @@ public slots: void updateBannerCardComboBoxVisibility(bool visible); void updateTagsVisibility(bool visible); void resizeEvent(QResizeEvent *event) override; + +private: + QMenu *createRightClickMenu(); }; class NoScrollFilter : public QObject