kcmoduleproxy.h
00001 /* This file is part of the KDE project 00002 Copyright (C) 2003 Matthias Kretz <kretz@kde.org> 00003 Copyright (C) 2004 Frans Englich <frans.englich@telia.com> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License version 2 as published by the Free Software Foundation. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 Boston, MA 02110-1301, USA. 00018 00019 */ 00020 00021 #ifndef KCMODULEPROXY_H 00022 #define KCMODULEPROXY_H 00023 00024 #include <qwidget.h> 00025 #include <qstringlist.h> 00026 00027 #include <kservice.h> 00028 #include <kdelibs_export.h> 00029 00030 class KAboutData; 00031 class KCModule; 00032 class KCModuleInfo; 00033 class KInstance; 00034 class KProcess; 00035 00068 class KUTILS_EXPORT KCModuleProxy : public QWidget 00069 { 00070 Q_OBJECT 00071 00072 friend class KCModuleProxyRootCommunicatorImpl; 00073 00074 public: 00075 00089 KCModuleProxy( const KCModuleInfo & info, bool withFallback = true, 00090 QWidget * parent = 0, const char * name = 0, 00091 const QStringList & args = QStringList() ); 00092 00108 KCModuleProxy( const QString& serviceName, bool withFallback = true, 00109 QWidget * parent = 0, const char * name = 0, 00110 const QStringList & args = QStringList() ); 00111 00125 KCModuleProxy( const KService::Ptr& service, bool withFallback = true, 00126 QWidget * parent = 0, const char * name = 0, 00127 const QStringList & args = QStringList() ); 00128 00132 ~KCModuleProxy(); 00133 00138 void load(); 00139 00147 void save(); 00148 00152 QString quickHelp() const; 00153 00157 const KAboutData * aboutData() const; 00158 00163 int buttons() const; 00164 00170 QString rootOnlyMsg() const; 00171 //KDE4 remove. There's a limit for convenience functions, 00172 // this one's available via moduleInfo()-> and realModule()-> 00173 00178 bool useRootOnlyMsg() const; 00179 //KDE4 remove. There's a limit for convenience functions, 00180 // this one's available via moduleInfo()-> and realModule()-> 00181 00187 KInstance * instance() const; 00188 //KDE4 remove. There's a limit for convenience functions, 00189 // this one's available via realModule() 00190 00195 bool changed() const; 00196 00207 bool rootMode() const; 00208 00217 KCModule* realModule() const; 00218 00223 const KCModuleInfo& moduleInfo() const; 00224 00231 QCString dcopName() const; 00232 00233 public slots: 00234 00241 void runAsRoot(); 00242 00247 void defaults(); 00248 00256 void deleteClient(); 00257 00258 signals: 00259 00260 /* 00261 * This signal is emitted when the contained module is changed. 00262 */ 00263 void changed( bool state ); 00264 00271 void changed( KCModuleProxy* mod ); 00272 00279 void childClosed(); 00280 00281 /* 00282 * This signal is relayed from the encapsulated module, and 00283 * is equivalent to the module's own quickHelpChanged() signal. 00284 * 00285 * @since 3.4 00286 */ 00287 void quickHelpChanged(); 00288 00289 protected: 00290 00295 void showEvent( QShowEvent * ); 00296 00303 void init( const KCModuleInfo& info ); 00304 00305 00310 void emitQuickHelpChanged(); 00311 00312 private slots: 00313 00321 void callRootModule( const QCString& function ); 00322 00329 void rootExited(); 00330 00334 void moduleChanged( bool ); 00335 00339 void moduleDestroyed(); 00340 00348 void applicationRemoved( const QCString& app ); 00349 00350 private: 00351 00352 class KCModuleProxyPrivate; 00353 KCModuleProxyPrivate * d; 00354 }; 00355 00356 #endif // KCMODULEPROXY_H 00357 // vim: sw=4 ts=4 noet