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);
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->setButtonIcon(QPixmap("theme:icons/lock"));
saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel);
quickFilterNameWidget = new SettingsButtonWidget(this);
quickFilterNameWidget->setButtonIcon(QPixmap("theme:icons/rename"));
@ -122,6 +128,7 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
filterContainerLayout->addWidget(quickFilterSetWidget);
searchLayout->addWidget(colorFilterWidget);
searchLayout->addWidget(clearFilterWidget);
searchLayout->addWidget(searchEdit);
mainLayout->addWidget(searchContainer);

View file

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

View file

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

View file

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