Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > db65a50f78baaff6c782fe7a1d80ab07 > files > 23

kdebase4-workspace-4.10.2-3.mga3.src.rpm

Index: plasma/generic/containmentactions/contextmenu/menu.cpp
===================================================================
--- a/plasma/generic/containmentactions/contextmenu/menu.cpp
+++ b/plasma/generic/containmentactions/contextmenu/menu.cpp	2012-11-17 11:42:38.978460970 -0300
@@ -30,6 +30,7 @@
 #include <KDebug>
 #include <KIcon>
 #include <KMenu>
+#include <ktoolinvocation.h>
 
 #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),
@@ -74,7 +76,7 @@
         m_actionOrder << "add widgets" << "_add panel" << "lock widgets" << "_context" << "remove";
     } else {
         actions.insert("configure shortcuts", false);
-        m_actionOrder << "_context" << "_run_command" << "add widgets" << "_add panel"
+        m_actionOrder << "_context" << "_run_konsole" << "_run_command" << "add widgets" << "_add panel"
                       << "manage activities" << "remove" << "lock widgets" << "_sep1"
                       <<"_lock_screen" << "_logout" << "_sep2" << "configure"
                       << "configure shortcuts" << "_sep3" << "_wallpaper";
@@ -96,6 +98,11 @@
         c->containmentType() == Plasma::Containment::CustomPanelContainment) {
         //FIXME: panel does its own config action atm...
     } else if (!m_runCommandAction) {
+      
+        m_runKonsoleAction = new QAction(i18n("Konsole"), this);
+	m_runKonsoleAction->setIcon(KIcon("utilities-terminal"));
+	connect(m_runKonsoleAction, SIGNAL(triggered(bool)), this, SLOT(runKonsole()));
+	 
         m_runCommandAction = new QAction(i18n("Run Command..."), this);
         m_runCommandAction->setIcon(KIcon("system-run"));
         connect(m_runCommandAction, SIGNAL(triggered(bool)), this, SLOT(runCommand()));
@@ -168,6 +175,8 @@
         if (c->corona() && c->corona()->immutability() == Plasma::Mutable) {
             return c->corona()->action("add panel");
         }
+    } else if (name == "_run_konsole") {
+      return m_runKonsoleAction;    
     } else if (name == "_run_command") {
         if (KAuthorized::authorizeKAction("run_command")) {
             return m_runCommandAction;
@@ -191,6 +200,10 @@
     return 0;
 }
 
+void ContextMenu::runKonsole()
+{
+   KToolInvocation::invokeTerminal(QString(), QDir::homePath());
+}
 void ContextMenu::runCommand()
 {
     if (!KAuthorized::authorizeKAction("run_command")) {
Index: plasma/generic/containmentactions/contextmenu/menu.h
===================================================================
--- a/plasma/generic/containmentactions/contextmenu/menu.h
+++ b/plasma/generic/containmentactions/contextmenu/menu.h	2012-11-17 11:44:04.678643891 -0300
@@ -41,12 +41,14 @@
     void save(KConfigGroup &config);
 
 public slots:
+    void runKonsole();
     void runCommand();
     void lockScreen();
     void startLogout();
     void logout();
 
 private:
+     QAction *m_runKonsoleAction;
     QAction *m_runCommandAction;
     QAction *m_lockScreenAction;
     QAction *m_logoutAction;