[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