summaryrefslogtreecommitdiff
path: root/sc/source/ui/unoobj/confuno.cxx
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2015-07-23 09:52:59 +0200
committerEike Rathke <erack@redhat.com>2015-07-24 14:33:20 +0000
commit738be269bfc795400fcb10d4eefb6c33b17bded4 (patch)
tree7f66afcf79e8f76e3b9feb702ac41097b4c9d158 /sc/source/ui/unoobj/confuno.cxx
parente0bbfcbed34bb71c1a4979a7db30e38bfd6a7f61 (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.cxx43
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;
+ }
+ }
}
}