X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/4d018e1c3cd5211c82cfe42a250956adfb47747b..fc0cdddddd46d7dcc9726c0d2172ff34f6fb466f:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 5b2a318d6..ecabbc379 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -20,8 +20,8 @@ #include "statusbar/dolphinstatusbar.h" #include -#if HAVE_KACTIVITIES -#include +#if HAVE_PLASMA_ACTIVITIES +#include #endif #include #include @@ -71,9 +71,6 @@ DolphinViewContainer::DolphinViewContainer(const QUrl &url, QWidget *parent) , m_statusBarTimer(nullptr) , m_statusBarTimestamp() , m_autoGrabFocus(true) -#if HAVE_KACTIVITIES - , m_activityResourceInstance(nullptr) -#endif { hide(); @@ -103,6 +100,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl &url, QWidget *parent) m_messageWidget = new KMessageWidget(this); m_messageWidget->setCloseButtonVisible(true); + m_messageWidget->setPosition(KMessageWidget::Header); m_messageWidget->hide(); #ifndef Q_OS_WIN @@ -189,13 +187,6 @@ DolphinViewContainer::DolphinViewContainer(const QUrl &url, QWidget *parent) connect(placesModel, &KFilePlacesModel::rowsRemoved, this, &DolphinViewContainer::slotPlacesModelChanged); connect(this, &DolphinViewContainer::searchModeEnabledChanged, this, &DolphinViewContainer::captionChanged); - - // Initialize kactivities resource instance - -#if HAVE_KACTIVITIES - m_activityResourceInstance = new KActivities::ResourceInstance(window()->winId(), url); - m_activityResourceInstance->setParent(this); -#endif } DolphinViewContainer::~DolphinViewContainer() @@ -219,14 +210,6 @@ void DolphinViewContainer::setActive(bool active) m_urlNavigatorConnected->setActive(active); } m_view->setActive(active); - -#if HAVE_KACTIVITIES - if (active) { - m_activityResourceInstance->notifyFocusedIn(); - } else { - m_activityResourceInstance->notifyFocusedOut(); - } -#endif } bool DolphinViewContainer::isActive() const @@ -343,12 +326,13 @@ void DolphinViewContainer::setSelectionModeEnabled(bool enabled, KActionCollecti } Q_CHECK_PTR(m_selectionModeTopBar); // there is no point in disabling selectionMode when it wasn't even enabled once. Q_CHECK_PTR(m_selectionModeBottomBar); - if (m_selectionModeTopBar->isAncestorOf(QApplication::focusWidget()) || m_selectionModeBottomBar->isAncestorOf(QApplication::focusWidget())) { - m_view->setFocus(); - } m_selectionModeTopBar->setVisible(false, WithAnimation); m_selectionModeBottomBar->setVisible(false, WithAnimation); Q_EMIT selectionModeChanged(false); + + if (m_selectionModeTopBar->isAncestorOf(QApplication::focusWidget()) || m_selectionModeBottomBar->isAncestorOf(QApplication::focusWidget())) { + m_view->setFocus(); + } return; } @@ -591,8 +575,8 @@ void DolphinViewContainer::setUrl(const QUrl &newUrl) m_urlNavigator->setLocationUrl(newUrl); } -#if HAVE_KACTIVITIES - m_activityResourceInstance->setUri(newUrl); +#if HAVE_PLASMA_ACTIVITIES + KActivities::ResourceInstance::notifyAccessed(newUrl); #endif } @@ -728,7 +712,8 @@ void DolphinViewContainer::slotItemActivated(const KFileItem &item) } KIO::OpenUrlJob *job = new KIO::OpenUrlJob(item.targetUrl(), item.mimetype()); - job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, this)); + // Auto*Warning*Handling, errors are put in a KMessageWidget by us in slotOpenUrlFinished. + job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoWarningHandlingEnabled, this)); job->setShowOpenOrExecuteDialog(true); connect(job, &KIO::OpenUrlJob::finished, this, &DolphinViewContainer::slotOpenUrlFinished); job->start(); @@ -744,7 +729,7 @@ void DolphinViewContainer::slotfileMiddleClickActivated(const KFileItem &item) auto mimeType = item.currentMimeType(); if (item.isLocalFile() && mimeType.inherits(QStringLiteral("application/x-executable")) && mimeType.inherits(QStringLiteral("text/plain")) && QFileInfo(item.localPath()).isExecutable()) { - KConfigGroup cfgGroup(KSharedConfig::openConfig(QStringLiteral("kiorc")), "Executable scripts"); + KConfigGroup cfgGroup(KSharedConfig::openConfig(QStringLiteral("kiorc")), QStringLiteral("Executable scripts")); const QString value = cfgGroup.readEntry("behaviourOnLaunch", "alwaysAsk"); // in case KIO::WidgetsOpenOrExecuteFileHandler::promptUserOpenOrExecute would not open the file @@ -842,7 +827,11 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl &url) QDesktopServices::openUrl(url); redirect(QUrl(), m_urlNavigator->locationUrl(1)); } else { - showMessage(i18nc("@info:status", "Invalid protocol"), Error); + if (!url.scheme().isEmpty()) { + showMessage(i18nc("@info:status", "Invalid protocol '%1'", url.scheme()), Error); + } else { + showMessage(i18nc("@info:status", "Invalid protocol"), Error); + } m_urlNavigator->goBack(); } }