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;
61 TQHBoxLayout *btnLayout;
62 TQVBoxLayout *topLayout;
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 ) )
89 void TDECModuleContainer::init()
92 d->tabWidget =
new TQTabWidget(
this,
"tabWidget");
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 )
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;
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 );
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 )
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 )
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...
void setQuickHelp(const TQString &help)
TQString handbookSection() const
void save()
Reimplemented for internal purposes.
TQString moduleName() const
void load()
Reimplemented for internal purposes.
void setAboutData(TDEAboutData *about)
void addModule(const TQString &module)
Adds the specified module to the tab widget.
const TDECModuleInfo & moduleInfo() const
static KGuiItem adminMode()
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.