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 <QSet>
#include <QTimer> #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, VisualDatabaseDisplayColorFilterWidget::VisualDatabaseDisplayColorFilterWidget(QWidget *parent,
FilterTreeModel *_filterModel) FilterTreeModel *_filterModel)
: QWidget(parent), filterModel(_filterModel), layout(new QHBoxLayout(this)) : QWidget(parent), filterModel(_filterModel), layout(new QHBoxLayout(this))
@ -142,10 +148,9 @@ void VisualDatabaseDisplayColorFilterWidget::updateColorFilter()
filterModel->blockSignals(false); filterModel->blockSignals(false);
filterModel->filterTree()->blockSignals(false); filterModel->filterTree()->blockSignals(false);
if (filterModel->filterTree()->nodeAt(0)) { emit filterModel->filterTree()->changed();
filterModel->filterTree()->nodeAt(0)->nodeChanged();
}
emit filterModel->layoutChanged(); emit filterModel->layoutChanged();
blockSync = false; blockSync = false;
} }

View file

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

View file

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

View file

@ -118,7 +118,10 @@ void VisualDatabaseDisplayNameFilterWidget::updateFilterModel()
filterModel->blockSignals(false); filterModel->blockSignals(false);
filterModel->filterTree()->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(); emit filterModel->layoutChanged();
} }

View file

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

View file

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