[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/koffice-change-tracking/libs/kotext/opendocument
From: Ganesh Paramasivam <ganesh () crystalfab ! com>
Date: 2010-12-28 9:12:09
Message-ID: 20101228091209.D8051AC8AD () svn ! kde ! org
[Download RAW message or body]
SVN commit 1209844 by ganeshp:
Basic framework for the support of list-item splits loading and function to detect \
list-item splits
M +42 -0 KoTextLoader.cpp
--- branches/work/koffice-change-tracking/libs/kotext/opendocument/KoTextLoader.cpp \
#1209843:1209844 @@ -144,6 +144,10 @@
bool checkForDeleteMerge(QTextCursor &cursor, const QString &id, int \
startPosition); QMap<KoDeleteChangeMarker *, QPair<int, int> > \
deleteChangeMarkerMap;
+ // For Loading of list item splits
+ bool checkForListItemSplit(const KoXmlElement &element);
+ KoXmlNode loadListItemSplit(const KoXmlElement &element, QString \
*generatedXmlString); +
explicit Private(KoShapeLoadingContext &context, KoShape *s)
: context(context),
textSharedData(0),
@@ -966,7 +970,11 @@
//Don't do anything
} else {
if ((e.attributeNS(KoXmlNS::delta, "insertion-type") == \
"insert-around-content") || (e.localName() == "remove-leaving-content-start")) { + \
if (!d->checkForListItemSplit(e)) { _node = loadDeleteMerges(e,&generatedXmlString);
+ } else {
+ _node = d->loadListItemSplit(e, &generatedXmlString);
+ }
//Parse and Load the generated xml
QString errorMsg;
@@ -1104,6 +1112,40 @@
kDebug(32500) << "text-style:" << \
KoTextDebug::textAttributes(cursor.blockCharFormat()); }
+bool KoTextLoader::Private::checkForListItemSplit(const KoXmlElement &element)
+{
+ QString endId = element.attributeNS(KoXmlNS::delta, "end-element-idref");
+ int insertedListItems = 0;
+ KoXmlElement currentElement = element;
+ bool isSplitListItem = false;
+
+ while(true) {
+ currentElement = currentElement.nextSibling().toElement();
+
+ if (currentElement.isNull()) {
+ continue;
+ }
+
+ if ((currentElement.localName() == "list-item") &&
+ (currentElement.attributeNS(KoXmlNS::delta, "insertion-type") == \
"insert-around-content")) { + insertedListItems++;
+ }
+
+ if ((currentElement.localName() == "remove-leaving-content-end") &&
+ (currentElement.attributeNS(KoXmlNS::delta, "end-element-id") == endId)) \
{ + break;
+ }
+ }
+
+ isSplitListItem = (insertedListItems > 1)?true:false;
+ return isSplitListItem;
+}
+
+KoXmlNode KoTextLoader::Private::loadListItemSplit(const KoXmlElement &element, \
QString *generatedXmlString) +{
+ return KoXmlNode();
+}
+
void KoTextLoader::loadSection(const KoXmlElement §ionElem, QTextCursor &cursor)
{
// Add a frame to the current layout
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic