Refactor some constructor things to their own methods.

This commit is contained in:
Lukas Brübach 2025-12-20 16:19:48 +01:00
parent 7f1d891e26
commit 9e53f16e2f
2 changed files with 52 additions and 21 deletions

View file

@ -38,6 +38,32 @@ VisualDeckEditorWidget::VisualDeckEditorWidget(QWidget *parent,
mainLayout->setContentsMargins(9, 0, 9, 5); mainLayout->setContentsMargins(9, 0, 9, 5);
mainLayout->setSpacing(0); mainLayout->setSpacing(0);
initializeDisplayOptionsAndSearchWidget();
initializeScrollAreaAndZoneContainer();
cardSizeWidget = new CardSizeWidget(this, nullptr, SettingsCache::instance().getVisualDeckEditorCardSize());
connect(cardSizeWidget, &CardSizeWidget::cardSizeSettingUpdated, &SettingsCache::instance(),
&SettingsCache::setVisualDeckEditorCardSize);
mainLayout->addWidget(displayOptionsAndSearch);
mainLayout->addWidget(scrollArea);
mainLayout->addWidget(cardSizeWidget);
connectDeckListModel();
constructZoneWidgetsFromDeckListModel();
if (selectionModel) {
connect(selectionModel, &QItemSelectionModel::selectionChanged, this,
&VisualDeckEditorWidget::onSelectionChanged);
}
retranslateUi();
}
void VisualDeckEditorWidget::initializeSearchBarAndCompleter()
{
searchBar = new QLineEdit(this); searchBar = new QLineEdit(this);
connect(searchBar, &QLineEdit::returnPressed, this, [=, this]() { connect(searchBar, &QLineEdit::returnPressed, this, [=, this]() {
if (!searchBar->hasFocus()) if (!searchBar->hasFocus())
@ -109,12 +135,10 @@ VisualDeckEditorWidget::VisualDeckEditorWidget(QWidget *parent,
emit cardAdditionRequested(card); emit cardAdditionRequested(card);
} }
}); });
}
displayOptionsAndSearch = new QWidget(this); void VisualDeckEditorWidget::initializeDisplayOptionsWidget()
displayOptionsAndSearchLayout = new QHBoxLayout(displayOptionsAndSearch); {
displayOptionsAndSearchLayout->setAlignment(Qt::AlignLeft);
displayOptionsAndSearch->setLayout(displayOptionsAndSearchLayout);
displayOptionsWidget = new VisualDeckDisplayOptionsWidget(this); displayOptionsWidget = new VisualDeckDisplayOptionsWidget(this);
connect(displayOptionsWidget, &VisualDeckDisplayOptionsWidget::displayTypeChanged, this, connect(displayOptionsWidget, &VisualDeckDisplayOptionsWidget::displayTypeChanged, this,
&VisualDeckEditorWidget::displayTypeChanged); &VisualDeckEditorWidget::displayTypeChanged);
@ -122,11 +146,26 @@ VisualDeckEditorWidget::VisualDeckEditorWidget(QWidget *parent,
&VisualDeckEditorWidget::activeGroupCriteriaChanged); &VisualDeckEditorWidget::activeGroupCriteriaChanged);
connect(displayOptionsWidget, &VisualDeckDisplayOptionsWidget::sortCriteriaChanged, this, connect(displayOptionsWidget, &VisualDeckDisplayOptionsWidget::sortCriteriaChanged, this,
&VisualDeckEditorWidget::activeSortCriteriaChanged); &VisualDeckEditorWidget::activeSortCriteriaChanged);
}
void VisualDeckEditorWidget::initializeDisplayOptionsAndSearchWidget()
{
initializeSearchBarAndCompleter();
initializeDisplayOptionsWidget();
displayOptionsAndSearch = new QWidget(this);
displayOptionsAndSearchLayout = new QHBoxLayout(displayOptionsAndSearch);
displayOptionsAndSearchLayout->setAlignment(Qt::AlignLeft);
displayOptionsAndSearch->setLayout(displayOptionsAndSearchLayout);
displayOptionsAndSearchLayout->addWidget(displayOptionsWidget); displayOptionsAndSearchLayout->addWidget(displayOptionsWidget);
displayOptionsAndSearchLayout->addWidget(searchBar); displayOptionsAndSearchLayout->addWidget(searchBar);
displayOptionsAndSearchLayout->addWidget(searchPushButton); displayOptionsAndSearchLayout->addWidget(searchPushButton);
}
void VisualDeckEditorWidget::initializeScrollAreaAndZoneContainer()
{
scrollArea = new QScrollArea(this); scrollArea = new QScrollArea(this);
scrollArea->setWidgetResizable(true); scrollArea->setWidgetResizable(true);
scrollArea->setMinimumSize(0, 0); scrollArea->setMinimumSize(0, 0);
@ -140,27 +179,14 @@ VisualDeckEditorWidget::VisualDeckEditorWidget(QWidget *parent,
zoneContainer->setLayout(zoneContainerLayout); zoneContainer->setLayout(zoneContainerLayout);
scrollArea->addScrollBarWidget(zoneContainer, Qt::AlignHCenter); scrollArea->addScrollBarWidget(zoneContainer, Qt::AlignHCenter);
scrollArea->setWidget(zoneContainer); scrollArea->setWidget(zoneContainer);
}
cardSizeWidget = new CardSizeWidget(this, nullptr, SettingsCache::instance().getVisualDeckEditorCardSize()); void VisualDeckEditorWidget::connectDeckListModel()
connect(cardSizeWidget, &CardSizeWidget::cardSizeSettingUpdated, &SettingsCache::instance(), {
&SettingsCache::setVisualDeckEditorCardSize);
mainLayout->addWidget(displayOptionsAndSearch);
mainLayout->addWidget(scrollArea);
mainLayout->addWidget(cardSizeWidget);
connect(deckListModel, &DeckListModel::modelReset, this, &VisualDeckEditorWidget::decklistModelReset); connect(deckListModel, &DeckListModel::modelReset, this, &VisualDeckEditorWidget::decklistModelReset);
connect(deckListModel, &DeckListModel::dataChanged, this, &VisualDeckEditorWidget::decklistDataChanged); connect(deckListModel, &DeckListModel::dataChanged, this, &VisualDeckEditorWidget::decklistDataChanged);
connect(deckListModel, &QAbstractItemModel::rowsInserted, this, &VisualDeckEditorWidget::onCardAddition); connect(deckListModel, &QAbstractItemModel::rowsInserted, this, &VisualDeckEditorWidget::onCardAddition);
connect(deckListModel, &QAbstractItemModel::rowsRemoved, this, &VisualDeckEditorWidget::onCardRemoval); connect(deckListModel, &QAbstractItemModel::rowsRemoved, this, &VisualDeckEditorWidget::onCardRemoval);
constructZoneWidgetsFromDeckListModel();
if (selectionModel) {
connect(selectionModel, &QItemSelectionModel::selectionChanged, this,
&VisualDeckEditorWidget::onSelectionChanged);
}
retranslateUi();
} }
void VisualDeckEditorWidget::retranslateUi() void VisualDeckEditorWidget::retranslateUi()

View file

@ -37,6 +37,11 @@ class VisualDeckEditorWidget : public QWidget
public: public:
explicit VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel); explicit VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel);
void initializeSearchBarAndCompleter();
void initializeDisplayOptionsWidget();
void initializeDisplayOptionsAndSearchWidget();
void initializeScrollAreaAndZoneContainer();
void connectDeckListModel();
void retranslateUi(); void retranslateUi();
void clearAllDisplayWidgets(); void clearAllDisplayWidgets();
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;