25#include "kcmkontact.h"
29#include <tdeaboutdata.h>
31#include <tdelistview.h>
35#include <tqbuttongroup.h>
36#include <tqcheckbox.h>
37#include <tqcombobox.h>
45 TDE_EXPORT TDECModule *create_kontactconfig( TQWidget *parent,
const char * ) {
46 return new KcmKontact( parent,
"kcmkontact" );
50class PluginItem :
public TQListViewItem
53 PluginItem( TQListView *parent,
const KService::Ptr &ptr )
54 : TQListViewItem( parent, ptr->name(), ptr->comment(), ptr->library() ),
59 KService::Ptr servicePtr()
const
68KcmKontact::KcmKontact( TQWidget *parent,
const char *name )
69 : KPrefsModule( Kontact::Prefs::self(), parent, name )
71 TQBoxLayout *topLayout =
new TQVBoxLayout(
this );
72 TQBoxLayout *pluginStartupLayout =
new TQHBoxLayout( topLayout );
73 topLayout->addStretch();
75 KPrefsWidBool *forceStartupPlugin = addWidBool( Kontact::Prefs::self()->forceStartupPluginItem(),
this );
76 pluginStartupLayout->addWidget( forceStartupPlugin->checkBox() );
78 PluginSelection *selection =
new PluginSelection( Kontact::Prefs::self()->forcedStartupPluginItem(),
this );
81 pluginStartupLayout->addWidget( selection->comboBox() );
82 selection->comboBox()->setEnabled(
false );
84 connect( forceStartupPlugin->checkBox(), TQ_SIGNAL( toggled(
bool ) ),
85 selection->comboBox(), TQ_SLOT( setEnabled(
bool ) ) );
89const TDEAboutData* KcmKontact::aboutData()
const
91 TDEAboutData *about =
new TDEAboutData( I18N_NOOP(
"kontactconfig" ),
92 I18N_NOOP(
"TDE Kontact" ),
93 0, 0, TDEAboutData::License_GPL,
94 I18N_NOOP(
"(c), 2003 Cornelius Schumacher" ) );
96 about->addAuthor(
"Cornelius Schumacher", 0,
"schumacher@kde.org" );
97 about->addAuthor(
"Tobias Koenig", 0,
"tokoe@kde.org" );
103PluginSelection::PluginSelection( TDEConfigSkeleton::ItemString *item, TQWidget *parent )
106 mPluginCombo =
new TQComboBox( parent );
107 connect( mPluginCombo, TQ_SIGNAL( activated(
int ) ), TQ_SIGNAL( changed() ) );
110PluginSelection::~PluginSelection()
114void PluginSelection::readConfig()
116 const TDETrader::OfferList offers = TDETrader::self()->query(
117 TQString::fromLatin1(
"Kontact/Plugin" ),
118 TQString(
"[X-TDE-KontactPluginVersion] == %1" ).arg( KONTACT_PLUGIN_VERSION ) );
120 int activeComponent = 0;
121 mPluginCombo->clear();
122 for ( KService::List::ConstIterator it = offers.begin(); it != offers.end(); ++it ) {
123 KService::Ptr service = *it;
125 TQVariant var = service->property(
"X-TDE-KontactPluginHasPart" );
126 if ( var.isValid() && var.toBool() ==
false )
128 mPluginCombo->insertItem( service->name() );
129 mPluginList.append( service );
131 if ( service->property(
"X-TDE-PluginInfo-Name").toString() == mItem->value() )
132 activeComponent = mPluginList.count() - 1;
135 mPluginCombo->setCurrentItem( activeComponent );
138void PluginSelection::writeConfig()
140 KService::Ptr ptr = *( mPluginList.at( mPluginCombo->currentItem() ) );
141 mItem->setValue( ptr->property(
"X-TDE-PluginInfo-Name").toString() );
144TQValueList<TQWidget *> PluginSelection::widgets()
const
146 TQValueList<TQWidget *> widgets;
147 widgets.append( mPluginCombo );
152#include "kcmkontact.moc"