[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [Calligra/words-change_tracking-ganeshp] 64e1961: Initial addition of
From:       Ganesh Paramasivam <ganesh () crystalfab ! com>
Date:       2011-01-19 13:09:16
Message-ID: 20110119130916.24009A6090 () git ! kde ! org
[Download RAW message or body]

commit 64e196159b956a3e4fa529b04a0b3934cbc17531
branch words-change_tracking-ganeshp
Author: Ganesh Paramasivam <ganesh@crystalfab.com>
Date:   Wed Jan 19 18:37:51 2011 +0530

    Initial addition of capability to create duplicate change-ids in KoChangeTracker. \
i.e create a new change-id from an existing change-id which acts similar to a C++ \
reference variable

diff --git a/libs/kotext/changetracker/KoChangeTracker.cpp \
b/libs/kotext/changetracker/KoChangeTracker.cpp index 210b7c4..6925777 100644
--- a/libs/kotext/changetracker/KoChangeTracker.cpp
+++ b/libs/kotext/changetracker/KoChangeTracker.cpp
@@ -67,6 +67,7 @@ public:
     ~Private() { }
 
     QMultiHash<int, int> children;
+    QMultiHash<int, int> duplicateIds;
     QHash<int, int> parents;
     QHash<int, KoChangeTrackerElement *> changes;
     QHash<QString, int> loadedChanges;
@@ -258,6 +259,38 @@ int KoChangeTracker::parent(int changeId)
     return d->parents.value(changeId);
 }
 
+int KoChangeTracker::createDulicateChangeId(int existingChangeId)
+{
+    int duplicateChangeId = d->changeId;
+    d->changeId++;
+    
+    d->duplicateIds.insert(existingChangeId, duplicateChangeId);
+
+    return duplicateChangeId;
+}
+
+bool KoChangeTracker::isDuplicateChangeId(int duplicateChangeId)
+{
+    bool isDuplicate = d->duplicateIds.values().contains(duplicateChangeId);    
+    return isDuplicate;
+}
+
+bool KoChangeTracker::originalChangeId(int duplicateChangeId)
+{
+    int originalChangeId = 0;
+    QMultiHash<int, int>::const_iterator i = d->duplicateIds.constBegin();
+
+    while (i != d->duplicateIds.constEnd()) {
+        if (duplicateChangeId == i.value()) {
+            originalChangeId = i.key();
+            break;
+        }
+        ++i;
+    }
+
+    return originalChangeId;
+}
+
 void KoChangeTracker::acceptRejectChange(int changeId, bool set)
 {
     if (set) {
diff --git a/libs/kotext/changetracker/KoChangeTracker.h \
b/libs/kotext/changetracker/KoChangeTracker.h index defb1f8..2785014 100644
--- a/libs/kotext/changetracker/KoChangeTracker.h
+++ b/libs/kotext/changetracker/KoChangeTracker.h
@@ -92,6 +92,10 @@ public:
     void setParent(int child, int parent);
     int parent(int changeId);
 
+    int createDulicateChangeId(int existingChangeId);
+    bool isDuplicateChangeId(int duplicateChangeId);
+    bool originalChangeId(int duplicateChangeId);
+
     void acceptRejectChange(int changeId, bool set);
 
     /// Load/save methods


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic