From: Kai Uwe Broulik Date: Tue, 29 Aug 2017 15:15:24 +0000 (+0200) Subject: Prefer place name over actual name in title bar X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/652f57d28152491c42ad740d2bacd12a12d3d3d7 Prefer place name over actual name in title bar When inside a place, the address bar already gives it precedence over the actual folder name. By doing this in the title bar also, we make it consistent and can mask ugly technical terminology like "trash:/" and instead show the nice localized "Trash" place name as well as "Home" instead of lowercase internal user name. BUG: 211959 Differential Revision: https://phabricator.kde.org/D4826 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index ff834700b..3df25001c 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -62,6 +62,7 @@ #include #include #include +#include #include #include #include @@ -962,26 +963,35 @@ void DolphinMainWindow::tabCountChanged(int count) void DolphinMainWindow::setUrlAsCaption(const QUrl& url) { - QString caption; + static KFilePlacesModel s_placesModel; + + QString schemePrefix; if (!url.isLocalFile()) { - caption.append(url.scheme() + " - "); + schemePrefix.append(url.scheme() + " - "); if (!url.host().isEmpty()) { - caption.append(url.host() + " - "); + schemePrefix.append(url.host() + " - "); } } if (GeneralSettings::showFullPathInTitlebar()) { const QString path = url.adjusted(QUrl::StripTrailingSlash).path(); - caption.append(path); - } else { - QString fileName = url.adjusted(QUrl::StripTrailingSlash).fileName(); - if (fileName.isEmpty()) { - fileName = '/'; - } - caption.append(fileName); + setWindowTitle(schemePrefix + path); + return; + } + + const auto& matchedPlaces = s_placesModel.match(s_placesModel.index(0,0), KFilePlacesModel::UrlRole, url, 1, Qt::MatchExactly); + + if (!matchedPlaces.isEmpty()) { + setWindowTitle(s_placesModel.text(matchedPlaces.first())); + return; + } + + QString fileName = url.adjusted(QUrl::StripTrailingSlash).fileName(); + if (fileName.isEmpty()) { + fileName = '/'; } - setWindowTitle(caption); + setWindowTitle(schemePrefix + fileName); } void DolphinMainWindow::setupActions()