Kaydet (Commit) 01d11655 authored tarafından Katarina Behrens's avatar Katarina Behrens Kaydeden (comit) Eike Rathke

tdf#92256: ODF save/load syntax for string reference

Change-Id: Iec38867c2fa3750f052e4afc99c5f8d48808c373
Reviewed-on: https://gerrit.libreoffice.org/17017Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
Tested-by: 's avatarEike Rathke <erack@redhat.com>
üst 8eaef6b5
......@@ -511,6 +511,7 @@
#define SC_UNO_INTEROPGRABBAG "InteropGrabBag"
#define SC_UNO_RECORDCHANGES "RecordChanges"
#define SC_UNO_ISRECORDCHANGESPROTECTED "IsRecordChangesProtected"
#define SC_UNO_SYNTAXSTRINGREF "SyntaxStringRef"
// document properties from FormModel
......
......@@ -31,6 +31,7 @@
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <cppuhelper/supportsservice.hxx>
#include <formula/grammar.hxx>
#include <sfx2/printer.hxx>
#include <xmloff/xmluconv.hxx>
#include <rtl/ustrbuf.hxx>
......@@ -75,6 +76,7 @@ static const SfxItemPropertyMapEntry* lcl_GetConfigPropertyMap()
{OUString(SC_UNO_SHAREDOC), 0, cppu::UnoType<bool>::get(), 0, 0},
{OUString(SC_UNO_MODIFYPASSWORDINFO), 0, cppu::UnoType<uno::Sequence< beans::PropertyValue >>::get(), 0, 0},
{OUString(SC_UNO_EMBED_FONTS), 0, cppu::UnoType<bool>::get(), 0, 0},
{OUString(SC_UNO_SYNTAXSTRINGREF), 0, cppu::UnoType<sal_Int16>::get(), 0, 0},
{ OUString(), 0, css::uno::Type(), 0, 0 }
};
return aConfigPropertyMap_Impl;
......@@ -297,6 +299,28 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue(
rDoc.SetIsUsingEmbededFonts(bVal);
}
}
else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF )
{
ScCalcConfig aCalcConfig = rDoc.GetCalcConfig();
sal_Int16 nUno = 0;
if( aValue >>= nUno )
{
switch (nUno)
{
case 0: // CONV_OOO
case 2: // CONV_XL_A1
case 3: // CONV_XL_R1C1
aCalcConfig.meStringRefAddressSyntax = static_cast<formula::FormulaGrammar::AddressConvention>( nUno );
break;
default:
aCalcConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_UNSPECIFIED;
break;
}
rDoc.SetCalcConfig( aCalcConfig );
}
}
else
{
......@@ -433,6 +457,30 @@ uno::Any SAL_CALL ScDocumentConfiguration::getPropertyValue( const OUString& aPr
{
aRet <<= rDoc.IsUsingEmbededFonts();
}
else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF )
{
ScCalcConfig aCalcConfig = rDoc.GetCalcConfig();
formula::FormulaGrammar::AddressConvention aConv = aCalcConfig.meStringRefAddressSyntax;
switch (aConv)
{
case formula::FormulaGrammar::CONV_OOO:
case formula::FormulaGrammar::CONV_XL_A1:
case formula::FormulaGrammar::CONV_XL_R1C1:
aRet <<= static_cast<sal_Int16>( aConv );
break;
case formula::FormulaGrammar::CONV_UNSPECIFIED:
case formula::FormulaGrammar::CONV_ODF:
case formula::FormulaGrammar::CONV_XL_OOX:
case formula::FormulaGrammar::CONV_LOTUS_A1:
case formula::FormulaGrammar::CONV_LAST:
{
aRet <<= sal_Int16(9999);
break;
}
}
}
else
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment