mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-18 08:22:15 -07:00
Add right click menu to add cards to open deck editor tabs from CardInfoPictureWidget.
This commit is contained in:
parent
002f83cbb9
commit
276a8fa335
5 changed files with 39 additions and 5 deletions
|
|
@ -1387,9 +1387,8 @@ QModelIndexList TabDeckEditor::getSelectedCardNodes() const
|
||||||
return selectedRows;
|
return selectedRows;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabDeckEditor::addCardHelper(QString zoneName)
|
void TabDeckEditor::addCardHelper(const CardInfoPtr info, QString zoneName)
|
||||||
{
|
{
|
||||||
const CardInfoPtr info = currentCardInfo();
|
|
||||||
if (!info)
|
if (!info)
|
||||||
return;
|
return;
|
||||||
if (info->getIsToken())
|
if (info->getIsToken())
|
||||||
|
|
@ -1465,13 +1464,13 @@ void TabDeckEditor::actAddCard()
|
||||||
if (QApplication::keyboardModifiers() & Qt::ControlModifier)
|
if (QApplication::keyboardModifiers() & Qt::ControlModifier)
|
||||||
actAddCardToSideboard();
|
actAddCardToSideboard();
|
||||||
else
|
else
|
||||||
addCardHelper(DECK_ZONE_MAIN);
|
addCardHelper(currentCardInfo(), DECK_ZONE_MAIN);
|
||||||
setSaveStatus(true);
|
setSaveStatus(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabDeckEditor::actAddCardToSideboard()
|
void TabDeckEditor::actAddCardToSideboard()
|
||||||
{
|
{
|
||||||
addCardHelper(DECK_ZONE_SIDE);
|
addCardHelper(currentCardInfo(), DECK_ZONE_SIDE);
|
||||||
setSaveStatus(true);
|
setSaveStatus(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,6 @@ private:
|
||||||
|
|
||||||
bool isBlankNewDeck() const;
|
bool isBlankNewDeck() const;
|
||||||
CardInfoPtr currentCardInfo() const;
|
CardInfoPtr currentCardInfo() const;
|
||||||
void addCardHelper(QString zoneName);
|
|
||||||
void offsetCountAtIndex(const QModelIndex &idx, int offset);
|
void offsetCountAtIndex(const QModelIndex &idx, int offset);
|
||||||
void decrementCardHelper(QString zoneName);
|
void decrementCardHelper(QString zoneName);
|
||||||
bool swapCard(const QModelIndex &idx);
|
bool swapCard(const QModelIndex &idx);
|
||||||
|
|
@ -179,6 +178,7 @@ public:
|
||||||
void createMenus();
|
void createMenus();
|
||||||
void createCentralFrame();
|
void createCentralFrame();
|
||||||
void updateCardInfo(CardInfoPtr _card);
|
void updateCardInfo(CardInfoPtr _card);
|
||||||
|
void addCardHelper(CardInfoPtr info, QString zoneName);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void closeRequest(bool forced = false) override;
|
void closeRequest(bool forced = false) override;
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,10 @@ public:
|
||||||
{
|
{
|
||||||
return roomTabs;
|
return roomTabs;
|
||||||
}
|
}
|
||||||
|
QList<TabDeckEditor *> getDeckEditorTabs() const
|
||||||
|
{
|
||||||
|
return deckEditorTabs;
|
||||||
|
}
|
||||||
bool getAdminLocked() const;
|
bool getAdminLocked() const;
|
||||||
bool closeRequest();
|
bool closeRequest();
|
||||||
bool switchToGameTabIfAlreadyExists(const int gameId);
|
bool switchToGameTabIfAlreadyExists(const int gameId);
|
||||||
|
|
|
||||||
|
|
@ -151,6 +151,9 @@ void CardInfoFrameWidget::setCard(CardInfoPtr card)
|
||||||
disconnect(info.data(), nullptr, this, nullptr);
|
disconnect(info.data(), nullptr, this, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (viewTransformationButton) {
|
||||||
|
viewTransformationButton->setVisible(false);
|
||||||
|
}
|
||||||
info = std::move(card);
|
info = std::move(card);
|
||||||
|
|
||||||
if (info) {
|
if (info) {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@
|
||||||
#include "../../../../game/cards/card_database_manager.h"
|
#include "../../../../game/cards/card_database_manager.h"
|
||||||
#include "../../../../game/cards/card_item.h"
|
#include "../../../../game/cards/card_item.h"
|
||||||
#include "../../../../settings/cache_settings.h"
|
#include "../../../../settings/cache_settings.h"
|
||||||
|
#include "../../../tabs/tab_deck_editor.h"
|
||||||
|
#include "../../../tabs/tab_supervisor.h"
|
||||||
#include "../../picture_loader/picture_loader.h"
|
#include "../../picture_loader/picture_loader.h"
|
||||||
|
#include "../../window_main.h"
|
||||||
|
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
|
|
@ -254,7 +257,32 @@ QMenu *CardInfoPictureWidget::createRightClickMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
auto viewRelatedCards = new QMenu(tr("View related cards"));
|
auto viewRelatedCards = new QMenu(tr("View related cards"));
|
||||||
|
auto addToOpenDeckMenu = new QMenu(tr("Add card to deck"));
|
||||||
cardMenu->addMenu(viewRelatedCards);
|
cardMenu->addMenu(viewRelatedCards);
|
||||||
|
cardMenu->addMenu(addToOpenDeckMenu);
|
||||||
|
|
||||||
|
QWidget *topLevel = window();
|
||||||
|
auto *mainWindow = qobject_cast<MainWindow *>(topLevel);
|
||||||
|
QList<TabDeckEditor *> deckEditorTabs = mainWindow->getTabSupervisor()->getDeckEditorTabs();
|
||||||
|
|
||||||
|
for (auto &deckEditorTab : deckEditorTabs) {
|
||||||
|
auto *addCardMenu = new QMenu("Add card to " + deckEditorTab->getTabText());
|
||||||
|
QAction *addCard = new QAction(this);
|
||||||
|
addCard->setText(tr("Mainboard"));
|
||||||
|
connect(addCard, &QAction::triggered, this, [this, deckEditorTab] {
|
||||||
|
deckEditorTab->updateCardInfo(info);
|
||||||
|
deckEditorTab->addCardHelper(info, DECK_ZONE_MAIN);
|
||||||
|
});
|
||||||
|
QAction *addCardSideboard = new QAction(this);
|
||||||
|
addCardSideboard->setText(tr("Sideboard"));
|
||||||
|
connect(addCardSideboard, &QAction::triggered, this, [this, deckEditorTab] {
|
||||||
|
deckEditorTab->updateCardInfo(info);
|
||||||
|
deckEditorTab->addCardHelper(info, DECK_ZONE_SIDE);
|
||||||
|
});
|
||||||
|
addCardMenu->addAction(addCard);
|
||||||
|
addCardMenu->addAction(addCardSideboard);
|
||||||
|
addToOpenDeckMenu->addMenu(addCardMenu);
|
||||||
|
}
|
||||||
|
|
||||||
bool atLeastOneGoodRelationFound = false;
|
bool atLeastOneGoodRelationFound = false;
|
||||||
QList<CardRelation *> relatedCards = info->getAllRelatedCards();
|
QList<CardRelation *> relatedCards = info->getAllRelatedCards();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue