From 30faf2c53ee3f81a960444fdfcd40a1a3b41d713 Mon Sep 17 00:00:00 2001 From: Waldo Bastian Date: Thu, 18 Mar 2004 13:18:41 +0000 Subject: [PATCH] KIOSK: Hide configure option if control modules have not been authorized svn path=/trunk/kdebase/kwin/; revision=296848 --- useractions.cpp | 3 ++- workspace.cpp | 15 ++++++++++++--- workspace.h | 2 ++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/useractions.cpp b/useractions.cpp index 7e9eda1b8c..759ef01655 100644 --- a/useractions.cpp +++ b/useractions.cpp @@ -69,7 +69,8 @@ QPopupMenu* Workspace::clientPopup() popup->insertSeparator(); - if (!KGlobal::config()->isImmutable()) + if (!KGlobal::config()->isImmutable() && + !kapp->authorizeControlModules(Workspace::configModules(true)).isEmpty()) { popup->insertItem(SmallIconSet( "configure" ), i18n("Configur&e Window Behavior..."), this, SLOT( configureWM() )); popup->insertSeparator(); diff --git a/workspace.cpp b/workspace.cpp index 7689705754..65221c8b9c 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -844,11 +844,20 @@ void Workspace::saveDesktopSettings() } } -void Workspace::configureWM() +QStringList Workspace::configModules(bool controlCenter) { QStringList args; - args << "kwindecoration" << "kwinactions" << "kwinfocus" << "kwinmoving" << "kwinadvanced"; - KApplication::kdeinitExec( "kcmshell", args ); + args << "kde-kwindecoration.desktop"; + if (controlCenter) + args << "kde-kwinoptions.desktop"; + else if (kapp->authorizeControlModule("kde-kwinoptions.desktop")) + args << "kwinactions" << "kwinfocus" << "kwinmoving" << "kwinadvanced"; + return args; + } + +void Workspace::configureWM() + { + KApplication::kdeinitExec( "kcmshell", configModules(false) ); } /*! diff --git a/workspace.h b/workspace.h index 2d86834722..c52ffbfa26 100644 --- a/workspace.h +++ b/workspace.h @@ -238,6 +238,8 @@ class Workspace : public QObject, public KWinInterface, public KDecorationDefine int packPositionUp( const Client* cl, int oldy, bool top_edge ) const; int packPositionDown( const Client* cl, int oldy, bool bottom_edge ) const; + static QStringList configModules(bool controlCenter); + public slots: void refresh(); // keybindings