You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.5 KiB
79 lines
3.5 KiB
diff -Nurr plasma-workspace-5.24.90-new/containmentactions/contextmenu/menu.cpp plasma-workspace-5.24.90/containmentactions/contextmenu/menu.cpp
|
|
--- plasma-workspace-5.24.90-new/containmentactions/contextmenu/menu.cpp 2022-05-21 16:42:05.980661922 +0200
|
|
+++ plasma-workspace-5.24.90/containmentactions/contextmenu/menu.cpp 2022-05-21 16:47:43.503606798 +0200
|
|
@@ -17,6 +17,7 @@
|
|
#include <KGlobalAccel>
|
|
#include <KIO/CommandLauncherJob>
|
|
#include <KLocalizedString>
|
|
+#include <KTerminalLauncherJob>
|
|
#include <QDebug>
|
|
#include <QIcon>
|
|
|
|
@@ -29,6 +30,7 @@
|
|
|
|
ContextMenu::ContextMenu(QObject *parent, const QVariantList &args)
|
|
: Plasma::ContainmentActions(parent, args)
|
|
+ , m_runKonsoleAction(nullptr)
|
|
, m_session(new SessionManagement(this))
|
|
{
|
|
}
|
|
@@ -61,6 +63,7 @@
|
|
<< QStringLiteral("configure shortcuts")
|
|
<< QStringLiteral("_sep1")
|
|
<< QStringLiteral("_context")
|
|
+ << QStringLiteral("_run_konsole")
|
|
<< QStringLiteral("_run_command")
|
|
<< QStringLiteral("add widgets")
|
|
<< QStringLiteral("_add panel")
|
|
@@ -97,6 +100,10 @@
|
|
m_runCommandAction->setShortcut(KGlobalAccel::self()->globalShortcut(QStringLiteral("krunner.desktop"), QStringLiteral("_launch")).value(0));
|
|
connect(m_runCommandAction, &QAction::triggered, this, &ContextMenu::runCommand);
|
|
|
|
+ m_runKonsoleAction = new QAction(i18n("Konsole"), this);
|
|
+ m_runKonsoleAction->setIcon(QIcon::fromTheme("utilities-terminal"));
|
|
+ connect(m_runKonsoleAction, &QAction::triggered, this, &ContextMenu::runKonsole);
|
|
+
|
|
m_lockScreenAction = new QAction(i18nc("plasma_containmentactions_contextmenu", "Lock Screen"), this);
|
|
m_lockScreenAction->setIcon(QIcon::fromTheme(QStringLiteral("system-lock-screen")));
|
|
m_lockScreenAction->setShortcut(KGlobalAccel::self()->globalShortcut(QStringLiteral("ksmserver"), QStringLiteral("Lock Session")).value(0));
|
|
@@ -179,6 +186,8 @@
|
|
if (KAuthorized::authorizeAction(QStringLiteral("run_command")) && KAuthorized::authorize(QStringLiteral("run_command"))) {
|
|
return m_runCommandAction;
|
|
}
|
|
+ } else if (name == QLatin1String("_run_konsole")) {
|
|
+ return m_runKonsoleAction;
|
|
} else if (name == QLatin1String("_lock_screen")) {
|
|
if (KAuthorized::authorizeAction(QStringLiteral("lock_screen"))) {
|
|
return m_lockScreenAction;
|
|
@@ -212,6 +221,13 @@
|
|
return nullptr;
|
|
}
|
|
|
|
+void ContextMenu::runKonsole()
|
|
+{
|
|
+ auto job = new KTerminalLauncherJob(QString());
|
|
+ job->setWorkingDirectory(QDir::homePath());
|
|
+ job->start();
|
|
+}
|
|
+
|
|
void ContextMenu::runCommand()
|
|
{
|
|
if (!KAuthorized::authorizeAction(QStringLiteral("run_command"))) {
|
|
diff -Nurr plasma-workspace-5.24.90-new/containmentactions/contextmenu/menu.h plasma-workspace-5.24.90/containmentactions/contextmenu/menu.h
|
|
--- plasma-workspace-5.24.90-new/containmentactions/contextmenu/menu.h 2022-05-21 16:42:05.980661922 +0200
|
|
+++ plasma-workspace-5.24.90/containmentactions/contextmenu/menu.h 2022-05-21 16:48:39.122597718 +0200
|
|
@@ -29,11 +29,13 @@
|
|
|
|
public Q_SLOTS:
|
|
void runCommand();
|
|
+ void runKonsole();
|
|
void startLogout();
|
|
void configureDisplays();
|
|
|
|
private:
|
|
QAction *m_runCommandAction = nullptr;
|
|
+ QAction *m_runKonsoleAction = nullptr;
|
|
QAction *m_lockScreenAction = nullptr;
|
|
QAction *m_logoutAction = nullptr;
|
|
QAction *m_configureDisplaysAction = nullptr;
|