mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-21 01:42: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 updateSearch(const QString &search);
|
||||||
void databaseCustomMenu(QPoint point);
|
void databaseCustomMenu(QPoint point);
|
||||||
void decklistCustomMenu(QPoint point);
|
void decklistCustomMenu(QPoint point);
|
||||||
void showPrintingSelector();
|
|
||||||
|
|
||||||
void actNewDeck();
|
void actNewDeck();
|
||||||
void actLoadDeck();
|
void actLoadDeck();
|
||||||
|
|
@ -187,6 +186,7 @@ public:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void closeRequest() override;
|
void closeRequest() override;
|
||||||
|
void showPrintingSelector();
|
||||||
signals:
|
signals:
|
||||||
void openDeckEditor(const DeckLoader *deckLoader);
|
void openDeckEditor(const DeckLoader *deckLoader);
|
||||||
void deckEditorClosing(TabDeckEditor *tab);
|
void deckEditorClosing(TabDeckEditor *tab);
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
||||||
#include "../../../../game/cards/card_database_manager.h"
|
#include "../../../../game/cards/card_database_manager.h"
|
||||||
#include "printing_selector_card_display_widget.h"
|
#include "printing_selector_card_display_widget.h"
|
||||||
|
|
||||||
|
#include <QMenu>
|
||||||
|
#include <QMouseEvent>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *parent,
|
PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *parent,
|
||||||
|
|
@ -46,6 +48,15 @@ PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *pa
|
||||||
connect(cardSizeSlider, &QSlider::valueChanged, cardInfoPicture, &CardInfoPictureWidget::setScaleFactor);
|
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)
|
void PrintingSelectorCardOverlayWidget::resizeEvent(QResizeEvent *event)
|
||||||
{
|
{
|
||||||
// Ensure the amount widget matches the parent size
|
// Ensure the amount widget matches the parent size
|
||||||
|
|
@ -68,3 +79,25 @@ void PrintingSelectorCardOverlayWidget::leaveEvent(QEvent *event)
|
||||||
QWidget::leaveEvent(event);
|
QWidget::leaveEvent(event);
|
||||||
allZonesCardAmountWidget->setVisible(false);
|
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 resizeEvent(QResizeEvent *event) override;
|
||||||
void enterEvent(QEnterEvent *event) override;
|
void enterEvent(QEnterEvent *event) override;
|
||||||
void leaveEvent(QEvent *event) override;
|
void leaveEvent(QEvent *event) override;
|
||||||
|
void mousePressEvent(QMouseEvent *event) override;
|
||||||
|
void customMenu(QPoint point);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CardInfoPictureWidget *cardInfoPicture;
|
CardInfoPictureWidget *cardInfoPicture;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue