mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-19 17:02:15 -07:00
Show related cards from printing selector by right-clicking card image.
This commit is contained in:
parent
b07fecb370
commit
37201ccc85
3 changed files with 37 additions and 2 deletions
|
|
@ -61,7 +61,6 @@ private slots:
|
|||
void updateSearch(const QString &search);
|
||||
void databaseCustomMenu(QPoint point);
|
||||
void decklistCustomMenu(QPoint point);
|
||||
void showPrintingSelector();
|
||||
|
||||
void actNewDeck();
|
||||
void actLoadDeck();
|
||||
|
|
@ -187,6 +186,7 @@ public:
|
|||
|
||||
public slots:
|
||||
void closeRequest() override;
|
||||
void showPrintingSelector();
|
||||
signals:
|
||||
void openDeckEditor(const DeckLoader *deckLoader);
|
||||
void deckEditorClosing(TabDeckEditor *tab);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
#include "../../../../game/cards/card_database_manager.h"
|
||||
#include "printing_selector_card_display_widget.h"
|
||||
|
||||
#include <QMenu>
|
||||
#include <QMouseEvent>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *parent,
|
||||
|
|
@ -46,6 +48,15 @@ PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *pa
|
|||
connect(cardSizeSlider, &QSlider::valueChanged, cardInfoPicture, &CardInfoPictureWidget::setScaleFactor);
|
||||
}
|
||||
|
||||
void PrintingSelectorCardOverlayWidget::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->button() == Qt::RightButton) {
|
||||
customMenu(event->pos());
|
||||
} else {
|
||||
QWidget::mousePressEvent(event); // Pass other events to the base class
|
||||
}
|
||||
}
|
||||
|
||||
void PrintingSelectorCardOverlayWidget::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
// Ensure the amount widget matches the parent size
|
||||
|
|
@ -67,4 +78,26 @@ void PrintingSelectorCardOverlayWidget::leaveEvent(QEvent *event)
|
|||
{
|
||||
QWidget::leaveEvent(event);
|
||||
allZonesCardAmountWidget->setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
void PrintingSelectorCardOverlayWidget::customMenu(QPoint point)
|
||||
{
|
||||
QMenu menu;
|
||||
// filling out the related cards submenu
|
||||
auto *relatedMenu = new QMenu(tr("Show Related cards"));
|
||||
menu.addMenu(relatedMenu);
|
||||
auto relatedCards = rootCard->getAllRelatedCards();
|
||||
if (relatedCards.isEmpty()) {
|
||||
relatedMenu->setDisabled(true);
|
||||
} else {
|
||||
for (const CardRelation *rel : relatedCards) {
|
||||
const QString &relatedCardName = rel->getName();
|
||||
QAction *relatedCard = relatedMenu->addAction(relatedCardName);
|
||||
connect(relatedCard, &QAction::triggered, deckEditor, [this, relatedCardName] {
|
||||
deckEditor->updateCardInfo(CardDatabaseManager::getInstance()->getCard(relatedCardName));
|
||||
deckEditor->showPrintingSelector();
|
||||
});
|
||||
}
|
||||
}
|
||||
menu.exec(this->mapToGlobal(point));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ protected:
|
|||
void resizeEvent(QResizeEvent *event) override;
|
||||
void enterEvent(QEnterEvent *event) override;
|
||||
void leaveEvent(QEvent *event) override;
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
void customMenu(QPoint point);
|
||||
|
||||
private:
|
||||
CardInfoPictureWidget *cardInfoPicture;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue