Get rid of search "More Options" toggle button

Summary:
With the new compact search filters (type/date/rating) it makes sense to show these options whenever available, and save some horizontal space on the main bar (specially for verbose languages).
These options will be hidden nevertheless if the search is non-indexed or Baloo is disabled.
For some nicer aesthetics D25029 should be also applied.

CCBUG: 386754

Test Plan:
Current: {F7681182}
After: {F7687380}
Along with D25029: {F7687385}

Reviewers: elvisangelaccio, ngraham, #dolphin, #vdg

Reviewed By: ngraham, #vdg

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D25057
This commit is contained in:
Ismael Asensio 2019-11-03 23:00:36 +01:00 committed by Elvis Angelaccio
parent 5338054145
commit 54bd267eb9
3 changed files with 6 additions and 62 deletions

View file

@ -14,9 +14,5 @@
<label>What</label>
<default>FileName</default>
</entry>
<entry name="ShowFacetsWidget" type="Bool">
<label>Show facets widget</label>
<default>false</default>
</entry>
</group>
</kcfg>

View file

@ -57,7 +57,6 @@ DolphinSearchBox::DolphinSearchBox(QWidget* parent) :
m_separator(nullptr),
m_fromHereButton(nullptr),
m_everywhereButton(nullptr),
m_facetsToggleButton(nullptr),
m_facetsWidget(nullptr),
m_searchPath(),
m_startSearchTimer(nullptr)
@ -158,7 +157,7 @@ void DolphinSearchBox::fromSearchUrl(const QUrl& url)
setSearchPath(url);
}
setFacetsVisible(SearchSettings::showFacetsWidget());
updateFacetsVisible();
}
void DolphinSearchBox::selectAll()
@ -196,7 +195,6 @@ void DolphinSearchBox::showEvent(QShowEvent* event)
m_searchInput->setFocus();
m_startedSearching = false;
}
updateFacetsToggleButton();
}
void DolphinSearchBox::hideEvent(QHideEvent* event)
@ -283,11 +281,6 @@ void DolphinSearchBox::slotReturnPressed()
emit returnPressed();
}
void DolphinSearchBox::slotFacetsButtonToggled()
{
setFacetsVisible(m_facetsToggleButton->isChecked());
}
void DolphinSearchBox::slotFacetChanged()
{
m_startedSearching = true;
@ -330,16 +323,13 @@ void DolphinSearchBox::loadSettings()
m_fileNameButton->setChecked(true);
}
setFacetsVisible(SearchSettings::showFacetsWidget());
updateFacetsVisible();
}
void DolphinSearchBox::saveSettings()
{
SearchSettings::setLocation(m_fromHereButton->isChecked() ? QStringLiteral("FromHere") : QStringLiteral("Everywhere"));
SearchSettings::setWhat(m_fileNameButton->isChecked() ? QStringLiteral("FileName") : QStringLiteral("Content"));
if (isIndexingEnabled()) {
SearchSettings::setShowFacetsWidget(m_facetsToggleButton->isChecked());
}
SearchSettings::self()->save();
}
@ -423,12 +413,7 @@ void DolphinSearchBox::init()
m_menuFactory->fillMenuFromGroupingNames(moreSearchToolsButton->menu(), { "files-find" }, this->m_searchPath);
} );
// Create "Facets" widgets
m_facetsToggleButton = new QToolButton(this);
m_facetsToggleButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
initButton(m_facetsToggleButton);
connect(m_facetsToggleButton, &QToolButton::clicked, this, &DolphinSearchBox::slotFacetsButtonToggled);
// Create "Facets" widget
m_facetsWidget = new DolphinFacetsWidget(this);
m_facetsWidget->installEventFilter(this);
m_facetsWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
@ -443,7 +428,6 @@ void DolphinSearchBox::init()
optionsLayout->addWidget(m_fromHereButton);
optionsLayout->addWidget(m_everywhereButton);
optionsLayout->addWidget(new KSeparator(Qt::Vertical, this));
optionsLayout->addWidget(m_facetsToggleButton);
optionsLayout->addWidget(moreSearchToolsButton);
optionsLayout->addStretch(1);
@ -552,44 +536,11 @@ void DolphinSearchBox::fromBalooSearchUrl(const QUrl& url)
#endif
}
void DolphinSearchBox::setFacetsVisible(bool visible)
void DolphinSearchBox::updateFacetsVisible()
{
const bool indexingEnabled = isIndexingEnabled();
m_facetsWidget->setEnabled(indexingEnabled);
m_facetsWidget->setVisible(indexingEnabled && visible);
updateFacetsToggleButton();
}
void DolphinSearchBox::updateFacetsToggleButton()
{
const bool facetsEnabled = m_facetsWidget->isEnabled();
const bool facetsVisible = m_facetsWidget->isVisible();
m_facetsToggleButton->setEnabled(facetsEnabled);
m_facetsToggleButton->setChecked(facetsVisible);
m_facetsToggleButton->setIcon(QIcon::fromTheme(
facetsVisible ? QStringLiteral("arrow-up-double") :
QStringLiteral("arrow-down-double")));
m_facetsToggleButton->setText(
facetsVisible ? i18nc("@action:button", "Fewer Options") :
i18nc("@action:button", "More Options"));
if (facetsEnabled) {
m_facetsToggleButton->setToolTip(QString());
} else {
#ifdef HAVE_BALOO
const Baloo::IndexerConfig searchInfo;
if (!searchInfo.fileIndexingEnabled()) {
m_facetsToggleButton->setToolTip(i18nc("@info:tooltip", "Advanced search options are not available because the file indexing service is disabled."));
} else {
m_facetsToggleButton->setToolTip(i18nc("@info:tooltip", "Advanced search options are not available because this location is not indexed."));
}
#else
m_facetsToggleButton->setToolTip(i18nc("@info:tooltip", "Advanced search options are not available because this version of Dolphin does not support the Baloo file indexer."));
#endif
}
m_facetsWidget->setVisible(indexingEnabled);
}
bool DolphinSearchBox::isIndexingEnabled() const

View file

@ -137,7 +137,6 @@ private slots:
void slotConfigurationChanged();
void slotSearchTextChanged(const QString& text);
void slotReturnPressed();
void slotFacetsButtonToggled();
void slotFacetChanged();
void slotSearchSaved();
@ -158,8 +157,7 @@ private:
*/
void fromBalooSearchUrl(const QUrl& url);
void setFacetsVisible(bool visible);
void updateFacetsToggleButton();
void updateFacetsVisible();
bool isIndexingEnabled() const;
@ -177,7 +175,6 @@ private:
KSeparator* m_separator;
QToolButton* m_fromHereButton;
QToolButton* m_everywhereButton;
QToolButton* m_facetsToggleButton;
DolphinFacetsWidget* m_facetsWidget;
QUrl m_searchPath;