[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bcalligra=5D_/=3A_Odf=3A_Support_for_child_elements_?=
From: Lassi Nieminen <lassniem () gmail ! com>
Date: 2011-03-28 14:25:12
Message-ID: 20110328142512.F116BA609B () git ! kde ! org
[Download RAW message or body]
Git commit 3cfc423600f2d1aee16dd916651899fc34cd3c91 by Lassi Nieminen.
Committed on 28/03/2011 at 16:23.
Pushed by lassin into branch 'master'.
Odf: Support for child elements such as style:footer-style and style:header-style \
which were previously impossible to have using KoGenStyle.
Docx: Use footer-style & header-style in filter.
M +26 -0 filters/words/docx/DocxXmlDocumentReader.cpp
M +15 -0 libs/odf/KoGenStyle.h
http://commits.kde.org/calligra/3cfc423600f2d1aee16dd916651899fc34cd3c91
diff --git a/filters/words/docx/DocxXmlDocumentReader.cpp \
b/filters/words/docx/DocxXmlDocumentReader.cpp index 3394197..f30860a 100644
--- a/filters/words/docx/DocxXmlDocumentReader.cpp
+++ b/filters/words/docx/DocxXmlDocumentReader.cpp
@@ -528,6 +528,32 @@ KoFilter::ConversionStatus DocxXmlDocumentReader::read_pgMar()
STRING_TO_INT(left, leftNum, QString("w:left"));
m_pageMargins.insert(MarginLeft,TWIP_TO_POINT(leftNum));
}
+
+ TRY_READ_ATTR(footer)
+ TRY_READ_ATTR(header)
+
+ QBuffer headerBuffer;
+ headerBuffer.open( QIODevice::WriteOnly );
+ KoXmlWriter headerWriter(&headerBuffer, 3);
+ headerWriter.startElement("style:header-style");
+ headerWriter.startElement("style:header-footer-properties");
+ headerWriter.addAttribute("style:dynamic-spacing", "true");
+ headerWriter.endElement(); // style:header-footer-properties
+ headerWriter.endElement(); // style:header-style
+ QString headerContents = QString::fromUtf8(headerBuffer.buffer(), \
headerBuffer.buffer().size() ); + \
m_currentPageStyle.addStyleChildElement("header-style", headerContents); +
+ QBuffer footerBuffer;
+ footerBuffer.open( QIODevice::WriteOnly );
+ KoXmlWriter footerWriter(&footerBuffer, 3);
+ footerWriter.startElement("style:footer-style");
+ footerWriter.startElement("style:header-footer-properties");
+ footerWriter.addAttribute("style:dynamic-spacing", "true");
+ footerWriter.endElement(); // style:header-footer-properties
+ footerWriter.endElement(); // style:footer-style
+ QString footerContents = QString::fromUtf8(footerBuffer.buffer(), \
footerBuffer.buffer().size() ); + \
m_currentPageStyle.addStyleChildElement("footer-style", footerContents); +
readNext();
READ_EPILOGUE
}
diff --git a/libs/odf/KoGenStyle.h b/libs/odf/KoGenStyle.h
index 572cf00..7d9c5b3 100644
--- a/libs/odf/KoGenStyle.h
+++ b/libs/odf/KoGenStyle.h
@@ -352,6 +352,21 @@ public:
}
/**
+ * Same like \a addChildElement above but adds a child style which is not child \
of any of the properties + */
+ void addStyleChildElement(const QString &elementName, const QString& \
elementContents) { + m_properties[StyleChildElement].insertMulti(elementName, \
elementContents); + }
+
+ /**
+ * Same like \a addStyleChildElement above but with QByteArray to explicit \
convert from QByteArray + * to QString using utf8 to prevent a dirty pitfall.
+ */
+ void addStyleChildElement(const QString &elementName, const QByteArray& \
elementContents) { + m_properties[StyleChildElement].insertMulti(elementName, \
QString::fromUtf8(elementContents)); + }
+
+ /**
* @brief Add a style:map to the style.
* @param styleMap the attributes for the map, associated as (name,value).
*/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic