Add a button to quickly clear all filters, correctly emit signals in filter tree when clearing. (#5835)

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2025-04-16 14:32:57 +02:00 committed by GitHub
parent 42c56898d5
commit 67db245aea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 11 additions and 0 deletions

View file

@ -95,8 +95,14 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
filterContainerLayout = new QHBoxLayout(filterContainer); filterContainerLayout = new QHBoxLayout(filterContainer);
filterContainer->setLayout(filterContainerLayout); filterContainer->setLayout(filterContainerLayout);
clearFilterWidget = new QToolButton();
clearFilterWidget->setFixedSize(32, 32);
clearFilterWidget->setIcon(QPixmap("theme:icons/delete"));
connect(clearFilterWidget, &QToolButton::clicked, this, [this] { filterModel->clear(); });
quickFilterSaveLoadWidget = new SettingsButtonWidget(this); quickFilterSaveLoadWidget = new SettingsButtonWidget(this);
quickFilterSaveLoadWidget->setButtonIcon(QPixmap("theme:icons/lock")); quickFilterSaveLoadWidget->setButtonIcon(QPixmap("theme:icons/lock"));
saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel); saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel);
quickFilterNameWidget = new SettingsButtonWidget(this); quickFilterNameWidget = new SettingsButtonWidget(this);
quickFilterNameWidget->setButtonIcon(QPixmap("theme:icons/rename")); quickFilterNameWidget->setButtonIcon(QPixmap("theme:icons/rename"));
@ -122,6 +128,7 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
filterContainerLayout->addWidget(quickFilterSetWidget); filterContainerLayout->addWidget(quickFilterSetWidget);
searchLayout->addWidget(colorFilterWidget); searchLayout->addWidget(colorFilterWidget);
searchLayout->addWidget(clearFilterWidget);
searchLayout->addWidget(searchEdit); searchLayout->addWidget(searchEdit);
mainLayout->addWidget(searchContainer); mainLayout->addWidget(searchContainer);

View file

@ -69,6 +69,7 @@ protected slots:
void updateSearch(const QString &search) const; void updateSearch(const QString &search) const;
private: private:
QToolButton *clearFilterWidget;
QWidget *filterContainer; QWidget *filterContainer;
QHBoxLayout *filterContainerLayout; QHBoxLayout *filterContainerLayout;
SettingsButtonWidget *quickFilterSaveLoadWidget; SettingsButtonWidget *quickFilterSaveLoadWidget;

View file

@ -536,4 +536,5 @@ void FilterTree::clear()
while (childCount() > 0) { while (childCount() > 0) {
deleteAt(0); deleteAt(0);
} }
emit changed();
} }

View file

@ -316,5 +316,7 @@ bool FilterTreeModel::removeRows(int row, int count, const QModelIndex &parent)
void FilterTreeModel::clear() void FilterTreeModel::clear()
{ {
emit layoutAboutToBeChanged();
fTree->clear(); fTree->clear();
emit layoutChanged();
} }