summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kabc/plugins/file/resourcefile.cpp49
-rw-r--r--kabc/plugins/file/resourcefile.h1
-rw-r--r--pwmanager/pwmanager/pwmdoc.cpp45
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)) {