X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/03bff8361a8e0ecde758a2b3369cbff685c6aa08..bf11c835ebd934d9916327262f23edb25aeb8ab8:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 3a17805ab..b1b67447f 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -1,21 +1,8 @@ -/*************************************************************************** - * Copyright (C) 2007 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2007 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #include "dolphinviewcontainer.h" @@ -29,6 +16,7 @@ #include "trash/dolphintrash.h" #include "views/viewmodecontroller.h" #include "views/viewproperties.h" +#include "dolphin_detailsmodesettings.h" #ifdef HAVE_KACTIVITIES #include @@ -36,13 +24,13 @@ #include #include #include +#include +#include #include #include #include -#include #include #include -#include #include #include @@ -119,7 +107,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : connect(m_searchBox, &DolphinSearchBox::activated, this, &DolphinViewContainer::activate); connect(m_searchBox, &DolphinSearchBox::closeRequest, this, &DolphinViewContainer::closeSearchBox); connect(m_searchBox, &DolphinSearchBox::searchRequest, this, &DolphinViewContainer::startSearching); - connect(m_searchBox, &DolphinSearchBox::returnPressed, this, &DolphinViewContainer::requestFocus); + connect(m_searchBox, &DolphinSearchBox::focusViewRequest, 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 " @@ -249,6 +237,12 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : setSearchModeEnabled(isSearchUrl(url)); + connect(DetailsModeSettings::self(), &KCoreConfigSkeleton::configChanged, this, [=]() { + if (view()->mode() == DolphinView::Mode::DetailsView) { + view()->reload(); + } + }); + // Initialize kactivities resource instance #ifdef HAVE_KACTIVITIES @@ -416,7 +410,7 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled) m_searchModeEnabled = enabled; - emit searchModeEnabledChanged(enabled); + Q_EMIT searchModeEnabledChanged(enabled); } bool DolphinViewContainer::isSearchModeEnabled() const @@ -449,6 +443,18 @@ void DolphinViewContainer::reload() m_messageWidget->hide(); } +QString DolphinViewContainer::captionWindowTitle() const +{ + if (GeneralSettings::showFullPathInTitlebar() && !isSearchModeEnabled()) { + if (!url().isLocalFile()) { + return url().adjusted(QUrl::StripTrailingSlash).toString(); + } + return url().adjusted(QUrl::StripTrailingSlash).path(); + } else { + return DolphinViewContainer::caption(); + } +} + QString DolphinViewContainer::caption() const { if (isSearchModeEnabled()) { @@ -459,13 +465,6 @@ QString DolphinViewContainer::caption() const } } - if (GeneralSettings::showFullPathInTitlebar()) { - if (!url().isLocalFile()) { - return url().adjusted(QUrl::StripTrailingSlash).toString(); - } - return url().adjusted(QUrl::StripTrailingSlash).path(); - } - 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); @@ -632,8 +631,10 @@ void DolphinViewContainer::slotItemActivated(const KFileItem& item) return; } - KRun *run = new KRun(item.targetUrl(), this); - run->setShowScriptExecutionPrompt(true); + KIO::OpenUrlJob *job = new KIO::OpenUrlJob(item.targetUrl()); + job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, this)); + job->setShowOpenOrExecuteDialog(true); + job->start(); } void DolphinViewContainer::slotItemsActivated(const KFileItemList& items) @@ -657,7 +658,7 @@ void DolphinViewContainer::closeFilterBar() { m_filterBar->closeFilterBar(); m_view->setFocus(); - emit showFilterBarChanged(false); + Q_EMIT showFilterBarChanged(false); } void DolphinViewContainer::setNameFilter(const QString& nameFilter) @@ -707,6 +708,7 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl& url) redirect(QUrl(), m_urlNavigator->locationUrl(1)); } else { showMessage(i18nc("@info:status", "Invalid protocol"), Error); + m_urlNavigator->goBack(); } }