[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/koffice-change-tracking/libs
From: Ganesh Paramasivam <ganesh () crystalfab ! com>
Date: 2010-10-20 12:42:44
Message-ID: 20101020124244.2FCB7AC897 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1187794 by ganeshp:
Support for the loading of Change Tracking Meta-data in the new format
M +30 -0 kotext/changetracker/KoChangeTracker.cpp
M +4 -0 kotext/opendocument/KoTextLoader.cpp
M +2 -0 odf/KoXmlNS.cpp
M +2 -0 odf/KoXmlNS.h
--- branches/work/koffice-change-tracking/libs/kotext/changetracker/KoChangeTracker.cpp \
#1187793:1187794 @@ -286,6 +286,7 @@
void KoChangeTracker::loadOdfChanges(const KoXmlElement& element)
{
+ if (element.namespaceURI() == KoXmlNS::text) {
KoXmlElement tag;
forEachElement(tag, element) {
if (! tag.isNull()) {
@@ -327,7 +328,36 @@
}
}
}
+ } else {
+ //This is the ODF 1.2 Change Format
+ KoXmlElement tag;
+ forEachElement(tag, element) {
+ if (! tag.isNull()) {
+ const QString localName = tag.localName();
+ if (localName == "change-transaction") {
+ KoChangeTrackerElement *changeElement = 0;
+ //Set the change element as an insertion element for now
+ //Will be changed to the correct type when actual changes \
referencing this change-id are encountered + changeElement = new \
KoChangeTrackerElement(tag.attributeNS(KoXmlNS::delta,"change-id"),KoGenChange::InsertChange);
+ KoXmlElement metadata = \
tag.namedItemNS(KoXmlNS::delta,"change-info").toElement(); + if \
(!metadata.isNull()) { + KoXmlElement date = \
metadata.namedItem("dc:date").toElement(); + if \
(!date.isNull()) { + \
changeElement->setDate(date.text()); }
+ KoXmlElement creator = \
metadata.namedItem("dc:creator").toElement(); + if \
(!creator.isNull()) { + \
changeElement->setCreator(creator.text()); + }
+ }
+ changeElement->setEnabled(d->recordChanges);
+ d->changes.insert( d->changeId, changeElement);
+ \
d->loadedChanges.insert(tag.attributeNS(KoXmlNS::delta,"change-id"), d->changeId++); \
+ } + }
+ }
+ }
+}
int KoChangeTracker::getLoadedChangeId(QString odfId)
{
--- branches/work/koffice-change-tracking/libs/kotext/opendocument/KoTextLoader.cpp \
#1187793:1187794 @@ -301,6 +301,10 @@
forEachElement(tag, bodyElem) {
if (! tag.isNull()) {
const QString localName = tag.localName();
+ if (tag.namespaceURI() == KoXmlNS::delta) {
+ if (d->changeTracker && localName == "tracked-changes")
+ d->changeTracker->loadOdfChanges(tag);
+ }
if (tag.namespaceURI() == KoXmlNS::text) {
if (usedParagraph)
--- branches/work/koffice-change-tracking/libs/odf/KoXmlNS.cpp #1187793:1187794
@@ -46,3 +46,5 @@
const char* const KoXmlNS::koffice = "http://www.koffice.org/2005/";
const char* const KoXmlNS::officeooo = "http://openoffice.org/2009/office";
+
+const char* const KoXmlNS::delta = \
"http://www.deltaxml.com/ns/track-changes/delta-namespace";
--- branches/work/koffice-change-tracking/libs/odf/KoXmlNS.h #1187793:1187794
@@ -54,6 +54,8 @@
static const char* const koffice;
static const char* const officeooo;
+
+ static const char* const delta;
private:
KoXmlNS(); // don't create an instance of me :)
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic