diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-26 13:17:21 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-26 13:17:21 -0600 |
commit | dfe289850f068f19ba4a83ab4e7e22a7e09c13c9 (patch) | |
tree | c297348a55df66c571de4525646e0b9762427353 /kutils/kpluginselector.cpp | |
parent | b7658a0d5eca24a9d37c6e04f88298ef02389db0 (diff) | |
download | tdelibs-dfe289850f068f19ba4a83ab4e7e22a7e09c13c9.tar.gz tdelibs-dfe289850f068f19ba4a83ab4e7e22a7e09c13c9.zip |
Rename a number of libraries and executables to avoid conflicts with KDE4
Diffstat (limited to 'kutils/kpluginselector.cpp')
-rw-r--r-- | kutils/kpluginselector.cpp | 726 |
1 files changed, 0 insertions, 726 deletions
diff --git a/kutils/kpluginselector.cpp b/kutils/kpluginselector.cpp deleted file mode 100644 index fb1386106..000000000 --- a/kutils/kpluginselector.cpp +++ /dev/null @@ -1,726 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002-2003 Matthias Kretz <kretz@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - -*/ - -#include "kpluginselector.h" -#include "kpluginselector_p.h" - -#include <tqtooltip.h> -#include <tqvbox.h> -#include <tqlabel.h> -#include <tqstrlist.h> -#include <tqfile.h> -#include <tqstring.h> -#include <tqlayout.h> -#include <tqptrlist.h> -#include <tqwidgetstack.h> -#include <tqcursor.h> -#include <tqapplication.h> -#include <tqobjectlist.h> -#include <tqcstring.h> - -#include <kdebug.h> -#include <klocale.h> -#include <klistview.h> -#include <ksimpleconfig.h> -#include <kdialog.h> -#include <kglobal.h> -#include <kglobalsettings.h> -#include <kstandarddirs.h> -#include <ktabctl.h> -#include <tdecmoduleinfo.h> -#include <tqvaluelist.h> -#include <kservice.h> -#include <ktrader.h> -#include <ktabwidget.h> -#include <kiconloader.h> -#include <tdecmodule.h> -#include "tdecmoduleinfo.h" -#include "tdecmoduleloader.h" -#include <tqsplitter.h> -#include <tqframe.h> -#include "kplugininfo.h" -#include <kinstance.h> -#include <tqptrdict.h> -#include <tqstringlist.h> -#include "tdecmoduleproxy.h" - -/* - QCheckListViewItem that holds a pointer to the KPluginInfo object. - Used in the tooltip code to access additional fields -*/ -class KPluginInfoLVI : public TQCheckListItem -{ -public: - KPluginInfoLVI( KPluginInfo *pluginInfo, KListView *parent ) - : TQCheckListItem( parent, pluginInfo->name(), TQCheckListItem::CheckBox ), m_pluginInfo( pluginInfo ) - { - } - - KPluginInfo * pluginInfo() { return m_pluginInfo; } - -private: - KPluginInfo *m_pluginInfo; -}; - -/* - Custom TQToolTip for the list view. - The decision whether or not to show tooltips is taken in - maybeTip(). See also the TQListView sources from Qt itself. -*/ -class KPluginListViewToolTip : public TQToolTip -{ -public: - KPluginListViewToolTip( TQWidget *parent, KListView *lv ); - - void maybeTip( const TQPoint &pos ); - -private: - KListView *m_listView; -}; - -KPluginListViewToolTip::KPluginListViewToolTip( TQWidget *parent, KListView *lv ) -: TQToolTip( parent ), m_listView( lv ) -{ -} - -void KPluginListViewToolTip::maybeTip( const TQPoint &pos ) -{ - if ( !parentWidget() || !m_listView ) - return; - - KPluginInfoLVI *item = dynamic_cast<KPluginInfoLVI *>( m_listView->itemAt( pos ) ); - if ( !item ) - return; - - TQString toolTip = i18n( "<qt><table>" - "<tr><td><b>Description:</b></td><td>%1</td></tr>" - "<tr><td><b>Author:</b></td><td>%2</td></tr>" - "<tr><td><b>Version:</b></td><td>%3</td></tr>" - "<tr><td><b>License:</b></td><td>%4</td></tr></table></qt>" ).arg( item->pluginInfo()->comment(), - item->pluginInfo()->author(), item->pluginInfo()->version(), item->pluginInfo()->license() ); - - //kdDebug( 702 ) << k_funcinfo << "Adding tooltip: itemRect: " << itemRect << ", tooltip: " << toolTip << endl; - tip( m_listView->itemRect( item ), toolTip ); -} - -struct KPluginSelectionWidget::KPluginSelectionWidgetPrivate -{ - KPluginSelectionWidgetPrivate( KPluginSelector * _kps, - const TQString & _cat, - TDEConfigGroup * _config ) - : widgetstack( 0 ) - , kps( _kps ) - , config( _config ) - , tooltip( 0 ) - , catname( _cat ) - , currentplugininfo( 0 ) - , visible( true ) - , currentchecked( false ) - , changed( 0 ) - { - moduleParentComponents.setAutoDelete( true ); - } - - ~KPluginSelectionWidgetPrivate() - { - delete config; - } - - TQMap<TQCheckListItem*, KPluginInfo*> pluginInfoMap; - - TQWidgetStack * widgetstack; - KPluginSelector * kps; - TDEConfigGroup * config; - KPluginListViewToolTip *tooltip; - - TQDict<TDECModuleInfo> pluginconfigmodules; - TQMap<TQString, int> widgetIDs; - TQMap<KPluginInfo*, bool> plugincheckedchanged; - TQString catname; - TQValueList<TDECModuleProxy*> modulelist; - TQPtrDict<TQStringList> moduleParentComponents; - - KPluginInfo * currentplugininfo; - bool visible; - bool currentchecked; - int changed; -}; - -KPluginSelectionWidget::KPluginSelectionWidget( - const TQValueList<KPluginInfo*> & plugininfos, KPluginSelector * kps, - TQWidget * parent, const TQString & catname, const TQString & category, - TDEConfigGroup * config, const char * name ) - : TQWidget( parent, name ) - , d( new KPluginSelectionWidgetPrivate( kps, catname, config ) ) -{ - init( plugininfos, category ); -} - -inline TQString KPluginSelectionWidget::catName() const -{ - return d->catname; -} - -void KPluginSelectionWidget::init( const TQValueList<KPluginInfo*> & plugininfos, - const TQString & category ) -{ - // setup Widgets - ( new TQVBoxLayout( this, 0, KDialog::spacingHint() ) )->setAutoAdd( true ); - KListView * listview = new KListView( this ); - d->tooltip = new KPluginListViewToolTip( listview->viewport(), listview ); - connect( listview, TQT_SIGNAL( pressed( TQListViewItem * ) ), this, - TQT_SLOT( executed( TQListViewItem * ) ) ); - connect( listview, TQT_SIGNAL( spacePressed( TQListViewItem * ) ), this, - TQT_SLOT( executed( TQListViewItem * ) ) ); - connect( listview, TQT_SIGNAL( returnPressed( TQListViewItem * ) ), this, - TQT_SLOT( executed( TQListViewItem * ) ) ); - connect( listview, TQT_SIGNAL( selectionChanged( TQListViewItem * ) ), this, - TQT_SLOT( executed( TQListViewItem * ) ) ); - listview->setSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Preferred ); - listview->setAcceptDrops( false ); - listview->setFullWidth( true ); - listview->setSelectionModeExt( KListView::Single ); - listview->setAllColumnsShowFocus( true ); - listview->addColumn( i18n( "Name" ) ); - for( TQValueList<KPluginInfo*>::ConstIterator it = plugininfos.begin(); - it != plugininfos.end(); ++it ) - { - d->plugincheckedchanged[ *it ] = false; - if( !( *it )->isHidden() && - ( category.isNull() || ( *it )->category() == category ) ) - { - TQCheckListItem * item = new KPluginInfoLVI( *it, listview ); - if( ! ( *it )->icon().isEmpty() ) - item->setPixmap( 0, SmallIcon( ( *it )->icon(), IconSize( KIcon::Small ) ) ); - item->setOn( ( *it )->isPluginEnabled() ); - d->pluginInfoMap.insert( item, *it ); - } - } - - // widgetstack - d->widgetstack = d->kps->widgetStack(); - load(); - // select and highlight the first item in the plugin list - if( listview->firstChild() ) - listview->setSelected( listview->firstChild(), true ); -} - -KPluginSelectionWidget::~KPluginSelectionWidget() -{ - delete d->tooltip; - delete d; -} - -bool KPluginSelectionWidget::pluginIsLoaded( const TQString & pluginName ) const -{ - for( TQMap<TQCheckListItem*, KPluginInfo*>::ConstIterator it = - d->pluginInfoMap.begin(); it != d->pluginInfoMap.end(); ++it ) - if( it.data()->pluginName() == pluginName ) - return it.data()->isPluginEnabled(); - return false; -} - - -TQWidget * KPluginSelectionWidget::insertKCM( TQWidget * parent, - const TDECModuleInfo & moduleinfo ) -{ - TDECModuleProxy * module = new TDECModuleProxy( moduleinfo, false, - parent ); - if( !module->realModule() ) - { - //FIXME: not very verbose - TQLabel * label = new TQLabel( i18n( "Error" ), parent ); - label->setAlignment( Qt::AlignCenter ); - - return label; - } - // add the KCM to the list so that we can call load/save/defaults on it - d->modulelist.append( module ); - TQStringList * parentComponents = new TQStringList( - moduleinfo.service()->property( - "X-TDE-ParentComponents" ).toStringList() ); - d->moduleParentComponents.insert( module, parentComponents ); - connect( module, TQT_SIGNAL( changed( bool ) ), TQT_SLOT( clientChanged( bool ) ) ); - return module; -} - -void KPluginSelectionWidget::embeddPluginKCMs( KPluginInfo * plugininfo, bool checked ) -{ - //if we have Services for the plugin we should be able to - //create KCM(s) - TQApplication::setOverrideCursor( Qt::WaitCursor ); - if( plugininfo->kcmServices().size() > 1 ) - { - // we need a tabwidget - KTabWidget * tabwidget = new KTabWidget( d->widgetstack ); - tabwidget->setEnabled( checked ); - - int id = d->widgetstack->addWidget( tabwidget ); - d->kps->configPage( id ); - d->widgetIDs[ plugininfo->pluginName() ] = id; - - for( TQValueList<KService::Ptr>::ConstIterator it = - plugininfo->kcmServices().begin(); - it != plugininfo->kcmServices().end(); ++it ) - { - if( !( *it )->noDisplay() ) - { - TDECModuleInfo moduleinfo( *it ); - TQWidget * module = insertKCM( tabwidget, moduleinfo ); - tabwidget->addTab( module, moduleinfo.moduleName() ); - } - } - } - else - { - if( !plugininfo->kcmServices().front()->noDisplay() ) - { - TDECModuleInfo moduleinfo( - plugininfo->kcmServices().front() ); - TQWidget * module = insertKCM( d->widgetstack, moduleinfo ); - module->setEnabled( checked ); - - int id = d->widgetstack->addWidget( module ); - d->kps->configPage( id ); - d->widgetIDs[ plugininfo->pluginName() ] = id; - } - } - TQApplication::restoreOverrideCursor(); -} - -inline void KPluginSelectionWidget::updateConfigPage() -{ - updateConfigPage( d->currentplugininfo, d->currentchecked ); -} - -void KPluginSelectionWidget::updateConfigPage( KPluginInfo * plugininfo, - bool checked ) -{ - //kdDebug( 702 ) << k_funcinfo << endl; - d->currentplugininfo = plugininfo; - d->currentchecked = checked; - - // if this widget is not currently visible (meaning that it's in a tabwidget - // and another tab is currently opened) it's not allowed to change the - // widgetstack - if( ! d->visible ) - return; - - if( 0 == plugininfo ) - { - d->kps->configPage( 1 ); - return; - } - - if( plugininfo->kcmServices().empty() ) - d->kps->configPage( 1 ); - else - { - if( !d->widgetIDs.contains( plugininfo->pluginName() ) ) - // if no widget exists for the plugin create it - embeddPluginKCMs( plugininfo, checked ); - else - { - // the page already exists - int id = d->widgetIDs[ plugininfo->pluginName() ]; - d->kps->configPage( id ); - d->widgetstack->widget( id )->setEnabled( checked ); - } - } -} - -void KPluginSelectionWidget::clientChanged( bool didchange ) -{ - kdDebug( 702 ) << k_funcinfo << endl; - d->changed += didchange ? 1 : -1; - if( d->changed == 1 ) - emit changed( true ); - else if( d->changed == 0 ) - emit changed( false ); - else if( d->changed < 0 ) - kdError( 702 ) << "negative changed value: " << d->changed << endl; -} - -void KPluginSelectionWidget::tabWidgetChanged( TQWidget * widget ) -{ - if( widget == this ) - { - d->visible = true; - updateConfigPage(); - } - else - d->visible = false; -} - -void KPluginSelectionWidget::executed( TQListViewItem * item ) -{ - kdDebug( 702 ) << k_funcinfo << endl; - if( item == 0 ) - return; - - // Why not a dynamic_cast? - Martijn - // because this is what the Qt API suggests; and since gcc 3.x I don't - // trust dynamic_cast anymore - mkretz - if( item->rtti() != 1 ) //check for a QCheckListItem - return; - - TQCheckListItem * citem = static_cast<TQCheckListItem *>( item ); - bool checked = citem->isOn(); - //kdDebug( 702 ) << "it's a " << ( checked ? "checked" : "unchecked" ) - // << " TQCheckListItem" << endl; - - KPluginInfo * info = d->pluginInfoMap[ citem ]; - Q_ASSERT( !info->isHidden() ); - - if ( info->isPluginEnabled() != checked ) - { - kdDebug( 702 ) << "Item changed state, emitting changed()" << endl; - - if( ! d->plugincheckedchanged[ info ] ) - { - ++d->changed; - if ( d->changed == 1 ) - emit changed( true ); - } - d->plugincheckedchanged[ info ] = true; - - checkDependencies( info ); - } - else - { - if( d->plugincheckedchanged[ info ] ) - { - --d->changed; - if ( d->changed == 0 ) - emit changed( false ); - } - d->plugincheckedchanged[ info ] = false; - // FIXME: plugins that depend on this plugin need to be disabled, too - } - - updateConfigPage( info, checked ); -} - -void KPluginSelectionWidget::load() -{ - //kdDebug( 702 ) << k_funcinfo << endl; - - for( TQMap<TQCheckListItem*, KPluginInfo*>::Iterator it = - d->pluginInfoMap.begin(); it != d->pluginInfoMap.end(); ++it ) - { - KPluginInfo * info = it.data(); - info->load( d->config ); - it.key()->setOn( info->isPluginEnabled() ); - if( d->visible && info == d->currentplugininfo ) - d->currentchecked = info->isPluginEnabled(); - } - - for( TQValueList<TDECModuleProxy*>::Iterator it = d->modulelist.begin(); - it != d->modulelist.end(); ++it ) - if( ( *it )->changed() ) - ( *it )->load(); - - updateConfigPage(); - // TODO: update changed state -} - -void KPluginSelectionWidget::save() -{ - kdDebug( 702 ) << k_funcinfo << endl; - - for( TQMap<TQCheckListItem*, KPluginInfo*>::Iterator it = - d->pluginInfoMap.begin(); it != d->pluginInfoMap.end(); ++it ) - { - KPluginInfo * info = it.data(); - bool checked = it.key()->isOn(); - info->setPluginEnabled( checked ); - info->save( d->config ); - d->plugincheckedchanged[ info ] = false; - } - TQStringList updatedModules; - for( TQValueList<TDECModuleProxy*>::Iterator it = d->modulelist.begin(); - it != d->modulelist.end(); ++it ) - if( ( *it )->changed() ) - { - ( *it )->save(); - TQStringList * names = d->moduleParentComponents[ *it ]; - if( names->size() == 0 ) - names->append( TQString::null ); - for( TQStringList::ConstIterator nameit = names->begin(); - nameit != names->end(); ++nameit ) - if( updatedModules.find( *nameit ) == updatedModules.end() ) - updatedModules.append( *nameit ); - } - for( TQStringList::ConstIterator it = updatedModules.begin(); it != updatedModules.end(); ++it ) - emit configCommitted( ( *it ).latin1() ); - - updateConfigPage(); - kdDebug( 702 ) << "syncing config file" << endl; - d->config->sync(); - d->changed = 0; - emit changed( false ); -} - -void KPluginSelectionWidget::checkDependencies( const KPluginInfo * info ) -{ - if( info->dependencies().isEmpty() ) - return; - - for( TQStringList::ConstIterator it = info->dependencies().begin(); - it != info->dependencies().end(); ++it ) - for( TQMap<TQCheckListItem*, - KPluginInfo*>::Iterator infoIt = d->pluginInfoMap.begin(); - infoIt != d->pluginInfoMap.end(); ++infoIt ) - if( infoIt.data()->pluginName() == *it ) - { - if( !infoIt.key()->isOn() ) - { - infoIt.key()->setOn( true ); - checkDependencies( infoIt.data() ); - } - continue; - } -} - -class KPluginSelector::KPluginSelectorPrivate -{ - public: - KPluginSelectorPrivate() - : frame( 0 ) - , tabwidget( 0 ) - , widgetstack( 0 ) - , hideconfigpage( false ) - { - } - - TQFrame * frame; - KTabWidget * tabwidget; - TQWidgetStack * widgetstack; - TQValueList<KPluginSelectionWidget *> pswidgets; - bool hideconfigpage; -}; - -KPluginSelector::KPluginSelector( TQWidget * parent, const char * name ) -: TQWidget( parent, name ) -, d( new KPluginSelectorPrivate ) -{ - TQBoxLayout * hbox = new TQHBoxLayout( this, 0, KDialog::spacingHint() ); - hbox->setAutoAdd( true ); - - TQSplitter* splitter = new TQSplitter( Qt::Horizontal, this ); - d->frame = new TQFrame( splitter, "KPluginSelector left frame" ); - d->frame->setFrameStyle( TQFrame::NoFrame ); - ( new TQVBoxLayout( d->frame, 0, KDialog::spacingHint() ) )->setAutoAdd( true ); - - // widgetstack - d->widgetstack = new TQWidgetStack( splitter, "KPluginSelector Config Pages" ); - d->widgetstack->setFrameStyle( TQFrame::Panel | TQFrame::Sunken ); - d->widgetstack->setMinimumSize( 200, 200 ); - - TQLabel * label = new TQLabel( i18n( "(This plugin is not configurable)" ), - d->widgetstack ); - ( new TQVBoxLayout( label, 0, KDialog::spacingHint() ) )->setAutoAdd( true ); - label->setAlignment( Qt::AlignCenter ); - label->setMinimumSize( 200, 200 ); - - d->widgetstack->addWidget( label, 1 ); - - configPage( 1 ); -} - -KPluginSelector::~KPluginSelector() -{ - delete d; -} - -void KPluginSelector::checkNeedForTabWidget() -{ - kdDebug( 702 ) << k_funcinfo << endl; - if( ! d->tabwidget && d->pswidgets.size() == 1 ) - { - kdDebug( 702 ) << "no TabWidget and one KPluginSelectionWidget" << endl; - // there's only one KPluginSelectionWidget yet, we need a TabWidget - KPluginSelectionWidget * w = d->pswidgets.first(); - if( w ) - { - kdDebug( 702 ) << "create TabWidget" << endl; - d->tabwidget = new KTabWidget( d->frame, - "KPluginSelector TabWidget" ); - w->reparent( d->tabwidget, TQPoint( 0, 0 ) ); - d->tabwidget->addTab( w, w->catName() ); - connect( d->tabwidget, TQT_SIGNAL( currentChanged( TQWidget * ) ), w, - TQT_SLOT( tabWidgetChanged( TQWidget * ) ) ); - } - } -} - -static TQValueList<KPluginInfo*> kpartsPluginInfos( const TQString& instanceName ) -{ - if( instanceName.isNull() ) - return TQValueList<KPluginInfo*>(); //nothing - - const TQStringList desktopfilenames = TDEGlobal::dirs()->findAllResources( "data", - instanceName + "/kpartplugins/*.desktop", true, false ); - return KPluginInfo::fromFiles( desktopfilenames ); -} - -void KPluginSelector::addPlugins( const TQString & instanceName, - const TQString & catname, const TQString & category, TDEConfig * config ) -{ - const TQValueList<KPluginInfo*> plugininfos = kpartsPluginInfos( instanceName ); - if ( plugininfos.isEmpty() ) - return; - checkNeedForTabWidget(); - Q_ASSERT( config ); // please set config, or use addPlugins( instance, ... ) which takes care of it - if ( !config ) // KDE4: ensure that config is always set; make it second in the arg list? - config = new KSimpleConfig( instanceName ); // memleak! - TDEConfigGroup * cfgGroup = new TDEConfigGroup( config, "KParts Plugins" ); - kdDebug( 702 ) << k_funcinfo << "cfgGroup = " << cfgGroup << endl; - addPluginsInternal( plugininfos, catname, category, cfgGroup ); -} - -void KPluginSelector::addPluginsInternal( const TQValueList<KPluginInfo*> plugininfos, - const TQString & catname, const TQString & category, - TDEConfigGroup* cfgGroup ) -{ - KPluginSelectionWidget * w; - if( d->tabwidget ) - { - w = new KPluginSelectionWidget( plugininfos, this, - d->tabwidget, catname, category, cfgGroup ); - d->tabwidget->addTab( w, catname ); - connect( d->tabwidget, TQT_SIGNAL( currentChanged( TQWidget * ) ), w, - TQT_SLOT( tabWidgetChanged( TQWidget * ) ) ); - } - else - w = new KPluginSelectionWidget( plugininfos, this, d->frame, - catname, category, cfgGroup ); - w->setMinimumSize( 200, 200 ); - connect( w, TQT_SIGNAL( changed( bool ) ), this, TQT_SIGNAL( changed( bool ) ) ); - connect( w, TQT_SIGNAL( configCommitted( const TQCString & ) ), this, - TQT_SIGNAL( configCommitted( const TQCString & ) ) ); - d->pswidgets += w; -} - -void KPluginSelector::addPlugins( const TDEInstance * instance, const TQString & - catname, const TQString & category, TDEConfig * config ) -{ - if ( !config ) - config = instance->config(); - addPlugins( instance->instanceName(), catname, category, config ); -} - -void KPluginSelector::addPlugins( const TQValueList<KPluginInfo*> & plugininfos, - const TQString & catname, const TQString & category, TDEConfig * config ) -{ - checkNeedForTabWidget(); - // the TDEConfigGroup becomes owned by KPluginSelectionWidget - TDEConfigGroup * cfgGroup = new TDEConfigGroup( config ? config : TDEGlobal::config(), "Plugins" ); - kdDebug( 702 ) << k_funcinfo << "cfgGroup = " << cfgGroup << endl; - addPluginsInternal( plugininfos, catname, category, cfgGroup ); -} - -TQWidgetStack * KPluginSelector::widgetStack() -{ - return d->widgetstack; -} - -inline void KPluginSelector::configPage( int id ) -{ - if( id == 1 ) - { - // no config page - if( d->hideconfigpage ) - { - d->widgetstack->hide(); - return; - } - } - else - d->widgetstack->show(); - - d->widgetstack->raiseWidget( id ); -} - -void KPluginSelector::setShowEmptyConfigPage( bool show ) -{ - d->hideconfigpage = !show; - if( d->hideconfigpage ) - if( d->widgetstack->id( d->widgetstack->visibleWidget() ) == 1 ) - d->widgetstack->hide(); -} - -void KPluginSelector::load() -{ - for( TQValueList<KPluginSelectionWidget *>::Iterator it = - d->pswidgets.begin(); it != d->pswidgets.end(); ++it ) - { - ( *it )->load(); - } -} - -void KPluginSelector::save() -{ - for( TQValueList<KPluginSelectionWidget *>::Iterator it = - d->pswidgets.begin(); it != d->pswidgets.end(); ++it ) - { - ( *it )->save(); - } -} - -void KPluginSelector::defaults() -{ - kdDebug( 702 ) << k_funcinfo << endl; - - // what should defaults do? here's what I think: - // Pressing a button in the dialog should not change any widgets that are - // not visible for the user. Therefor we may only change the currently - // visible plugin's KCM. Restoring the default plugin selections is therefor - // not possible. (if the plugin has multiple KCMs they will be shown in a - // tabwidget - defaults() will be called for all of them) - - TQWidget * pluginconfig = d->widgetstack->visibleWidget(); - TDECModuleProxy * kcm = ::tqqt_cast<TDECModuleProxy*>(pluginconfig); - if( kcm ) - { - kdDebug( 702 ) << "call TDECModule::defaults() for the plugins KCM" - << endl; - kcm->defaults(); - return; - } - - // if we get here the visible Widget must be a tabwidget holding more than - // one KCM - TQObjectList * kcms = pluginconfig->queryList( "TDECModuleProxy", - 0, false, false ); - TQObjectListIt it( *kcms ); - TQObject * obj; - while( ( obj = it.current() ) != 0 ) - { - ++it; - ( ( TDECModule* )obj )->defaults(); - } - delete kcms; - // FIXME: update changed state -} - -// vim: sw=4 sts=4 et - -#include "kpluginselector.moc" -#include "kpluginselector_p.moc" |