X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/4c9952683a7f977402353f1b9a3fd5271e51740e..8fa3e7c14521199390af02b08b4086a3da71f60c:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 9af1bc926..0681c67d9 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -50,6 +50,7 @@ #include #include #include +#include DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : QWidget(parent), @@ -385,6 +386,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(); @@ -393,13 +402,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 @@ -446,22 +449,20 @@ void DolphinViewContainer::reload() m_messageWidget->hide(); } -QString DolphinViewContainer::caption() const +QString DolphinViewContainer::captionWindowTitle() const { - if (GeneralSettings::showFullPathInTitlebar()) { + if (GeneralSettings::showFullPathInTitlebar() && !isSearchModeEnabled()) { if (!url().isLocalFile()) { return url().adjusted(QUrl::StripTrailingSlash).toString(); } return url().adjusted(QUrl::StripTrailingSlash).path(); + } else { + return DolphinViewContainer::caption(); } +} - KFilePlacesModel *placesModel = DolphinPlacesModelSingleton::instance().placesModel(); - const auto& matchedPlaces = placesModel->match(placesModel->index(0,0), KFilePlacesModel::UrlRole, url(), 1, Qt::MatchExactly); - - if (!matchedPlaces.isEmpty()) { - return placesModel->text(matchedPlaces.first()); - } - +QString DolphinViewContainer::caption() const +{ if (isSearchModeEnabled()) { if (currentSearchText().isEmpty()){ return i18n("Search"); @@ -470,6 +471,14 @@ QString DolphinViewContainer::caption() const } } + KFilePlacesModel *placesModel = DolphinPlacesModelSingleton::instance().placesModel(); + 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()); + } + + if (!url().isLocalFile()) { QUrl adjustedUrl = url().adjusted(QUrl::StripTrailingSlash); QString caption; @@ -508,6 +517,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(); @@ -657,6 +667,7 @@ void DolphinViewContainer::closeFilterBar() void DolphinViewContainer::setNameFilter(const QString& nameFilter) { + m_view->hideToolTip(ToolTipManager::HideBehavior::Instantly); m_view->setNameFilter(nameFilter); delayedStatusBarUpdate(); } @@ -687,30 +698,18 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl& url) QTimer::singleShot(0, this, &DolphinViewContainer::requestFocus); } } else if (KProtocolManager::isSourceProtocol(url)) { - QString app = QStringLiteral("konqueror"); if (url.scheme().startsWith(QLatin1String("http"))) { showMessage(i18nc("@info:status", // krazy:exclude=qmethods "Dolphin does not support web pages, the web browser has been launched"), Information); - - const KConfigGroup config(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), "General"); - const QString browser = config.readEntry("BrowserApplication"); - if (!browser.isEmpty()) { - app = browser; - if (app.startsWith('!')) { - // a literal command has been configured, remove the '!' prefix - app.remove(0, 1); - } - } } else { showMessage(i18nc("@info:status", - "Protocol not supported by Dolphin, Konqueror has been launched"), + "Protocol not supported by Dolphin, default application has been launched"), Information); } - const QString secureUrl = KShell::quoteArg(url.toDisplayString(QUrl::PreferLocalFile)); - const QString command = app + ' ' + secureUrl; - KRun::runCommand(command, app, app, this); + QDesktopServices::openUrl(url); + redirect(QUrl(), m_urlNavigator->locationUrl(1)); } else { showMessage(i18nc("@info:status", "Invalid protocol"), Error); } @@ -724,7 +723,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);