summaryrefslogtreecommitdiffabout
path: root/kabc
authorzautrix <zautrix>2005-08-23 13:59:59 (UTC)
committer zautrix <zautrix>2005-08-23 13:59:59 (UTC)
commit02fa432f183ad2b18380de0e41399efe3b867dba (patch) (side-by-side diff)
treed13d3941ef4d6abc90790d5b6039a92787ea7987 /kabc
parent72d600e2c3b3405e5f37615a56560811c0cf9a78 (diff)
downloadkdepimpi-02fa432f183ad2b18380de0e41399efe3b867dba.zip
kdepimpi-02fa432f183ad2b18380de0e41399efe3b867dba.tar.gz
kdepimpi-02fa432f183ad2b18380de0e41399efe3b867dba.tar.bz2
fixx
Diffstat (limited to 'kabc') (more/less context) (show whitespace changes)
-rw-r--r--kabc/stdaddressbook.cpp3
-rw-r--r--kabc/stdaddressbook.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/kabc/stdaddressbook.cpp b/kabc/stdaddressbook.cpp
index f17f366..a14ae20 100644
--- a/kabc/stdaddressbook.cpp
+++ b/kabc/stdaddressbook.cpp
@@ -52,135 +52,136 @@ QString StdAddressBook::directoryName()
return locateLocal( "data", "kabc/stdvcf" );
}
void StdAddressBook::handleCrash()
{
StdAddressBook::self()->cleanUp();
}
StdAddressBook *StdAddressBook::self()
{
if ( !mSelf )
{
QString appdir = StdAddressBook::setTempAppDir();
// US im am not sure why I have to use the other format here??
#ifdef KAB_EMBEDDED
mSelf = addressBookDeleter.setObject( new StdAddressBook );
#else //KAB_EMBEDDED
addressBookDeleter.setObject( mSelf, new StdAddressBook );
#endif //KAB_EMBEDDED
KStandardDirs::setAppDir( appdir );
}
return mSelf;
}
QString StdAddressBook::setTempAppDir()
{
QString appDIR = KStandardDirs::appDir();
#ifdef DESKTOP_VERSION
QString appdir = QDir::homeDirPath();
if ( appdir.right(1) == "\\" || appdir.right(1) == "/" )
appdir += "kaddressbook/";
else
appdir += "/kaddressbook/";
KStandardDirs::setAppDir( QDir::convertSeparators( appdir ));
#else
QString appdir = QDir::homeDirPath() + "/kdepim/apps/kaddressbook";
KStandardDirs::setAppDir( appdir );
#endif
return appDIR;
}
StdAddressBook *StdAddressBook::self( bool onlyFastResources )
{
if ( !mSelf )
{
QString appdir =StdAddressBook::setTempAppDir();
#ifdef KAB_EMBEDDED
mSelf = addressBookDeleter.setObject( new StdAddressBook( onlyFastResources ) );
#else //KAB_EMBEDDED
addressBookDeleter.setObject( mSelf, new StdAddressBook( onlyFastResources ) );
#endif //KAB_EMBEDDED
KStandardDirs::setAppDir( appdir );
}
return mSelf;
}
StdAddressBook::StdAddressBook()
: AddressBook( "kabcrc" )
{
- init( false );
+ //init( false );
}
StdAddressBook::StdAddressBook( bool onlyFastResources )
: AddressBook( "kabcrc" )
{
+ if ( onlyFastResources )
init( onlyFastResources );
}
StdAddressBook::~StdAddressBook()
{
if ( mAutomaticSave )
save();
}
void StdAddressBook::init( bool )
{
KRES::Manager<Resource> *manager = resourceManager();
KRES::Manager<Resource>::ActiveIterator it;
for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
(*it)->setAddressBook( this );
if ( !(*it)->open() )
error( QString( "Unable to open resource '%1'!" ).arg( (*it)->resourceName() ) );
}
Resource *res = standardResource();
if ( !res ) {
res = manager->createResource( "file" );
if ( res )
{
addResource( res );
}
else
qDebug(" No resource available!!!");
}
setStandardResource( res );
manager->writeConfig();
load();
}
bool StdAddressBook::save()
{
kdDebug(5700) << "StdAddressBook::save()" << endl;
bool ok = true;
AddressBook *ab = self();
ab->deleteRemovedAddressees();
Iterator ait;
for ( ait = ab->begin(); ait != ab->end(); ++ait ) {
if ( !(*ait).IDStr().isEmpty() ) {
(*ait).insertCustom( "KADDRESSBOOK", "X-ExternalID", (*ait).IDStr() );
}
}
KRES::Manager<Resource>::ActiveIterator it;
KRES::Manager<Resource> *manager = ab->resourceManager();
for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
if ( !(*it)->readOnly() && (*it)->isOpen() ) {
Ticket *ticket = ab->requestSaveTicket( *it );
// qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() );
if ( !ticket ) {
ab->error( i18n( "Unable to save to resource '%1'. It is locked." )
.arg( (*it)->resourceName() ) );
return false;
}
if ( !ab->save( ticket ) )
diff --git a/kabc/stdaddressbook.h b/kabc/stdaddressbook.h
index 9ec53b0..cf130b3 100644
--- a/kabc/stdaddressbook.h
+++ b/kabc/stdaddressbook.h
@@ -73,79 +73,79 @@ class StdAddressBook : public AddressBook
/**
This is the same as above, but with specified
behaviour of resource loading.
@param onlyFastResource Only resources marked as 'fast' should be loaded
*/
// FIXME for KDE4 return StdAddressBook and merge with the metod above -zecke
static StdAddressBook *self( bool onlyFastResources );
/**
Save the standard address book to disk.
*/
static bool save();
/**
Call this method in your crash handler to allow the library clean up
possible locks.
*/
static void handleCrash();
/**
Returns the default file name for vcard-based addressbook
*/
static QString fileName();
/**
Returns the default directory name for vcard-based addressbook
*/
static QString directoryName();
/**
Set the automatic save property of the address book.
If @p enable is TRUE (default) the address book is saved at
destruction time otherwise you have to call @ref save() to
explicitely save it.
*/
static void setAutomaticSave( bool enable );
/**
Closes the address book. Depending on @ref automaticSave() it will
save the address book first.
*/
static void close();
/**
Returns whether the address book is saved at destruction time.
See also @ref setAutomaticSave().
*/
static bool automaticSave();
/**
Returns the contact, that is associated with the owner of the
address book. This contact should be used by other programs
to access user specific data.
*/
Addressee whoAmI();
/**
Sets the users contact. See @ref whoAmI() for more information.
@param uid The uid of the users contact.
*/
void setWhoAmI( const Addressee &addr );
+ void init( bool onlyFastResources );
protected:
StdAddressBook();
StdAddressBook( bool onlyFastResources );
- void init( bool onlyFastResources );
private:
static QString setTempAppDir();
static StdAddressBook *mSelf;
static bool mAutomaticSave;
};
}
#endif