[Libreoffice-commits] core.git: Branch 'private/Rosemary/change-tracking' - include/xmloff sw/source xmloff/source
Rosemary Sebastian
rosemaryseb8 at gmail.com
Thu Jun 23 06:26:05 UTC 2016
include/xmloff/txtparae.hxx | 31 -
sw/source/filter/xml/xmlexp.cxx | 2
sw/source/filter/xml/xmlfmte.cxx | 3
xmloff/source/text/XMLRedlineExport.cxx | 418 -------------------------
xmloff/source/text/XMLRedlineExport.hxx | 43 --
xmloff/source/text/XMLTextMasterPageExport.cxx | 1
xmloff/source/text/txtparae.cxx | 370 ----------------------
7 files changed, 19 insertions(+), 849 deletions(-)
New commits:
commit 1668fda4bfd7d2681b440497da2ab37f45cf47b8
Author: Rosemary Sebastian <rosemaryseb8 at gmail.com>
Date: Thu Jun 23 09:56:09 2016 +0530
Clean up code
Change-Id: Ib44e072f42620a9b17e813996a4ea817cb280da4
diff --git a/include/xmloff/txtparae.hxx b/include/xmloff/txtparae.hxx
index ce851f8..92fae21 100644
--- a/include/xmloff/txtparae.hxx
+++ b/include/xmloff/txtparae.hxx
@@ -250,8 +250,7 @@ public:
void exportUndoTextRangeEnumeration(
const css::uno::Reference< css::container::XEnumeration > & rRangeEnum,
const sal_uInt32& rParaIdx,
- bool bAutoStyles, bool bProgress,
- bool bPrvChrIsSpc = true );
+ bool bAutoStyles );
void exportTextRangeEnumeration(
const css::uno::Reference< css::container::XEnumeration > & rRangeEnum,
bool bAutoStyles, bool bProgress,
@@ -277,7 +276,7 @@ protected:
void exportUndoText(
const css::uno::Reference <
css::text::XText > & rText,
- bool bAutoStyles, bool bProgress, bool bExportParagraph, TextPNS eExtensionNS = TextPNS::ODF );
+ bool bAutoStyles, bool bProgress );
void exportText(
const css::uno::Reference <
@@ -293,11 +292,7 @@ protected:
const css::uno::Reference< css::container::XEnumeration > & rContentEnum,
bool bAutoStyles,
const css::uno::Reference< css::text::XTextSection > & rBaseSection,
- bool bProgress,
- bool bExportParagraph = true,
- const css::uno::Reference< css::beans::XPropertySet > *pRangePropSet = nullptr,
- bool bExportLevels = true,
- TextPNS eExtensionNS = TextPNS::ODF);
+ bool bProgress);
bool exportTextContentEnumeration(
const css::uno::Reference< css::container::XEnumeration > & rContentEnum,
bool bAutoStyles,
@@ -311,9 +306,7 @@ protected:
const css::uno::Reference< css::text::XTextContent > & rTextContent,
const sal_uInt32& rParaIdx,
bool bAutoStyles, bool bProgress,
- bool bExportParagraph,
- MultiPropertySetHelper& rPropSetHelper,
- TextPNS eExtensionNS = TextPNS::ODF);
+ MultiPropertySetHelper& rPropSetHelper);
void exportParagraph(
const css::uno::Reference< css::text::XTextContent > & rTextContent,
bool bAutoStyles, bool bProgress,
@@ -498,15 +491,6 @@ public:
/// export all declarations
void exportUsedDeclarations();
- /// Export the list of change information (enclosed by <tracked-changes>)
- /// (or the necessary automatic styles)
- void exportTrackedChanges(bool bAutoStyle);
-
- /// Export the list of change information (enclosed by <tracked-changes>)
- /// (or the necessary automatic styles)
- void exportTrackedChanges(const css::uno::Reference< css::text::XText > & rText,
- bool bAutoStyle );
-
/// Record tracked changes for this particular XText
/// (empty reference stop recording)
/// This should be used if tracked changes for e.g. footers are to
@@ -569,12 +553,11 @@ public:
}
// This method exports the given XText
- void exportUndoText(
+ void exportTrackedChanges(
const css::uno::Reference< css::text::XText > & rText,
- bool bIsProgress = false,
- bool bExportParagraph = true, TextPNS eExtensionNS = TextPNS::ODF)
+ bool bIsProgress = false)
{
- exportUndoText( rText, false, bIsProgress, bExportParagraph, eExtensionNS );
+ exportUndoText( rText, false, bIsProgress );
}
void exportText(
diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
index 2812ec5..f9f2d40 100644
--- a/sw/source/filter/xml/xmlexp.cxx
+++ b/sw/source/filter/xml/xmlexp.cxx
@@ -497,7 +497,7 @@ void SwXMLExport::ExportUndo_()
true, true );
Reference < XTextDocument > xTextDoc( GetModel(), UNO_QUERY );
Reference < XText > xText = xTextDoc->getText();
- GetTextParagraphExport()->exportUndoText( xText, bShowProgress );
+ GetTextParagraphExport()->exportTrackedChanges( xText, bShowProgress );
}
namespace
diff --git a/sw/source/filter/xml/xmlfmte.cxx b/sw/source/filter/xml/xmlfmte.cxx
index 312b8b2..5247201 100644
--- a/sw/source/filter/xml/xmlfmte.cxx
+++ b/sw/source/filter/xml/xmlfmte.cxx
@@ -201,9 +201,6 @@ void SwXMLExport::ExportAutoStyles_()
if( !(getExportFlags() & SvXMLExportFlags::STYLES) )
GetTextParagraphExport()->exportUsedDeclarations();
- if( getExportFlags() & SvXMLExportFlags::UNDO )
- GetTextParagraphExport()->exportTrackedChanges( true );
-
// exported in ExportContent_
if( getExportFlags() & SvXMLExportFlags::CONTENT )
{
diff --git a/xmloff/source/text/XMLRedlineExport.cxx b/xmloff/source/text/XMLRedlineExport.cxx
index f4f270b..1013281 100644
--- a/xmloff/source/text/XMLRedlineExport.cxx
+++ b/xmloff/source/text/XMLRedlineExport.cxx
@@ -111,80 +111,6 @@ void XMLRedlineExport::ExportUndoChange(
{
ExportUndoChangeInfo(rPropSet, rParaIdx);
}
-
-}
-
-void XMLRedlineExport::ExportChange(
- const Reference<XPropertySet> & rPropSet,
- bool bAutoStyle)
-{
- if (bAutoStyle)
- {
- // For the headers/footers, we have to collect the autostyles
- // here. For the general case, however, it's better to collect
- // the autostyles by iterating over the global redline
- // list. So that's what we do: Here, we collect autostyles
- // only if we have no current list of changes. For the
- // main-document case, the autostyles are collected in
- // ExportChangesListAutoStyles().
- if (pCurrentChangesList != nullptr)
- ExportChangeAutoStyle(rPropSet);
- }
- else
- {
- ExportChangeInline(rPropSet);
- }
-
-}
-
-
-void XMLRedlineExport::ExportChangesList(bool bAutoStyles)
-{
- if (bAutoStyles)
- {
- ExportChangesListAutoStyles();
- }
- else
- {
- ExportChangesListElements();
- }
-}
-
-
-void XMLRedlineExport::ExportChangesList(
- const Reference<XText> & rText,
- bool bAutoStyles)
-{
- // in the header/footer case, auto styles are collected from the
- // inline change elements.
- if (bAutoStyles)
- return;
-
- // look for changes list for this XText
- ChangesMapType::iterator aFind = aChangeMap.find(rText);
- if (aFind != aChangeMap.end())
- {
- ChangesListType* pChangesList = aFind->second;
-
- // export only if changes are found
- if (pChangesList->size() > 0)
- {
- // changes container element
- SvXMLElementExport aChanges(rExport, XML_NAMESPACE_TEXT,
- XML_TRACKED_CHANGES,
- true, true);
-
- // iterate over changes list
- for( ChangesListType::iterator aIter = pChangesList->begin();
- aIter != pChangesList->end();
- ++aIter )
- {
- ExportChangedRegion( *aIter );
- }
- }
- // else: changes list empty -> ignore
- }
- // else: no changes list found -> empty
}
void XMLRedlineExport::SetCurrentXText(
@@ -215,130 +141,6 @@ void XMLRedlineExport::SetCurrentXText()
pCurrentChangesList = nullptr;
}
-void XMLRedlineExport::ExportChangesListElements()
-{
- // get redlines (aka tracked changes) from the model
- Reference<XRedlinesSupplier> xSupplier(rExport.GetModel(), uno::UNO_QUERY);
- if (xSupplier.is())
- {
- Reference<XEnumerationAccess> aEnumAccess = xSupplier->getRedlines();
-
- // redline protection key
- Reference<XPropertySet> aDocPropertySet( rExport.GetModel(),
- uno::UNO_QUERY );
- // redlining enabled?
- bool bEnabled = *static_cast<sal_Bool const *>(aDocPropertySet->getPropertyValue(
- sRecordChanges ).getValue());
-
- // only export if we have redlines or attributes
- if ( aEnumAccess->hasElements() || bEnabled )
- {
-
- // export only if we have changes, but tracking is not enabled
- if ( !bEnabled != !aEnumAccess->hasElements() )
- {
- rExport.AddAttribute(
- XML_NAMESPACE_TEXT, XML_TRACK_CHANGES,
- bEnabled ? XML_TRUE : XML_FALSE );
- }
-
- // changes container element
- SvXMLElementExport aChanges(rExport, XML_NAMESPACE_TEXT,
- XML_TRACKED_CHANGES,
- true, true);
-
- // get enumeration and iterate over elements
- Reference<XEnumeration> aEnum = aEnumAccess->createEnumeration();
- while (aEnum->hasMoreElements())
- {
- Any aAny = aEnum->nextElement();
- Reference<XPropertySet> xPropSet;
- aAny >>= xPropSet;
-
- DBG_ASSERT(xPropSet.is(),
- "can't get XPropertySet; skipping Redline");
- if (xPropSet.is())
- {
- // export only if not in header or footer
- // (those must be exported with their XText)
- aAny = xPropSet->getPropertyValue(sIsInHeaderFooter);
- if (! *static_cast<sal_Bool const *>(aAny.getValue()))
- {
- // and finally, export change
- ExportChangedRegion(xPropSet);
- }
- }
- // else: no XPropertySet -> no export
- }
- }
- // else: no redlines -> no export
- }
- // else: no XRedlineSupplier -> no export
-}
-
-void XMLRedlineExport::ExportChangeAutoStyle(
- const Reference<XPropertySet> & rPropSet)
-{
- // record change (if changes should be recorded)
- if (nullptr != pCurrentChangesList)
- {
- // put redline in list if it's collapsed or the redline start
- Any aIsStart = rPropSet->getPropertyValue(sIsStart);
- Any aIsCollapsed = rPropSet->getPropertyValue(sIsCollapsed);
-
- if ( *static_cast<sal_Bool const *>(aIsStart.getValue()) ||
- *static_cast<sal_Bool const *>(aIsCollapsed.getValue()) )
- pCurrentChangesList->push_back(rPropSet);
- }
-
- // get XText for export of redline auto styles
- Any aAny = rPropSet->getPropertyValue(sRedlineText);
- Reference<XText> xText;
- aAny >>= xText;
- if (xText.is())
- {
- // export the auto styles
- rExport.GetTextParagraphExport()->collectTextAutoStyles(xText);
- }
-}
-
-void XMLRedlineExport::ExportChangesListAutoStyles()
-{
- // get redlines (aka tracked changes) from the model
- Reference<XRedlinesSupplier> xSupplier(rExport.GetModel(), uno::UNO_QUERY);
- if (xSupplier.is())
- {
- Reference<XEnumerationAccess> aEnumAccess = xSupplier->getRedlines();
-
- // only export if we actually have redlines
- if (aEnumAccess->hasElements())
- {
- // get enumeration and iterate over elements
- Reference<XEnumeration> aEnum = aEnumAccess->createEnumeration();
- while (aEnum->hasMoreElements())
- {
- Any aAny = aEnum->nextElement();
- Reference<XPropertySet> xPropSet;
- aAny >>= xPropSet;
-
- DBG_ASSERT(xPropSet.is(),
- "can't get XPropertySet; skipping Redline");
- if (xPropSet.is())
- {
-
- // export only if not in header or footer
- // (those must be exported with their XText)
- aAny = xPropSet->getPropertyValue(sIsInHeaderFooter);
- if (! *static_cast<sal_Bool const *>(aAny.getValue()))
- {
- ExportChangeAutoStyle(xPropSet);
- }
- }
- }
- }
- }
-}
-
void XMLRedlineExport::ExportUndoChangeInline(
const Reference<XPropertySet> & rPropSet, const sal_uInt32& rParaIdx)
{
@@ -388,126 +190,6 @@ void XMLRedlineExport::ExportUndoChangeInline(
}
}
-void XMLRedlineExport::ExportChangeInline(
- const Reference<XPropertySet> & rPropSet)
-{
- // determine element name (depending on collapsed, start/end)
- enum XMLTokenEnum eElement = XML_TOKEN_INVALID;
- Any aAny = rPropSet->getPropertyValue(sIsCollapsed);
- bool bCollapsed = *static_cast<sal_Bool const *>(aAny.getValue());
- if (bCollapsed)
- {
- eElement = XML_CHANGE;
- }
- else
- {
- aAny = rPropSet->getPropertyValue(sIsStart);
- const bool bStart = *static_cast<sal_Bool const *>(aAny.getValue());
- eElement = bStart ? XML_CHANGE_START : XML_CHANGE_END;
- }
-
- if (XML_TOKEN_INVALID != eElement)
- {
- // we always need the ID
- rExport.AddAttribute(XML_NAMESPACE_TEXT, XML_CHANGE_ID,
- GetRedlineID(rPropSet));
-
- // export the element (no whitespace because we're in the text body)
- SvXMLElementExport aChangeElem(rExport, XML_NAMESPACE_TEXT,
- eElement, false, false);
- }
-}
-
-
-void XMLRedlineExport::ExportChangedRegion(
- const Reference<XPropertySet> & rPropSet)
-{
- // Redline-ID
- rExport.AddAttributeIdLegacy(XML_NAMESPACE_TEXT, GetRedlineID(rPropSet));
-
- // merge-last-paragraph
- Any aAny = rPropSet->getPropertyValue(sMergeLastPara);
- if( ! *static_cast<sal_Bool const *>(aAny.getValue()) )
- rExport.AddAttribute(XML_NAMESPACE_TEXT, XML_MERGE_LAST_PARAGRAPH,
- XML_FALSE);
-
- // export change region element
- SvXMLElementExport aChangedRegion(rExport, XML_NAMESPACE_TEXT,
- XML_CHANGED_REGION, true, true);
-
-
- // scope for (first) change element
- {
- aAny = rPropSet->getPropertyValue(sRedlineType);
- OUString sType;
- aAny >>= sType;
-
- sal_uInt32 nParagraphIdx = 2, nCharStart, nCharEnd;
- rPropSet->getPropertyValue(sRedlineUndoStart) >>= nCharStart;
- rPropSet->getPropertyValue(sRedlineUndoEnd) >>= nCharEnd;
-
- 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));
- if( sType != sFormat )
- rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, XML_TEXT);
- }
- SvXMLElementExport aChange(rExport, XML_NAMESPACE_TEXT,
- ConvertTypeName(sType), true, true);
-
- ExportChangeInfo(rPropSet);
-
- // 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 ???
- }
- // else: no text interface -> content is inline and will
- // be exported there
- }
-
- // changed change? Hierarchical changes can onl be two levels
- // deep. Here we check for the second level.
- aAny = rPropSet->getPropertyValue(sRedlineSuccessorData);
- Sequence<PropertyValue> aSuccessorData;
- aAny >>= aSuccessorData;
-
- // if we actually got a hierarchical change, make element and
- // process change info
- if (aSuccessorData.getLength() > 0)
- {
- // The only change that can be "undone" is an insertion -
- // after all, you can't re-insert an deletion, but you can
- // delete an insertion. This assumption is asserted in
- // ExportChangeInfo(Sequence<PropertyValue>&).
- SvXMLElementExport aSecondChangeElem(
- rExport, XML_NAMESPACE_TEXT, XML_INSERTION,
- true, true);
-
- ExportChangeInfo(aSuccessorData);
- }
- // else: no hierarchical change
-}
-
-
const OUString XMLRedlineExport::ConvertTypeName(
const OUString& sApiName)
{
@@ -530,20 +212,6 @@ const OUString XMLRedlineExport::ConvertTypeName(
}
}
-
-/** Create a Redline-ID */
-const OUString XMLRedlineExport::GetRedlineID(
- const Reference<XPropertySet> & rPropSet)
-{
- Any aAny = rPropSet->getPropertyValue(sRedlineIdentifier);
- OUString sTmp;
- aAny >>= sTmp;
-
- OUStringBuffer sBuf(sChangePrefix);
- sBuf.append(sTmp);
- return sBuf.makeStringAndClear();
-}
-
void XMLRedlineExport::ExportUndoChangeInfo(
const Reference<XPropertySet> & rPropSet, const sal_uInt32& rParaIdx)
{
@@ -574,92 +242,6 @@ void XMLRedlineExport::ExportUndoChangeInfo(
}
}
-void XMLRedlineExport::ExportChangeInfo(
- const Reference<XPropertySet> & rPropSet)
-{
-
- SvXMLElementExport aChangeInfo(rExport, XML_NAMESPACE_OFFICE,
- XML_CHANGE_INFO, true, true);
-
- Any aAny = rPropSet->getPropertyValue(sRedlineAuthor);
- OUString sTmp;
- aAny >>= sTmp;
- if (!sTmp.isEmpty())
- {
- SvXMLElementExport aCreatorElem( rExport, XML_NAMESPACE_DC,
- XML_CREATOR, true,
- false );
- rExport.Characters(sTmp);
- }
-
- aAny = rPropSet->getPropertyValue(sRedlineDateTime);
- util::DateTime aDateTime;
- aAny >>= aDateTime;
- {
- OUStringBuffer sBuf;
- ::sax::Converter::convertDateTime(sBuf, aDateTime, nullptr);
- SvXMLElementExport aDateElem( rExport, XML_NAMESPACE_DC,
- XML_DATE, true,
- false );
- rExport.Characters(sBuf.makeStringAndClear());
- }
-
- // comment as <text:p> sequence
- aAny = rPropSet->getPropertyValue(sRedlineComment);
- aAny >>= sTmp;
- WriteComment( sTmp );
-}
-
-void XMLRedlineExport::ExportChangeInfo(
- const Sequence<PropertyValue> & rPropertyValues)
-{
- OUString sComment;
-
- sal_Int32 nCount = rPropertyValues.getLength();
- for(sal_Int32 i = 0; i < nCount; i++)
- {
- const PropertyValue& rVal = rPropertyValues[i];
-
- if( rVal.Name.equals(sRedlineAuthor) )
- {
- OUString sTmp;
- rVal.Value >>= sTmp;
- if (!sTmp.isEmpty())
- {
- rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_CHG_AUTHOR, sTmp);
- }
- }
- else if( rVal.Name.equals(sRedlineComment) )
- {
- rVal.Value >>= sComment;
- }
- else if( rVal.Name.equals(sRedlineDateTime) )
- {
- util::DateTime aDateTime;
- rVal.Value >>= aDateTime;
- OUStringBuffer sBuf;
- ::sax::Converter::convertDateTime(sBuf, aDateTime, nullptr);
- rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_CHG_DATE_TIME,
- sBuf.makeStringAndClear());
- }
- else if( rVal.Name.equals(sRedlineType) )
- {
- // check if this is an insertion; cf. comment at calling location
- OUString sTmp;
- rVal.Value >>= sTmp;
- DBG_ASSERT(sTmp.equals(sInsert),
- "hierarchical change must be insertion");
- }
- // else: unknown value -> ignore
- }
-
- // finally write element
- SvXMLElementExport aChangeInfo(rExport, XML_NAMESPACE_OFFICE,
- XML_CHANGE_INFO, true, true);
-
- WriteComment( sComment );
-}
-
void XMLRedlineExport::ExportStartOrEndRedline(
const Reference<XPropertySet> & rPropSet,
bool bStart)
diff --git a/xmloff/source/text/XMLRedlineExport.hxx b/xmloff/source/text/XMLRedlineExport.hxx
index bac2901..bc86667 100644
--- a/xmloff/source/text/XMLRedlineExport.hxx
+++ b/xmloff/source/text/XMLRedlineExport.hxx
@@ -109,19 +109,6 @@ public:
const sal_uInt32& rParaIdx,
bool bAutoStyle);
- void ExportChange(
- /// PropertySet of RedlinePortion
- const css::uno::Reference<css::beans::XPropertySet> & rPropSet,
- bool bAutoStyle);
-
- /// export the list of changes (complete list minus recorded changed)
- void ExportChangesList(bool bAutoStyles);
-
- /// export the list of changes (recorded changes for this XText only)
- void ExportChangesList(
- const css::uno::Reference<css::text::XText> & rText,
- bool bAutoStyles);
-
/// set the current XText for which changes should be recorded.
/// An empty XText means: don't record changes
void SetCurrentXText(
@@ -156,43 +143,13 @@ private:
/// PropertySet of RedlinePortion
const css::uno::Reference<css::beans::XPropertySet> & rPropSet, const sal_uInt32& rParaIdx);
- void ExportChangeInline(
- /// PropertySet of RedlinePortion
- const css::uno::Reference<css::beans::XPropertySet> & rPropSet);
-
- /// export the auto styles used in this change
- void ExportChangeAutoStyle(
- /// PropertySet of RedlinePortion
- const css::uno::Reference<css::beans::XPropertySet> & rPropSet);
-
- /// export the changes list (<text:tracked-changes>)
- void ExportChangesListElements();
-
- /// export the auto styles needed by the changes list
- void ExportChangesListAutoStyles();
-
- /// export the changed-region element
- void ExportChangedRegion(
- const css::uno::Reference<css::beans::XPropertySet> & rPropSet);
-
/// export an change-info element (from a PropertySet)
void ExportUndoChangeInfo(
const css::uno::Reference<css::beans::XPropertySet> & rPropSet, const sal_uInt32& rParaIdx);
- void ExportChangeInfo(
- const css::uno::Reference<css::beans::XPropertySet> & rPropSet);
-
- /// export an change-info element (from PropertyValues)
- void ExportChangeInfo(
- const css::uno::Sequence<css::beans::PropertyValue> & rValues);
-
/// convert the change type from API to XML names
const OUString ConvertTypeName(const OUString& sApiName);
- /// Get ID string!
- const OUString GetRedlineID(
- const css::uno::Reference<css::beans::XPropertySet> & rPropSet);
-
/// write a comment string as sequence of <text:p> elements
void WriteComment(const OUString& rComment);
};
diff --git a/xmloff/source/text/XMLTextMasterPageExport.cxx b/xmloff/source/text/XMLTextMasterPageExport.cxx
index a5ad798..a2ce2c1 100644
--- a/xmloff/source/text/XMLTextMasterPageExport.cxx
+++ b/xmloff/source/text/XMLTextMasterPageExport.cxx
@@ -74,6 +74,7 @@ void XMLTextMasterPageExport::exportHeaderFooterContent(
// tracked changes (end of XText)
GetExport().GetTextParagraphExport()->recordTrackedChangesNoXText();
+ GetExport().GetTextParagraphExport()->exportTrackedChanges( rText );
}
void XMLTextMasterPageExport::exportMasterPageContent(
diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx
index 6687c73..c51bd8e 100644
--- a/xmloff/source/text/txtparae.cxx
+++ b/xmloff/source/text/txtparae.cxx
@@ -1632,9 +1632,7 @@ bool XMLTextParagraphExport::collectTextAutoStylesOptimized( bool bIsProgress )
void XMLTextParagraphExport::exportUndoText(
const Reference < XText > & rText,
bool bAutoStyles,
- bool bIsProgress,
- bool bExportParagraph,
- TextPNS eExtensionNS)
+ bool bIsProgress)
{
if( bAutoStyles )
GetExport().GetShapeExport(); // make sure the graphics styles family
@@ -1644,14 +1642,10 @@ void XMLTextParagraphExport::exportUndoText(
Reference < XPropertySet > xPropertySet( rText, UNO_QUERY );
Reference < XTextSection > xBaseSection;
- // #97718# footnotes don't supply paragraph enumerations in some cases
- // This is always a bug, but at least we don't want to crash.
DBG_ASSERT( xParaEnum.is(), "We need a paragraph enumeration" );
if( ! xParaEnum.is() )
return;
- bool bExportLevels = true;
-
if (xPropertySet.is())
{
Reference < XPropertySetInfo > xInfo ( xPropertySet->getPropertySetInfo() );
@@ -1662,21 +1656,6 @@ void XMLTextParagraphExport::exportUndoText(
{
xPropertySet->getPropertyValue(sTextSection) >>= xBaseSection ;
}
-
-/* #i35937#
- // for applications that use the outliner we need to check if
- // the current text object needs the level information exported
- if( !bAutoStyles )
- {
- // fixme: move string to class member, couldn't do now because
- // of no incompatible build
- OUString sHasLevels( "HasLevels" );
- if (xInfo->hasPropertyByName( sHasLevels ) )
- {
- xPropertySet->getPropertyValue(sHasLevels) >>= bExportLevels;
- }
- }
-*/
}
}
@@ -1684,8 +1663,7 @@ void XMLTextParagraphExport::exportUndoText(
// exporting the text content enumeration
if( !bAutoStyles && (pRedlineExport != nullptr) )
pRedlineExport->ExportStartOrEndRedline( xPropertySet, true );
- exportUndoTextContentEnumeration( xParaEnum, bAutoStyles, xBaseSection,
- bIsProgress, bExportParagraph, nullptr, bExportLevels, eExtensionNS );
+ exportUndoTextContentEnumeration( xParaEnum, bAutoStyles, xBaseSection, bIsProgress);
if( !bAutoStyles && (pRedlineExport != nullptr) )
pRedlineExport->ExportStartOrEndRedline( xPropertySet, false );
}
@@ -1787,20 +1765,13 @@ bool XMLTextParagraphExport::exportUndoTextContentEnumeration(
const Reference < XEnumeration > & rContEnum,
bool bAutoStyles,
const Reference < XTextSection > & rBaseSection,
- bool bIsProgress,
- bool bExportParagraph,
- const Reference < XPropertySet > *pRangePropSet,
- bool bExportLevels, TextPNS eExtensionNS )
+ bool bIsProgress)
{
DBG_ASSERT( rContEnum.is(), "No enumeration to export!" );
bool bHasMoreElements = rContEnum->hasMoreElements();
if( !bHasMoreElements )
return false;
- XMLTextNumRuleInfo aPrevNumInfo;
- XMLTextNumRuleInfo aNextNumInfo;
-
- bool bHasContent = false;
Reference<XTextSection> xCurrentTextSection(rBaseSection);
MultiPropertySetHelper aPropSetHelper(
@@ -1826,46 +1797,15 @@ bool XMLTextParagraphExport::exportUndoTextContentEnumeration(
Reference<XServiceInfo> xServiceInfo( xTxtCntnt, UNO_QUERY );
if( xServiceInfo->supportsService( sParagraphService ) )
{
- if( bExportLevels )
- {
- if( bAutoStyles )
- {
- exportListAndSectionChange( xCurrentTextSection, xTxtCntnt,
- aPrevNumInfo, aNextNumInfo,
- bAutoStyles );
- }
- else
- {
- /* Pass list auto style pool to <XMLTextNumRuleInfo> instance
- Pass info about request to export <text:number> element
- to <XMLTextNumRuleInfo> instance (#i69627#)
- */
- aNextNumInfo.Set( xTxtCntnt,
- GetExport().writeOutlineStyleAsNormalListStyle(),
- GetListAutoStylePool(),
- GetExport().exportTextNumberElement() );
-
- exportListAndSectionChange( xCurrentTextSection, aPropSetHelper,
- TEXT_SECTION, xTxtCntnt,
- aPrevNumInfo, aNextNumInfo,
- bAutoStyles );
- }
- }
-
// if we found a mute section: skip all section content
if (pSectionExport->IsMuteSection(xCurrentTextSection))
{
- // Make sure headings are exported anyway.
- if( !bAutoStyles )
- pSectionExport->ExportMasterDocHeadingDummies();
-
while (rContEnum->hasMoreElements() &&
pSectionExport->IsInSection( xCurrentTextSection,
xTxtCntnt, true ))
{
xTxtCntnt.set(rContEnum->nextElement(), uno::UNO_QUERY);
aPropSetHelper.resetValues();
- aNextNumInfo.Reset();
}
// the first non-mute element still needs to be processed
bHoldElement =
@@ -1875,80 +1815,11 @@ bool XMLTextParagraphExport::exportUndoTextContentEnumeration(
else
{
setParaIdx(getParaIdx() + 1);
- exportUndoParagraph( xTxtCntnt, getParaIdx(), bAutoStyles, bIsProgress,
- bExportParagraph, aPropSetHelper, eExtensionNS );
- }
- bHasContent = true;
- }
- else if( xServiceInfo->supportsService( sTableService ) )
- {
- if( !bAutoStyles )
- {
- aNextNumInfo.Reset();
- }
-
- exportListAndSectionChange( xCurrentTextSection, xTxtCntnt,
- aPrevNumInfo, aNextNumInfo,
- bAutoStyles );
-
- if (! pSectionExport->IsMuteSection(xCurrentTextSection))
- {
- // export start + end redlines (for wholly redlined tables)
- if ((! bAutoStyles) && (nullptr != pRedlineExport))
- pRedlineExport->ExportStartOrEndRedline(xTxtCntnt, true);
-
- exportTable( xTxtCntnt, bAutoStyles, bIsProgress );
-
- if ((! bAutoStyles) && (nullptr != pRedlineExport))
- pRedlineExport->ExportStartOrEndRedline(xTxtCntnt, false);
- }
- else if( !bAutoStyles )
- {
- // Make sure headings are exported anyway.
- pSectionExport->ExportMasterDocHeadingDummies();
+ exportUndoParagraph( xTxtCntnt, getParaIdx(), bAutoStyles, bIsProgress, aPropSetHelper );
}
-
- bHasContent = true;
- }
- else if( xServiceInfo->supportsService( sTextFrameService ) )
- {
- exportTextFrame( xTxtCntnt, bAutoStyles, bIsProgress, true, pRangePropSet );
- }
- else if( xServiceInfo->supportsService( sTextGraphicService ) )
- {
- exportTextGraphic( xTxtCntnt, bAutoStyles, pRangePropSet );
- }
- else if( xServiceInfo->supportsService( sTextEmbeddedService ) )
- {
- exportTextEmbedded( xTxtCntnt, bAutoStyles, pRangePropSet );
- }
- else if( xServiceInfo->supportsService( sShapeService ) )
- {
- exportShape( xTxtCntnt, bAutoStyles, pRangePropSet );
}
- else
- {
- DBG_ASSERT( !xTxtCntnt.is(), "unknown text content" );
- }
-
- if( !bAutoStyles )
- {
- aPrevNumInfo = aNextNumInfo;
- }
-
bHasMoreElements = rContEnum->hasMoreElements();
}
-
- if( bExportLevels && bHasContent && !bAutoStyles )
- {
- aNextNumInfo.Reset();
-
- // close open lists and sections; no new styles
- exportListAndSectionChange( xCurrentTextSection, rBaseSection,
- aPrevNumInfo, aNextNumInfo,
- bAutoStyles );
- }
-
return true;
}
@@ -2122,11 +1993,9 @@ bool XMLTextParagraphExport::exportTextContentEnumeration(
void XMLTextParagraphExport::exportUndoParagraph(
const Reference < XTextContent > & rTextContent, const sal_uInt32& rParaIdx,
- bool bAutoStyles, bool bIsProgress, bool bExportParagraph,
- MultiPropertySetHelper& rPropSetHelper, TextPNS eExtensionNS)
+ bool bAutoStyles, bool bIsProgress,
+ MultiPropertySetHelper& rPropSetHelper)
{
- sal_Int16 nOutlineLevel = -1;
-
if( bIsProgress )
{
ProgressBarHelper *pProgress = GetExport().GetProgressBarHelper();
@@ -2141,185 +2010,6 @@ void XMLTextParagraphExport::exportUndoParagraph(
if( !rPropSetHelper.checkedProperties() )
rPropSetHelper.hasProperties( xPropSet->getPropertySetInfo() );
-// if( xMultiPropSet.is() )
-// rPropSetHelper.getValues( xMultiPropSet );
-// else
-// rPropSetHelper.getValues( xPropSet );
-
- if( bExportParagraph )
- {
- if( bAutoStyles )
- {
- Add( XML_STYLE_FAMILY_TEXT_PARAGRAPH, rPropSetHelper, xPropSet );
- }
- else
- {
- // xml:id for RDF metadata
- GetExport().AddAttributeXmlId(rTextContent);
- GetExport().AddAttributesRDFa(rTextContent);
-
- OUString sStyle;
- if( rPropSetHelper.hasProperty( PARA_STYLE_NAME ) )
- {
- if( xMultiPropSet.is() )
- rPropSetHelper.getValue( PARA_STYLE_NAME,
- xMultiPropSet ) >>= sStyle;
- else
- rPropSetHelper.getValue( PARA_STYLE_NAME,
- xPropSet ) >>= sStyle;
- }
-
- if( rTextContent.is() )
- {
- const OUString& rIdentifier = GetExport().getInterfaceToIdentifierMapper().getIdentifier( rTextContent );
- if( !rIdentifier.isEmpty() )
- {
- // FIXME: this is just temporary until EditEngine
- // paragraphs implement XMetadatable.
- // then that must be used and not the mapper, because
- // when both can be used we get two xml:id!
- uno::Reference<rdf::XMetadatable> const xMeta(rTextContent,
- uno::UNO_QUERY);
- OSL_ENSURE(!xMeta.is(), "paragraph that implements "
- "XMetadatable used in interfaceToIdentifierMapper?");
- GetExport().AddAttributeIdLegacy(XML_NAMESPACE_TEXT,
- rIdentifier);
- }
- }
-
- OUString sAutoStyle( sStyle );
- sAutoStyle = Find( XML_STYLE_FAMILY_TEXT_PARAGRAPH, xPropSet, sStyle );
- if( !sAutoStyle.isEmpty() )
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_STYLE_NAME,
- GetExport().EncodeStyleName( sAutoStyle ) );
-
- if( rPropSetHelper.hasProperty( PARA_CONDITIONAL_STYLE_NAME ) )
- {
- OUString sCondStyle;
- if( xMultiPropSet.is() )
- rPropSetHelper.getValue( PARA_CONDITIONAL_STYLE_NAME,
- xMultiPropSet ) >>= sCondStyle;
- else
- rPropSetHelper.getValue( PARA_CONDITIONAL_STYLE_NAME,
- xPropSet ) >>= sCondStyle;
- if( sCondStyle != sStyle )
- {
- sCondStyle = Find( XML_STYLE_FAMILY_TEXT_PARAGRAPH, xPropSet,
- sCondStyle );
- if( !sCondStyle.isEmpty() )
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_COND_STYLE_NAME,
- GetExport().EncodeStyleName( sCondStyle ) );
- }
- }
-
- if( rPropSetHelper.hasProperty( PARA_OUTLINE_LEVEL ) )
- {
- if( xMultiPropSet.is() )
- rPropSetHelper.getValue( PARA_OUTLINE_LEVEL,
- xMultiPropSet ) >>= nOutlineLevel;
- else
- rPropSetHelper.getValue( PARA_OUTLINE_LEVEL,
- xPropSet ) >>= nOutlineLevel;
-
- if( 0 < nOutlineLevel )
- {
- OUStringBuffer sTmp;
- sTmp.append( sal_Int32( nOutlineLevel) );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_OUTLINE_LEVEL,
- sTmp.makeStringAndClear() );
-
- if( rPropSetHelper.hasProperty( NUMBERING_IS_NUMBER ) )
- {
- bool bIsNumber = false;
- if( xMultiPropSet.is() )
- rPropSetHelper.getValue(
- NUMBERING_IS_NUMBER, xMultiPropSet ) >>= bIsNumber;
- else
- rPropSetHelper.getValue(
- NUMBERING_IS_NUMBER, xPropSet ) >>= bIsNumber;
-
- OUString sListStyleName;
- if( xMultiPropSet.is() )
- rPropSetHelper.getValue(
- PARA_NUMBERING_STYLENAME, xMultiPropSet ) >>= sListStyleName;
- else
- rPropSetHelper.getValue(
- PARA_NUMBERING_STYLENAME, xPropSet ) >>= sListStyleName;
-
- bool bAssignedtoOutlineStyle = false;
- {
- Reference< XChapterNumberingSupplier > xCNSupplier( GetExport().GetModel(), UNO_QUERY );
-
- OUString sOutlineName;
- if (xCNSupplier.is())
- {
- Reference< XIndexReplace > xNumRule ( xCNSupplier->getChapterNumberingRules() );
- DBG_ASSERT( xNumRule.is(), "no chapter numbering rules" );
-
- if (xNumRule.is())
- {
- Reference< XPropertySet > xNumRulePropSet( xNumRule, UNO_QUERY );
- xNumRulePropSet->getPropertyValue(
- "Name" ) >>= sOutlineName;
- bAssignedtoOutlineStyle = ( sListStyleName == sOutlineName );
- }
- }
- }
-
- if( ! bIsNumber && bAssignedtoOutlineStyle )
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_IS_LIST_HEADER,
- XML_TRUE );
- }
-
- {
- bool bIsRestartNumbering = false;
-
- Reference< XPropertySetInfo >
- xPropSetInfo(xMultiPropSet.is() ?
- xMultiPropSet->getPropertySetInfo():
- xPropSet->getPropertySetInfo());
-
- if (xPropSetInfo->
- hasPropertyByName("ParaIsNumberingRestart"))
- {
- xPropSet->getPropertyValue("ParaIsNumberingRestart")
- >>= bIsRestartNumbering;
- }
-
- if (bIsRestartNumbering)
- {
- GetExport().AddAttribute(XML_NAMESPACE_TEXT,
- XML_RESTART_NUMBERING,
- XML_TRUE);
-
- if (xPropSetInfo->
- hasPropertyByName("NumberingStartValue"))
- {
- sal_Int32 nStartValue = 0;
-
- xPropSet->getPropertyValue("NumberingStartValue")
- >>= nStartValue;
-
- OUStringBuffer sTmpStartValue;
-
- sTmpStartValue.append(nStartValue);
-
- GetExport().
- AddAttribute(XML_NAMESPACE_TEXT,
- XML_START_VALUE,
- sTmpStartValue.
- makeStringAndClear());
- }
- }
- }
- }
- }
- }
- }
-
Reference < XEnumerationAccess > xEA( rTextContent, UNO_QUERY );
Reference < XEnumeration > xTextEnum;
xTextEnum = xEA->createEnumeration();
@@ -2362,20 +2052,10 @@ void XMLTextParagraphExport::exportUndoParagraph(
xContentEnum, bAutoStyles, xSection,
bIsProgress );
if ( bHasPortions )
- exportUndoTextRangeEnumeration( xTextEnum, rParaIdx, bAutoStyles, bIsProgress );
+ exportUndoTextRangeEnumeration( xTextEnum, rParaIdx, bAutoStyles );
}
else
- {
- bool bPrevCharIsSpace = true;
- enum XMLTokenEnum eElem =
- 0 < nOutlineLevel ? XML_H : XML_P;
- if( bHasContentEnum )
- bPrevCharIsSpace = !exportUndoTextContentEnumeration(
- xContentEnum, bAutoStyles, xSection,
- bIsProgress );
- exportUndoTextRangeEnumeration( xTextEnum, rParaIdx, bAutoStyles, bIsProgress,
- bPrevCharIsSpace );
- }
+ exportUndoTextRangeEnumeration( xTextEnum, rParaIdx, bAutoStyles );
}
void XMLTextParagraphExport::exportParagraph(
@@ -2641,20 +2321,8 @@ void XMLTextParagraphExport::exportParagraph(
void XMLTextParagraphExport::exportUndoTextRangeEnumeration(
const Reference < XEnumeration > & rTextEnum,
const sal_uInt32& rParaIdx,
- bool bAutoStyles, bool bIsProgress,
- bool bPrvChrIsSpc )
+ bool bAutoStyles )
{
- static const char sMeta[] = "InContentMetadata";
- static const char sFieldMarkName[] = "__FieldMark_";
- static const char sAnnotation[] = "Annotation";
- static const char sAnnotationEnd[] = "AnnotationEnd";
-
- bool bPrevCharIsSpace = bPrvChrIsSpc;
-
- /* This is used for exporting to strict OpenDocument 1.2, in which case traditional
- * bookmarks are used instead of fieldmarks. */
- FieldmarkType openFieldMark = NONE;
-
while( rTextEnum->hasMoreElements() )
{
Reference<XPropertySet> xPropSet(rTextEnum->nextElement(), UNO_QUERY);
@@ -2673,9 +2341,6 @@ void XMLTextParagraphExport::exportUndoTextRangeEnumeration(
}
}
}
-
-// now that there are nested enumerations for meta(-field), this may be valid!
-// DBG_ASSERT( !bOpenRuby, "Red Alert: Ruby still open!" );
}
void XMLTextParagraphExport::exportTextRangeEnumeration(
@@ -2778,8 +2443,7 @@ void XMLTextParagraphExport::exportTextRangeEnumeration(
}
else if (sType.equals(sRedline))
{
- if (nullptr != pRedlineExport)
- pRedlineExport->ExportChange(xPropSet, bAutoStyles);
+ continue;
}
else if (sType.equals(sRuby))
{
@@ -4096,20 +3760,6 @@ void XMLTextParagraphExport::exportUsedDeclarations()
pFieldExport->SetExportOnlyUsedFieldDeclarations( false/*bOnlyUsed*/ );
}
-void XMLTextParagraphExport::exportTrackedChanges(bool bAutoStyles)
-{
- if (nullptr != pRedlineExport)
- pRedlineExport->ExportChangesList( bAutoStyles );
-}
-
-void XMLTextParagraphExport::exportTrackedChanges(
- const Reference<XText> & rText,
- bool bAutoStyle)
-{
- if (nullptr != pRedlineExport)
- pRedlineExport->ExportChangesList(rText, bAutoStyle);
-}
-
void XMLTextParagraphExport::recordTrackedChangesForXText(
const Reference<XText> & rText )
{
More information about the Libreoffice-commits
mailing list