22 #include <tqstringlist.h>
23 #include <tqtabwidget.h>
24 #include <tqtooltip.h>
25 #include <tqvaluelist.h>
27 #include <tdecmodule.h>
28 #include <tdecmoduleinfo.h>
29 #include <tdecmoduleloader.h>
30 #include <tdecmoduleproxy.h>
33 #include <tdeglobal.h>
34 #include <kiconloader.h>
35 #include <kpushbutton.h>
37 #include <kstdguiitem.h>
39 #include "tdecmodulecontainer.h"
40 #include "tdecmodulecontainer.moc"
43 class TDECModuleContainer::TDECModuleContainerPrivate
46 TDECModuleContainerPrivate(
const TQStringList& mods )
57 TQTabWidget *tabWidget;
60 KPushButton *btnRootMode;
61 TQHBoxLayout *btnLayout;
62 TQVBoxLayout *topLayout;
75 const TQString& mods )
76 : TDECModule( parent, name )
78 d =
new TDECModuleContainerPrivate( TQStringList::split(
",", TQString(mods).
remove(
" " )) );
83 const TQStringList& mods )
84 : TDECModule( parent, name ), d( new TDECModuleContainerPrivate( mods ) )
89 void TDECModuleContainer::init()
91 d->topLayout =
new TQVBoxLayout(
this, 0, KDialog::spacingHint(),
"topLayout" );
92 d->tabWidget =
new TQTabWidget(
this,
"tabWidget");
93 d->tabWidget->setMargin(KDialog::marginHint());
94 connect( d->tabWidget, TQT_SIGNAL( currentChanged( TQWidget* ) ), TQT_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 )
110 setButtons( d->buttons );
115 d->btnLayout =
new TQHBoxLayout(
this, 0, 0,
"btnLayout");
116 d->btnRootMode =
new KPushButton(KStdGuiItem::adminMode(),
this,
"btnRootMode");
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;
158 d->buttons = d->buttons | proxy->
realModule()->buttons();
166 void TDECModuleContainer::tabSwitched( TQWidget * module )
171 if ( !d->hasRootKCM ) {
176 disconnect( d->btnRootMode, 0, 0, 0 );
180 d->btnRootMode->setEnabled(
true );
181 connect( d->btnRootMode, TQT_SIGNAL( clicked() ),
182 TQT_SLOT( runAsRoot() ));
183 connect( mod, TQT_SIGNAL( childClosed() ),
184 TQT_SLOT ( rootExited() ));
187 d->btnRootMode->setEnabled(
false );
191 setAboutData( const_cast<TDEAboutData*>(mod->
aboutData()) );
196 return d->handbookSection;
199 void TDECModuleContainer::runAsRoot()
201 if ( d->tabWidget->currentPage() )
203 d->btnRootMode->setEnabled(
false );
206 void TDECModuleContainer::rootExited()
208 connect( d->btnRootMode, TQT_SIGNAL( clicked() ), TQT_SLOT( runAsRoot() ));
209 d->btnRootMode->setEnabled(
true );
215 ModuleList::iterator it;
216 for ( it = list.begin() ; it !=list.end() ; ++it )
221 emit changed(
false );
228 ModuleList::iterator it;
229 for ( it = list.begin() ; it !=list.end() ; ++it )
234 emit changed(
false );
240 ModuleList::iterator it;
241 for ( it = list.begin() ; it !=list.end() ; ++it )
246 emit changed(
true );
bool needsRootPrivileges() const
const TDEAboutData * aboutData() const
ModuleList allModules
A list of all modules which are encapsulated.
static TDEIconLoader * iconLoader()
static bool testModule(const TQString &module)
Checks whether an TDECModule should be shown by running its test function.
ModuleList changedModules
A list containing TDECModuleProxy objects which have changed and must be saved.
kdbgstream kdDebug(int area=0)
TDECModule * realModule() const
Access to the actual module.
TQString quickHelp() const
bool rootMode() const
Returns whether the module is running in root mode.
void finalize()
Sets this KCM's buttons and adds a AdminMode button if necessary.
TDECModuleContainer(TQWidget *parent, const char *name, const TQStringList &mods)
Creates a TDECModuleContainer with tabs, each one containing one of the specified modules in mods...
TQString handbookSection() const
void save()
Reimplemented for internal purposes.
TQString moduleName() const
void load()
Reimplemented for internal purposes.
void addModule(const TQString &module)
Adds the specified module to the tab widget.
const TDECModuleInfo & moduleInfo() const
void defaults()
Reimplemented for internal purposes.
kndbgstream & endl(kndbgstream &s)
virtual TQString handbookSection() const
Reimplemented for internal purposes.
Encapsulates a TDECModule for embedding.
virtual ~TDECModuleContainer()
Default destructor.