fix for fdo#37880

we need to save the information if we have a global range name or a
local range name in the uno api too

Signed-off-by: Kohei Yoshida <kyoshida@novell.com>
This commit is contained in:
Markus Mohrhard 2011-06-22 15:51:02 +02:00 committed by Kohei Yoshida
parent dd5f9610f5
commit 0aeedba034
2 changed files with 8 additions and 5 deletions

View file

@ -299,14 +299,16 @@ class FORMULA_DLLPUBLIC FormulaIndexToken : public FormulaToken
{
private:
sal_uInt16 nIndex;
bool mbGlobal;
public:
FormulaIndexToken( OpCode e, sal_uInt16 n ) :
FormulaToken( svIndex, e ), nIndex( n ) {}
FormulaIndexToken( OpCode e, sal_uInt16 n, bool bGlobal = true ) :
FormulaToken( svIndex, e ), nIndex( n ), mbGlobal( bGlobal ) {}
FormulaIndexToken( const FormulaIndexToken& r ) :
FormulaToken( r ), nIndex( r.nIndex ) {}
FormulaToken( r ), nIndex( r.nIndex ), mbGlobal( r.mbGlobal ) {}
virtual FormulaToken* Clone() const { return new FormulaIndexToken(*this); }
virtual sal_uInt16 GetIndex() const;
virtual sal_uInt16 GetIndex() const;
virtual sal_uInt8 GetByte() const;
virtual void SetIndex( sal_uInt16 n );
virtual bool operator==( const FormulaToken& rToken ) const;
};

View file

@ -298,7 +298,7 @@ bool FormulaTokenArray::AddFormulaToken(const sheet::FormulaToken& _aToken,Exter
{
// long is svIndex, used for name / database area, or "byte" for spaces
sal_Int32 nValue = _aToken.Data.get<sal_Int32>();
if ( eOpCode == ocName || eOpCode == ocDBArea )
if ( eOpCode == ocDBArea )
AddToken( formula::FormulaIndexToken( eOpCode, static_cast<sal_uInt16>(nValue) ) );
else if ( eOpCode == ocSpaces )
AddToken( formula::FormulaByteToken( ocSpaces, static_cast<sal_uInt8>(nValue) ) );
@ -1326,6 +1326,7 @@ bool FormulaStringOpToken::operator==( const FormulaToken& r ) const
}
sal_uInt16 FormulaIndexToken::GetIndex() const { return nIndex; }
sal_uInt8 FormulaIndexToken::GetByte() const {return static_cast<sal_uInt8>(mbGlobal); }
void FormulaIndexToken::SetIndex( sal_uInt16 n ) { nIndex = n; }
bool FormulaIndexToken::operator==( const FormulaToken& r ) const
{