mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-15 06:52:15 -07:00
Generify visual deck editor so it can have a printing selector.
This commit is contained in:
parent
edd35182c0
commit
a7b9a86feb
6 changed files with 235 additions and 1139 deletions
|
|
@ -210,7 +210,7 @@ void TabSupervisor::retranslateUi()
|
||||||
QListIterator<AbstractTabDeckEditor *> deckEditorIterator(deckEditorTabs);
|
QListIterator<AbstractTabDeckEditor *> deckEditorIterator(deckEditorTabs);
|
||||||
while (deckEditorIterator.hasNext())
|
while (deckEditorIterator.hasNext())
|
||||||
tabs.append(deckEditorIterator.next());
|
tabs.append(deckEditorIterator.next());
|
||||||
QListIterator<TabDeckEditorVisual *> visualDeckEditorIterator(visualDeckEditorTabs);
|
QListIterator<TabGenericDeckEditor *> visualDeckEditorIterator(visualDeckEditorTabs);
|
||||||
while (visualDeckEditorIterator.hasNext())
|
while (visualDeckEditorIterator.hasNext())
|
||||||
tabs.append(visualDeckEditorIterator.next());
|
tabs.append(visualDeckEditorIterator.next());
|
||||||
QMapIterator<QString, TabMessage *> messageIterator(messageTabs);
|
QMapIterator<QString, TabMessage *> messageIterator(messageTabs);
|
||||||
|
|
@ -817,11 +817,11 @@ TabDeckEditor *TabSupervisor::addDeckEditorTab(const DeckLoader *deckToOpen)
|
||||||
|
|
||||||
TabDeckEditorVisual *TabSupervisor::addVisualDeckEditorTab(const DeckLoader *deckToOpen)
|
TabDeckEditorVisual *TabSupervisor::addVisualDeckEditorTab(const DeckLoader *deckToOpen)
|
||||||
{
|
{
|
||||||
TabDeckEditorVisual *tab = new TabDeckEditorVisual(this);
|
auto *tab = new TabDeckEditorVisual(this);
|
||||||
if (deckToOpen)
|
if (deckToOpen)
|
||||||
tab->setDeck(new DeckLoader(*deckToOpen));
|
tab->setDeck(new DeckLoader(*deckToOpen));
|
||||||
connect(tab, &TabDeckEditorVisual::deckEditorClosing, this, &TabSupervisor::visualDeckEditorClosed);
|
connect(tab, &TabGenericDeckEditor::deckEditorClosing, this, &TabSupervisor::visualDeckEditorClosed);
|
||||||
// connect(tab, &TabDeckEditorVisual::openDeckEditor, this, &TabSupervisor::addDeckEditorTab);
|
connect(tab, &TabGenericDeckEditor::openDeckEditor, this, &TabSupervisor::addVisualDeckEditorTab);
|
||||||
myAddTab(tab);
|
myAddTab(tab);
|
||||||
visualDeckEditorTabs.append(tab);
|
visualDeckEditorTabs.append(tab);
|
||||||
setCurrentWidget(tab);
|
setCurrentWidget(tab);
|
||||||
|
|
@ -849,7 +849,7 @@ void TabSupervisor::deckEditorClosed(AbstractTabDeckEditor *tab)
|
||||||
removeTab(indexOf(tab));
|
removeTab(indexOf(tab));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabSupervisor::visualDeckEditorClosed(TabDeckEditorVisual *tab)
|
void TabSupervisor::visualDeckEditorClosed(TabGenericDeckEditor *tab)
|
||||||
{
|
{
|
||||||
if (tab == currentWidget())
|
if (tab == currentWidget())
|
||||||
emit setMenu();
|
emit setMenu();
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ private:
|
||||||
QList<TabGame *> replayTabs;
|
QList<TabGame *> replayTabs;
|
||||||
QMap<QString, TabMessage *> messageTabs;
|
QMap<QString, TabMessage *> messageTabs;
|
||||||
QList<AbstractTabDeckEditor *> deckEditorTabs;
|
QList<AbstractTabDeckEditor *> deckEditorTabs;
|
||||||
QList<TabDeckEditorVisual *> visualDeckEditorTabs;
|
QList<AbstractTabDeckEditor *> visualDeckEditorTabs;
|
||||||
bool isLocalGame;
|
bool isLocalGame;
|
||||||
|
|
||||||
QAction *aTabDeckEditor, *aTabVisualDeckEditor, *aTabVisualDeckStorage, *aTabServer, *aTabAccount, *aTabDeckStorage,
|
QAction *aTabDeckEditor, *aTabVisualDeckEditor, *aTabVisualDeckStorage, *aTabServer, *aTabAccount, *aTabDeckStorage,
|
||||||
|
|
@ -154,7 +154,6 @@ public slots:
|
||||||
TabDeckEditor *addDeckEditorTab(const DeckLoader *deckToOpen);
|
TabDeckEditor *addDeckEditorTab(const DeckLoader *deckToOpen);
|
||||||
TabDeckEditorVisual *addVisualDeckEditorTab(const DeckLoader *deckToOpen);
|
TabDeckEditorVisual *addVisualDeckEditorTab(const DeckLoader *deckToOpen);
|
||||||
TabEdhRec *addEdhrecTab(const CardInfoPtr &cardToQuery, bool isCommander = false);
|
TabEdhRec *addEdhrecTab(const CardInfoPtr &cardToQuery, bool isCommander = false);
|
||||||
TabDeckStorageVisual *addVisualDeckStorageTab();
|
|
||||||
void openReplay(GameReplay *replay);
|
void openReplay(GameReplay *replay);
|
||||||
void maximizeMainWindow();
|
void maximizeMainWindow();
|
||||||
private slots:
|
private slots:
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,151 +1,57 @@
|
||||||
#ifndef WINDOW_DECKEDITORVISUAL_H
|
#ifndef WINDOW_DECKEDITORVISUAL_H
|
||||||
#define WINDOW_DECKEDITORVISUAL_H
|
#define WINDOW_DECKEDITORVISUAL_H
|
||||||
|
|
||||||
#include "../../../deck/custom_line_edit.h"
|
|
||||||
#include "../../game_logic/key_signals.h"
|
#include "../../game_logic/key_signals.h"
|
||||||
#include "../tab.h"
|
#include "../tab.h"
|
||||||
#include "../tab_deck_editor.h"
|
#include "../tab_deck_editor.h"
|
||||||
#include "tab_deck_editor_visual_tab_widget.h"
|
#include "tab_deck_editor_visual_tab_widget.h"
|
||||||
|
|
||||||
#include <QAbstractItemModel>
|
class TabDeckEditorVisual : public TabGenericDeckEditor
|
||||||
#include <QDir>
|
|
||||||
|
|
||||||
class TabDeckEditorVisual : public Tab
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
private slots:
|
protected slots:
|
||||||
void updateName(const QString &name);
|
void actNewDeck() override;
|
||||||
void updateComments();
|
void actLoadDeck() override;
|
||||||
void updateHash();
|
|
||||||
void updateCardInfoLeft(const QModelIndex ¤t, const QModelIndex &previous);
|
|
||||||
void updateCardInfoRight(const QModelIndex ¤t, const QModelIndex &previous);
|
|
||||||
void updateSearch(const QString &search);
|
|
||||||
void databaseCustomMenu(QPoint point);
|
|
||||||
|
|
||||||
void actNewDeck();
|
void loadLayout() override;
|
||||||
void actLoadDeck();
|
void restartLayout() override;
|
||||||
bool actSaveDeck();
|
void freeDocksSize() override;
|
||||||
bool actSaveDeckAs();
|
void refreshShortcuts() override;
|
||||||
void actLoadDeckFromClipboard();
|
|
||||||
void actSaveDeckToClipboard();
|
|
||||||
void actSaveDeckToClipboardRaw();
|
|
||||||
void actPrintDeck();
|
|
||||||
void actExportDeckDecklist();
|
|
||||||
void actAnalyzeDeckDeckstats();
|
|
||||||
void actAnalyzeDeckTappedout();
|
|
||||||
|
|
||||||
void actClearFilterAll();
|
|
||||||
void actClearFilterOne();
|
|
||||||
|
|
||||||
void actSwapCard();
|
|
||||||
void actAddCard();
|
|
||||||
void actAddCardToSideboard();
|
|
||||||
void actRemoveCard();
|
|
||||||
void actIncrement();
|
|
||||||
void actDecrement();
|
|
||||||
void actDecrementCard();
|
|
||||||
void actDecrementCardFromSideboard();
|
|
||||||
void copyDatabaseCellContents();
|
|
||||||
|
|
||||||
void saveDeckRemoteFinished(const Response &r);
|
|
||||||
void filterViewCustomContextMenu(const QPoint &point);
|
|
||||||
void filterRemove(QAction *action);
|
|
||||||
|
|
||||||
void loadLayout();
|
|
||||||
void restartLayout();
|
|
||||||
void freeDocksSize();
|
|
||||||
void refreshShortcuts();
|
|
||||||
|
|
||||||
bool eventFilter(QObject *o, QEvent *e) override;
|
bool eventFilter(QObject *o, QEvent *e) override;
|
||||||
void dockVisibleTriggered();
|
void dockVisibleTriggered() override;
|
||||||
void dockFloatingTriggered();
|
void dockFloatingTriggered() override;
|
||||||
void dockTopLevelChanged(bool topLevel);
|
void dockTopLevelChanged(bool topLevel) override;
|
||||||
void saveDbHeaderState();
|
|
||||||
void setSaveStatus(bool newStatus);
|
|
||||||
void showSearchSyntaxHelp();
|
|
||||||
|
|
||||||
private:
|
|
||||||
CardInfoPtr currentCardInfo() const;
|
|
||||||
void changeModelIndexToCard(CardInfoPtr activeCard);
|
|
||||||
void addCardHelper(QString zoneName);
|
|
||||||
void addCardInfo(CardInfoPtr info, QString zoneName);
|
|
||||||
void offsetCountAtIndex(const QModelIndex &idx, int offset);
|
|
||||||
void decrementCardHelper(QString zoneName);
|
|
||||||
void recursiveExpand(const QModelIndex &index);
|
|
||||||
|
|
||||||
QWidget *parent;
|
|
||||||
|
|
||||||
CardDatabaseModel *databaseModel;
|
|
||||||
CardDatabaseDisplayModel *databaseDisplayModel;
|
|
||||||
DeckListModel *deckModel;
|
|
||||||
QTreeView *databaseView;
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void openDeckFromFile(const QString &fileName, TabGenericDeckEditor::DeckOpenLocation deckOpenLocation) override;
|
||||||
TabDeckEditorVisualTabWidget *tabContainer;
|
TabDeckEditorVisualTabWidget *tabContainer;
|
||||||
|
|
||||||
QTreeView *deckView;
|
|
||||||
KeySignals deckViewKeySignals;
|
|
||||||
CardInfoFrameWidget *cardInfo;
|
|
||||||
|
|
||||||
SearchLineEdit *searchEdit;
|
|
||||||
KeySignals searchKeySignals;
|
|
||||||
|
|
||||||
QLabel *nameLabel;
|
|
||||||
LineEditUnfocusable *nameEdit;
|
|
||||||
QLabel *commentsLabel;
|
|
||||||
QTextEdit *commentsEdit;
|
|
||||||
QLabel *hashLabel1;
|
|
||||||
LineEditUnfocusable *hashLabel;
|
|
||||||
FilterTreeModel *filterModel;
|
|
||||||
QTreeView *filterView;
|
|
||||||
KeySignals filterViewKeySignals;
|
|
||||||
QWidget *filterBox;
|
|
||||||
|
|
||||||
QMenu *deckMenu, *viewMenu, *cardInfoDockMenu, *deckDockMenu, *deckAnalyticsMenu, *filterDockMenu, *analyzeDeckMenu,
|
|
||||||
*saveDeckToClipboardMenu;
|
|
||||||
QAction *aNewDeck, *aLoadDeck, *aSaveDeck, *aSaveDeckAs, *aLoadDeckFromClipboard, *aSaveDeckToClipboard,
|
|
||||||
*aSaveDeckToClipboardRaw, *aPrintDeck, *aExportDeckDecklist, *aAnalyzeDeckDeckstats, *aAnalyzeDeckTappedout,
|
|
||||||
*aClose;
|
|
||||||
QAction *aClearFilterAll, *aClearFilterOne;
|
|
||||||
QAction *aAddCard, *aAddCardToSideboard, *aRemoveCard, *aIncrement, *aDecrement;
|
|
||||||
QAction *aResetLayout;
|
|
||||||
QAction *aCardInfoDockVisible, *aCardInfoDockFloating, *aDeckDockVisible, *aDeckDockFloating,
|
|
||||||
*aDeckAnalyticsDockFloating, *aDeckAnalyticsDockVisible, *aFilterDockVisible, *aFilterDockFloating;
|
|
||||||
|
|
||||||
bool modified;
|
|
||||||
QVBoxLayout *centralFrame;
|
QVBoxLayout *centralFrame;
|
||||||
QVBoxLayout *searchAndDatabaseFrame;
|
QVBoxLayout *searchAndDatabaseFrame;
|
||||||
QHBoxLayout *searchLayout;
|
QHBoxLayout *searchLayout;
|
||||||
QDockWidget *searchAndDatabaseDock;
|
QDockWidget *searchAndDatabaseDock;
|
||||||
QDockWidget *cardInfoDock;
|
|
||||||
QDockWidget *deckAnalyticsDock;
|
QDockWidget *deckAnalyticsDock;
|
||||||
QDockWidget *deckDock;
|
|
||||||
QDockWidget *filterDock;
|
|
||||||
QWidget *centralWidget;
|
QWidget *centralWidget;
|
||||||
|
QMenu *deckAnalyticsMenu;
|
||||||
|
QAction *aDeckAnalyticsDockVisible, *aDeckAnalyticsDockFloating;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TabDeckEditorVisual(TabSupervisor *_tabSupervisor, QWidget *parent = nullptr);
|
explicit TabDeckEditorVisual(TabSupervisor *_tabSupervisor);
|
||||||
~TabDeckEditorVisual() override;
|
|
||||||
void retranslateUi() override;
|
void retranslateUi() override;
|
||||||
QString getTabText() const override;
|
QString getTabText() const override;
|
||||||
void setDeck(DeckLoader *_deckLoader);
|
void changeModelIndexAndCardInfo(CardInfoPtr activeCard);
|
||||||
void setModified(bool _windowModified);
|
void changeModelIndexToCard(CardInfoPtr activeCard);
|
||||||
bool confirmClose();
|
|
||||||
void createDeckDock();
|
|
||||||
void createCardInfoDock();
|
|
||||||
void createDeckAnalyticsDock();
|
void createDeckAnalyticsDock();
|
||||||
void createFiltersDock();
|
void createMenus() override;
|
||||||
void createMenus();
|
|
||||||
void createSearchAndDatabaseFrame();
|
void createSearchAndDatabaseFrame();
|
||||||
void createCentralFrame();
|
void createCentralFrame() override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setCurrentCardInfo(CardInfoPtr activeCard);
|
void showPrintingSelector() override;
|
||||||
void changeModelIndexAndCardInfo(CardInfoPtr activeCard);
|
|
||||||
void processMainboardCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
|
void processMainboardCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
|
||||||
void processSideboardCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
|
void processSideboardCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
|
||||||
void processCardClickDatabaseDisplay(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
|
void processCardClickDatabaseDisplay(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
|
||||||
signals:
|
|
||||||
void deckEditorClosing(TabDeckEditorVisual *tab);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ TabDeckEditorVisualTabWidget::TabDeckEditorVisualTabWidget(QWidget *parent,
|
||||||
deckAnalytics->setObjectName("deckAnalytics");
|
deckAnalytics->setObjectName("deckAnalytics");
|
||||||
// deckAnalytics->analyzeManaCurve();
|
// deckAnalytics->analyzeManaCurve();
|
||||||
|
|
||||||
|
// printingSelector = new PrintingSelector(this, this->deckModel);
|
||||||
|
|
||||||
this->addNewTab(visualDeckView, "Visual Deck View");
|
this->addNewTab(visualDeckView, "Visual Deck View");
|
||||||
this->addNewTab(visualDatabaseDisplay, "Visual Database Display");
|
this->addNewTab(visualDatabaseDisplay, "Visual Database Display");
|
||||||
this->addNewTab(deckAnalytics, "Deck Analytics");
|
this->addNewTab(deckAnalytics, "Deck Analytics");
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
#define TAB_DECK_EDITOR_VISUAL_TAB_WIDGET_H
|
#define TAB_DECK_EDITOR_VISUAL_TAB_WIDGET_H
|
||||||
|
|
||||||
#include "../../ui/widgets/deck_analytics/deck_analytics_widget.h"
|
#include "../../ui/widgets/deck_analytics/deck_analytics_widget.h"
|
||||||
|
#include "../../ui/widgets/printing_selector/printing_selector.h"
|
||||||
#include "../../ui/widgets/visual_database_display/visual_database_display_widget.h"
|
#include "../../ui/widgets/visual_database_display/visual_database_display_widget.h"
|
||||||
#include "../../ui/widgets/visual_deck_editor/visual_deck_editor_widget.h"
|
#include "../../ui/widgets/visual_deck_editor/visual_deck_editor_widget.h"
|
||||||
|
|
||||||
|
|
@ -29,6 +30,7 @@ public:
|
||||||
VisualDeckEditorWidget *visualDeckView;
|
VisualDeckEditorWidget *visualDeckView;
|
||||||
DeckAnalyticsWidget *deckAnalytics;
|
DeckAnalyticsWidget *deckAnalytics;
|
||||||
VisualDatabaseDisplayWidget *visualDatabaseDisplay;
|
VisualDatabaseDisplayWidget *visualDatabaseDisplay;
|
||||||
|
PrintingSelector *printingSelector;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void onCardChanged(CardInfoPtr activeCard);
|
void onCardChanged(CardInfoPtr activeCard);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue