diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2015-07-23 09:52:59 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2015-07-24 14:33:20 +0000 |
commit | 738be269bfc795400fcb10d4eefb6c33b17bded4 (patch) | |
tree | 7f66afcf79e8f76e3b9feb702ac41097b4c9d158 /sc/source/ui/unoobj/confuno.cxx | |
parent | e0bbfcbed34bb71c1a4979a7db30e38bfd6a7f61 (diff) |
tdf#92256: Handle case when string ref syntax is unknown
i.e. the document doesn't have that property. Use CONV_A1_XL_A1
pseudoconvention for interpreting INDIRECT in such case
Change-Id: If9bac9053029b4b8f79d3ac7ac0759adbb25803f
Reviewed-on: https://gerrit.libreoffice.org/17311
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc/source/ui/unoobj/confuno.cxx')
-rw-r--r-- | sc/source/ui/unoobj/confuno.cxx | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx index 5d0385e2fbea..c695f4fc3c81 100644 --- a/sc/source/ui/unoobj/confuno.cxx +++ b/sc/source/ui/unoobj/confuno.cxx @@ -312,10 +312,10 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue( case 2: // CONV_XL_A1 case 3: // CONV_XL_R1C1 case 7: // CONV_A1_XL_A1 - aCalcConfig.meStringRefAddressSyntax = static_cast<formula::FormulaGrammar::AddressConvention>( nUno ); + aCalcConfig.SetStringRefSyntax( static_cast<formula::FormulaGrammar::AddressConvention>( nUno ) ); break; default: - aCalcConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_UNSPECIFIED; + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED ); break; } @@ -461,26 +461,31 @@ uno::Any SAL_CALL ScDocumentConfiguration::getPropertyValue( const OUString& aPr else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF ) { ScCalcConfig aCalcConfig = rDoc.GetCalcConfig(); - formula::FormulaGrammar::AddressConvention aConv = aCalcConfig.meStringRefAddressSyntax; - switch (aConv) + // if it hasn't been read or explicitly changed, don't write it + if ( aCalcConfig.mbHasStringRefSyntax ) { - case formula::FormulaGrammar::CONV_OOO: - case formula::FormulaGrammar::CONV_XL_A1: - case formula::FormulaGrammar::CONV_XL_R1C1: - case formula::FormulaGrammar::CONV_A1_XL_A1: - 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: + formula::FormulaGrammar::AddressConvention aConv = aCalcConfig.meStringRefAddressSyntax; + + switch (aConv) { - aRet <<= sal_Int16(9999); - break; - } + case formula::FormulaGrammar::CONV_OOO: + case formula::FormulaGrammar::CONV_XL_A1: + case formula::FormulaGrammar::CONV_XL_R1C1: + case formula::FormulaGrammar::CONV_A1_XL_A1: + 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; + } + } } } |