[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [KOffice/koffice/change-tracking] 737fe11: Fix the order in the which
From: Ganesh Paramasivam <ganesh () crystalfab ! com>
Date: 2011-01-18 11:36:47
Message-ID: 20110118113647.5E3BAA6092 () git ! kde ! org
[Download RAW message or body]
commit 737fe113a0c3d9a84debcac4b04a7c57f4789427
branch koffice/change-tracking
Author: Ganesh Paramasivam <ganesh@crystalfab.com>
Date: Tue Jan 18 17:06:21 2011 +0530
Fix the order in the which the change meta-data in written in the odt
diff --git a/libs/kotext/changetracker/KoChangeTracker.cpp \
b/libs/kotext/changetracker/KoChangeTracker.cpp index b92a06f..210b7c4 100644
--- a/libs/kotext/changetracker/KoChangeTracker.cpp
+++ b/libs/kotext/changetracker/KoChangeTracker.cpp
@@ -381,6 +381,17 @@ int \
KoChangeTracker::getDeletedChanges(QVector<KoChangeTrackerElement *>& delete return \
numAppendedItems; }
+int KoChangeTracker::allChangeIds(QVector<int>& changesVector)
+{
+ int numAppendedItems = 0;
+ foreach(int changeId, d->changes.keys()) {
+ changesVector << changeId;
+ numAppendedItems++;
+ }
+
+ return numAppendedItems;
+}
+
const QColor& KoChangeTracker::getInsertionBgColor()
{
return d->insertionBgColor;
diff --git a/libs/kotext/changetracker/KoChangeTracker.h \
b/libs/kotext/changetracker/KoChangeTracker.h index 33b8b43..defb1f8 100644
--- a/libs/kotext/changetracker/KoChangeTracker.h
+++ b/libs/kotext/changetracker/KoChangeTracker.h
@@ -72,6 +72,8 @@ public:
//Returns all the deleted changes
int getDeletedChanges(QVector<KoChangeTrackerElement *>& deleteVector);
+ int allChangeIds(QVector<int>& changesVector);
+
bool containsInlineChanges(const QTextFormat &format);
int mergeableId(KoGenChange::Type type, QString &title, int existingId);
diff --git a/libs/kotext/opendocument/KoTextWriter.cpp \
b/libs/kotext/opendocument/KoTextWriter.cpp index ac0db64..b7a8f6f 100644
--- a/libs/kotext/opendocument/KoTextWriter.cpp
+++ b/libs/kotext/opendocument/KoTextWriter.cpp
@@ -325,7 +325,6 @@ int KoTextWriter::Private::openTagRegion(int position, \
ElementType elementType, QStack<int> changeHistory;
while (changeId && (changeId != changeStack.top())) {
changeHistory.push(changeId);
- saveChange(changeId);
changeId = changeTracker->parent(changeId);
}
@@ -565,7 +564,6 @@ void KoTextWriter::Private::saveParagraph(const QTextBlock \
&block, int from, int
QString splitId = QString("split") + QString::number(splitIdCounter);
writer->addAttribute("delta:split-id", splitId);
int changeId = \
block.blockFormat().intProperty(KoCharacterStyle::ChangeTrackerId);
- saveChange(changeId);
writer->addAttribute("delta:insertion-change-idref", \
changeTransTable.value(changeId)); writer->addAttribute("delta:insertion-type", \
"split"); splitIdCounter++;
@@ -584,7 +582,6 @@ void KoTextWriter::Private::saveParagraph(const QTextBlock \
&block, int from, int
QTextCharFormat firstFragmentFormat = firstFragment.charFormat();
int firstFragmentChangeId = \
firstFragmentFormat.intProperty(KoCharacterStyle::ChangeTrackerId); if \
(firstFragmentChangeId != changeId) {
- saveChange(changeId);
QString outputXml("<delta:removed-content \
delta:removal-change-idref=\"" + changeTransTable.value(changeId) + "\"/>"); \
writer->addCompleteElement(outputXml.toUtf8()); }
@@ -612,8 +609,6 @@ void KoTextWriter::Private::saveParagraph(const QTextBlock \
&block, int from, int else
identical = false;
- saveChange(charFormat);
-
const KoTextBlockData *blockData = dynamic_cast<const KoTextBlockData \
*>(block.userData()); if (blockData && (it == block.begin())) {
writer->addAttribute("text:id", context.subId(blockData));
@@ -753,7 +748,6 @@ void KoTextWriter::Private::saveParagraph(const QTextBlock \
&block, int from, int
QTextCharFormat lastFragmentFormat = lastFragment.charFormat();
int lastFragmentChangeId = \
lastFragmentFormat.intProperty(KoCharacterStyle::ChangeTrackerId); if \
(lastFragmentChangeId != changeId) {
- saveChange(changeId);
QString outputXml("<delta:removed-content \
delta:removal-change-idref=\"" + changeTransTable.value(changeId) + "\"/>"); \
writer->addCompleteElement(outputXml.toUtf8()); }
@@ -1164,7 +1158,6 @@ QTextBlock& KoTextWriter::Private::saveList(QTextBlock &block, \
QHash<QTextList *
void KoTextWriter::Private::postProcessListItemSplit(int changeId)
{
- saveChange(changeId);
QString change = changeTransTable.value(changeId);
QString generatedXmlString(generatedXmlArray);
@@ -2061,6 +2054,12 @@ void KoTextWriter::write(QTextDocument *document, int from, \
int to)
QTextBlock block = document->findBlock(from);
+ QVector<int> changesVector;
+ d->changeTracker->allChangeIds(changesVector);
+ foreach (int changeId, changesVector) {
+ d->saveChange(changeId);
+ }
+
QHash<QTextList *, QString> listStyles = d->saveListStyles(block, to);
d->writeBlocks(document, from, to, listStyles);
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic