00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include <klocale.h>
00022
#include <kbuttonbox.h>
00023
#include <klistbox.h>
00024
#include <kstdguiitem.h>
00025
00026
#include <qgroupbox.h>
00027
#include <qlayout.h>
00028
00029
#include "resource.h"
00030
#include "addressbook.h"
00031
00032
#include "resourceselectdialog.h"
00033
00034
using namespace KABC;
00035
00036 ResourceSelectDialog::ResourceSelectDialog( AddressBook *ab,
QWidget *parent,
const char *name )
00037 :
KDialog( parent,
name, true )
00038 {
00039 setCaption( i18n(
"Resource Selection" ) );
00040 resize( 300, 200 );
00041
00042
QVBoxLayout *mainLayout =
new QVBoxLayout(
this );
00043 mainLayout->setMargin( marginHint() );
00044
00045
QGroupBox *groupBox =
new QGroupBox( 2, Qt::Horizontal,
this );
00046 groupBox->setTitle( i18n(
"Resources" ) );
00047
00048 mResourceId =
new KListBox( groupBox );
00049
00050 mainLayout->addWidget( groupBox );
00051
00052 mainLayout->addSpacing( 10 );
00053
00054
KButtonBox *buttonBox =
new KButtonBox(
this );
00055
00056 buttonBox->
addStretch();
00057 buttonBox->
addButton( KStdGuiItem::ok(),
this, SLOT( accept() ) );
00058 buttonBox->
addButton( KStdGuiItem::cancel(),
this, SLOT( reject() ) );
00059 buttonBox->
layout();
00060
00061 mainLayout->addWidget( buttonBox );
00062
00063
00064 uint counter = 0;
00065
QPtrList<Resource> list = ab->resources();
00066
for ( uint i = 0; i < list.count(); ++i ) {
00067 Resource *resource = list.at( i );
00068
if ( resource && !resource->readOnly() ) {
00069 mResourceMap.insert( counter, resource );
00070 mResourceId->insertItem( resource->resourceName() );
00071 counter++;
00072 }
00073 }
00074
00075 mResourceId->setCurrentItem( 0 );
00076 }
00077
00078 Resource *ResourceSelectDialog::resource()
00079 {
00080
if ( mResourceId->currentItem() != -1 )
00081
return mResourceMap[ mResourceId->currentItem() ];
00082
else
00083
return 0;
00084 }
00085
00086 Resource *ResourceSelectDialog::getResource( AddressBook *ab,
QWidget *parent )
00087 {
00088
QPtrList<Resource> resources = ab->resources();
00089
if ( resources.count() == 1 )
return resources.first();
00090
00091 Resource *found = 0;
00092 Resource *r = resources.first();
00093
while( r ) {
00094
if ( !r->readOnly() ) {
00095
if ( found ) {
00096 found = 0;
00097
break;
00098 }
else {
00099 found = r;
00100 }
00101 }
00102 r = resources.next();
00103 }
00104
if ( found )
return found;
00105
00106
ResourceSelectDialog dlg( ab, parent );
00107
if ( dlg.exec() == KDialog::Accepted )
return dlg.resource();
00108
else return 0;
00109 }
00110
00111
#include "resourceselectdialog.moc"