author | zautrix <zautrix> | 2005-04-21 22:07:10 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-04-21 22:07:10 (UTC) |
commit | 6284b1d7d597463347b471ed8ec2770f4e2d449b (patch) (side-by-side diff) | |
tree | 5444a13ed788191733fec406791ddf03ec246b59 /kabc | |
parent | fd38343ef53c9b2a48208f747100579703cc1814 (diff) | |
download | kdepimpi-6284b1d7d597463347b471ed8ec2770f4e2d449b.zip kdepimpi-6284b1d7d597463347b471ed8ec2770f4e2d449b.tar.gz kdepimpi-6284b1d7d597463347b471ed8ec2770f4e2d449b.tar.bz2 |
fixes
-rw-r--r-- | kabc/plugins/file/resourcefile.cpp | 49 | ||||
-rw-r--r-- | kabc/plugins/file/resourcefile.h | 1 |
2 files changed, 48 insertions, 2 deletions
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp index 2bd9e71..c89939d 100644 --- a/kabc/plugins/file/resourcefile.cpp +++ b/kabc/plugins/file/resourcefile.cpp @@ -38,16 +38,17 @@ $Id$ #include <kapplication.h> #include <kconfig.h> #include <kdebug.h> #include <klocale.h> //US #include <ksavefile.h> #include <kstandarddirs.h> #include <kmessagebox.h> +#include <kglobalsettings.h> #include "formatfactory.h" #include "resource.h" #include "resourcefileconfig.h" #include "stdaddressbook.h" #define NO_DIRWATCH #include "resourcefile.h" @@ -74,38 +75,39 @@ __declspec(dllexport) #endif ResourceFile::ResourceFile( const KConfig *config ) : Resource( config ) , mFormat( 0 ) { QString fileName, formatName, default_fileName; default_fileName = StdAddressBook::fileName(); - + mLastBackupDate = -1; KConfig *cfg = (KConfig *)config; if ( cfg ) { fileName = cfg->readEntry( "FileName", default_fileName ); formatName = cfg->readEntry( "FileFormat", "vcard" ); mFamily = cfg->readEntry( "ResourceName", "std" ); + mLastBackupDate = cfg->readNumEntry( "LastBackupDate", 0 ); } else { fileName = default_fileName; formatName = "vcard"; } init( fileName, formatName ); } ResourceFile::ResourceFile( const QString &fileName , const QString &formatName ) : Resource( 0 ) { // qDebug("ResourceFile::ResourceFile : 3 %s, %s", fileName.latin1(), formatName.latin1()); - + mLastBackupDate = -1; init( fileName, formatName ); } void ResourceFile::init( const QString &fileName, const QString &formatName ) { mFormatName = formatName; FormatFactory *factory = FormatFactory::self(); @@ -252,16 +254,59 @@ bool ResourceFile::save( Ticket *ticket ) ok = saveFile.close(); } */ //US ToDo: write backupfile #ifndef NO_DIRWATCH mDirWatch.stopScan(); #endif + if ( mLastBackupDate >= 0 && mFamily != "sync_res") { + KConfig conf (locateLocal("config","microkdeglobalrc")); + conf.setGroup( "BackupSettings" ); + bool b_enabled = conf.readBoolEntry( "BackupEnabled" ); + if ( b_enabled ) { + int num = conf.readNumEntry( "BackupNumbers" ); + int d_count = conf.readNumEntry( "BackupDayCount" ); + bool stdDir = conf.readBoolEntry( "BackupUseDefaultDir" ); + QString bupDir = conf.readEntry( "BackupDatadir" ); + QDate reference ( 2000,1,1 ); + int daysTo = reference.daysTo ( QDate::currentDate() ); + bool saveDate = false; + if ( daysTo - d_count >= mLastBackupDate ) { + qDebug("KA: Last backup was %d days ago ", daysTo - mLastBackupDate ); + if ( stdDir ) + bupDir = KGlobalSettings::backupDataDir(); + int retval = KApplication::createBackup( fileName(), bupDir, num ); + if ( retval == 0 ) { + qDebug("KO: Backup cancelled. Will try again tomorrow "); + // retval == 0 : backup skipped for today, try again tomorrow + mLastBackupDate = daysTo - d_count+1; + saveDate = true; + } else if ( retval == 1 ){ + qDebug("KO: Backup created."); + // backup ok + mLastBackupDate = daysTo; + saveDate = true; + } else if ( retval == 2 ){ + qDebug("KO: Backup globally cancelled."); + // backup globally cancelled + b_enabled = false; + } + if ( !b_enabled ) { + conf.writeEntry( "mBackupEnabled", false ); + } + if ( saveDate ) { + KConfig config ( locateLocal("config","kabcrc") ); + config.setGroup( "Resource_" + identifier() ); + config.writeEntry( "LastBackupDate", mLastBackupDate ); + } + } + } + } QFile info; info.setName( fileName() ); bool ok = info.open( IO_WriteOnly ); if ( ok ) { mFormat->saveAll( addressBook(), this, &info ); info.close(); ok = true; diff --git a/kabc/plugins/file/resourcefile.h b/kabc/plugins/file/resourcefile.h index 3e9edfc..61da154 100644 --- a/kabc/plugins/file/resourcefile.h +++ b/kabc/plugins/file/resourcefile.h @@ -142,16 +142,17 @@ protected slots: protected: void init( const QString &fileName, const QString &format ); bool lock( const QString &fileName ); void unlock( const QString &fileName ); private: + int mLastBackupDate; QString mFamily; QString mFileName2; QString mFormatName; FormatPlugin *mFormat; QString mLockUniqueName; #ifndef NO_DIRWATCH |