kabc
resourcedirconfig.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "resourcedirconfig.h"
00022 #include "resourcedir.h"
00023
00024 #include "kabc/formatfactory.h"
00025 #include "kabc/stdaddressbook.h"
00026
00027 #include <kdebug.h>
00028 #include <klocale.h>
00029 #include <kstandarddirs.h>
00030 #include <kdialog.h>
00031
00032 #include <QtGui/QLabel>
00033 #include <QtGui/QLayout>
00034
00035 using namespace KABC;
00036
00037 ResourceDirConfig::ResourceDirConfig( QWidget *parent )
00038 : KRES::ConfigWidget( parent )
00039 {
00040 QGridLayout *mainLayout = new QGridLayout( this );
00041 mainLayout->setMargin( 0 );
00042 mainLayout->setSpacing( KDialog::spacingHint() );
00043
00044 QLabel *label = new QLabel( i18n( "Format:" ), this );
00045 mFormatBox = new KComboBox( this );
00046
00047 mainLayout->addWidget( label, 0, 0 );
00048 mainLayout->addWidget( mFormatBox, 0, 1 );
00049
00050 label = new QLabel( i18n( "Location:" ), this );
00051 mFileNameEdit = new KUrlRequester( this );
00052 mFileNameEdit->setMode( KFile::Directory );
00053
00054 mainLayout->addWidget( label, 1, 0 );
00055 mainLayout->addWidget( mFileNameEdit, 1, 1 );
00056
00057 FormatFactory *factory = FormatFactory::self();
00058 QStringList formats = factory->formats();
00059 QStringList::Iterator it;
00060 for ( it = formats.begin(); it != formats.end(); ++it ) {
00061 FormatInfo info = factory->info( *it );
00062 if ( !info.isNull() ) {
00063 mFormatTypes << (*it);
00064 mFormatBox->addItem( info.nameLabel );
00065 }
00066 }
00067
00068 mInEditMode = false;
00069 }
00070
00071 void ResourceDirConfig::setEditMode( bool value )
00072 {
00073 mFormatBox->setEnabled( !value );
00074 mInEditMode = value;
00075 }
00076
00077 void ResourceDirConfig::loadSettings( KRES::Resource *res )
00078 {
00079 ResourceDir *resource = dynamic_cast<ResourceDir*>( res );
00080
00081 if ( !resource ) {
00082 kDebug(5700) << "ResourceDirConfig::loadSettings(): cast failed";
00083 return;
00084 }
00085
00086 mFormatBox->setCurrentIndex( mFormatTypes.indexOf( resource->format() ) );
00087
00088 mFileNameEdit->setPath( resource->path() );
00089 if ( mFileNameEdit->url().isEmpty() ) {
00090 mFileNameEdit->setPath( KABC::StdAddressBook::directoryName() );
00091 }
00092 }
00093
00094 void ResourceDirConfig::saveSettings( KRES::Resource *res )
00095 {
00096 ResourceDir *resource = dynamic_cast<ResourceDir*>( res );
00097
00098 if ( !resource ) {
00099 kDebug(5700) << "ResourceDirConfig::loadSettings(): cast failed";
00100 return;
00101 }
00102
00103 if ( mInEditMode ) {
00104 resource->setFormat( mFormatTypes[ mFormatBox->currentIndex() ] );
00105 }
00106
00107 resource->setPath( mFileNameEdit->url().path() );
00108 }
00109
00110 #include "resourcedirconfig.moc"