support right-click menu in VDS

This commit is contained in:
RickyRister 2025-02-15 03:31:00 -08:00
parent 2247c66ea6
commit 95e46eb1df
3 changed files with 21 additions and 1 deletions

View file

@ -38,6 +38,9 @@ void DeckPreviewCardPictureWidget::mousePressEvent(QMouseEvent *event)
if (event->button() == Qt::LeftButton) { if (event->button() == Qt::LeftButton) {
lastMouseEvent = event; lastMouseEvent = event;
singleClickTimer->start(QApplication::doubleClickInterval()); singleClickTimer->start(QApplication::doubleClickInterval());
} else {
emit imageClicked(event, this);
event->accept();
} }
} }

View file

@ -257,10 +257,23 @@ void DeckPreviewWidget::setBannerCard(int /* changedIndex */)
itemData["name"].toString(), itemData["uuid"].toString())); itemData["name"].toString(), itemData["uuid"].toString()));
} }
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;
}
void DeckPreviewWidget::imageClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance) void DeckPreviewWidget::imageClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance)
{ {
Q_UNUSED(event);
Q_UNUSED(instance); Q_UNUSED(instance);
if (event && event->button() == Qt::RightButton) {
createRightClickMenu()->popup(QCursor::pos());
}
} }
void DeckPreviewWidget::imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance) void DeckPreviewWidget::imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance)

View file

@ -10,6 +10,7 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QWidget> #include <QWidget>
class QMenu;
class VisualDeckStorageWidget; class VisualDeckStorageWidget;
class DeckPreviewDeckTagsDisplayWidget; class DeckPreviewDeckTagsDisplayWidget;
@ -53,6 +54,9 @@ public slots:
void updateBannerCardComboBoxVisibility(bool visible); void updateBannerCardComboBoxVisibility(bool visible);
void updateTagsVisibility(bool visible); void updateTagsVisibility(bool visible);
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
private:
QMenu *createRightClickMenu();
}; };
class NoScrollFilter : public QObject class NoScrollFilter : public QObject