xmloff/source/text/XMLRedlineExport.cxx | 90 ++++++++++++++++---------------- xmloff/source/text/txtparae.cxx | 3 - 2 files changed, 46 insertions(+), 47 deletions(-)
New commits: commit b4d0ec6e524cd9024d24c398cd911e1565e7495e Author: Rosemary Sebastian <[email protected]> Date: Wed Jun 22 21:17:59 2016 +0530 Fix insertion of text and paragraph Change-Id: I19488bf89e119fbdd5124e14cbc7aa27990321fc diff --git a/xmloff/source/text/XMLRedlineExport.cxx b/xmloff/source/text/XMLRedlineExport.cxx index aaf776b..f4f270b 100644 --- a/xmloff/source/text/XMLRedlineExport.cxx +++ b/xmloff/source/text/XMLRedlineExport.cxx @@ -342,51 +342,48 @@ void XMLRedlineExport::ExportChangesListAutoStyles() void XMLRedlineExport::ExportUndoChangeInline( const Reference<XPropertySet> & rPropSet, const sal_uInt32& rParaIdx) { - // determine element name (depending on collapsed, start/end) { + Any aAny = rPropSet->getPropertyValue(sRedlineType); + OUString sType; + aAny >>= sType; + + sal_uInt32 nParagraphIdx = rParaIdx, nCharStart, nCharEnd; + rPropSet->getPropertyValue(sRedlineUndoStart) >>= nCharStart; + rPropSet->getPropertyValue(sRedlineUndoEnd) >>= nCharEnd; + + XMLTokenEnum eUndoType = XML_TEXT; + OUString sUndoType; + aAny = rPropSet->getPropertyValue(sRedlineUndoType); + aAny >>= sUndoType; + + if( sUndoType == "paragraph" ) { - Any aAny; - aAny = rPropSet->getPropertyValue(sRedlineType); - OUString sType; - aAny >>= sType; - - sal_uInt32 nParagraphIdx = rParaIdx, nCharStart, nCharEnd; - rPropSet->getPropertyValue(sRedlineUndoStart) >>= nCharStart; - rPropSet->getPropertyValue(sRedlineUndoEnd) >>= nCharEnd; - if(sType == sDelete) - nParagraphIdx++; - - XMLTokenEnum eUndoType = XML_PARAGRAPH; - OUString sUndoType; - aAny = rPropSet->getPropertyValue(sRedlineUndoType); - aAny >>= sUndoType; - - if( sUndoType == "text" ) - eUndoType = XML_TEXT; - if(eUndoType == XML_PARAGRAPH) - { - rExport.AddAttribute(XML_NAMESPACE_C, XML_START, "/" + rtl::OUString::number(nParagraphIdx)); - rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, XML_PARAGRAPH); - } - else - { - rExport.AddAttribute(XML_NAMESPACE_C, XML_START, "/" + rtl::OUString::number(nParagraphIdx) + "/" + rtl::OUString::number(nCharStart)); - if( sType == sInsert || sType == sFormat ) - rExport.AddAttribute(XML_NAMESPACE_C, XML_END, "/" + rtl::OUString::number(nParagraphIdx) + "/" + rtl::OUString::number(nCharEnd)); - rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, eUndoType); - } - SvXMLElementExport aChange(rExport, XML_NAMESPACE_TEXT, - ConvertTypeName(sType), true, true); - - // get XText from the redline and export (if the XText exists) - aAny = rPropSet->getPropertyValue(sRedlineText); - Reference<XText> xText; - aAny >>= xText; - if (xText.is()) - { - rExport.GetTextParagraphExport()->exportText(xText); - // default parameters: bProgress, bExportParagraph ??? - } + eUndoType = XML_PARAGRAPH; + nParagraphIdx++; + } + if(eUndoType == XML_PARAGRAPH) + { + rExport.AddAttribute(XML_NAMESPACE_C, XML_START, "/" + rtl::OUString::number(nParagraphIdx)); + rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, XML_PARAGRAPH); + } + else + { + rExport.AddAttribute(XML_NAMESPACE_C, XML_START, "/" + rtl::OUString::number(nParagraphIdx) + "/" + rtl::OUString::number(nCharStart)); + if( sType == sInsert || sType == sFormat ) + rExport.AddAttribute(XML_NAMESPACE_C, XML_END, "/" + rtl::OUString::number(nParagraphIdx) + "/" + rtl::OUString::number(nCharEnd)); + rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, eUndoType); + } + SvXMLElementExport aChange(rExport, XML_NAMESPACE_TEXT, + ConvertTypeName(sType), true, true); + + // get XText from the redline and export (if the XText exists) + aAny = rPropSet->getPropertyValue(sRedlineText); + Reference<XText> xText; + aAny >>= xText; + if (xText.is()) + { + rExport.GetTextParagraphExport()->exportText(xText); + // default parameters: bProgress, bExportParagraph ??? } } } @@ -550,8 +547,13 @@ const OUString XMLRedlineExport::GetRedlineID( void XMLRedlineExport::ExportUndoChangeInfo( const Reference<XPropertySet> & rPropSet, const sal_uInt32& rParaIdx) { + Any aAny = rPropSet->getPropertyValue(sIsCollapsed); + bool bCollapsed = *static_cast<sal_Bool const *>(aAny.getValue()); + aAny = rPropSet->getPropertyValue(sIsStart); + bool bStart = *static_cast<sal_Bool const *>(aAny.getValue()); + if( bCollapsed || bStart ) { - Any aAny = rPropSet->getPropertyValue(sRedlineAuthor); + aAny = rPropSet->getPropertyValue(sRedlineAuthor); OUString sAuthor; aAny >>= sAuthor; if (!sAuthor.isEmpty()) diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx index 73bc313..6687c73 100644 --- a/xmloff/source/text/txtparae.cxx +++ b/xmloff/source/text/txtparae.cxx @@ -2671,9 +2671,6 @@ void XMLTextParagraphExport::exportUndoTextRangeEnumeration( if (nullptr != pRedlineExport) pRedlineExport->ExportUndoChange(xPropSet, rParaIdx, bAutoStyles); } - else { - OSL_FAIL("unknown text portion type"); - } } } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
