21 #include "resourcefileconfig.h"
22 #include "resourcefile.h"
24 #include "kabc/formatfactory.h"
25 #include "kabc/stdaddressbook.h"
29 #include <kstandarddirs.h>
32 #include <QFormLayout>
38 ResourceFileConfig::ResourceFileConfig( QWidget *parent )
41 QFormLayout *mainLayout =
new QFormLayout(
this );
42 mainLayout->setMargin( 0 );
44 mFormatBox =
new KComboBox(
this );
46 mainLayout->addRow( i18n(
"Format:" ), mFormatBox );
48 mFileNameEdit =
new KUrlRequester(
this );
49 mFileNameEdit->setMode( KFile::File | KFile::LocalOnly );
51 mainLayout->addRow( i18n(
"Location:" ), mFileNameEdit );
53 connect( mFileNameEdit, SIGNAL(textChanged(QString)),
54 SLOT(checkFilePermissions(QString)) );
57 QStringList formats = factory->
formats();
58 QStringList::Iterator it;
59 for ( it = formats.begin(); it != formats.end(); ++it ) {
62 mFormatTypes << ( *it );
70 void ResourceFileConfig::setEditMode(
bool value )
72 mFormatBox->setEnabled( !value );
76 void ResourceFileConfig::loadSettings( KRES::Resource *res )
81 kDebug() <<
"cast failed";
85 mFormatBox->setCurrentIndex( mFormatTypes.indexOf( resource->
format() ) );
87 mFileNameEdit->setUrl( KUrl::fromPath( resource->
fileName() ) );
88 if ( mFileNameEdit->url().isEmpty() ) {
93 void ResourceFileConfig::saveSettings( KRES::Resource *res )
98 kDebug() <<
"cast failed";
102 if ( !mInEditMode ) {
103 resource->
setFormat( mFormatTypes[ mFormatBox->currentIndex() ] );
106 resource->
setFileName( mFileNameEdit->url().path() );
109 void ResourceFileConfig::checkFilePermissions(
const QString &fileName )
112 if ( access( QFile::encodeName( fileName ), F_OK ) == 0 ) {
113 emit setReadOnly( access( QFile::encodeName( fileName ), W_OK ) < 0 );