-rw-r--r-- | kabc/plugins/file/resourcefile.cpp | 49 | ||||
-rw-r--r-- | kabc/plugins/file/resourcefile.h | 1 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmdoc.cpp | 45 |
3 files changed, 93 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 @@ -45,2 +45,3 @@ $Id$ #include <kmessagebox.h> +#include <kglobalsettings.h> @@ -81,3 +82,3 @@ ResourceFile::ResourceFile( const KConfig *config ) default_fileName = StdAddressBook::fileName(); - + mLastBackupDate = -1; KConfig *cfg = (KConfig *)config; @@ -87,2 +88,3 @@ ResourceFile::ResourceFile( const KConfig *config ) mFamily = cfg->readEntry( "ResourceName", "std" ); + mLastBackupDate = cfg->readNumEntry( "LastBackupDate", 0 ); } else { @@ -102,3 +104,3 @@ ResourceFile::ResourceFile( const QString &fileName , - + mLastBackupDate = -1; init( fileName, formatName ); @@ -259,2 +261,45 @@ bool ResourceFile::save( Ticket *ticket ) #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; 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 @@ -149,2 +149,3 @@ protected: private: + int mLastBackupDate; QString mFamily; diff --git a/pwmanager/pwmanager/pwmdoc.cpp b/pwmanager/pwmanager/pwmdoc.cpp index 61f2616..36b0df5 100644 --- a/pwmanager/pwmanager/pwmdoc.cpp +++ b/pwmanager/pwmanager/pwmdoc.cpp @@ -37,2 +37,4 @@ #include <kmessagebox.h> +#include <kconfig.h> +#include <kglobalsettings.h> #include <libkcal/syncdefines.h> @@ -429,2 +431,45 @@ PwMerror PwMDoc::saveDoc(char compress, const QString *file) } + int mLastBackupDate = 0; + KConfig configGlobal (locateLocal("config","pwmanagerbuprc")); + QFileInfo fileInfo ( filename ); + mLastBackupDate = configGlobal.readNumEntry( "LastBackupDate-"+ fileInfo.fileName (), 0 ); + KConfig config (locateLocal("config","microkdeglobalrc")); + config.setGroup( "BackupSettings" ); + bool b_enabled = config.readBoolEntry( "BackupEnabled" ); + if ( b_enabled ) { + int num = config.readNumEntry( "BackupNumbers" ); + int d_count = config.readNumEntry( "BackupDayCount" ); + bool stdDir = config.readBoolEntry( "BackupUseDefaultDir" ); + QString bupDir = config.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 ) { + config.writeEntry( "mBackupEnabled", false ); + } + if ( saveDate ) { + configGlobal.writeEntry( "LastBackupDate-"+ fileInfo.fileName (), mLastBackupDate ); + } + } + } if (QFile::exists(filename)) { |