[dolphin/search] Reset search options when needed

Summary:
Adds a method to reset the options in `facetsWidget` in two cases: when disabled and before parsing a new search URL.
Otherwise, controls for a parameter (ex. `rating`) which are not found in the new URL would stay on the old positions, instead of the default "any".
See D24422

Test Plan: Controls on `facetsWidget` go back to the default in such two cases.

Reviewers: #dolphin, elvisangelaccio, meven, ngraham

Reviewed By: ngraham

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D24450
This commit is contained in:
Ismael Asensio 2019-10-20 11:51:59 +02:00 committed by Elvis Angelaccio
parent 167d5184ed
commit c540b4eef1
3 changed files with 24 additions and 3 deletions

View file

@ -24,6 +24,7 @@
#include <QButtonGroup>
#include <QCheckBox>
#include <QDate>
#include <QEvent>
#include <QHBoxLayout>
#include <QRadioButton>
@ -106,15 +107,27 @@ DolphinFacetsWidget::DolphinFacetsWidget(QWidget* parent) :
topLayout->addLayout(ratingLayout);
topLayout->addStretch();
m_anyType->setChecked(true);
m_anytime->setChecked(true);
m_anyRating->setChecked(true);
resetOptions();
}
DolphinFacetsWidget::~DolphinFacetsWidget()
{
}
void DolphinFacetsWidget::changeEvent(QEvent *event)
{
if (event->type() == QEvent::EnabledChange && !isEnabled()) {
resetOptions();
}
}
void DolphinFacetsWidget::resetOptions()
{
m_anyType->setChecked(true);
m_anytime->setChecked(true);
m_anyRating->setChecked(true);
}
QString DolphinFacetsWidget::ratingTerm() const
{
QStringList terms;

View file

@ -24,6 +24,7 @@
class QButtonGroup;
class QDate;
class QEvent;
class QRadioButton;
/**
@ -50,6 +51,8 @@ public:
explicit DolphinFacetsWidget(QWidget* parent = nullptr);
~DolphinFacetsWidget() override;
void resetOptions();
QString ratingTerm() const;
QString facetType() const;
@ -61,6 +64,9 @@ public:
signals:
void facetChanged();
protected:
void changeEvent(QEvent* event) override;
private:
void setRating(const int stars);
void setTimespan(const QDate& date);

View file

@ -526,6 +526,8 @@ void DolphinSearchBox::fromBalooSearchUrl(const QUrl& url)
setSearchPath(QUrl::fromLocalFile(QDir::homePath()));
}
m_facetsWidget->resetOptions();
setText(query.searchString());
QStringList types = query.types();