22 #include "pluginpicker.h"
24 #include "memberinfo.h"
25 #include "syncprocessmanager.h"
27 #include <libqopensync/environment.h>
30 #include <tdeglobal.h>
31 #include <kiconloader.h>
32 #include <tdelocale.h>
37 PluginItem::PluginItem( KWidgetList *list,
const QSync::Plugin &plugin )
38 : KWidgetListItem( list ), mPlugin( plugin )
40 TQString iconName = MemberInfo::pluginIconName( mPlugin.name() );
41 TQGridLayout *layout =
new TQGridLayout(
this, 2, 2, KDialog::marginHint(), KDialog::spacingHint() );
43 TQLabel *icon =
new TQLabel(
this );
44 icon->setPixmap( TDEGlobal::iconLoader()->loadIcon( iconName, TDEIcon::Desktop ) );
45 icon->setFixedSize( icon->sizeHint() );
47 TQLabel *name =
new TQLabel( plugin.longName(),
this );
48 TQLabel *description =
new TQLabel( plugin.description(),
this );
50 TQFont font = name->font();
52 name->setFont( font );
54 layout->addWidget( icon, 0, 0 );
55 layout->addWidget( name, 0, 1 );
56 layout->addWidget( description, 1, 1 );
60 PluginPicker::PluginPicker( TQWidget *parent )
63 TQBoxLayout *layout =
new TQVBoxLayout(
this );
65 mPluginList =
new KWidgetList(
this );
66 layout->addWidget( mPluginList );
68 connect( mPluginList, TQT_SIGNAL( doubleClicked( KWidgetListItem* ) ),
69 TQT_SIGNAL( selected() ) );
73 mPluginList->setFocus();
76 void PluginPicker::updatePluginList()
80 QSync::Environment *env = SyncProcessManager::self()->environment();
82 QSync::Environment::PluginIterator it( env->pluginBegin() );
83 for( ; it != env->pluginEnd(); ++it ) {
84 QSync::Plugin plugin = *it;
85 mPluginList->appendItem(
new PluginItem( mPluginList, plugin ) );
89 QSync::Plugin PluginPicker::selectedPlugin()
const
91 PluginItem *item =
static_cast<PluginItem *
>( mPluginList->selectedItem() );
92 if ( item )
return item->plugin();
93 else return QSync::Plugin();
97 PluginPickerDialog::PluginPickerDialog( TQWidget *parent )
98 : KDialogBase( parent, 0, true, i18n(
"Select Member Type"), Ok | Cancel )
100 TQFrame *topFrame = makeMainWidget();
102 TQBoxLayout *topLayout =
new TQVBoxLayout( topFrame );
104 mPicker =
new PluginPicker( topFrame );
105 topLayout->addWidget( mPicker );
107 connect( mPicker, TQT_SIGNAL( selected() ), TQT_SLOT( slotOk() ) );
109 setInitialSize( TQSize( 460, 380 ) );
112 QSync::Plugin PluginPickerDialog::selectedPlugin()
const
114 return mPicker->selectedPlugin();
117 QSync::Plugin PluginPickerDialog::getPlugin( TQWidget *parent )
119 PluginPickerDialog dlg( parent );
121 return dlg.selectedPlugin();
123 return QSync::Plugin();
126 void PluginPickerDialog::slotOk()
131 void PluginPickerDialog::slotCancel()
136 #include "pluginpicker.moc"