-rw-r--r-- | pwmanager/pwmanager/pwmdoc.cpp | 10 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmdoc.h | 20 |
2 files changed, 24 insertions, 6 deletions
diff --git a/pwmanager/pwmanager/pwmdoc.cpp b/pwmanager/pwmanager/pwmdoc.cpp index fd17ce5..9043acc 100644 --- a/pwmanager/pwmanager/pwmdoc.cpp +++ b/pwmanager/pwmanager/pwmdoc.cpp @@ -3021,4 +3021,6 @@ PwMerror PwMDoc::syncronize(KSyncManager* manager, PwMDoc* syncLocal , PwMDoc* s QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); + bool mSyncLauncher = true; + bool fullDateRange = false; int take; @@ -3121,12 +3123,8 @@ PwMerror PwMDoc::syncronize(KSyncManager* manager, PwMDoc* syncLocal , PwMDoc* s return e_syncError; if ( take == 1 ) {// take local - int oldlistpos = inRemote->listViewPos; - (*inRemote) = (*inLocal); - inRemote->listViewPos = oldlistpos; + inRemote->syncItem(*inLocal, mSyncLauncher); ++changedRemote; } else { // take == 2 take remote - int oldlistpos = inLocal->listViewPos; - (*inLocal) = (*inRemote); - inLocal->listViewPos = oldlistpos; + inLocal->syncItem(*inRemote, mSyncLauncher); ++changedLocal; } diff --git a/pwmanager/pwmanager/pwmdoc.h b/pwmanager/pwmanager/pwmdoc.h index e419c24..09923ab 100644 --- a/pwmanager/pwmanager/pwmdoc.h +++ b/pwmanager/pwmanager/pwmdoc.h @@ -225,4 +225,24 @@ struct PwMDataItem return true; } + + //US ENH: this sync method actually copies all values from the parameter like the =operator + //does with two exceptions: listViewPos will not be changed, and the launcher only if required. + bool PwMDataItem::syncItem(const PwMDataItem &a, bool syncLauncher=true ) + { + desc = a.desc; + name = a.name; + pw = a.pw; + comment = a.comment; + url = a.url; + if (syncLauncher == true) + launcher = a.launcher; + meta = a.meta; + binary = a.binary; + lockStat = a.lockStat; + rev = a.rev; + + return true; + } + }; |