22#include <tqstringlist.h>
23#include <tqtabwidget.h>
25#include <tqvaluelist.h>
27#include <tdecmodule.h>
28#include <tdecmoduleinfo.h>
29#include <tdecmoduleloader.h>
30#include <tdecmoduleproxy.h>
34#include <kiconloader.h>
35#include <kpushbutton.h>
37#include <kstdguiitem.h>
39#include "tdecmodulecontainer.h"
40#include "tdecmodulecontainer.moc"
43class TDECModuleContainer::TDECModuleContainerPrivate
46 TDECModuleContainerPrivate(
const TQStringList& mods )
57 TQTabWidget *tabWidget;
61 TQHBoxLayout *btnLayout;
62 TQVBoxLayout *topLayout;
63 TQString handbookSection;
75 const TQString& mods )
78 d =
new TDECModuleContainerPrivate( TQStringList::split(
",", TQString(mods).remove(
" " )) );
83 const TQStringList& mods )
84 :
TDECModule( parent, name ), d( new TDECModuleContainerPrivate( mods ) )
89void TDECModuleContainer::init()
92 d->tabWidget =
new TQTabWidget(
this,
"tabWidget");
94 connect( d->tabWidget, TQ_SIGNAL( currentChanged( TQWidget* ) ), TQ_SLOT( tabSwitched( TQWidget* ) ));
95 d->topLayout->addWidget( d->tabWidget );
97 if ( !d->modules.isEmpty() )
100 for ( TQStringList::Iterator it = d->modules.begin(); it != d->modules.end(); ++it )
115 d->btnLayout =
new TQHBoxLayout(
this, 0, 0,
"btnLayout");
118 d->btnLayout->addWidget( d->btnRootMode );
119 d->btnLayout->addStretch();
120 d->topLayout->addLayout( d->btnLayout );
131 if ( !KService::serviceByDesktopName( module ) )
133 kdDebug(713) <<
"TDECModuleContainer: module '" <<
134 module << "' was not found and thus not loaded" << endl;
166void TDECModuleContainer::tabSwitched( TQWidget * module )
171 if ( !d->hasRootKCM ) {
176 disconnect( d->btnRootMode, 0, 0, 0 );
180 d->btnRootMode->setEnabled(
true );
181 connect( d->btnRootMode, TQ_SIGNAL( clicked() ),
182 TQ_SLOT( runAsRoot() ));
183 connect( mod, TQ_SIGNAL( childClosed() ),
184 TQ_SLOT ( rootExited() ));
187 d->btnRootMode->setEnabled(
false );
196 return d->handbookSection;
199void TDECModuleContainer::runAsRoot()
201 if ( d->tabWidget->currentPage() )
203 d->btnRootMode->setEnabled(
false );
206void TDECModuleContainer::rootExited()
208 connect( d->btnRootMode, TQ_SIGNAL( clicked() ), TQ_SLOT( runAsRoot() ));
209 d->btnRootMode->setEnabled(
true );
215 ModuleList::iterator it;
216 for ( it = list.begin() ; it !=list.end() ; ++it )
228 ModuleList::iterator it;
229 for ( it = list.begin() ; it !=list.end() ; ++it )
240 ModuleList::iterator it;
241 for ( it = list.begin() ; it !=list.end() ; ++it )
static KGuiItem adminMode()
void defaults()
Reimplemented for internal purposes.
ModuleList changedModules
A list containing TDECModuleProxy objects which have changed and must be saved.
TDECModuleContainer(TQWidget *parent, const char *name, const TQStringList &mods)
Creates a TDECModuleContainer with tabs, each one containing one of the specified modules in mods.
void save()
Reimplemented for internal purposes.
virtual ~TDECModuleContainer()
Default destructor.
void load()
Reimplemented for internal purposes.
virtual TQString handbookSection() const
Reimplemented for internal purposes.
ModuleList allModules
A list of all modules which are encapsulated.
void addModule(const TQString &module)
Adds the specified module to the tab widget.
void finalize()
Sets this KCM's buttons and adds a AdminMode button if necessary.
bool needsRootPrivileges() const
TQString moduleName() const
static bool testModule(const TQString &module)
Checks whether an TDECModule should be shown by running its test function.
Encapsulates a TDECModule for embedding.
const TDEAboutData * aboutData() const
TDECModule * realModule() const
Access to the actual module.
TQString handbookSection() const
bool rootMode() const
Returns whether the module is running in root mode.
const TDECModuleInfo & moduleInfo() const
TQString quickHelp() const
void setAboutData(TDEAboutData *about)
void setQuickHelp(const TQString &help)
static TDEIconLoader * iconLoader()
kdbgstream kdDebug(int area=0)