X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/0bc919bd4758a84ccc0928ff784223984ec5df88..10d6556373fdbfa7b28d278657dbce47c21073aa:/src/dolphinviewcontainer.cpp
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 1e5d0f7d1..9ed7654fa 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -80,6 +80,18 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
QHBoxLayout* navigatorLayout = new QHBoxLayout(m_navigatorWidget);
navigatorLayout->setSpacing(0);
navigatorLayout->setContentsMargins(0, 0, 0, 0);
+ m_navigatorWidget->setWhatsThis(xi18nc("@info:whatsthis location bar",
+ "This line describes the location of the files and folders "
+ "displayed below.The name of the currently viewed "
+ "folder can be read at the very right. To the left of it is the "
+ "name of the folder that contains it. The whole line is called "
+ "the path to the current location because "
+ "following these folders from left to right leads here."
+ "The path is displayed on the location bar "
+ "which is more powerful than one would expect. To learn more "
+ "about the basic and advanced features of the location bar "
+ "click here. "
+ "This will open the dedicated page in the Handbook."));
m_urlNavigator = new KUrlNavigator(DolphinPlacesModelSingleton::instance().placesModel(), url, this);
connect(m_urlNavigator, &KUrlNavigator::activated,
@@ -107,6 +119,18 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
connect(m_searchBox, &DolphinSearchBox::closeRequest, this, &DolphinViewContainer::closeSearchBox);
connect(m_searchBox, &DolphinSearchBox::searchRequest, this, &DolphinViewContainer::startSearching);
connect(m_searchBox, &DolphinSearchBox::returnPressed, this, &DolphinViewContainer::requestFocus);
+ m_searchBox->setWhatsThis(xi18nc("@info:whatsthis findbar",
+ "This helps you find files and folders. Enter a "
+ "search term and specify search settings with the "
+ "buttons at the bottom:Filename/Content: "
+ "Does the item you are looking for contain the search terms "
+ "within its filename or its contents?The contents of images, "
+ "audio files and videos will not be searched."
+ "From Here/Everywhere: Do you want to search in this "
+ "folder and its sub-folders or everywhere?"
+ "More Options: Click this to search by media type, access "
+ "time or rating.More Search Tools: Install other "
+ "means to find an item."));
m_messageWidget = new KMessageWidget(this);
m_messageWidget->setCloseButtonVisible(true);
@@ -361,6 +385,14 @@ bool DolphinViewContainer::isFilterBarVisible() const
void DolphinViewContainer::setSearchModeEnabled(bool enabled)
{
+ m_searchBox->setVisible(enabled);
+ m_navigatorWidget->setVisible(!enabled);
+
+ if (enabled) {
+ const QUrl& locationUrl = m_urlNavigator->locationUrl();
+ m_searchBox->fromSearchUrl(locationUrl);
+ }
+
if (enabled == isSearchModeEnabled()) {
if (enabled && !m_searchBox->hasFocus()) {
m_searchBox->setFocus();
@@ -369,13 +401,7 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
return;
}
- m_searchBox->setVisible(enabled);
- m_navigatorWidget->setVisible(!enabled);
-
- if (enabled) {
- const QUrl& locationUrl = m_urlNavigator->locationUrl();
- m_searchBox->fromSearchUrl(locationUrl);
- } else {
+ if (!enabled) {
m_view->setViewPropertiesContext(QString());
// Restore the URL for the URL navigator. If Dolphin has been
@@ -388,6 +414,8 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
}
m_searchModeEnabled = enabled;
+
+ emit searchModeEnabledChanged(enabled);
}
bool DolphinViewContainer::isSearchModeEnabled() const
@@ -402,7 +430,7 @@ QString DolphinViewContainer::placesText() const
if (isSearchModeEnabled()) {
text = i18n("Search for %1 in %2", m_searchBox->text(), m_searchBox->searchPath().fileName());
} else {
- text = url().fileName();
+ text = url().adjusted(QUrl::StripTrailingSlash).fileName();
if (text.isEmpty()) {
text = url().host();
}
@@ -430,7 +458,7 @@ QString DolphinViewContainer::caption() const
}
KFilePlacesModel *placesModel = DolphinPlacesModelSingleton::instance().placesModel();
- const auto& matchedPlaces = placesModel->match(placesModel->index(0,0), KFilePlacesModel::UrlRole, url(), 1, Qt::MatchExactly);
+ const auto& matchedPlaces = placesModel->match(placesModel->index(0,0), KFilePlacesModel::UrlRole, QUrl(url().adjusted(QUrl::StripTrailingSlash).toString(QUrl::FullyEncoded).append("/?")), 1, Qt::MatchRegExp);
if (!matchedPlaces.isEmpty()) {
return placesModel->text(matchedPlaces.first());
@@ -482,6 +510,7 @@ void DolphinViewContainer::setFilterBarVisible(bool visible)
{
Q_ASSERT(m_filterBar);
if (visible) {
+ m_view->hideToolTip(ToolTipManager::HideBehavior::Instantly);
m_filterBar->show();
m_filterBar->setFocus();
m_filterBar->selectAll();
@@ -542,6 +571,7 @@ void DolphinViewContainer::slotDirectoryLoadingStarted()
// Trigger an undetermined progress indication. The progress
// information in percent will be triggered by the percent() signal
// of the directory lister later.
+ m_statusBar->setProgressText(QString());
updateDirectoryLoadingProgress(-1);
}
}
@@ -630,6 +660,7 @@ void DolphinViewContainer::closeFilterBar()
void DolphinViewContainer::setNameFilter(const QString& nameFilter)
{
+ m_view->hideToolTip(ToolTipManager::HideBehavior::Instantly);
m_view->setNameFilter(nameFilter);
delayedStatusBarUpdate();
}
@@ -672,7 +703,7 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl& url)
app = browser;
if (app.startsWith('!')) {
// a literal command has been configured, remove the '!' prefix
- app = app.mid(1);
+ app.remove(0, 1);
}
}
} else {
@@ -697,7 +728,7 @@ void DolphinViewContainer::slotUrlSelectionRequested(const QUrl& url)
void DolphinViewContainer::redirect(const QUrl& oldUrl, const QUrl& newUrl)
{
- Q_UNUSED(oldUrl);
+ Q_UNUSED(oldUrl)
const bool block = m_urlNavigator->signalsBlocked();
m_urlNavigator->blockSignals(true);
@@ -760,7 +791,7 @@ void DolphinViewContainer::showErrorMessage(const QString& msg)
bool DolphinViewContainer::isSearchUrl(const QUrl& url) const
{
- return url.scheme().contains(QStringLiteral("search"));
+ return url.scheme().contains(QLatin1String("search"));
}
void DolphinViewContainer::saveViewState()