diff --git a/src/widgets/filterwidget.h b/src/widgets/filterwidget.h --- a/src/widgets/filterwidget.h +++ b/src/widgets/filterwidget.h @@ -50,6 +50,9 @@ Presentation::ArtifactFilterProxyModel *proxyModel() const; +public slots: + void clear(); + private slots: void onTextChanged(const QString &text); void onSortTypeChanged(int index); diff --git a/src/widgets/filterwidget.cpp b/src/widgets/filterwidget.cpp --- a/src/widgets/filterwidget.cpp +++ b/src/widgets/filterwidget.cpp @@ -62,6 +62,11 @@ return m_model; } +void FilterWidget::clear() +{ + ui->filterEdit->clear(); +} + void FilterWidget::onTextChanged(const QString &text) { m_model->setFilterFixedString(text); diff --git a/tests/units/widgets/filterwidgettest.cpp b/tests/units/widgets/filterwidgettest.cpp --- a/tests/units/widgets/filterwidgettest.cpp +++ b/tests/units/widgets/filterwidgettest.cpp @@ -93,6 +93,23 @@ QCOMPARE(filter.proxyModel()->filterRegExp().pattern(), QStringLiteral("find me")); } + void shouldClearFilter() + { + // GIVEN + Widgets::FilterWidget filter; + + QLineEdit *filterEdit = filter.findChild(QStringLiteral("filterEdit")); + QVERIFY(filterEdit); + filterEdit->setText("Foo"); + + // WHEN + filter.clear(); + + // THEN + QVERIFY(filterEdit->text().isEmpty()); + QVERIFY(filter.proxyModel()->filterRegExp().pattern().isEmpty()); + } + void shouldShowExtension() { // GIVEN