sc/source/filter/xml/celltextparacontext.cxx | 23 +++++++++++------------ sc/source/filter/xml/celltextparacontext.hxx | 2 +- sc/source/filter/xml/xmlcelli.cxx | 9 +++++++-- sc/source/filter/xml/xmlcelli.hxx | 4 +++- 4 files changed, 22 insertions(+), 16 deletions(-)
New commits: commit 7d1a7c119b4fc1476b75ef858cd30c9daf86c98b Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Fri Feb 8 00:02:28 2013 -0500 Push everything to the cell context. This is to prepare for the use of EditEngine to create rich text paragraphs. Change-Id: Ic3577e38352429a61c3524114d071c80507e4a4b diff --git a/sc/source/filter/xml/celltextparacontext.cxx b/sc/source/filter/xml/celltextparacontext.cxx index a70143e..66c48e7 100644 --- a/sc/source/filter/xml/celltextparacontext.cxx +++ b/sc/source/filter/xml/celltextparacontext.cxx @@ -28,24 +28,26 @@ void ScXMLCellTextParaContext::StartElement(const uno::Reference<xml::sax::XAttr void ScXMLCellTextParaContext::EndElement() { - OUString aPara = maContent.makeStringAndClear(); - if (aPara.isEmpty()) - return; + if (!maContent.isEmpty()) + mrParentCxt.PushParagraphSpan(maContent); - mrParentCxt.PushParagraph(aPara); + mrParentCxt.PushParagraphEnd(); } void ScXMLCellTextParaContext::Characters(const OUString& rChars) { - if (rChars.isEmpty()) - return; - - maContent.append(rChars); + maContent = rChars; } SvXMLImportContext* ScXMLCellTextParaContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const uno::Reference<xml::sax::XAttributeList>& xAttrList) { + if (!maContent.isEmpty()) + { + mrParentCxt.PushParagraphSpan(maContent); + maContent = OUString(); + } + const SvXMLTokenMap& rTokenMap = GetScImport().GetCellTextParaElemTokenMap(); switch (rTokenMap.Get(nPrefix, rLocalName)) { @@ -61,10 +63,7 @@ SvXMLImportContext* ScXMLCellTextParaContext::CreateChildContext( void ScXMLCellTextParaContext::PushSpan(const OUString& rSpan) { - if (rSpan.isEmpty()) - return; - - maContent.append(rSpan); + mrParentCxt.PushParagraphSpan(rSpan); } ScXMLCellTextSpanContext::ScXMLCellTextSpanContext( diff --git a/sc/source/filter/xml/celltextparacontext.hxx b/sc/source/filter/xml/celltextparacontext.hxx index ecc6880..75ce3f8 100644 --- a/sc/source/filter/xml/celltextparacontext.hxx +++ b/sc/source/filter/xml/celltextparacontext.hxx @@ -21,7 +21,7 @@ class ScXMLTableRowCellContext; class ScXMLCellTextParaContext : public ScXMLImportContext { ScXMLTableRowCellContext& mrParentCxt; - OUStringBuffer maContent; + OUString maContent; public: ScXMLCellTextParaContext(ScXMLImport& rImport, sal_uInt16 nPrefix, const OUString& rLName, ScXMLTableRowCellContext& rParent); diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx index abe8353..e13cb82 100644 --- a/sc/source/filter/xml/xmlcelli.cxx +++ b/sc/source/filter/xml/xmlcelli.cxx @@ -300,9 +300,14 @@ bool cellExists( const ScAddress& rCellPos ) } -void ScXMLTableRowCellContext::PushParagraph(const OUString& rPara) +void ScXMLTableRowCellContext::PushParagraphSpan(const OUString& rSpan) { - maParagraphs.push_back(rPara); + maParagraph.append(rSpan); +} + +void ScXMLTableRowCellContext::PushParagraphEnd() +{ + maParagraphs.push_back(maParagraph.makeStringAndClear()); } SvXMLImportContext *ScXMLTableRowCellContext::CreateChildContext( sal_uInt16 nPrefix, diff --git a/sc/source/filter/xml/xmlcelli.hxx b/sc/source/filter/xml/xmlcelli.hxx index 58d0e45..cb61ce4 100644 --- a/sc/source/filter/xml/xmlcelli.hxx +++ b/sc/source/filter/xml/xmlcelli.hxx @@ -41,6 +41,7 @@ class ScXMLTableRowCellContext : public SvXMLImportContext boost::optional<OUString> maContentValidationName; std::vector<OUString> maParagraphs; + OUStringBuffer maParagraph; boost::scoped_ptr< ScXMLAnnotationData > mxAnnotationData; ScMyImpDetectiveObjVec* pDetectiveObjVec; @@ -106,7 +107,8 @@ public: const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList>& xAttrList ); - void PushParagraph(const OUString& rPara); + void PushParagraphSpan(const OUString& rSpan); + void PushParagraphEnd(); void SetAnnotation( const ScAddress& rPosition ); void SetDetectiveObj( const ScAddress& rPosition ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits