[TabDeckEditor] Refactor: pass nullable deck model into filter widget (#6969)

This commit is contained in:
RickyRister 2026-06-05 09:21:28 -07:00 committed by GitHub
parent 29cc622ce3
commit 0da2ac4087
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 19 additions and 22 deletions

View file

@ -38,7 +38,7 @@ TabDeckEditorVisualTabWidget::TabDeckEditorVisualTabWidget(QWidget *parent,
&TabDeckEditorVisualTabWidget::actAddCard); &TabDeckEditorVisualTabWidget::actAddCard);
visualDatabaseDisplay = visualDatabaseDisplay =
new VisualDatabaseDisplayWidget(this, deckEditor, _cardDatabaseModel, _cardDatabaseDisplayModel); new VisualDatabaseDisplayWidget(this, deckEditor, _cardDatabaseModel, _cardDatabaseDisplayModel, deckModel);
visualDatabaseDisplay->setObjectName("visualDatabaseView"); visualDatabaseDisplay->setObjectName("visualDatabaseView");
connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::cardHoveredDatabaseDisplay, this, connect(visualDatabaseDisplay, &VisualDatabaseDisplayWidget::cardHoveredDatabaseDisplay, this,
&TabDeckEditorVisualTabWidget::onCardChangedDatabaseDisplay); &TabDeckEditorVisualTabWidget::onCardChangedDatabaseDisplay);

View file

@ -4,9 +4,10 @@
#include <QGroupBox> #include <QGroupBox>
VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *_parent) VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *_parent,
DeckListModel *deckListModel)
: FlowWidget(_parent, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAlwaysOff), : FlowWidget(_parent, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAlwaysOff),
visualDatabaseDisplay(_parent) visualDatabaseDisplay(_parent), deckListModel(deckListModel)
{ {
connect(this, &VisualDatabaseDisplayFilterToolbarWidget::searchModelChanged, visualDatabaseDisplay, connect(this, &VisualDatabaseDisplayFilterToolbarWidget::searchModelChanged, visualDatabaseDisplay,
&VisualDatabaseDisplayWidget::onSearchModelChanged); &VisualDatabaseDisplayWidget::onSearchModelChanged);
@ -97,8 +98,7 @@ void VisualDatabaseDisplayFilterToolbarWidget::initialize()
auto filterModel = visualDatabaseDisplay->getFilterModel(); auto filterModel = visualDatabaseDisplay->getFilterModel();
saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel); saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel);
nameFilterWidget = nameFilterWidget = new VisualDatabaseDisplayNameFilterWidget(this, filterModel, deckListModel);
new VisualDatabaseDisplayNameFilterWidget(this, visualDatabaseDisplay->getDeckEditor(), filterModel);
mainTypeFilterWidget = new VisualDatabaseDisplayMainTypeFilterWidget(this, filterModel); mainTypeFilterWidget = new VisualDatabaseDisplayMainTypeFilterWidget(this, filterModel);
formatLegalityWidget = new VisualDatabaseDisplayFormatLegalityFilterWidget(this, filterModel); formatLegalityWidget = new VisualDatabaseDisplayFormatLegalityFilterWidget(this, filterModel);
subTypeFilterWidget = new VisualDatabaseDisplaySubTypeFilterWidget(this, filterModel); subTypeFilterWidget = new VisualDatabaseDisplaySubTypeFilterWidget(this, filterModel);

View file

@ -18,12 +18,14 @@ signals:
void searchModelChanged(); void searchModelChanged();
public: public:
explicit VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *parent); explicit VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *parent,
DeckListModel *deckListModel = nullptr);
void initialize(); void initialize();
void retranslateUi(); void retranslateUi();
private: private:
VisualDatabaseDisplayWidget *visualDatabaseDisplay; VisualDatabaseDisplayWidget *visualDatabaseDisplay;
DeckListModel *deckListModel;
QGroupBox *sortGroupBox; QGroupBox *sortGroupBox;
QLabel *sortByLabel; QLabel *sortByLabel;

View file

