Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 9bb938de93248ca5cc71ecf424cefd6c > files > 17

kdebase-3.5.4-21.el5_5.1.src.rpm

--- kdebase-3.4.2/kdesktop/krootwm.h.kdestop-konsole	2005-05-23 14:14:38.000000000 +0200
+++ kdebase-3.4.2/kdesktop/krootwm.h	2005-07-26 22:22:46.000000000 +0200
@@ -117,6 +117,7 @@
   void slotSessionActivated( int );
   void slotNewSession();
   void slotLockNNewSession();
+  void slotOpenTerminal();
 
 private:
   KDesktop* m_pDesktop;
--- kdebase-3.4.2/kdesktop/krootwm.cc.kdestop-konsole	2005-07-20 12:03:58.000000000 +0200
+++ kdebase-3.4.2/kdesktop/krootwm.cc	2005-09-05 14:41:33.000000000 +0200
@@ -50,6 +50,7 @@
 #include <kuser.h>
 #include <qfile.h>
 
+#include <kprocess.h>
 #include "krootwm.h"
 #include "kdiconview.h"
 #include "desktop.h"
@@ -79,6 +80,9 @@
   customMenu2 = 0;
 
 
+  new KAction(i18n("Konsole..." ), "openterm", 0, this, SLOT( slotOpenTerminal() ),
+               m_actionCollection, "open_terminal" );
+
   // Creates the new menu
   menuBar = 0; // no menubar yet
   menuNew = 0;
@@ -131,6 +135,7 @@
   {
      new KAction(i18n("Run Command..."), "run", 0, m_pDesktop, SLOT( slotExecuteCommand() ), m_actionCollection, "exec" );
   }
+
   if (!KGlobal::config()->isImmutable())
   {
      new KAction(i18n("Configure Desktop..."), "configure", 0, this, SLOT( slotConfigureDesktop() ),
@@ -366,6 +371,13 @@
     desktopMenu->disconnect( this );
     bool needSeparator = false;
 
+    action = m_actionCollection->action("open_terminal");
+    if (action)
+    {
+       action->plug( desktopMenu );
+       needSeparator = true;
+    }
+
     if (menuNew)
     {
        menuNew->plug( desktopMenu );
@@ -693,6 +705,13 @@
   return args;
 }
 
+void KRootWm::slotOpenTerminal()
+{
+  KProcess proc;
+  proc << locate("exe", "konsole");
+  proc.start(KProcess::DontCare);
+}
+
 void KRootWm::slotConfigureDesktop() {
   QStringList args = configModules();
   args.prepend(i18n("Desktop"));