]> git.pld-linux.org Git - packages/kde4-kdebase-workspace.git/blame - kde4-kdebase-workspace-rootprivs.patch
- rel 5
[packages/kde4-kdebase-workspace.git] / kde4-kdebase-workspace-rootprivs.patch
CommitLineData
c4a53c80 1diff -ur kdebase-workspace-4.4.90/systemsettings/core/ModuleView.cpp kdebase-workspace-4.4.90-rootprivs/systemsettings/core/ModuleView.cpp
2--- kdebase-workspace-4.4.90/systemsettings/core/ModuleView.cpp 2010-06-24 18:28:10.000000000 +0200
3+++ kdebase-workspace-4.4.90-rootprivs/systemsettings/core/ModuleView.cpp 2010-06-26 00:47:30.000000000 +0200
4@@ -41,6 +41,7 @@
c94993dd 5 #include <KCModuleProxy>
6 #include <KStandardGuiItem>
7 #include <KDialogButtonBox>
df33dfbd 8+#include <KStandardDirs>
25db84ad 9 #include <kauthaction.h>
df33dfbd 10
c94993dd 11 #include "MenuItem.h"
c4a53c80 12@@ -131,6 +132,35 @@
25db84ad 13 return;
c94993dd 14 }
15
c4a53c80 16+ {
17+ MenuItem *menuItemPtr = menuItem.data( Qt::UserRole ).value<MenuItem*>();
18+ if ( menuItemPtr->service()->property( "X-KDE-RootOnly", QVariant::Bool ).toBool() ) {
19+ QString kdesu = KStandardDirs::findExe( "kdesu" );
20+ QString cmd = menuItemPtr->service()->exec().trimmed();
df33dfbd 21+
c4a53c80 22+ /* Prepare the process to run the kcmshell */
23+ if ( cmd.left(5) == "kdesu" )
24+ {
25+ cmd = cmd.remove(0,5).trimmed();
df33dfbd 26+
c4a53c80 27+ /* Remove all kdesu switches */
28+ while ( cmd.length() > 1 && cmd[ 0 ] == '-' )
29+ cmd = cmd.remove( 0, cmd.indexOf( ' ' ) ).trimmed();
30+ }
df33dfbd 31+
c4a53c80 32+ if ( cmd.left(9) == "kcmshell4" )
33+ cmd = cmd.remove(0,9).trimmed();
df33dfbd 34+
c4a53c80 35+ QStringList args;
36+ args << "-i" << QString( menuItemPtr->service()->icon() ) << "-c" << QString( "%1 %2 --lang %3" ).arg( KStandardDirs::locate("exe", "kcmshell4") ).arg( cmd ).arg( KGlobal::locale()->language() );
df33dfbd 37+
c4a53c80 38+ kDebug() << "Starting root module: " << args;
39+ QProcess::startDetached( kdesu, args );
df33dfbd 40+
c4a53c80 41+ return;
42+ }
df33dfbd 43+ }
25db84ad 44+
c4a53c80 45 QList<QModelIndex> indexes;
46 for ( int done = 0; menuItem.model()->rowCount( menuItem ) > done; done = 1 + done ) {
47 indexes << menuItem.model()->index( done, 0, menuItem );
This page took 0.115282 seconds and 4 git commands to generate.