summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-02-28 14:23:32 +0100
committerTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-02-28 20:24:38 +0100
commita783421ef0ecb53b7f4240f5a5e4116d3e9963b3 (patch)
tree6268aa3e99b714cb858d32cf3a58c9305b5e51a1 /sw
parent4b4a1b8095332a13b975553b19c4a03ce1072eaa (diff)
ooxml export: write w:compatSettings if present in GrabBag
Change-Id: Ie5f3ba8f12ca8d5b9729c5bfa13da3b34dbfda2d
Diffstat (limited to 'sw')
-rw-r--r--sw/source/filter/ww8/docxexport.cxx33
1 files changed, 32 insertions, 1 deletions
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index aff296f1efa3..b68368c649b3 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -869,7 +869,38 @@ void DocxExport::WriteSettings()
FSNS( XML_w, XML_eastAsia ), OUStringToOString( aValues[1], RTL_TEXTENCODING_UTF8 ).getStr(),
FSNS( XML_w, XML_bidi ), OUStringToOString( aValues[2], RTL_TEXTENCODING_UTF8 ).getStr(),
FSEND );
- break;
+ }
+ else if ( propList[i].Name == "CompatSettings" )
+ {
+ pFS->startElementNS( XML_w, XML_compat, FSEND );
+
+ uno::Sequence< beans::PropertyValue > aCompatSettingsSequence;
+ propList[i].Value >>= aCompatSettingsSequence;
+ for(sal_Int32 j=0; j < aCompatSettingsSequence.getLength(); ++j)
+ {
+ uno::Sequence< beans::PropertyValue > aCompatSetting;
+ aCompatSettingsSequence[j].Value >>= aCompatSetting;
+ OUString aName;
+ OUString aUri;
+ OUString aValue;
+
+ for(sal_Int32 k=0; k < aCompatSetting.getLength(); ++k)
+ {
+ if( aCompatSetting[k].Name == "name" )
+ aCompatSetting[k].Value >>= aName;
+ else if( aCompatSetting[k].Name == "uri" )
+ aCompatSetting[k].Value >>= aUri;
+ else if( aCompatSetting[k].Name == "val" )
+ aCompatSetting[k].Value >>= aValue;
+ }
+ pFS->singleElementNS( XML_w, XML_compatSetting,
+ FSNS( XML_w, XML_name ), OUStringToOString(aName, RTL_TEXTENCODING_UTF8).getStr(),
+ FSNS( XML_w, XML_uri ), OUStringToOString(aUri, RTL_TEXTENCODING_UTF8).getStr(),
+ FSNS( XML_w, XML_val ), OUStringToOString(aValue, RTL_TEXTENCODING_UTF8).getStr(),
+ FSEND);
+ }
+
+ pFS->endElementNS( XML_w, XML_compat );
}
}
}