21#include "resourcefileconfig.h"
22#include "resourcefile.h"
24#include "kabc/formatfactory.h"
25#include "kabc/stdaddressbook.h"
28#include <klocalizedstring.h>
29#include <kstandarddirs.h>
38ResourceFileConfig::ResourceFileConfig( QWidget *parent )
39 : ConfigWidget( 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 );
70void ResourceFileConfig::setEditMode(
bool value )
72 mFormatBox->setEnabled( !value );
81 kDebug() <<
"cast failed";
85 mFormatBox->setCurrentIndex( mFormatTypes.indexOf( resource->
format() ) );
87 mFileNameEdit->setUrl( KUrl::fromPath( resource->
fileName() ) );
88 if ( mFileNameEdit->url().isEmpty() ) {
98 kDebug() <<
"cast failed";
102 if ( !mInEditMode ) {
103 resource->
setFormat( mFormatTypes[ mFormatBox->currentIndex() ] );
106 resource->
setFileName( mFileNameEdit->url().path() );
109void ResourceFileConfig::checkFilePermissions(
const QString &fileName )
112 if ( access( QFile::encodeName( fileName ), F_OK ) == 0 ) {
113 emit setReadOnly( access( QFile::encodeName( fileName ), W_OK ) < 0 );
This resource allows access to a local file.
QString fileName() const
Return name of file used for loading and saving the address book.
void setFileName(const QString &)
Set name of file to be used for saving.
void setFormat(const QString &name)
Sets a new format by name.
QString format() const
Returns the format name.
static QString fileName()
Returns the default file name for vcard-based addressbook.
Class that holds a Calendar Url (FBURL/CALADRURI/CALURI)