summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Andriot <francois.andriot@free.fr>2013-05-09 18:58:29 +0200
committerSlávek Banko <slavek.banko@axis.cz>2013-05-09 19:56:14 +0200
commitcc559e02b577577fa560ced45e9d362b110fac90 (patch)
treeb268fc0933ea47050d99d93fdc82e2d0502cb8b1
parentd35cd752fd93d7857913f2d2e82b7e7818a1bf0d (diff)
downloadtdebase-cc559e02b577577fa560ced45e9d362b110fac90.tar.gz
tdebase-cc559e02b577577fa560ced45e9d362b110fac90.zip
Kickoff menu: Adds 'kcontrol' and 'run command' in 'computer' tab
(cherry picked from commit 18e3729805b1629bea80433ad3b912949123b304)
-rw-r--r--kicker/kicker/ui/k_new_mnu.cpp26
-rw-r--r--kicker/kicker/ui/k_new_mnu.h1
2 files changed, 24 insertions, 3 deletions
diff --git a/kicker/kicker/ui/k_new_mnu.cpp b/kicker/kicker/ui/k_new_mnu.cpp
index 8526cd212..be4c78e69 100644
--- a/kicker/kicker/ui/k_new_mnu.cpp
+++ b/kicker/kicker/ui/k_new_mnu.cpp
@@ -1342,11 +1342,15 @@ void KMenu::insertStaticItems()
m_systemView->insertSeparator( nId++, i18n("Applications"), index++);
- KService::Ptr p = KService::serviceByStorageId("/usr/share/applications/YaST.desktop");
+ KService::Ptr p = KService::serviceByStorageId("KControl.desktop");
m_systemView->insertMenuItem(p, nId++, index++);
- m_systemView->insertItem( "info", i18n( "System Information" ),
- "sysinfo:/", "sysinfo:/", nId++, index++ );
+ // run command
+ if (kapp->authorize("run_command"))
+ {
+ m_systemView->insertItem( "run", i18n("Run Command..."),
+ "", "kicker:/runusercommand", nId++, index++ );
+ }
m_systemView->insertSeparator( nId++, i18n("System Folders"), index++ );
@@ -2600,6 +2604,10 @@ void KMenu::slotStartURL(const TQString& u)
{
runCommand();
}
+ else if ( u == "kicker:/runusercommand" )
+ {
+ runUserCommand();
+ }
else if ( u == "kicker:/shutdown" ) {
#ifdef KDELIBS_SUSE
TQByteArray params;
@@ -3775,4 +3783,16 @@ void KMenu::slotSuspend(int id)
}
+void KMenu::runUserCommand()
+{
+ TQByteArray data;
+ TQCString appname( "kdesktop" );
+ if ( kicker_screen_number )
+ appname.sprintf("kdesktop-screen-%d", kicker_screen_number);
+
+ kapp->updateRemoteUserTimestamp( appname );
+ kapp->dcopClient()->send( appname, "KDesktopIface",
+ "popupExecuteCommand()", data );
+}
+
// vim:cindent:sw=4:
diff --git a/kicker/kicker/ui/k_new_mnu.h b/kicker/kicker/ui/k_new_mnu.h
index ef45ef815..5bc0aa7c2 100644
--- a/kicker/kicker/ui/k_new_mnu.h
+++ b/kicker/kicker/ui/k_new_mnu.h
@@ -181,6 +181,7 @@ protected:
// void raiseStackWidget(TQWidget *view);
bool runCommand();
+ void runUserCommand();
void setupUi();