parent
002be63281
commit
d68365e690
@ -0,0 +1,97 @@
|
|||||||
|
From 27bfcde4efaf936243fc41e4a61d0cac32105ef6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nate Graham <nate@kde.org>
|
||||||
|
Date: Tue, 31 Aug 2021 09:09:14 -0600
|
||||||
|
Subject: [PATCH 38/38] 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
|
||||||
|
--- a/src/dolphinmainwindow.cpp
|
||||||
|
+++ b/src/dolphinmainwindow.cpp
|
||||||
|
@@ -56,10 +56,10 @@
|
||||||
|
#include <KStandardAction>
|
||||||
|
#include <KStartupInfo>
|
||||||
|
#include <KSycoca>
|
||||||
|
+#include <KTerminalLauncherJob>
|
||||||
|
#include <KToggleAction>
|
||||||
|
#include <KToolBar>
|
||||||
|
#include <KToolBarPopupAction>
|
||||||
|
-#include <KToolInvocation>
|
||||||
|
#include <KUrlComboBox>
|
||||||
|
#include <KUrlNavigator>
|
||||||
|
#include <KWindowSystem>
|
||||||
|
@@ -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
|
||||||
|
--- a/src/dolphinpart.cpp
|
||||||
|
+++ b/src/dolphinpart.cpp
|
||||||
|
@@ -32,7 +32,7 @@
|
||||||
|
#include <KPluginFactory>
|
||||||
|
#include <KIO/CommandLauncherJob>
|
||||||
|
#include <KSharedConfig>
|
||||||
|
-#include <KToolInvocation>
|
||||||
|
+#include <KTerminalLauncherJob>
|
||||||
|
|
||||||
|
#include <QActionGroup>
|
||||||
|
#include <QApplication>
|
||||||
|
@@ -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()
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
Loading…
Reference in new issue