diff options
| author | Nate Graham <[email protected]> | 2021-08-31 09:09:14 -0600 |
|---|---|---|
| committer | Nate Graham <[email protected]> | 2021-08-31 09:12:16 -0600 |
| commit | 27bfcde4efaf936243fc41e4a61d0cac32105ef6 (patch) | |
| tree | bf6b8a9580032f4ccd7eb3b4334bd4d5ec2ba309 /src/dolphinmainwindow.cpp | |
| parent | 653d5714a7690bd2dca36a39fc92c0ab1926fab5 (diff) | |
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
Diffstat (limited to 'src/dolphinmainwindow.cpp')
| -rw-r--r-- | src/dolphinmainwindow.cpp | 14 |
1 files changed, 10 insertions, 4 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() |
