Sophie

Sophie

distrib > Mageia > 6 > armv7hl > media > core-updates-src > by-pkgid > 1024e18db95b9aa48aa263fb883d7705 > files > 4

plasma-workspace-5.12.2-1.mga6.src.rpm

diff -Nru a/containmentactions/contextmenu/menu.cpp b/containmentactions/contextmenu/menu.cpp
--- a/containmentactions/contextmenu/menu.cpp	2016-09-15 13:01:20.000000000 +0200
+++ b/containmentactions/contextmenu/menu.cpp	2016-09-20 13:04:53.349279880 +0200
@@ -31,6 +31,7 @@
 #include <QIcon>
 #include <KGlobalAccel>
 #include <KLocalizedString>
+#include <KToolInvocation>
 
 #include <Plasma/Containment>
 #include <Plasma/Corona>
@@ -46,6 +47,7 @@
 
 ContextMenu::ContextMenu(QObject *parent, const QVariantList &args)
     : Plasma::ContainmentActions(parent, args),
+      m_runKonsoleAction(0),
       m_runCommandAction(0),
       m_lockScreenAction(0),
       m_logoutAction(0),
@@ -75,7 +77,7 @@
         m_actionOrder << QStringLiteral("add widgets") << QStringLiteral("_add panel") << QStringLiteral("lock widgets") << QStringLiteral("_context") << QStringLiteral("configure") << QStringLiteral("remove");
     } else {
         actions.insert(QStringLiteral("configure shortcuts"), false);
-        m_actionOrder << QStringLiteral("_context") << QStringLiteral("_run_command") << QStringLiteral("add widgets") << QStringLiteral("_add panel")
+        m_actionOrder << QStringLiteral("_context") << QStringLiteral("_run_konsole") << QStringLiteral("_run_command") << QStringLiteral("add widgets") << QStringLiteral("_add panel")
                       << QStringLiteral("manage activities") << QStringLiteral("remove") << QStringLiteral("lock widgets") << QStringLiteral("_sep1")
                       <<QStringLiteral("_lock_screen") << QStringLiteral("_logout") << QStringLiteral("_sep2") << QStringLiteral("run associated application") << QStringLiteral("configure")
                       << QStringLiteral("configure shortcuts") << QStringLiteral("_sep3") << QStringLiteral("_wallpaper");
@@ -94,6 +96,10 @@
 
     // everything below should only happen once, so check for it
     if (!m_runCommandAction) {
+        m_runKonsoleAction = new QAction(i18n("Konsole"), this);
+        m_runKonsoleAction->setIcon(QIcon::fromTheme("utilities-terminal"));
+        connect(m_runKonsoleAction, &QAction::triggered, this, &ContextMenu::runKonsole);
+
         m_runCommandAction = new QAction(i18nc("plasma_containmentactions_contextmenu", "Run Command..."), this);
         m_runCommandAction->setIcon(QIcon::fromTheme(QStringLiteral("system-run")));
         m_runCommandAction->setShortcut(KGlobalAccel::self()->globalShortcut(QStringLiteral("krunner"), QStringLiteral("run command")).value(0));
@@ -165,6 +171,8 @@
         if (c->corona() && c->corona()->immutability() == Plasma::Types::Mutable) {
             return c->corona()->actions()->action(QStringLiteral("add panel"));
         }
+    } else if (name == QLatin1String("_run_konsole")) {
+        return m_runKonsoleAction;
     } else if (name == QLatin1String("_run_command")) {
         if (KAuthorized::authorizeAction(QStringLiteral("run_command"))) {
             return m_runCommandAction;
@@ -192,6 +200,11 @@
     return 0;
 }
 
+void ContextMenu::runKonsole()
+{
+    KToolInvocation::invokeTerminal(QString(), QDir::homePath());
+}
+
 void ContextMenu::runCommand()
 {
     if (!KAuthorized::authorizeAction(QStringLiteral("run_command"))) {
diff -Nru a/containmentactions/contextmenu/menu.h b/containmentactions/contextmenu/menu.h
--- a/containmentactions/contextmenu/menu.h	2016-09-15 13:01:20.000000000 +0200
+++ b/containmentactions/contextmenu/menu.h	2016-09-20 13:06:06.902766638 +0200
@@ -40,12 +40,14 @@
     void save(KConfigGroup &config) override;
 
 public Q_SLOTS:
+    void runKonsole();
     void runCommand();
     void lockScreen();
     void startLogout();
     void logout();
 
 private:
+    QAction *m_runKonsoleAction;
     QAction *m_runCommandAction;
     QAction *m_lockScreenAction;
     QAction *m_logoutAction;