Sync up Visual Deck Editor group by combo box to Deck Editor Dock Widget combo box. (#6291)

Took 21 minutes

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2025-11-09 01:18:31 +01:00 committed by GitHub
parent 7e6cad974f
commit aeec56f800
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 35 additions and 7 deletions

View file

@ -41,6 +41,10 @@ public:
{ {
return nameEdit->text().simplified(); return nameEdit->text().simplified();
} }
QComboBox *getGroupByComboBox()
{
return activeGroupCriteriaComboBox;
}
public slots: public slots:
void cleanDeck(); void cleanDeck();

View file

@ -124,6 +124,11 @@ public:
*/ */
void setModified(bool _windowModified); void setModified(bool _windowModified);
DeckEditorDeckDockWidget *getDeckDockWidget() const
{
return deckDockWidget;
}
// UI Elements // UI Elements
DeckEditorMenu *deckMenu; ///< Menu for deck operations DeckEditorMenu *deckMenu; ///< Menu for deck operations
DeckEditorDatabaseDisplayWidget *databaseDisplayDockWidget; ///< Database dock DeckEditorDatabaseDisplayWidget *databaseDisplayDockWidget; ///< Database dock

View file

@ -6,6 +6,8 @@
#include "../cards/deck_card_zone_display_widget.h" #include "../cards/deck_card_zone_display_widget.h"
#include "../general/layout_containers/flow_widget.h" #include "../general/layout_containers/flow_widget.h"
#include "../general/layout_containers/overlap_control_widget.h" #include "../general/layout_containers/overlap_control_widget.h"
#include "../tabs/visual_deck_editor/tab_deck_editor_visual.h"
#include "../tabs/visual_deck_editor/tab_deck_editor_visual_tab_widget.h"
#include <QCheckBox> #include <QCheckBox>
#include <QCompleter> #include <QCompleter>
@ -119,13 +121,30 @@ VisualDeckEditorWidget::VisualDeckEditorWidget(QWidget *parent, DeckListModel *_
groupAndSortLayout->setAlignment(Qt::AlignLeft); groupAndSortLayout->setAlignment(Qt::AlignLeft);
groupAndSortContainer->setLayout(groupAndSortLayout); groupAndSortContainer->setLayout(groupAndSortLayout);
groupByComboBox = new QComboBox(); groupByComboBox = new QComboBox(this);
QStringList groupProperties = {"maintype", "colors", "cmc", "name"}; if (auto tabWidget = qobject_cast<TabDeckEditorVisualTabWidget *>(parent)) {
groupByComboBox->addItems(groupProperties); // Inside a central widget QWidget container inside TabDeckEditorVisual
groupByComboBox->setMinimumWidth(300); if (auto tab = qobject_cast<TabDeckEditorVisual *>(tabWidget->parent()->parent())) {
connect(groupByComboBox, QOverload<const QString &>::of(&QComboBox::currentTextChanged), this, auto originalBox = tab->getDeckDockWidget()->getGroupByComboBox();
&VisualDeckEditorWidget::actChangeActiveGroupCriteria); groupByComboBox->setModel(originalBox->model());
actChangeActiveGroupCriteria(); groupByComboBox->setModelColumn(originalBox->modelColumn());
// Original -> clone
connect(originalBox, QOverload<int>::of(&QComboBox::currentIndexChanged),
[this](int index) { groupByComboBox->setCurrentIndex(index); });
// Clone -> original
connect(groupByComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),
[originalBox](int index) { originalBox->setCurrentIndex(index); });
}
} else {
QStringList groupProperties = {"maintype", "colors", "cmc", "name"};
groupByComboBox->addItems(groupProperties);
groupByComboBox->setMinimumWidth(300);
connect(groupByComboBox, QOverload<const QString &>::of(&QComboBox::currentTextChanged), this,
&VisualDeckEditorWidget::actChangeActiveGroupCriteria);
actChangeActiveGroupCriteria();
}
sortCriteriaButton = new SettingsButtonWidget(this); sortCriteriaButton = new SettingsButtonWidget(this);