Update filterTree properly in case the filter is empty after modification.

This commit is contained in:
Lukas Brübach 2025-04-14 15:19:11 +02:00
parent d8e0648caf
commit 09b40bb937
6 changed files with 19 additions and 11 deletions

View file

@ -6,6 +6,12 @@
#include <QSet>
#include <QTimer>
/**
* This widget provides a graphical control element for the CardFilter::Attr::AttrColor filters applied to the filter
* model.
* @param parent The Qt Widget that this widget will parent to
* @param _filterModel The filter model that this widget will manipulate
*/
VisualDatabaseDisplayColorFilterWidget::VisualDatabaseDisplayColorFilterWidget(QWidget *parent,
FilterTreeModel *_filterModel)
: QWidget(parent), filterModel(_filterModel), layout(new QHBoxLayout(this))
@ -142,10 +148,9 @@ void VisualDatabaseDisplayColorFilterWidget::updateColorFilter()
filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false);
if (filterModel->filterTree()->nodeAt(0)) {
filterModel->filterTree()->nodeAt(0)->nodeChanged();
}
emit filterModel->filterTree()->changed();
emit filterModel->layoutChanged();
blockSync = false;
}

View file

@ -108,7 +108,7 @@ void VisualDatabaseDisplayFilterSaveLoadWidget::loadFilter(const QString &filena
filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false);
filterModel->filterTree()->nodeAt(0)->nodeChanged();
emit filterModel->filterTree()->changed();
emit filterModel->layoutChanged();
}

View file

@ -147,9 +147,7 @@ void VisualDatabaseDisplayMainTypeFilterWidget::updateMainTypeFilter()
filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false);
if (filterModel->filterTree()->nodeAt(0)) {
filterModel->filterTree()->nodeAt(0)->nodeChanged();
}
emit filterModel->filterTree()->changed();
emit filterModel->layoutChanged();
}

View file

@ -118,7 +118,10 @@ void VisualDatabaseDisplayNameFilterWidget::updateFilterModel()
filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false);
filterModel->filterTree()->nodeAt(0)->nodeChanged();
filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false);
emit filterModel->filterTree()->changed();
emit filterModel->layoutChanged();
}

View file

@ -146,9 +146,7 @@ void VisualDatabaseDisplaySetFilterWidget::updateSetFilter()
filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false);
if (filterModel->filterTree()->nodeAt(0)) {
filterModel->filterTree()->nodeAt(0)->nodeChanged();
}
emit filterModel->filterTree()->changed();
emit filterModel->layoutChanged();
}

View file

@ -1,6 +1,7 @@
#include "visual_database_display_sub_type_filter_widget.h"
#include "../../../../game/cards/card_database_manager.h"
#include "../../../../game/filters/filter_tree.h"
#include "../../../../game/filters/filter_tree_model.h"
#include <QLineEdit>
@ -151,6 +152,9 @@ void VisualDatabaseDisplaySubTypeFilterWidget::updateSubTypeFilter()
}
}
filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false);
emit filterModel->filterTree()->changed();
emit filterModel->layoutChanged();
}