summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2020-04-24 18:30:12 +0200
committerJan Holesovsky <kendy@collabora.com>2021-01-07 16:32:53 +0100
commit280b44ecf20ac34986cd4a2bea3c0af8fd9b94b7 (patch)
treee030661d1a49aacbfc92fc33dbf26e2f197e3efc /xmloff
parentb3df9a15b10c916b4d126a4a61b41293756c0bfe (diff)
xmloff: ODF export: adapt to ODF 1.3
* OFFICE-3883 legend svg:width/svg:height * OFFICE-3928 chart:coordinate-region * OFFICE-3943 draw:mime-type * OFFICE-3765 number:fill-character, number:text * OFFICE-3860 number:min-decimal-places, number:forced-exponent-sign * OFFICE-1828 number:exponent-interval * OFFICE-3695 number:max-denominator-value * OFFICE-3941 text:index-entry-link-start/text:index-entry-link-end * OFFICE-3776 meta:creator-initials * OFFICE-3789 style:header-first/style:footer-first Change-Id: I78c79231c0708c3ae9943097d162898fab71988f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92873 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/source/chart/SchXMLExport.cxx13
-rw-r--r--xmloff/source/draw/sdxmlexp.cxx12
-rw-r--r--xmloff/source/draw/shapeexport.cxx16
-rw-r--r--xmloff/source/style/xmlnumfe.cxx14
-rw-r--r--xmloff/source/text/XMLSectionExport.cxx5
-rw-r--r--xmloff/source/text/XMLTextMasterPageExport.cxx20
-rw-r--r--xmloff/source/text/txtflde.cxx16
-rw-r--r--xmloff/source/text/txtparae.cxx16
8 files changed, 83 insertions, 29 deletions
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
index 0e1f5f97bf00..74839a07c360 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -1384,8 +1384,14 @@ void SchXMLExportHelper_Impl::parseDocument( Reference< chart::XChartDocument >
{
awt::Size aSize( xLegendShape->getSize() );
// tdf#131966: chart legend attributes width and height shouldn't be exported to ODF 1.2 (strict)
- if (nCurrentODFVersion > SvtSaveOptions::ODFSVER_012)
+ if (nCurrentODFVersion >= SvtSaveOptions::ODFSVER_013)
+ { // ODF 1.3 OFFICE-3883
+ addSize( aSize, false );
+ }
+ else if (nCurrentODFVersion & SvtSaveOptions::ODFSVER_EXTENDED)
+ {
addSize( aSize, true );
+ }
OUStringBuffer aAspectRatioString;
::sax::Converter::convertDouble(
aAspectRatioString,
@@ -2083,7 +2089,10 @@ void SchXMLExportHelper_Impl::exportCoordinateRegion( const uno::Reference< char
addPosition( awt::Point(aRect.X,aRect.Y) );
addSize( awt::Size(aRect.Width,aRect.Height) );
- SvXMLElementExport aCoordinateRegion( mrExport, XML_NAMESPACE_CHART_EXT, XML_COORDINATE_REGION, true, true );//#i100778# todo: change to chart namespace in future - dependent on fileformat
+ // ODF 1.3 OFFICE-3928
+ SvXMLElementExport aCoordinateRegion( mrExport,
+ (SvtSaveOptions::ODFSVER_013 <= nCurrentODFVersion) ? XML_NAMESPACE_CHART : XML_NAMESPACE_CHART_EXT,
+ XML_COORDINATE_REGION, true, true );
}
namespace
diff --git a/xmloff/source/draw/sdxmlexp.cxx b/xmloff/source/draw/sdxmlexp.cxx
index 4de4a36734c2..62925fe6fa5d 100644
--- a/xmloff/source/draw/sdxmlexp.cxx
+++ b/xmloff/source/draw/sdxmlexp.cxx
@@ -2551,9 +2551,15 @@ void SdXMLExport::exportAnnotations( const Reference<XDrawPage>& xDrawPage )
OUString aInitials( xAnnotation->getInitials() );
if( !aInitials.isEmpty() )
{
- // TODO: see OFFICE-3776 export meta:creator-initials for ODF 1.3
- SvXMLElementExport aInitialsElem( *this, XML_NAMESPACE_LO_EXT,
- XML_SENDER_INITIALS, true, false );
+ // OFFICE-3776 export meta:creator-initials for ODF 1.3
+ SvXMLElementExport aInitialsElem( *this,
+ (SvtSaveOptions::ODFSVER_013 <= getSaneDefaultVersion())
+ ? XML_NAMESPACE_META
+ : XML_NAMESPACE_LO_EXT,
+ (SvtSaveOptions::ODFSVER_013 <= getSaneDefaultVersion())
+ ? XML_CREATOR_INITIALS
+ : XML_SENDER_INITIALS,
+ true, false );
Characters(aInitials);
}
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index 39e9b2bc5c26..6b995c4a5d76 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -2411,8 +2411,12 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
GetExport().GetGraphicMimeTypeFromStream(xGraphic, sOutMimeType);
}
if (!sOutMimeType.isEmpty())
- {
- GetExport().AddAttribute(XML_NAMESPACE_LO_EXT, "mime-type", sOutMimeType);
+ { // ODF 1.3 OFFICE-3943
+ GetExport().AddAttribute(
+ SvtSaveOptions::ODFSVER_013 <= GetExport().getSaneDefaultVersion()
+ ? XML_NAMESPACE_DRAW
+ : XML_NAMESPACE_LO_EXT,
+ "mime-type", sOutMimeType);
}
}
@@ -2453,7 +2457,13 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
}
if (!aMimeType.isEmpty() && GetExport().getSaneDefaultVersion() > SvtSaveOptions::ODFSVER_012)
- mrExport.AddAttribute(XML_NAMESPACE_LO_EXT, "mime-type", aMimeType);
+ { // ODF 1.3 OFFICE-3943
+ mrExport.AddAttribute(
+ SvtSaveOptions::ODFSVER_013 <= GetExport().getSaneDefaultVersion()
+ ? XML_NAMESPACE_DRAW
+ : XML_NAMESPACE_LO_EXT,
+ "mime-type", aMimeType);
+ }
SvXMLElementExport aElement(mrExport, XML_NAMESPACE_DRAW, XML_IMAGE, true, true);
diff --git a/xmloff/source/style/xmlnumfe.cxx b/xmloff/source/style/xmlnumfe.cxx
index 01624950f50d..d9f624bb6d60 100644
--- a/xmloff/source/style/xmlnumfe.cxx
+++ b/xmloff/source/style/xmlnumfe.cxx
@@ -488,8 +488,8 @@ void SvXMLNumFmtExport::WriteRepeatedElement_Impl( sal_Unicode nChar )
SvtSaveOptions::ODFSaneDefaultVersion eVersion = rExport.getSaneDefaultVersion();
if (eVersion > SvtSaveOptions::ODFSVER_012)
{
- FinishTextElement_Impl(true);
- // For 1.2+ use loext namespace, for 1.3 use number namespace.
+ FinishTextElement_Impl(eVersion < SvtSaveOptions::ODFSVER_013);
+ // OFFICE-3765 For 1.2+ use loext namespace, for 1.3 use number namespace.
SvXMLElementExport aElem( rExport,
((eVersion < SvtSaveOptions::ODFSVER_013) ? XML_NAMESPACE_LO_EXT : XML_NAMESPACE_NUMBER),
XML_FILL_CHARACTER, true, false );
@@ -543,7 +543,7 @@ void SvXMLNumFmtExport::WriteNumberElement_Impl(
SvtSaveOptions::ODFSaneDefaultVersion eVersion = rExport.getSaneDefaultVersion();
if (eVersion > SvtSaveOptions::ODFSVER_012)
{
- // For 1.2+ use loext namespace, for 1.3 use number namespace.
+ // OFFICE-3860 For 1.2+ use loext namespace, for 1.3 use number namespace.
rExport.AddAttribute(
((eVersion < SvtSaveOptions::ODFSVER_013) ? XML_NAMESPACE_LO_EXT : XML_NAMESPACE_NUMBER),
XML_MIN_DECIMAL_PLACES,
@@ -632,7 +632,7 @@ void SvXMLNumFmtExport::WriteScientificElement_Impl(
// Export only for 1.2 with extensions or 1.3 and later.
if (eVersion > SvtSaveOptions::ODFSVER_012)
{
- // For 1.2+ use loext namespace, for 1.3 use number namespace.
+ // OFFICE-3860 For 1.2+ use loext namespace, for 1.3 use number namespace.
rExport.AddAttribute(
((eVersion < SvtSaveOptions::ODFSVER_013) ? XML_NAMESPACE_LO_EXT : XML_NAMESPACE_NUMBER),
XML_MIN_DECIMAL_PLACES,
@@ -666,7 +666,7 @@ void SvXMLNumFmtExport::WriteScientificElement_Impl(
// Export only for 1.2 with extensions or 1.3 and later.
if (eVersion > SvtSaveOptions::ODFSVER_012)
{
- // For 1.2+ use loext namespace, for 1.3 use number namespace.
+ // OFFICE-1828 For 1.2+ use loext namespace, for 1.3 use number namespace.
rExport.AddAttribute(
((eVersion < SvtSaveOptions::ODFSVER_013) ? XML_NAMESPACE_LO_EXT : XML_NAMESPACE_NUMBER),
XML_EXPONENT_INTERVAL, OUString::number( nExpInterval ) );
@@ -677,7 +677,7 @@ void SvXMLNumFmtExport::WriteScientificElement_Impl(
// Export only for 1.2 with extensions or 1.3 and later.
if (eVersion > SvtSaveOptions::ODFSVER_012)
{
- // For 1.2+ use loext namespace, for 1.3 use number namespace.
+ // OFFICE-3860 For 1.2+ use loext namespace, for 1.3 use number namespace.
rExport.AddAttribute(
((eVersion < SvtSaveOptions::ODFSVER_013) ? XML_NAMESPACE_LO_EXT : XML_NAMESPACE_NUMBER),
XML_FORCED_EXPONENT_SIGN,
@@ -775,7 +775,7 @@ void SvXMLNumFmtExport::WriteFractionElement_Impl(
OUString::number( nMinDenominatorDigits ) );
if (eVersion > SvtSaveOptions::ODFSVER_012)
{
- // For 1.2+ use loext namespace, for 1.3 use number namespace.
+ // OFFICE-3695 For 1.2+ use loext namespace, for 1.3 use number namespace.
rExport.AddAttribute(
((eVersion < SvtSaveOptions::ODFSVER_013) ? XML_NAMESPACE_LO_EXT : XML_NAMESPACE_NUMBER),
XML_MAX_DENOMINATOR_VALUE,
diff --git a/xmloff/source/text/XMLSectionExport.cxx b/xmloff/source/text/XMLSectionExport.cxx
index 62dd37f37a9f..2b5e42f46056 100644
--- a/xmloff/source/text/XMLSectionExport.cxx
+++ b/xmloff/source/text/XMLSectionExport.cxx
@@ -1314,7 +1314,10 @@ void XMLSectionExport::ExportIndexTemplateElement(
|| eType == TEXT_SECTION_TYPE_OBJECT
|| eType == TEXT_SECTION_TYPE_TABLE
|| eType == TEXT_SECTION_TYPE_USER);
- nNamespace = XML_NAMESPACE_LO_EXT;
+ // ODF 1.3 OFFICE-3941
+ nNamespace = (SvtSaveOptions::ODFSVER_013 <= aODFVersion)
+ ? XML_NAMESPACE_TEXT
+ : XML_NAMESPACE_LO_EXT;
}
else
{
diff --git a/xmloff/source/text/XMLTextMasterPageExport.cxx b/xmloff/source/text/XMLTextMasterPageExport.cxx
index f2adab2600fa..4e688bdcfbd4 100644
--- a/xmloff/source/text/XMLTextMasterPageExport.cxx
+++ b/xmloff/source/text/XMLTextMasterPageExport.cxx
@@ -124,6 +124,8 @@ void XMLTextMasterPageExport::exportMasterPageContent(
}
else
{
+ auto const nVersion(GetExport().getSaneDefaultVersion());
+
aAny = rPropSet->getPropertyValue( gsHeaderOn );
bool bHeader = false;
aAny >>= bHeader;
@@ -162,12 +164,17 @@ void XMLTextMasterPageExport::exportMasterPageContent(
exportHeaderFooterContent( xHeaderTextLeft, false );
}
- if( xHeaderTextFirst.is() && xHeaderTextFirst != xHeaderText )
+ if (xHeaderTextFirst.is() && xHeaderTextFirst != xHeaderText
+ && SvtSaveOptions::ODFSVER_012 < nVersion)
{
if (bHeaderFirstShared)
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_DISPLAY, XML_FALSE );
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_LO_EXT,
+ // ODF 1.3 OFFICE-3789
+ SvXMLElementExport aElem( GetExport(),
+ SvtSaveOptions::ODFSVER_013 <= nVersion
+ ? XML_NAMESPACE_STYLE
+ : XML_NAMESPACE_LO_EXT,
XML_HEADER_FIRST, true, true );
exportHeaderFooterContent( xHeaderTextFirst, false );
}
@@ -210,12 +217,17 @@ void XMLTextMasterPageExport::exportMasterPageContent(
exportHeaderFooterContent( xFooterTextLeft, false );
}
- if( xFooterTextFirst.is() && xFooterTextFirst != xFooterText )
+ if (xFooterTextFirst.is() && xFooterTextFirst != xFooterText
+ && SvtSaveOptions::ODFSVER_012 < nVersion)
{
if (bFooterFirstShared)
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_DISPLAY, XML_FALSE );
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_LO_EXT,
+ // ODF 1.3 OFFICE-3789
+ SvXMLElementExport aElem( GetExport(),
+ SvtSaveOptions::ODFSVER_013 <= nVersion
+ ? XML_NAMESPACE_STYLE
+ : XML_NAMESPACE_LO_EXT,
XML_FOOTER_FIRST, true, true );
exportHeaderFooterContent( xFooterTextFirst, false );
}
diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx
index 37dd25a44b1a..a36cf98a54ec 100644
--- a/xmloff/source/text/txtflde.cxx
+++ b/xmloff/source/text/txtflde.cxx
@@ -1794,16 +1794,22 @@ void XMLTextFieldExport::ExportFieldHelper(
GetExport().Characters(aBuffer.makeStringAndClear());
}
- if (SvtSaveOptions().GetODFSaneDefaultVersion() > SvtSaveOptions::ODFSVER_012)
+ if (GetExport().getSaneDefaultVersion() > SvtSaveOptions::ODFSVER_012)
{
// initials
OUString aInitials( GetStringProperty(gsPropertyInitials, rPropSet) );
if( !aInitials.isEmpty() )
{
- // TODO: see OFFICE-3776 export meta:creator-initials for ODF 1.3
- SvXMLElementExport aCreatorElem( GetExport(), XML_NAMESPACE_LO_EXT,
- XML_SENDER_INITIALS, true,
- false );
+ // ODF 1.3 OFFICE-3776 export meta:creator-initials for ODF 1.3
+ SvXMLElementExport aCreatorElem( GetExport(),
+ (SvtSaveOptions::ODFSVER_013 <= GetExport().getSaneDefaultVersion())
+ ? XML_NAMESPACE_META
+ : XML_NAMESPACE_LO_EXT,
+
+ (SvtSaveOptions::ODFSVER_013 <= GetExport().getSaneDefaultVersion())
+ ? XML_CREATOR_INITIALS
+ : XML_SENDER_INITIALS,
+ true, false );
GetExport().Characters(aInitials);
}
}
diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx
index 2c701d97ee38..87ae58d56e18 100644
--- a/xmloff/source/text/txtparae.cxx
+++ b/xmloff/source/text/txtparae.cxx
@@ -3154,8 +3154,12 @@ void XMLTextParagraphExport::_exportTextGraphic(
GetExport().GetGraphicMimeTypeFromStream(xGraphic, sOutMimeType);
}
if (!sOutMimeType.isEmpty())
- {
- GetExport().AddAttribute(XML_NAMESPACE_LO_EXT, "mime-type", sOutMimeType);
+ { // ODF 1.3 OFFICE-3943
+ GetExport().AddAttribute(
+ SvtSaveOptions::ODFSVER_013 <= GetExport().getSaneDefaultVersion()
+ ? XML_NAMESPACE_DRAW
+ : XML_NAMESPACE_LO_EXT,
+ "mime-type", sOutMimeType);
}
}
@@ -3202,8 +3206,12 @@ void XMLTextParagraphExport::_exportTextGraphic(
GetExport().GetGraphicMimeTypeFromStream(xReplacementGraphic, sOutMimeType);
}
if (!sOutMimeType.isEmpty())
- {
- GetExport().AddAttribute(XML_NAMESPACE_LO_EXT, "mime-type", sOutMimeType);
+ { // ODF 1.3 OFFICE-3943
+ GetExport().AddAttribute(
+ SvtSaveOptions::ODFSVER_013 <= GetExport().getSaneDefaultVersion()
+ ? XML_NAMESPACE_DRAW
+ : XML_NAMESPACE_LO_EXT,
+ "mime-type", sOutMimeType);
}
}