[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