diff --git a/x11-fm/dolphin/Makefile b/x11-fm/dolphin/Makefile index 8c4da2c76728..8b3fdf126bf6 100644 --- a/x11-fm/dolphin/Makefile +++ b/x11-fm/dolphin/Makefile @@ -1,33 +1,34 @@ PORTNAME= dolphin DISTVERSION= ${KDE_APPLICATIONS_VERSION} +PORTREVISION= 1 CATEGORIES= x11-fm kde kde-applications MAINTAINER= kde@FreeBSD.org COMMENT= KDE filemanager dolphin LICENSE= LGPL20 LICENSE_FILE= ${WRKSRC}/COPYING RUN_DEPENDS= ${QT_PLUGINDIR}/ffmpegthumbs.so:multimedia/kdemultimedia-ffmpegthumbs \ ${QT_PLUGINDIR}/gsthumbnail.so:graphics/kdegraphics-thumbnailers \ ${QT_PLUGINDIR}/imagethumbnail.so:devel/kio-extras USES= cmake compiler:c++11-lib desktop-file-utils gettext kde:5 qt:5 tar:xz USE_KDE= activities attica auth baloo baloo-widgets bookmarks codecs \ completion config configwidgets coreaddons crash dbusaddons \ emoticons filemetadata i18n iconthemes init \ itemmodels itemviews jobwidgets kcmutils kde-cli-tools \ kio newstuff notifications parts service \ solid sonnet texteditor textwidgets widgetsaddons \ windowsystem xmlgui \ doctools_build ecm_build USE_QT= concurrent core dbus gui network phonon4 widgets xml \ buildtools_build qmake_build SHLIB_VER= 5.0.0 PLIST_SUB+= SHLIB_VER="${SHLIB_VER}" \ SHLIB_SHVER="${SHLIB_VER:R:R}" OPTIONS_DEFINE= DOCS .include diff --git a/x11-fm/dolphin/files/patch-git_27b5cde-arch_backport b/x11-fm/dolphin/files/patch-git_27b5cde-arch_backport new file mode 100644 index 000000000000..145aa5707ea2 --- /dev/null +++ b/x11-fm/dolphin/files/patch-git_27b5cde-arch_backport @@ -0,0 +1,101 @@ +Obtained from: + https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/dolphin/trunk/27bfcde4.patch + + +From 27bfcde4efaf936243fc41e4a61d0cac32105ef6 Mon Sep 17 00:00:00 2001 +From: Nate Graham +Date: Tue, 31 Aug 2021 09:09:14 -0600 +Subject: [PATCH] Port to KTerminalLauncherJob + +Dolphin still uses KToolInvocation::invokeTerminal() which is +deprecated and requires KInit. However Dolphin was ported away from +requiring it in other ways, so it is now possible to have Dolphin +running but not KInit, which breaks the "Open in Terminal" +functionality. + +Using KTerminalLauncherJob fixes this. It was introduced in Frameworks +5.83, so the CMake dependency version is accordingly increased. + +BUG: 441072 +FIXED-IN: 21.12 +--- + CMakeLists.txt | 2 +- + src/dolphinmainwindow.cpp | 14 ++++++++++---- + src/dolphinpart.cpp | 6 ++++-- + 3 files changed, 15 insertions(+), 7 deletions(-) + +diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp +index 62e347032..f3a5e3b4e 100644 +--- src/dolphinmainwindow.cpp ++++ src/dolphinmainwindow.cpp +@@ -56,10 +56,10 @@ + #include + #include + #include ++#include + #include + #include + #include +-#include + #include + #include + #include +@@ -1033,7 +1033,9 @@ void DolphinMainWindow::openTerminal() + const QUrl url = m_activeViewContainer->url(); + + if (url.isLocalFile()) { +- KToolInvocation::invokeTerminal(QString(), {}, url.toLocalFile()); ++ auto job = new KTerminalLauncherJob(QString()); ++ job->setWorkingDirectory(url.toLocalFile()); ++ job->start(); + return; + } + +@@ -1047,14 +1049,18 @@ void DolphinMainWindow::openTerminal() + statUrl = job->mostLocalUrl(); + } + +- KToolInvocation::invokeTerminal(QString(), {}, statUrl.isLocalFile() ? statUrl.toLocalFile() : QDir::homePath()); ++ auto job = new KTerminalLauncherJob(QString()); ++ job->setWorkingDirectory(statUrl.isLocalFile() ? statUrl.toLocalFile() : QDir::homePath()); ++ job->start(); + }); + + return; + } + + // Nothing worked, just use $HOME +- KToolInvocation::invokeTerminal(QString(), {}, QDir::homePath()); ++ auto job = new KTerminalLauncherJob(QString()); ++ job->setWorkingDirectory(QDir::homePath()); ++ job->start(); + } + + void DolphinMainWindow::editSettings() +diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp +index 9c551d67a..8d528f418 100644 +--- src/dolphinpart.cpp ++++ src/dolphinpart.cpp +@@ -32,7 +32,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include +@@ -567,7 +567,9 @@ QString DolphinPart::localFilePathOrHome() const + + void DolphinPart::slotOpenTerminal() + { +- KToolInvocation::invokeTerminal(QString(), {}, localFilePathOrHome()); ++ auto job = new KTerminalLauncherJob(QString()); ++ job->setWorkingDirectory(localFilePathOrHome()); ++ job->start(); + } + + void DolphinPart::slotFindFile() +-- +GitLab +