@ -8,9 +8,9 @@
#include <QHBoxLayout> #include <QHBoxLayout>
VisualDatabaseDisplayNameFilterWidget::VisualDatabaseDisplayNameFilterWidget(QWidget *parent, VisualDatabaseDisplayNameFilterWidget::VisualDatabaseDisplayNameFilterWidget(QWidget *parent,
AbstractTabDeckEditor *_deckEditor, FilterTreeModel *_filterModel,
FilterTreeModel *_filterModel) DeckListModel *deckListModel)
: QWidget(parent), deckEditor(_deckEditor), filterModel(_filterModel) : QWidget(parent), filterModel(_filterModel), deckListModel(deckListModel)
{ {
setMinimumWidth(300); setMinimumWidth(300);
setMaximumHeight(300); setMaximumHeight(300);
@ -62,8 +62,6 @@ void VisualDatabaseDisplayNameFilterWidget::retranslateUi()
void VisualDatabaseDisplayNameFilterWidget::actLoadFromDeck() void VisualDatabaseDisplayNameFilterWidget::actLoadFromDeck()
{ {
DeckListModel *deckListModel = deckEditor->deckStateManager->getModel();
if (!deckListModel) { if (!deckListModel) {
return; return;
} }

View file

@ -21,8 +21,8 @@ class VisualDatabaseDisplayNameFilterWidget : public QWidget
Q_OBJECT Q_OBJECT
public: public:
explicit VisualDatabaseDisplayNameFilterWidget(QWidget *parent, explicit VisualDatabaseDisplayNameFilterWidget(QWidget *parent,
AbstractTabDeckEditor *deckEditor, FilterTreeModel *filterModel,
FilterTreeModel *filterModel); DeckListModel *deckListModel = nullptr);
void createNameFilter(const QString &name); void createNameFilter(const QString &name);
void removeNameFilter(const QString &name); void removeNameFilter(const QString &name);
@ -34,8 +34,8 @@ public slots:
void retranslateUi(); void retranslateUi();
private: private:
AbstractTabDeckEditor *deckEditor;
FilterTreeModel *filterModel; FilterTreeModel *filterModel;
DeckListModel *deckListModel;
QVBoxLayout *layout; QVBoxLayout *layout;
QLineEdit *searchBox; QLineEdit *searchBox;
FlowWidget *flowWidget; FlowWidget *flowWidget;

View file

@ -25,7 +25,8 @@
VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent, VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
AbstractTabDeckEditor *_deckEditor, AbstractTabDeckEditor *_deckEditor,
CardDatabaseModel *database_model, CardDatabaseModel *database_model,
CardDatabaseDisplayModel *database_display_model) CardDatabaseDisplayModel *database_display_model,
DeckListModel *deckListModel)
: QWidget(parent), deckEditor(_deckEditor), databaseModel(database_model), : QWidget(parent), deckEditor(_deckEditor), databaseModel(database_model),
databaseDisplayModel(database_display_model) databaseDisplayModel(database_display_model)
{ {
@ -109,7 +110,7 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
colorFilterWidget = new VisualDatabaseDisplayColorFilterWidget(this, filterModel); colorFilterWidget = new VisualDatabaseDisplayColorFilterWidget(this, filterModel);
filterContainer = new VisualDatabaseDisplayFilterToolbarWidget(this); filterContainer = new VisualDatabaseDisplayFilterToolbarWidget(this, deckListModel);
clearFilterWidget = new QToolButton(); clearFilterWidget = new QToolButton();
clearFilterWidget->setFixedSize(32, 32); clearFilterWidget->setFixedSize(32, 32);

View file

@ -36,7 +36,8 @@ public:
explicit VisualDatabaseDisplayWidget(QWidget *parent, explicit VisualDatabaseDisplayWidget(QWidget *parent,
AbstractTabDeckEditor *deckEditor, AbstractTabDeckEditor *deckEditor,
CardDatabaseModel *database_model, CardDatabaseModel *database_model,
CardDatabaseDisplayModel *database_display_model); CardDatabaseDisplayModel *database_display_model,
DeckListModel *deckListModel = nullptr);
void retranslateUi(); void retranslateUi();
void adjustCardsPerPage(); void adjustCardsPerPage();
@ -47,11 +48,6 @@ public:
void sortCardList(const QStringList &properties, Qt::SortOrder order) const; void sortCardList(const QStringList &properties, Qt::SortOrder order) const;
void setDeckList(const DeckList &new_deck_list_model); void setDeckList(const DeckList &new_deck_list_model);
AbstractTabDeckEditor *getDeckEditor()
{
return deckEditor;
}
CardDatabaseDisplayModel *getDatabaseDisplayModel() CardDatabaseDisplayModel *getDatabaseDisplayModel()
{ {
return databaseDisplayModel; return databaseDisplayModel;