INTEGRATION: CWS xmlfilter04 (1.2.54); FILE MERGED
2008/03/19 17:00:42 hbrinkm 1.2.54.4: RESYNC: (1.2-1.3); FILE MERGED 2008/03/19 03:54:49 kohei 1.2.54.3: forgot to change it in two more places. 2008/03/19 03:51:49 kohei 1.2.54.2: FormulaConvention -> AddressConvention. 2008/03/07 02:06:05 kohei 1.2.54.1: remove the two boolean properties from ScFormulaParserObj and put the new formula convention property.
This commit is contained in:
parent
32e0fafe92
commit
86858d1fb6
1 changed files with 24 additions and 33 deletions
|
@ -7,7 +7,7 @@
|
||||||
* OpenOffice.org - a multi-platform office productivity suite
|
* OpenOffice.org - a multi-platform office productivity suite
|
||||||
*
|
*
|
||||||
* $RCSfile: tokenuno.cxx,v $
|
* $RCSfile: tokenuno.cxx,v $
|
||||||
* $Revision: 1.4 $
|
* $Revision: 1.5 $
|
||||||
*
|
*
|
||||||
* This file is part of OpenOffice.org.
|
* This file is part of OpenOffice.org.
|
||||||
*
|
*
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
|
|
||||||
#include <com/sun/star/sheet/ComplexReference.hpp>
|
#include <com/sun/star/sheet/ComplexReference.hpp>
|
||||||
#include <com/sun/star/sheet/ReferenceFlags.hpp>
|
#include <com/sun/star/sheet/ReferenceFlags.hpp>
|
||||||
|
#include <com/sun/star/sheet/AddressConvention.hpp>
|
||||||
#include <com/sun/star/table/CellAddress.hpp>
|
#include <com/sun/star/table/CellAddress.hpp>
|
||||||
|
|
||||||
#include <svtools/itemprop.hxx>
|
#include <svtools/itemprop.hxx>
|
||||||
|
@ -56,12 +57,11 @@ const SfxItemPropertyMap* lcl_GetFormulaParserMap()
|
||||||
{
|
{
|
||||||
static SfxItemPropertyMap aFormulaParserMap_Impl[] =
|
static SfxItemPropertyMap aFormulaParserMap_Impl[] =
|
||||||
{
|
{
|
||||||
{MAP_CHAR_LEN(SC_UNO_REFERENCEPOS), 0, &getCppuType((table::CellAddress*)0), 0, 0 },
|
{MAP_CHAR_LEN(SC_UNO_REFERENCEPOS), 0, &getCppuType((table::CellAddress*)0), 0, 0 },
|
||||||
{MAP_CHAR_LEN(SC_UNO_COMPILEENGLISH), 0, &getBooleanCppuType(), 0, 0 },
|
{MAP_CHAR_LEN(SC_UNO_COMPILEENGLISH), 0, &getBooleanCppuType(), 0, 0 },
|
||||||
{MAP_CHAR_LEN(SC_UNO_IGNORELEADING), 0, &getBooleanCppuType(), 0, 0 },
|
{MAP_CHAR_LEN(SC_UNO_IGNORELEADING), 0, &getBooleanCppuType(), 0, 0 },
|
||||||
{MAP_CHAR_LEN(SC_UNO_COMPATIBILITY3D), 0, &getBooleanCppuType(), 0, 0 },
|
{MAP_CHAR_LEN(SC_UNO_FORMULACONVENTION), 0, &getCppuType(&sheet::AddressConvention::UNSPECIFIED), 0, 0 },
|
||||||
{MAP_CHAR_LEN(SC_UNO_R1C1NOTATION), 0, &getBooleanCppuType(), 0, 0 },
|
{MAP_CHAR_LEN(SC_UNO_OPCODEMAP), 0, &getCppuType((uno::Sequence< sheet::FormulaOpCodeMapEntry >*)0), 0, 0 },
|
||||||
{MAP_CHAR_LEN(SC_UNO_OPCODEMAP), 0, &getCppuType((uno::Sequence< sheet::FormulaOpCodeMapEntry >*)0), 0, 0 },
|
|
||||||
{0,0,0,0,0,0}
|
{0,0,0,0,0,0}
|
||||||
};
|
};
|
||||||
return aFormulaParserMap_Impl;
|
return aFormulaParserMap_Impl;
|
||||||
|
@ -73,9 +73,8 @@ SC_SIMPLE_SERVICE_INFO( ScFormulaParserObj, "ScFormulaParserObj", SC_SERVICENAME
|
||||||
|
|
||||||
ScFormulaParserObj::ScFormulaParserObj(ScDocShell* pDocSh) :
|
ScFormulaParserObj::ScFormulaParserObj(ScDocShell* pDocSh) :
|
||||||
mpDocShell( pDocSh ),
|
mpDocShell( pDocSh ),
|
||||||
|
mnConv( sheet::AddressConvention::UNSPECIFIED ),
|
||||||
mbEnglish( false ),
|
mbEnglish( false ),
|
||||||
mbR1C1( false ),
|
|
||||||
mbComp3D( false ),
|
|
||||||
mbIgnoreSpaces( true )
|
mbIgnoreSpaces( true )
|
||||||
{
|
{
|
||||||
mpDocShell->GetDocument()->AddUnoObject(*this);
|
mpDocShell->GetDocument()->AddUnoObject(*this);
|
||||||
|
@ -97,6 +96,15 @@ void ScFormulaParserObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
|
||||||
|
|
||||||
void ScFormulaParserObj::SetCompilerFlags( ScCompiler& rCompiler ) const
|
void ScFormulaParserObj::SetCompilerFlags( ScCompiler& rCompiler ) const
|
||||||
{
|
{
|
||||||
|
static const ScAddress::Convention aConvMap[] = {
|
||||||
|
ScAddress::CONV_OOO, // <- AddressConvention::OOO
|
||||||
|
ScAddress::CONV_XL_A1, // <- AddressConvention::XL_A1
|
||||||
|
ScAddress::CONV_XL_R1C1, // <- AddressConvention::XL_R1C1
|
||||||
|
ScAddress::CONV_XL_OOX, // <- AddressConvention::XL_OOX
|
||||||
|
ScAddress::CONV_LOTUS_A1 // <- AddressConvention::LOTUS_A1
|
||||||
|
};
|
||||||
|
static const sal_Int16 nConvMapCount = sizeof(aConvMap)/sizeof(aConvMap[0]);
|
||||||
|
|
||||||
// If mxOpCodeMap is not empty it overrides mbEnglish, and vice versa. We
|
// If mxOpCodeMap is not empty it overrides mbEnglish, and vice versa. We
|
||||||
// don't need to initialize things twice.
|
// don't need to initialize things twice.
|
||||||
if (mxOpCodeMap.get())
|
if (mxOpCodeMap.get())
|
||||||
|
@ -111,18 +119,9 @@ void ScFormulaParserObj::SetCompilerFlags( ScCompiler& rCompiler ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
ScAddress::Convention eConv = ScAddress::CONV_UNSPECIFIED;
|
ScAddress::Convention eConv = ScAddress::CONV_UNSPECIFIED;
|
||||||
if ( mbR1C1 )
|
if (mnConv >= 0 && mnConv < nConvMapCount)
|
||||||
{
|
eConv = aConvMap[mnConv];
|
||||||
// R1C1 is available only with '!' sheet separator
|
|
||||||
eConv = ScAddress::CONV_XL_R1C1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( mbComp3D )
|
|
||||||
eConv = ScAddress::CONV_XL_A1; // '!' and A1
|
|
||||||
else
|
|
||||||
eConv = ScAddress::CONV_OOO; // '.' and A1
|
|
||||||
}
|
|
||||||
rCompiler.SetRefConvention( eConv );
|
rCompiler.SetRefConvention( eConv );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,13 +203,9 @@ void SAL_CALL ScFormulaParserObj::setPropertyValue(
|
||||||
else
|
else
|
||||||
throw lang::IllegalArgumentException();
|
throw lang::IllegalArgumentException();
|
||||||
}
|
}
|
||||||
else if ( aString.EqualsAscii( SC_UNO_R1C1NOTATION ) )
|
else if ( aString.EqualsAscii( SC_UNO_FORMULACONVENTION ) )
|
||||||
{
|
{
|
||||||
aValue >>= mbR1C1;
|
aValue >>= mnConv;
|
||||||
}
|
|
||||||
else if ( aString.EqualsAscii( SC_UNO_COMPATIBILITY3D ) )
|
|
||||||
{
|
|
||||||
aValue >>= mbComp3D;
|
|
||||||
}
|
}
|
||||||
else if ( aString.EqualsAscii( SC_UNO_IGNORELEADING ) )
|
else if ( aString.EqualsAscii( SC_UNO_IGNORELEADING ) )
|
||||||
{
|
{
|
||||||
|
@ -244,13 +239,9 @@ uno::Any SAL_CALL ScFormulaParserObj::getPropertyValue( const rtl::OUString& aPr
|
||||||
{
|
{
|
||||||
aRet <<= mbEnglish;
|
aRet <<= mbEnglish;
|
||||||
}
|
}
|
||||||
else if ( aString.EqualsAscii( SC_UNO_R1C1NOTATION ) )
|
else if ( aString.EqualsAscii( SC_UNO_FORMULACONVENTION ) )
|
||||||
{
|
{
|
||||||
aRet <<= mbR1C1;
|
aRet <<= mnConv;
|
||||||
}
|
|
||||||
else if ( aString.EqualsAscii( SC_UNO_COMPATIBILITY3D ) )
|
|
||||||
{
|
|
||||||
aRet <<= mbComp3D;
|
|
||||||
}
|
}
|
||||||
else if ( aString.EqualsAscii( SC_UNO_IGNORELEADING ) )
|
else if ( aString.EqualsAscii( SC_UNO_IGNORELEADING ) )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue