From kde-commits Tue Jan 18 11:30:51 2011 From: Ganesh Paramasivam Date: Tue, 18 Jan 2011 11:30:51 +0000 To: kde-commits Subject: [KOffice/koffice/change-tracking] b72c8a3: Determine parent child Message-Id: <20110118113051.66EF6A6090 () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=129535031711893 commit b72c8a3d81a2832ec5dfe09b55436f16f0f6f6f8 branch koffice/change-tracking Author: Ganesh Paramasivam Date: Tue Jan 18 17:00:24 2011 +0530 Determine parent child relationships between change-id's based on the order in which the change meta-data in defined in the odt diff --git a/libs/kotext/opendocument/KoTextLoader.cpp b/libs/kotext/opendocument/KoTextLoader.cpp index 53f7498..33e2a33 100644 --- a/libs/kotext/opendocument/KoTextLoader.cpp +++ b/libs/kotext/opendocument/KoTextLoader.cpp @@ -258,7 +258,13 @@ void KoTextLoader::Private::openChangeRegion(const KoXmlElement& element) if (!changeId) return; if (!changeStack.empty() && (changeStack.top() != changeId)) { - changeTracker->setParent(changeId, changeStack.top()); + //Parent child relationship is defined by the order in which the change meta-data is seen + //So check the changeId to set the parent-child relationship + if (changeId > changeStack.top()) { + changeTracker->setParent(changeId, changeStack.top()); + } else { + changeTracker->setParent(changeStack.top(), changeId); + } } changeStack.push(changeId); changeTransTable.insert(id, changeId); @@ -1720,8 +1726,6 @@ KoDeleteChangeMarker * KoTextLoader::Private::insertDeleteChangeMarker(QTextCurs KoDeleteChangeMarker *retMarker = NULL; int changeId = changeTracker->getLoadedChangeId(id); if (changeId) { - if (changeStack.count() && (changeStack.top() != changeId)) - changeTracker->setParent(changeId, changeStack.top()); KoDeleteChangeMarker *deleteChangemarker = new KoDeleteChangeMarker(changeTracker); deleteChangemarker->setChangeId(changeId); KoChangeTrackerElement *changeElement = changeTracker->elementById(changeId);