summaryrefslogtreecommitdiff
path: root/formula
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-06-22 15:51:02 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-06-23 15:21:12 +0200
commit9b1dbe77297343cc74cf049c64ec65d316d10e67 (patch)
tree8acd6ee60130a1dd1aecfd16fcdbce021fb84254 /formula
parent29387b95a21725ac9a216a18674d0e39917e3481 (diff)
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
Diffstat (limited to 'formula')
-rw-r--r--formula/inc/formula/token.hxx10
-rw-r--r--formula/source/core/api/token.cxx3
2 files changed, 8 insertions, 5 deletions
diff --git a/formula/inc/formula/token.hxx b/formula/inc/formula/token.hxx
index bc6cfc2c2793..ccbc4abb77f6 100644
--- a/formula/inc/formula/token.hxx
+++ b/formula/inc/formula/token.hxx
@@ -302,14 +302,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;
};
diff --git a/formula/source/core/api/token.cxx b/formula/source/core/api/token.cxx
index de9258d4c8ea..703c5d6bb6b2 100644
--- a/formula/source/core/api/token.cxx
+++ b/formula/source/core/api/token.cxx
@@ -303,7 +303,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) ) );
@@ -1347,6 +1347,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
{