mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-10 12:23:58 -07:00
[TabDeckEditor] Refactor card database view into own class (#6967)
* rename method * [TabDeckEditor] Refactor card database view into own class * fix include guard * directly get key signals for eventFilter * fix includes
This commit is contained in:
parent
0da2ac4087
commit
c14a008080
15 changed files with 392 additions and 252 deletions
|
|
@ -1,14 +1,19 @@
|
|||
#include "tab_visual_database_display.h"
|
||||
|
||||
#include "tab_deck_editor.h"
|
||||
#include "tab_supervisor.h"
|
||||
|
||||
#include <libcockatrice/card/database/card_database_manager.h>
|
||||
|
||||
TabVisualDatabaseDisplay::TabVisualDatabaseDisplay(TabSupervisor *_tabSupervisor) : Tab(_tabSupervisor)
|
||||
{
|
||||
deckEditor = new TabDeckEditor(_tabSupervisor);
|
||||
deckEditor->setHidden(true);
|
||||
visualDatabaseDisplayWidget = new VisualDatabaseDisplayWidget(
|
||||
this, deckEditor, deckEditor->cardDatabaseDockWidget->databaseDisplayWidget->databaseModel,
|
||||
deckEditor->cardDatabaseDockWidget->databaseDisplayWidget->databaseDisplayModel);
|
||||
auto databaseModel = new CardDatabaseModel(CardDatabaseManager::getInstance(), true, this);
|
||||
databaseModel->setObjectName("databaseModel");
|
||||
|
||||
visualDatabaseDisplayWidget = new VisualDatabaseDisplayWidget(this, databaseModel);
|
||||
|
||||
connect(visualDatabaseDisplayWidget, &VisualDatabaseDisplayWidget::edhrecRequested, this,
|
||||
&TabVisualDatabaseDisplay::openEdhrecTab);
|
||||
|
||||
setCentralWidget(visualDatabaseDisplayWidget);
|
||||
|
||||
|
|
@ -18,3 +23,8 @@ TabVisualDatabaseDisplay::TabVisualDatabaseDisplay(TabSupervisor *_tabSupervisor
|
|||
void TabVisualDatabaseDisplay::retranslateUi()
|
||||
{
|
||||
}
|
||||
|
||||
void TabVisualDatabaseDisplay::openEdhrecTab(const CardInfoPtr &info, bool isCommander) const
|
||||
{
|
||||
getTabSupervisor()->addEdhrecTab(info, isCommander);
|
||||
}
|
||||
|
|
@ -15,9 +15,11 @@ class TabVisualDatabaseDisplay : public Tab
|
|||
Q_OBJECT
|
||||
|
||||
private:
|
||||
TabDeckEditor *deckEditor;
|
||||
VisualDatabaseDisplayWidget *visualDatabaseDisplayWidget;
|
||||
|
||||
private slots:
|
||||
void openEdhrecTab(const CardInfoPtr &info, bool isCommander) const;
|
||||
|
||||
public:
|
||||
TabVisualDatabaseDisplay(TabSupervisor *_tabSupervisor);
|
||||
void retranslateUi() override;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "tab_deck_editor_visual.h"
|
||||
|
||||
#include "../../../../client/settings/cache_settings.h"
|
||||
#include "../../cards/card_info_display_widget.h"
|
||||
#include "../../deck_editor/deck_state_manager.h"
|
||||
#include "../../filters/filter_builder.h"
|
||||
#include "../../interface/pixel_map_generator.h"
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
#include <QTimer>
|
||||
#include <QTreeView>
|
||||
#include <QVBoxLayout>
|
||||
#include <libcockatrice/card/database/card_database_manager.h>
|
||||
#include <libcockatrice/models/deck_list/deck_list_model.h>
|
||||
#include <libcockatrice/protocol/pb/command_deck_upload.pb.h>
|
||||
#include <libcockatrice/protocol/pending_command.h>
|
||||
|
|
@ -63,9 +65,10 @@ void TabDeckEditorVisual::createCentralFrame()
|
|||
centralFrame = new QVBoxLayout;
|
||||
centralWidget->setLayout(centralFrame);
|
||||
|
||||
tabContainer = new TabDeckEditorVisualTabWidget(
|
||||
centralWidget, this, deckStateManager->getModel(), cardDatabaseDockWidget->databaseDisplayWidget->databaseModel,
|
||||
cardDatabaseDockWidget->databaseDisplayWidget->databaseDisplayModel);
|
||||
auto databaseModel = new CardDatabaseModel(CardDatabaseManager::getInstance(), true, this);
|
||||
databaseModel->setObjectName("databaseModel");
|
||||
|
||||
tabContainer = new TabDeckEditorVisualTabWidget(centralWidget, this, deckStateManager->getModel(), databaseModel);
|
||||
|
||||
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardChanged, this,
|
||||
&TabDeckEditorVisual::changeModelIndexAndCardInfo);
|
||||
|
|
@ -76,6 +79,13 @@ void TabDeckEditorVisual::createCentralFrame()
|
|||
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardClickedDatabaseDisplay, this,
|
||||
&TabDeckEditorVisual::processDatabaseCardClick);
|
||||
|
||||
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardAdded, this, &TabDeckEditorVisual::addCard);
|
||||
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardDecremented, this, &TabDeckEditorVisual::decrementCard);
|
||||
connect(tabContainer, &TabDeckEditorVisualTabWidget::edhrecRequested, this, &TabDeckEditorVisual::openEdhrecTab);
|
||||
connect(tabContainer, &TabDeckEditorVisualTabWidget::printingSelectorRequested, this,
|
||||
&TabDeckEditorVisual::showPrintingSelector);
|
||||
connect(tabContainer, &TabDeckEditorVisualTabWidget::cardInfoRequested, this, &TabDeckEditorVisual::updateCardInfo);
|
||||
|
||||
centralFrame->addWidget(tabContainer);
|
||||
setCentralWidget(centralWidget);
|
||||
setDockOptions(QMainWindow::AnimatedDocks | QMainWindow::AllowNestedDocks | QMainWindow::AllowTabbedDocks);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
* @param _deckEditor Pointer to the associated deck editor.
|
||||
* @param _deckModel Pointer to the deck list model.
|
||||
* @param _cardDatabaseModel Pointer to the card database model.
|
||||
* @param _cardDatabaseDisplayModel Pointer to the card database display model.
|
||||
*
|
||||
* Initializes all sub-widgets (visual deck view, database display, deck analytics,
|
||||
* sample hand) and sets up the tab layout and signal connections.
|
||||
|
|
@ -17,10 +16,8 @@
|
|||
TabDeckEditorVisualTabWidget::TabDeckEditorVisualTabWidget(QWidget *parent,
|
||||
AbstractTabDeckEditor *_deckEditor,
|
||||
DeckListModel *_deckModel,
|
||||
CardDatabaseModel *_cardDatabaseModel,
|
||||
CardDatabaseDisplayModel *_cardDatabaseDisplayModel)
|
||||
: QTabWidget(parent), deckEditor(_deckEditor), deckModel(_deckModel), cardDatabaseModel(_cardDatabaseModel),
|
||||
cardDatabaseDisplayModel(_cardDatabaseDisplayModel)
|
||||
CardDatabaseModel *_cardDatabaseModel)
|
||||
: QTabWidget(parent), deckEditor(_deckEditor), deckModel(_deckModel), cardDatabaseModel(_cardDatabaseModel)
|
||||
{
|
||||
this->setTabsClosable(true); // Enable tab closing
|
||||
connect(this, &QTabWidget::tabCloseRequested, this, &TabDeckEditorVisualTabWidget::handleTabClose);
|
||||
|
|
@ -37,13 +34,22 @@ TabDeckEditorVisualTabWidget::TabDeckEditorVisualTabWidget(QWidget *parent,
|
|||
connect(visualDeckView, &VisualDeckEditorWidget::cardAdditionRequested, this,
|
||||
&TabDeckEditorVisualTabWidget::actAddCard);
|
||||
|
||||
visualDatabaseDisplay =
|
||||
new VisualDatabaseDisplayWidget(this, deckEditor, _cardDatabaseModel, _cardDatabaseDisplayModel, deckModel);
|
||||
visualDatabaseDisplay = new VisualDatabaseDisplayWidget(this, _cardDatabaseModel, deckModel);
|
||||
visualDatabaseDisplay->setObjectName("visualDatabaseView");
|
||||
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::cardHoveredDatabaseDisplay, this,
|
||||
&TabDeckEditorVisualTabWidget::onCardChangedDatabaseDisplay);
|
||||
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::cardClickedDatabaseDisplay, this,
|
||||
&TabDeckEditorVisualTabWidget::onCardClickedDatabaseDisplay);
|
||||
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::cardAdded, this,
|
||||
&TabDeckEditorVisualTabWidget::cardAdded);
|
||||
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::cardDecremented, this,
|
||||
&TabDeckEditorVisualTabWidget::cardDecremented);
|
||||
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::edhrecRequested, this,
|
||||
&TabDeckEditorVisualTabWidget::edhrecRequested);
|
||||
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::printingSelectorRequested, this,
|
||||
&TabDeckEditorVisualTabWidget::printingSelectorRequested);
|
||||
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::cardInfoRequested, this,
|
||||
&TabDeckEditorVisualTabWidget::cardInfoRequested);
|
||||
|
||||
statsAnalyzer = new DeckListStatisticsAnalyzer(this, deckModel);
|
||||
statsAnalyzer->analyze();
|
||||
|
|
|
|||
|
|
@ -55,13 +55,11 @@ public:
|
|||
* @param _deckEditor Pointer to the deck editor instance.
|
||||
* @param _deckModel Deck list model.
|
||||
* @param _cardDatabaseModel Card database model.
|
||||
* @param _cardDatabaseDisplayModel Database display model.
|
||||
*/
|
||||
explicit TabDeckEditorVisualTabWidget(QWidget *parent,
|
||||
AbstractTabDeckEditor *_deckEditor,
|
||||
DeckListModel *_deckModel,
|
||||
CardDatabaseModel *_cardDatabaseModel,
|
||||
CardDatabaseDisplayModel *_cardDatabaseDisplayModel);
|
||||
CardDatabaseModel *_cardDatabaseModel);
|
||||
|
||||
/** @brief Add a new tab with a widget and title. */
|
||||
void addNewTab(QWidget *widget, const QString &title);
|
||||
|
|
@ -119,12 +117,17 @@ signals:
|
|||
void cardClicked(QMouseEvent *event, const ExactCard &card, const QString &zoneName);
|
||||
void cardClickedDatabaseDisplay(QMouseEvent *event, const ExactCard &card);
|
||||
|
||||
void cardAdded(const ExactCard &card, const QString &zoneName);
|
||||
void cardDecremented(const ExactCard &card, const QString &zoneName);
|
||||
void edhrecRequested(const CardInfoPtr &cardInfo, bool isCommander);
|
||||
void printingSelectorRequested();
|
||||
void cardInfoRequested(const ExactCard &cardName);
|
||||
|
||||
private:
|
||||
QVBoxLayout *layout; ///< Layout for tabs and controls.
|
||||
AbstractTabDeckEditor *deckEditor; ///< Reference to the deck editor.
|
||||
DeckListModel *deckModel; ///< Deck list model.
|
||||
CardDatabaseModel *cardDatabaseModel; ///< Card database model.
|
||||
CardDatabaseDisplayModel *cardDatabaseDisplayModel; ///< Card database display model.
|
||||
QVBoxLayout *layout; ///< Layout for tabs and controls.
|
||||
AbstractTabDeckEditor *deckEditor; ///< Reference to the deck editor.
|
||||
DeckListModel *deckModel; ///< Deck list model.
|
||||
CardDatabaseModel *cardDatabaseModel; ///< Card database model.
|
||||
|
||||
private slots:
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue