mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-15 03:28:49 -07:00
[TabDeckEditor] Make card database a dock widget (#6472)
* [TabDeckEditor] Make card database a dock widget * delete eventFilter implementation in abstract
This commit is contained in:
parent
d50297bbe6
commit
ee2699413c
11 changed files with 171 additions and 86 deletions
|
|
@ -170,6 +170,7 @@ set(cockatrice_SOURCES
|
||||||
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_total_widget.cpp
|
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_total_widget.cpp
|
||||||
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_category_widget.cpp
|
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_category_widget.cpp
|
||||||
src/interface/widgets/deck_editor/deck_list_history_manager_widget.cpp
|
src/interface/widgets/deck_editor/deck_list_history_manager_widget.cpp
|
||||||
|
src/interface/widgets/deck_editor/deck_editor_card_database_dock_widget.cpp
|
||||||
src/interface/widgets/deck_editor/deck_editor_card_info_dock_widget.cpp
|
src/interface/widgets/deck_editor/deck_editor_card_info_dock_widget.cpp
|
||||||
src/interface/widgets/deck_editor/deck_editor_database_display_widget.cpp
|
src/interface/widgets/deck_editor/deck_editor_database_display_widget.cpp
|
||||||
src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp
|
src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
#include "deck_editor_card_database_dock_widget.h"
|
||||||
|
|
||||||
|
DeckEditorCardDatabaseDockWidget::DeckEditorCardDatabaseDockWidget(AbstractTabDeckEditor *parent) : QDockWidget(parent)
|
||||||
|
{
|
||||||
|
setObjectName("databaseDisplayDock");
|
||||||
|
setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||||
|
setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable);
|
||||||
|
|
||||||
|
createDatabaseDisplayDock(parent);
|
||||||
|
|
||||||
|
retranslateUi();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeckEditorCardDatabaseDockWidget::createDatabaseDisplayDock(AbstractTabDeckEditor *deckEditor)
|
||||||
|
{
|
||||||
|
databaseDisplayWidget = new DeckEditorDatabaseDisplayWidget(this, deckEditor);
|
||||||
|
|
||||||
|
auto *frame = new QVBoxLayout;
|
||||||
|
frame->setObjectName("databaseDisplayFrame");
|
||||||
|
frame->addWidget(databaseDisplayWidget);
|
||||||
|
|
||||||
|
auto *dockContents = new QWidget();
|
||||||
|
dockContents->setObjectName("databaseDisplayDockContents");
|
||||||
|
dockContents->setLayout(frame);
|
||||||
|
setWidget(dockContents);
|
||||||
|
|
||||||
|
installEventFilter(deckEditor);
|
||||||
|
connect(this, &QDockWidget::topLevelChanged, deckEditor, &AbstractTabDeckEditor::dockTopLevelChanged);
|
||||||
|
|
||||||
|
// connect signals
|
||||||
|
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::cardChanged, deckEditor,
|
||||||
|
&AbstractTabDeckEditor::updateCard);
|
||||||
|
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::addCardToMainDeck, deckEditor,
|
||||||
|
&AbstractTabDeckEditor::actAddCard);
|
||||||
|
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::addCardToSideboard, deckEditor,
|
||||||
|
&AbstractTabDeckEditor::actAddCardToSideboard);
|
||||||
|
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::decrementCardFromMainDeck, deckEditor,
|
||||||
|
&AbstractTabDeckEditor::actDecrementCard);
|
||||||
|
connect(databaseDisplayWidget, &DeckEditorDatabaseDisplayWidget::decrementCardFromSideboard, deckEditor,
|
||||||
|
&AbstractTabDeckEditor::actDecrementCardFromSideboard);
|
||||||
|
}
|
||||||
|
|
||||||
|
CardDatabase *DeckEditorCardDatabaseDockWidget::getDatabase() const
|
||||||
|
{
|
||||||
|
return databaseDisplayWidget->databaseModel->getDatabase();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeckEditorCardDatabaseDockWidget::retranslateUi()
|
||||||
|
{
|
||||||
|
setWindowTitle(tr("Card Database"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeckEditorCardDatabaseDockWidget::setFilterTree(FilterTree *filterTree)
|
||||||
|
{
|
||||||
|
databaseDisplayWidget->setFilterTree(filterTree);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeckEditorCardDatabaseDockWidget::clearAllDatabaseFilters()
|
||||||
|
{
|
||||||
|
databaseDisplayWidget->clearAllDatabaseFilters();
|
||||||
|
}
|
||||||
|
void DeckEditorCardDatabaseDockWidget::highlightAllSearchEdit()
|
||||||
|
{
|
||||||
|
databaseDisplayWidget->searchEdit->setSelection(0, databaseDisplayWidget->searchEdit->text().length());
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
#ifndef COCKATRICE_DECK_EDITOR_CARD_DATABASE_DOCK_WIDGET_H
|
||||||
|
#define COCKATRICE_DECK_EDITOR_CARD_DATABASE_DOCK_WIDGET_H
|
||||||
|
|
||||||
|
#include "../../../interface/widgets/tabs/abstract_tab_deck_editor.h"
|
||||||
|
|
||||||
|
#include <QDockWidget>
|
||||||
|
|
||||||
|
class AbstractTabDeckEditor;
|
||||||
|
class CardDatabase;
|
||||||
|
class DeckEditorDatabaseDisplayWidget;
|
||||||
|
class FilterTree;
|
||||||
|
|
||||||
|
class DeckEditorCardDatabaseDockWidget : public QDockWidget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit DeckEditorCardDatabaseDockWidget(AbstractTabDeckEditor *parent);
|
||||||
|
|
||||||
|
DeckEditorDatabaseDisplayWidget *databaseDisplayWidget;
|
||||||
|
|
||||||
|
CardDatabase *getDatabase() const;
|
||||||
|
void setFilterTree(FilterTree *filterTree);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void retranslateUi();
|
||||||
|
void clearAllDatabaseFilters();
|
||||||
|
void highlightAllSearchEdit();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void createDatabaseDisplayDock(AbstractTabDeckEditor *deckEditor);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // COCKATRICE_DECK_EDITOR_CARD_DATABASE_DOCK_WIDGET_H
|
||||||
|
|
@ -21,10 +21,10 @@ static bool canBeCommander(const CardInfo &cardInfo)
|
||||||
cardInfo.getText().contains("can be your commander", Qt::CaseInsensitive);
|
cardInfo.getText().contains("can be your commander", Qt::CaseInsensitive);
|
||||||
}
|
}
|
||||||
|
|
||||||
DeckEditorDatabaseDisplayWidget::DeckEditorDatabaseDisplayWidget(AbstractTabDeckEditor *parent)
|
DeckEditorDatabaseDisplayWidget::DeckEditorDatabaseDisplayWidget(QWidget *parent, AbstractTabDeckEditor *deckEditor)
|
||||||
: QWidget(parent), deckEditor(parent)
|
: QWidget(parent), deckEditor(deckEditor)
|
||||||
{
|
{
|
||||||
setObjectName("centralWidget");
|
setObjectName("databaseDisplayWidget");
|
||||||
|
|
||||||
centralFrame = new QVBoxLayout(this);
|
centralFrame = new QVBoxLayout(this);
|
||||||
centralFrame->setObjectName("centralFrame");
|
centralFrame->setObjectName("centralFrame");
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ class DeckEditorDatabaseDisplayWidget : public QWidget
|
||||||
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit DeckEditorDatabaseDisplayWidget(AbstractTabDeckEditor *parent);
|
explicit DeckEditorDatabaseDisplayWidget(QWidget *parent, AbstractTabDeckEditor *deckEditor);
|
||||||
AbstractTabDeckEditor *deckEditor;
|
AbstractTabDeckEditor *deckEditor;
|
||||||
SearchLineEdit *searchEdit;
|
SearchLineEdit *searchEdit;
|
||||||
CardDatabaseModel *databaseModel;
|
CardDatabaseModel *databaseModel;
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ AbstractTabDeckEditor::AbstractTabDeckEditor(TabSupervisor *_tabSupervisor) : Ta
|
||||||
|
|
||||||
deckStateManager = new DeckStateManager(this);
|
deckStateManager = new DeckStateManager(this);
|
||||||
|
|
||||||
databaseDisplayDockWidget = new DeckEditorDatabaseDisplayWidget(this);
|
cardDatabaseDockWidget = new DeckEditorCardDatabaseDockWidget(this);
|
||||||
deckDockWidget = new DeckEditorDeckDockWidget(this);
|
deckDockWidget = new DeckEditorDeckDockWidget(this);
|
||||||
cardInfoDockWidget = new DeckEditorCardInfoDockWidget(this);
|
cardInfoDockWidget = new DeckEditorCardInfoDockWidget(this);
|
||||||
filterDockWidget = new DeckEditorFilterDockWidget(this);
|
filterDockWidget = new DeckEditorFilterDockWidget(this);
|
||||||
|
|
@ -68,21 +68,9 @@ AbstractTabDeckEditor::AbstractTabDeckEditor(TabSupervisor *_tabSupervisor) : Ta
|
||||||
connect(deckStateManager, &DeckStateManager::isModifiedChanged, this, &AbstractTabDeckEditor::onDeckModified);
|
connect(deckStateManager, &DeckStateManager::isModifiedChanged, this, &AbstractTabDeckEditor::onDeckModified);
|
||||||
connect(deckDockWidget, &DeckEditorDeckDockWidget::selectedCardChanged, this, &AbstractTabDeckEditor::updateCard);
|
connect(deckDockWidget, &DeckEditorDeckDockWidget::selectedCardChanged, this, &AbstractTabDeckEditor::updateCard);
|
||||||
|
|
||||||
// Connect database display signals to this tab
|
|
||||||
connect(databaseDisplayDockWidget, &DeckEditorDatabaseDisplayWidget::cardChanged, this,
|
|
||||||
&AbstractTabDeckEditor::updateCard);
|
|
||||||
connect(databaseDisplayDockWidget, &DeckEditorDatabaseDisplayWidget::addCardToMainDeck, this,
|
|
||||||
&AbstractTabDeckEditor::actAddCard);
|
|
||||||
connect(databaseDisplayDockWidget, &DeckEditorDatabaseDisplayWidget::addCardToSideboard, this,
|
|
||||||
&AbstractTabDeckEditor::actAddCardToSideboard);
|
|
||||||
connect(databaseDisplayDockWidget, &DeckEditorDatabaseDisplayWidget::decrementCardFromMainDeck, this,
|
|
||||||
&AbstractTabDeckEditor::actDecrementCard);
|
|
||||||
connect(databaseDisplayDockWidget, &DeckEditorDatabaseDisplayWidget::decrementCardFromSideboard, this,
|
|
||||||
&AbstractTabDeckEditor::actDecrementCardFromSideboard);
|
|
||||||
|
|
||||||
// Connect filter signals
|
// Connect filter signals
|
||||||
connect(filterDockWidget, &DeckEditorFilterDockWidget::clearAllDatabaseFilters, databaseDisplayDockWidget,
|
connect(filterDockWidget, &DeckEditorFilterDockWidget::clearAllDatabaseFilters, cardDatabaseDockWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::clearAllDatabaseFilters);
|
&DeckEditorCardDatabaseDockWidget::clearAllDatabaseFilters);
|
||||||
|
|
||||||
// Connect shortcut changes
|
// Connect shortcut changes
|
||||||
connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this,
|
connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this,
|
||||||
|
|
@ -122,7 +110,7 @@ void AbstractTabDeckEditor::addCardHelper(const ExactCard &card, const QString &
|
||||||
{
|
{
|
||||||
deckStateManager->addCard(card, zoneName);
|
deckStateManager->addCard(card, zoneName);
|
||||||
|
|
||||||
databaseDisplayDockWidget->searchEdit->setSelection(0, databaseDisplayDockWidget->searchEdit->text().length());
|
cardDatabaseDockWidget->highlightAllSearchEdit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -544,21 +532,21 @@ void AbstractTabDeckEditor::actExportDeckDecklistXyz()
|
||||||
/** @brief Analyzes the deck using DeckStats. */
|
/** @brief Analyzes the deck using DeckStats. */
|
||||||
void AbstractTabDeckEditor::actAnalyzeDeckDeckstats()
|
void AbstractTabDeckEditor::actAnalyzeDeckDeckstats()
|
||||||
{
|
{
|
||||||
auto *interface = new DeckStatsInterface(*databaseDisplayDockWidget->databaseModel->getDatabase(), this);
|
auto *interface = new DeckStatsInterface(*cardDatabaseDockWidget->getDatabase(), this);
|
||||||
interface->analyzeDeck(deckStateManager->getDeckList());
|
interface->analyzeDeck(deckStateManager->getDeckList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @brief Analyzes the deck using TappedOut. */
|
/** @brief Analyzes the deck using TappedOut. */
|
||||||
void AbstractTabDeckEditor::actAnalyzeDeckTappedout()
|
void AbstractTabDeckEditor::actAnalyzeDeckTappedout()
|
||||||
{
|
{
|
||||||
auto *interface = new TappedOutInterface(*databaseDisplayDockWidget->databaseModel->getDatabase(), this);
|
auto *interface = new TappedOutInterface(*cardDatabaseDockWidget->getDatabase(), this);
|
||||||
interface->analyzeDeck(deckStateManager->getDeckList());
|
interface->analyzeDeck(deckStateManager->getDeckList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @brief Applies a new filter tree to the database display. */
|
/** @brief Applies a new filter tree to the database display. */
|
||||||
void AbstractTabDeckEditor::filterTreeChanged(FilterTree *filterTree)
|
void AbstractTabDeckEditor::filterTreeChanged(FilterTree *filterTree)
|
||||||
{
|
{
|
||||||
databaseDisplayDockWidget->setFilterTree(filterTree);
|
cardDatabaseDockWidget->setFilterTree(filterTree);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -571,43 +559,6 @@ void AbstractTabDeckEditor::closeEvent(QCloseEvent *event)
|
||||||
event->accept();
|
event->accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Event filter for dock visibility and geometry changes.
|
|
||||||
* @param o Object sending the event.
|
|
||||||
* @param e Event.
|
|
||||||
* @return False always.
|
|
||||||
*/
|
|
||||||
bool AbstractTabDeckEditor::eventFilter(QObject *o, QEvent *e)
|
|
||||||
{
|
|
||||||
if (e->type() == QEvent::Close) {
|
|
||||||
if (o == cardInfoDockWidget) {
|
|
||||||
aCardInfoDockVisible->setChecked(false);
|
|
||||||
aCardInfoDockFloating->setEnabled(false);
|
|
||||||
} else if (o == deckDockWidget) {
|
|
||||||
aDeckDockVisible->setChecked(false);
|
|
||||||
aDeckDockFloating->setEnabled(false);
|
|
||||||
} else if (o == filterDockWidget) {
|
|
||||||
aFilterDockVisible->setChecked(false);
|
|
||||||
aFilterDockFloating->setEnabled(false);
|
|
||||||
} else if (o == printingSelectorDockWidget) {
|
|
||||||
aPrintingSelectorDockVisible->setChecked(false);
|
|
||||||
aPrintingSelectorDockFloating->setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (o == this && e->type() == QEvent::Hide) {
|
|
||||||
LayoutsSettings &layouts = SettingsCache::instance().layouts();
|
|
||||||
layouts.setDeckEditorLayoutState(saveState());
|
|
||||||
layouts.setDeckEditorGeometry(saveGeometry());
|
|
||||||
layouts.setDeckEditorCardSize(cardInfoDockWidget->size());
|
|
||||||
layouts.setDeckEditorFilterSize(filterDockWidget->size());
|
|
||||||
layouts.setDeckEditorDeckSize(deckDockWidget->size());
|
|
||||||
layouts.setDeckEditorPrintingSelectorSize(printingSelectorDockWidget->size());
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @brief Shows a confirmation dialog before closing. */
|
/** @brief Shows a confirmation dialog before closing. */
|
||||||
bool AbstractTabDeckEditor::confirmClose()
|
bool AbstractTabDeckEditor::confirmClose()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
#ifndef TAB_GENERIC_DECK_EDITOR_H
|
#ifndef TAB_GENERIC_DECK_EDITOR_H
|
||||||
#define TAB_GENERIC_DECK_EDITOR_H
|
#define TAB_GENERIC_DECK_EDITOR_H
|
||||||
|
|
||||||
|
#include "../interface/widgets/deck_editor/deck_editor_card_database_dock_widget.h"
|
||||||
#include "../interface/widgets/deck_editor/deck_editor_card_info_dock_widget.h"
|
#include "../interface/widgets/deck_editor/deck_editor_card_info_dock_widget.h"
|
||||||
#include "../interface/widgets/deck_editor/deck_editor_database_display_widget.h"
|
#include "../interface/widgets/deck_editor/deck_editor_database_display_widget.h"
|
||||||
#include "../interface/widgets/deck_editor/deck_editor_deck_dock_widget.h"
|
#include "../interface/widgets/deck_editor/deck_editor_deck_dock_widget.h"
|
||||||
|
|
@ -27,7 +28,7 @@ class CardInfoFrameWidget;
|
||||||
class DeckLoader;
|
class DeckLoader;
|
||||||
class DeckEditorMenu;
|
class DeckEditorMenu;
|
||||||
class DeckEditorCardInfoDockWidget;
|
class DeckEditorCardInfoDockWidget;
|
||||||
class DeckEditorDatabaseDisplayWidget;
|
class DeckEditorCardDatabaseDockWidget;
|
||||||
class DeckEditorDeckDockWidget;
|
class DeckEditorDeckDockWidget;
|
||||||
class DeckEditorFilterDockWidget;
|
class DeckEditorFilterDockWidget;
|
||||||
class DeckEditorPrintingSelectorDockWidget;
|
class DeckEditorPrintingSelectorDockWidget;
|
||||||
|
|
@ -126,7 +127,7 @@ public:
|
||||||
// UI Elements
|
// UI Elements
|
||||||
DeckStateManager *deckStateManager;
|
DeckStateManager *deckStateManager;
|
||||||
DeckEditorMenu *deckMenu; ///< Menu for deck operations
|
DeckEditorMenu *deckMenu; ///< Menu for deck operations
|
||||||
DeckEditorDatabaseDisplayWidget *databaseDisplayDockWidget; ///< Database dock
|
DeckEditorCardDatabaseDockWidget *cardDatabaseDockWidget; ///< Database dock
|
||||||
DeckEditorCardInfoDockWidget *cardInfoDockWidget; ///< Card info dock
|
DeckEditorCardInfoDockWidget *cardInfoDockWidget; ///< Card info dock
|
||||||
DeckEditorDeckDockWidget *deckDockWidget; ///< Deck dock
|
DeckEditorDeckDockWidget *deckDockWidget; ///< Deck dock
|
||||||
DeckEditorFilterDockWidget *filterDockWidget; ///< Filter dock
|
DeckEditorFilterDockWidget *filterDockWidget; ///< Filter dock
|
||||||
|
|
@ -245,9 +246,6 @@ protected slots:
|
||||||
/** @brief Handles dock close events. */
|
/** @brief Handles dock close events. */
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
|
||||||
/** @brief Event filter for dock state changes. */
|
|
||||||
bool eventFilter(QObject *o, QEvent *e) override;
|
|
||||||
|
|
||||||
/** @brief Slot triggered when a dock visibility changes. Pure virtual. */
|
/** @brief Slot triggered when a dock visibility changes. Pure virtual. */
|
||||||
virtual void dockVisibleTriggered() = 0;
|
virtual void dockVisibleTriggered() = 0;
|
||||||
|
|
||||||
|
|
@ -295,11 +293,15 @@ protected:
|
||||||
virtual void openDeckFromFile(const QString &fileName, DeckOpenLocation deckOpenLocation);
|
virtual void openDeckFromFile(const QString &fileName, DeckOpenLocation deckOpenLocation);
|
||||||
|
|
||||||
// UI Menu Elements
|
// UI Menu Elements
|
||||||
QMenu *viewMenu, *cardInfoDockMenu, *deckDockMenu, *filterDockMenu, *printingSelectorDockMenu;
|
QMenu *viewMenu, *cardInfoDockMenu, *cardDatabaseDockMenu, *deckDockMenu, *filterDockMenu,
|
||||||
|
*printingSelectorDockMenu;
|
||||||
|
|
||||||
QAction *aResetLayout;
|
QAction *aResetLayout;
|
||||||
QAction *aCardInfoDockVisible, *aCardInfoDockFloating, *aDeckDockVisible, *aDeckDockFloating;
|
QAction *aCardInfoDockVisible, *aCardInfoDockFloating;
|
||||||
QAction *aFilterDockVisible, *aFilterDockFloating, *aPrintingSelectorDockVisible, *aPrintingSelectorDockFloating;
|
QAction *aCardDatabaseDockVisible, *aCardDatabaseDockFloating;
|
||||||
|
QAction *aDeckDockVisible, *aDeckDockFloating;
|
||||||
|
QAction *aFilterDockVisible, *aFilterDockFloating;
|
||||||
|
QAction *aPrintingSelectorDockVisible, *aPrintingSelectorDockFloating;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TAB_GENERIC_DECK_EDITOR_H
|
#endif // TAB_GENERIC_DECK_EDITOR_H
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@ void TabDeckEditor::createMenus()
|
||||||
viewMenu = new QMenu(this);
|
viewMenu = new QMenu(this);
|
||||||
|
|
||||||
cardInfoDockMenu = viewMenu->addMenu(QString());
|
cardInfoDockMenu = viewMenu->addMenu(QString());
|
||||||
|
cardDatabaseDockMenu = viewMenu->addMenu(QString());
|
||||||
deckDockMenu = viewMenu->addMenu(QString());
|
deckDockMenu = viewMenu->addMenu(QString());
|
||||||
filterDockMenu = viewMenu->addMenu(QString());
|
filterDockMenu = viewMenu->addMenu(QString());
|
||||||
printingSelectorDockMenu = viewMenu->addMenu(QString());
|
printingSelectorDockMenu = viewMenu->addMenu(QString());
|
||||||
|
|
@ -67,6 +68,14 @@ void TabDeckEditor::createMenus()
|
||||||
aCardInfoDockFloating->setCheckable(true);
|
aCardInfoDockFloating->setCheckable(true);
|
||||||
connect(aCardInfoDockFloating, &QAction::triggered, this, &TabDeckEditor::dockFloatingTriggered);
|
connect(aCardInfoDockFloating, &QAction::triggered, this, &TabDeckEditor::dockFloatingTriggered);
|
||||||
|
|
||||||
|
// Card Database dock
|
||||||
|
aCardDatabaseDockVisible = cardDatabaseDockMenu->addAction(QString());
|
||||||
|
aCardDatabaseDockVisible->setCheckable(true);
|
||||||
|
connect(aCardDatabaseDockVisible, &QAction::triggered, this, &TabDeckEditor::dockVisibleTriggered);
|
||||||
|
aCardDatabaseDockFloating = cardDatabaseDockMenu->addAction(QString());
|
||||||
|
aCardDatabaseDockFloating->setCheckable(true);
|
||||||
|
connect(aCardDatabaseDockFloating, &QAction::triggered, this, &TabDeckEditor::dockFloatingTriggered);
|
||||||
|
|
||||||
// Deck dock
|
// Deck dock
|
||||||
aDeckDockVisible = deckDockMenu->addAction(QString());
|
aDeckDockVisible = deckDockMenu->addAction(QString());
|
||||||
aDeckDockVisible->setCheckable(true);
|
aDeckDockVisible->setCheckable(true);
|
||||||
|
|
@ -126,18 +135,22 @@ void TabDeckEditor::retranslateUi()
|
||||||
{
|
{
|
||||||
deckMenu->retranslateUi();
|
deckMenu->retranslateUi();
|
||||||
cardInfoDockWidget->retranslateUi();
|
cardInfoDockWidget->retranslateUi();
|
||||||
|
cardDatabaseDockWidget->retranslateUi();
|
||||||
deckDockWidget->retranslateUi();
|
deckDockWidget->retranslateUi();
|
||||||
filterDockWidget->retranslateUi();
|
filterDockWidget->retranslateUi();
|
||||||
printingSelectorDockWidget->retranslateUi();
|
printingSelectorDockWidget->retranslateUi();
|
||||||
|
|
||||||
viewMenu->setTitle(tr("&View"));
|
viewMenu->setTitle(tr("&View"));
|
||||||
cardInfoDockMenu->setTitle(tr("Card Info"));
|
cardInfoDockMenu->setTitle(tr("Card Info"));
|
||||||
|
cardDatabaseDockMenu->setTitle(tr("Card Database"));
|
||||||
deckDockMenu->setTitle(tr("Deck"));
|
deckDockMenu->setTitle(tr("Deck"));
|
||||||
filterDockMenu->setTitle(tr("Filters"));
|
filterDockMenu->setTitle(tr("Filters"));
|
||||||
printingSelectorDockMenu->setTitle(tr("Printing"));
|
printingSelectorDockMenu->setTitle(tr("Printing"));
|
||||||
|
|
||||||
aCardInfoDockVisible->setText(tr("Visible"));
|
aCardInfoDockVisible->setText(tr("Visible"));
|
||||||
aCardInfoDockFloating->setText(tr("Floating"));
|
aCardInfoDockFloating->setText(tr("Floating"));
|
||||||
|
aCardDatabaseDockVisible->setText(tr("Visible"));
|
||||||
|
aCardDatabaseDockFloating->setText(tr("Floating"));
|
||||||
aDeckDockVisible->setText(tr("Visible"));
|
aDeckDockVisible->setText(tr("Visible"));
|
||||||
aDeckDockFloating->setText(tr("Floating"));
|
aDeckDockFloating->setText(tr("Floating"));
|
||||||
aFilterDockVisible->setText(tr("Visible"));
|
aFilterDockVisible->setText(tr("Visible"));
|
||||||
|
|
@ -171,7 +184,6 @@ void TabDeckEditor::showPrintingSelector()
|
||||||
void TabDeckEditor::loadLayout()
|
void TabDeckEditor::loadLayout()
|
||||||
{
|
{
|
||||||
LayoutsSettings &layouts = SettingsCache::instance().layouts();
|
LayoutsSettings &layouts = SettingsCache::instance().layouts();
|
||||||
setCentralWidget(databaseDisplayDockWidget);
|
|
||||||
|
|
||||||
auto &layoutState = layouts.getDeckEditorLayoutState();
|
auto &layoutState = layouts.getDeckEditorLayoutState();
|
||||||
if (layoutState.isNull())
|
if (layoutState.isNull())
|
||||||
|
|
@ -189,16 +201,19 @@ void TabDeckEditor::loadLayout()
|
||||||
}
|
}
|
||||||
|
|
||||||
aCardInfoDockVisible->setChecked(!cardInfoDockWidget->isHidden());
|
aCardInfoDockVisible->setChecked(!cardInfoDockWidget->isHidden());
|
||||||
|
aCardDatabaseDockVisible->setChecked(!cardDatabaseDockWidget->isHidden());
|
||||||
aFilterDockVisible->setChecked(!filterDockWidget->isHidden());
|
aFilterDockVisible->setChecked(!filterDockWidget->isHidden());
|
||||||
aDeckDockVisible->setChecked(!deckDockWidget->isHidden());
|
aDeckDockVisible->setChecked(!deckDockWidget->isHidden());
|
||||||
aPrintingSelectorDockVisible->setChecked(!printingSelectorDockWidget->isHidden());
|
aPrintingSelectorDockVisible->setChecked(!printingSelectorDockWidget->isHidden());
|
||||||
|
|
||||||
aCardInfoDockFloating->setEnabled(aCardInfoDockVisible->isChecked());
|
aCardInfoDockFloating->setEnabled(aCardInfoDockVisible->isChecked());
|
||||||
|
aCardDatabaseDockFloating->setChecked(aCardDatabaseDockVisible->isChecked());
|
||||||
aDeckDockFloating->setEnabled(aDeckDockVisible->isChecked());
|
aDeckDockFloating->setEnabled(aDeckDockVisible->isChecked());
|
||||||
aFilterDockFloating->setEnabled(aFilterDockVisible->isChecked());
|
aFilterDockFloating->setEnabled(aFilterDockVisible->isChecked());
|
||||||
aPrintingSelectorDockFloating->setEnabled(aPrintingSelectorDockVisible->isChecked());
|
aPrintingSelectorDockFloating->setEnabled(aPrintingSelectorDockVisible->isChecked());
|
||||||
|
|
||||||
aCardInfoDockFloating->setChecked(cardInfoDockWidget->isFloating());
|
aCardInfoDockFloating->setChecked(cardInfoDockWidget->isFloating());
|
||||||
|
aCardDatabaseDockFloating->setChecked(cardDatabaseDockWidget->isFloating());
|
||||||
aFilterDockFloating->setChecked(filterDockWidget->isFloating());
|
aFilterDockFloating->setChecked(filterDockWidget->isFloating());
|
||||||
aDeckDockFloating->setChecked(deckDockWidget->isFloating());
|
aDeckDockFloating->setChecked(deckDockWidget->isFloating());
|
||||||
aPrintingSelectorDockFloating->setChecked(printingSelectorDockWidget->isFloating());
|
aPrintingSelectorDockFloating->setChecked(printingSelectorDockWidget->isFloating());
|
||||||
|
|
@ -226,27 +241,31 @@ void TabDeckEditor::restartLayout()
|
||||||
|
|
||||||
// Update menu checkboxes
|
// Update menu checkboxes
|
||||||
aCardInfoDockVisible->setChecked(true);
|
aCardInfoDockVisible->setChecked(true);
|
||||||
|
aCardDatabaseDockVisible->setChecked(true);
|
||||||
aDeckDockVisible->setChecked(true);
|
aDeckDockVisible->setChecked(true);
|
||||||
aFilterDockVisible->setChecked(true);
|
aFilterDockVisible->setChecked(true);
|
||||||
aPrintingSelectorDockVisible->setChecked(!SettingsCache::instance().getOverrideAllCardArtWithPersonalPreference());
|
aPrintingSelectorDockVisible->setChecked(!SettingsCache::instance().getOverrideAllCardArtWithPersonalPreference());
|
||||||
|
|
||||||
aCardInfoDockFloating->setChecked(false);
|
aCardInfoDockFloating->setChecked(false);
|
||||||
|
aCardDatabaseDockFloating->setChecked(false);
|
||||||
aDeckDockFloating->setChecked(false);
|
aDeckDockFloating->setChecked(false);
|
||||||
aFilterDockFloating->setChecked(false);
|
aFilterDockFloating->setChecked(false);
|
||||||
aPrintingSelectorDockFloating->setChecked(false);
|
aPrintingSelectorDockFloating->setChecked(false);
|
||||||
|
|
||||||
setCentralWidget(databaseDisplayDockWidget);
|
addDockWidget(Qt::LeftDockWidgetArea, cardDatabaseDockWidget);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, deckDockWidget);
|
addDockWidget(Qt::RightDockWidgetArea, deckDockWidget);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, cardInfoDockWidget);
|
addDockWidget(Qt::RightDockWidgetArea, cardInfoDockWidget);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, filterDockWidget);
|
addDockWidget(Qt::RightDockWidgetArea, filterDockWidget);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, printingSelectorDockWidget);
|
addDockWidget(Qt::RightDockWidgetArea, printingSelectorDockWidget);
|
||||||
|
|
||||||
// Show/hide and reset floating
|
// Show/hide and reset floating
|
||||||
|
cardDatabaseDockWidget->setFloating(false);
|
||||||
deckDockWidget->setFloating(false);
|
deckDockWidget->setFloating(false);
|
||||||
cardInfoDockWidget->setFloating(false);
|
cardInfoDockWidget->setFloating(false);
|
||||||
filterDockWidget->setFloating(false);
|
filterDockWidget->setFloating(false);
|
||||||
printingSelectorDockWidget->setFloating(false);
|
printingSelectorDockWidget->setFloating(false);
|
||||||
|
|
||||||
|
cardDatabaseDockWidget->setVisible(true);
|
||||||
deckDockWidget->setVisible(true);
|
deckDockWidget->setVisible(true);
|
||||||
cardInfoDockWidget->setVisible(true);
|
cardInfoDockWidget->setVisible(true);
|
||||||
filterDockWidget->setVisible(true);
|
filterDockWidget->setVisible(true);
|
||||||
|
|
@ -269,6 +288,9 @@ void TabDeckEditor::freeDocksSize()
|
||||||
deckDockWidget->setMinimumSize(minSize);
|
deckDockWidget->setMinimumSize(minSize);
|
||||||
deckDockWidget->setMaximumSize(maxSize);
|
deckDockWidget->setMaximumSize(maxSize);
|
||||||
|
|
||||||
|
cardDatabaseDockWidget->setMinimumSize(minSize);
|
||||||
|
cardDatabaseDockWidget->setMaximumSize(maxSize);
|
||||||
|
|
||||||
cardInfoDockWidget->setMinimumSize(minSize);
|
cardInfoDockWidget->setMinimumSize(minSize);
|
||||||
cardInfoDockWidget->setMaximumSize(maxSize);
|
cardInfoDockWidget->setMaximumSize(maxSize);
|
||||||
|
|
||||||
|
|
@ -286,6 +308,9 @@ void TabDeckEditor::dockVisibleTriggered()
|
||||||
if (o == aCardInfoDockVisible) {
|
if (o == aCardInfoDockVisible) {
|
||||||
cardInfoDockWidget->setHidden(!aCardInfoDockVisible->isChecked());
|
cardInfoDockWidget->setHidden(!aCardInfoDockVisible->isChecked());
|
||||||
aCardInfoDockFloating->setEnabled(aCardInfoDockVisible->isChecked());
|
aCardInfoDockFloating->setEnabled(aCardInfoDockVisible->isChecked());
|
||||||
|
} else if (o == aCardDatabaseDockVisible) {
|
||||||
|
cardDatabaseDockWidget->setHidden(!aCardDatabaseDockVisible->isChecked());
|
||||||
|
aCardDatabaseDockFloating->setEnabled(aCardDatabaseDockVisible->isChecked());
|
||||||
} else if (o == aDeckDockVisible) {
|
} else if (o == aDeckDockVisible) {
|
||||||
deckDockWidget->setHidden(!aDeckDockVisible->isChecked());
|
deckDockWidget->setHidden(!aDeckDockVisible->isChecked());
|
||||||
aDeckDockFloating->setEnabled(aDeckDockVisible->isChecked());
|
aDeckDockFloating->setEnabled(aDeckDockVisible->isChecked());
|
||||||
|
|
@ -304,6 +329,8 @@ void TabDeckEditor::dockFloatingTriggered()
|
||||||
QObject *o = sender();
|
QObject *o = sender();
|
||||||
if (o == aCardInfoDockFloating)
|
if (o == aCardInfoDockFloating)
|
||||||
cardInfoDockWidget->setFloating(aCardInfoDockFloating->isChecked());
|
cardInfoDockWidget->setFloating(aCardInfoDockFloating->isChecked());
|
||||||
|
else if (o == aCardDatabaseDockFloating)
|
||||||
|
cardDatabaseDockWidget->setFloating(aCardDatabaseDockFloating->isChecked());
|
||||||
else if (o == aDeckDockFloating)
|
else if (o == aDeckDockFloating)
|
||||||
deckDockWidget->setFloating(aDeckDockFloating->isChecked());
|
deckDockWidget->setFloating(aDeckDockFloating->isChecked());
|
||||||
else if (o == aFilterDockFloating)
|
else if (o == aFilterDockFloating)
|
||||||
|
|
@ -318,6 +345,8 @@ void TabDeckEditor::dockTopLevelChanged(bool topLevel)
|
||||||
QObject *o = sender();
|
QObject *o = sender();
|
||||||
if (o == cardInfoDockWidget)
|
if (o == cardInfoDockWidget)
|
||||||
aCardInfoDockFloating->setChecked(topLevel);
|
aCardInfoDockFloating->setChecked(topLevel);
|
||||||
|
else if (o == aCardDatabaseDockFloating)
|
||||||
|
aCardDatabaseDockFloating->setChecked(topLevel);
|
||||||
else if (o == deckDockWidget)
|
else if (o == deckDockWidget)
|
||||||
aDeckDockFloating->setChecked(topLevel);
|
aDeckDockFloating->setChecked(topLevel);
|
||||||
else if (o == filterDockWidget)
|
else if (o == filterDockWidget)
|
||||||
|
|
@ -338,6 +367,9 @@ bool TabDeckEditor::eventFilter(QObject *o, QEvent *e)
|
||||||
if (o == cardInfoDockWidget) {
|
if (o == cardInfoDockWidget) {
|
||||||
aCardInfoDockVisible->setChecked(false);
|
aCardInfoDockVisible->setChecked(false);
|
||||||
aCardInfoDockFloating->setEnabled(false);
|
aCardInfoDockFloating->setEnabled(false);
|
||||||
|
} else if (o == cardDatabaseDockWidget) {
|
||||||
|
aCardDatabaseDockVisible->setChecked(false);
|
||||||
|
aCardDatabaseDockFloating->setEnabled(false);
|
||||||
} else if (o == deckDockWidget) {
|
} else if (o == deckDockWidget) {
|
||||||
aDeckDockVisible->setChecked(false);
|
aDeckDockVisible->setChecked(false);
|
||||||
aDeckDockFloating->setEnabled(false);
|
aDeckDockFloating->setEnabled(false);
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ TabVisualDatabaseDisplay::TabVisualDatabaseDisplay(TabSupervisor *_tabSupervisor
|
||||||
{
|
{
|
||||||
deckEditor = new TabDeckEditor(_tabSupervisor);
|
deckEditor = new TabDeckEditor(_tabSupervisor);
|
||||||
deckEditor->setHidden(true);
|
deckEditor->setHidden(true);
|
||||||
visualDatabaseDisplayWidget =
|
visualDatabaseDisplayWidget = new VisualDatabaseDisplayWidget(
|
||||||
new VisualDatabaseDisplayWidget(this, deckEditor, deckEditor->databaseDisplayDockWidget->databaseModel,
|
this, deckEditor, deckEditor->cardDatabaseDockWidget->databaseDisplayWidget->databaseModel,
|
||||||
deckEditor->databaseDisplayDockWidget->databaseDisplayModel);
|
deckEditor->cardDatabaseDockWidget->databaseDisplayWidget->databaseDisplayModel);
|
||||||
|
|
||||||
setCentralWidget(visualDatabaseDisplayWidget);
|
setCentralWidget(visualDatabaseDisplayWidget);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ TabDeckEditorVisual::TabDeckEditorVisual(TabSupervisor *_tabSupervisor) : Abstra
|
||||||
refreshShortcuts();
|
refreshShortcuts();
|
||||||
|
|
||||||
loadLayout();
|
loadLayout();
|
||||||
databaseDisplayDockWidget->setHidden(true);
|
cardDatabaseDockWidget->setHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @brief Creates the central frame containing the tab container. */
|
/** @brief Creates the central frame containing the tab container. */
|
||||||
|
|
@ -62,9 +62,9 @@ void TabDeckEditorVisual::createCentralFrame()
|
||||||
centralFrame = new QVBoxLayout;
|
centralFrame = new QVBoxLayout;
|
||||||
centralWidget->setLayout(centralFrame);
|
centralWidget->setLayout(centralFrame);
|
||||||
|
|
||||||
tabContainer = new TabDeckEditorVisualTabWidget(centralWidget, this, deckStateManager->getModel(),
|
tabContainer = new TabDeckEditorVisualTabWidget(
|
||||||
databaseDisplayDockWidget->databaseModel,
|
centralWidget, this, deckStateManager->getModel(), cardDatabaseDockWidget->databaseDisplayWidget->databaseModel,
|
||||||
databaseDisplayDockWidget->databaseDisplayModel);
|
cardDatabaseDockWidget->databaseDisplayWidget->databaseDisplayModel);
|
||||||
|
|
||||||
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardChanged, this,
|
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardChanged, this,
|
||||||
&TabDeckEditorVisual::changeModelIndexAndCardInfo);
|
&TabDeckEditorVisual::changeModelIndexAndCardInfo);
|
||||||
|
|
|
||||||
|
|
@ -74,25 +74,27 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
|
||||||
|
|
||||||
searchKeySignals.setObjectName("searchKeySignals");
|
searchKeySignals.setObjectName("searchKeySignals");
|
||||||
connect(searchEdit, &SearchLineEdit::textChanged, this, &VisualDatabaseDisplayWidget::updateSearch);
|
connect(searchEdit, &SearchLineEdit::textChanged, this, &VisualDatabaseDisplayWidget::updateSearch);
|
||||||
connect(&searchKeySignals, &KeySignals::onEnter, deckEditor->databaseDisplayDockWidget,
|
|
||||||
|
DeckEditorDatabaseDisplayWidget *databaseDisplayWidget = deckEditor->cardDatabaseDockWidget->databaseDisplayWidget;
|
||||||
|
connect(&searchKeySignals, &KeySignals::onEnter, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck);
|
&DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck);
|
||||||
connect(&searchKeySignals, &KeySignals::onCtrlAltEqual, deckEditor->databaseDisplayDockWidget,
|
connect(&searchKeySignals, &KeySignals::onCtrlAltEqual, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck);
|
&DeckEditorDatabaseDisplayWidget::actAddCardToMainDeck);
|
||||||
connect(&searchKeySignals, &KeySignals::onCtrlAltRBracket, deckEditor->databaseDisplayDockWidget,
|
connect(&searchKeySignals, &KeySignals::onCtrlAltRBracket, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
&DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
||||||
connect(&searchKeySignals, &KeySignals::onCtrlAltMinus, deckEditor->databaseDisplayDockWidget,
|
connect(&searchKeySignals, &KeySignals::onCtrlAltMinus, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::actDecrementCardFromMainDeck);
|
&DeckEditorDatabaseDisplayWidget::actDecrementCardFromMainDeck);
|
||||||
connect(&searchKeySignals, &KeySignals::onCtrlAltLBracket, deckEditor->databaseDisplayDockWidget,
|
connect(&searchKeySignals, &KeySignals::onCtrlAltLBracket, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::actDecrementCardFromSideboard);
|
&DeckEditorDatabaseDisplayWidget::actDecrementCardFromSideboard);
|
||||||
connect(&searchKeySignals, &KeySignals::onCtrlAltEnter, deckEditor->databaseDisplayDockWidget,
|
connect(&searchKeySignals, &KeySignals::onCtrlAltEnter, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
&DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
||||||
connect(&searchKeySignals, &KeySignals::onCtrlEnter, deckEditor->databaseDisplayDockWidget,
|
connect(&searchKeySignals, &KeySignals::onCtrlEnter, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
&DeckEditorDatabaseDisplayWidget::actAddCardToSideboard);
|
||||||
connect(&searchKeySignals, &KeySignals::onCtrlC, deckEditor->databaseDisplayDockWidget,
|
connect(&searchKeySignals, &KeySignals::onCtrlC, databaseDisplayWidget,
|
||||||
&DeckEditorDatabaseDisplayWidget::copyDatabaseCellContents);
|
&DeckEditorDatabaseDisplayWidget::copyDatabaseCellContents);
|
||||||
connect(help, &QAction::triggered, this, [this] { createSearchSyntaxHelpWindow(searchEdit); });
|
connect(help, &QAction::triggered, this, [this] { createSearchSyntaxHelpWindow(searchEdit); });
|
||||||
|
|
||||||
databaseView = deckEditor->databaseDisplayDockWidget->getDatabaseView();
|
databaseView = databaseDisplayWidget->getDatabaseView();
|
||||||
databaseView->setFocusProxy(searchEdit);
|
databaseView->setFocusProxy(searchEdit);
|
||||||
databaseView->setItemDelegate(nullptr);
|
databaseView->setItemDelegate(nullptr);
|
||||||
databaseView->setVisible(false);
|
databaseView->setVisible(false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue