diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-01-05 18:35:05 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-01-05 18:40:20 +0100 |
commit | 5b8deb57c6782b77fcf180ef6097f71b6e1b07d2 (patch) | |
tree | 42888b8f0d70e50d66c4137dceb092236f66d869 /sc | |
parent | ac7f046d27b4e47361f44efe252fca867a0a1d02 (diff) |
simplify code a bit
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/reftokenhelper.hxx | 1 | ||||
-rw-r--r-- | sc/source/core/tool/reftokenhelper.cxx | 54 | ||||
-rw-r--r-- | sc/source/core/tool/token.cxx | 5 |
3 files changed, 3 insertions, 57 deletions
diff --git a/sc/inc/reftokenhelper.hxx b/sc/inc/reftokenhelper.hxx index c076f343937a..9119e3eb9b82 100644 --- a/sc/inc/reftokenhelper.hxx +++ b/sc/inc/reftokenhelper.hxx @@ -58,7 +58,6 @@ public: const sal_Unicode cSep, ::formula::FormulaGrammar::Grammar eGrammar); static bool getRangeFromToken(ScRange& rRange, const ScTokenRef& pToken, bool bExternal = false); - static bool getAbsRangeFromToken(ScRange& rRange, const ScTokenRef& pToken, const ScAddress& rPos, bool bExternal = false); static void getRangeListFromTokens(ScRangeList& rRangeList, const ::std::vector<ScTokenRef>& pTokens); diff --git a/sc/source/core/tool/reftokenhelper.cxx b/sc/source/core/tool/reftokenhelper.cxx index 364556cba087..2a32e12de85c 100644 --- a/sc/source/core/tool/reftokenhelper.cxx +++ b/sc/source/core/tool/reftokenhelper.cxx @@ -146,25 +146,6 @@ void singleRefToAddr(const ScSingleRefData& rRef, ScAddress& rAddr) rAddr.SetTab(rRef.nTab); } -//returns an absolute address in reference to rPos -void singleRefToAbsAddr(const ScSingleRefData& rRef, ScAddress& rAddr, const ScAddress& rPos) -{ - if (rRef.IsColRel()) - rAddr.SetCol(rRef.nRelCol + rPos.Col()); - else - rAddr.SetCol(rRef.nCol); - - if (rRef.IsRowRel()) - rAddr.SetRow(rRef.nRelRow + rPos.Row()); - else - rAddr.SetRow(rRef.nRow); - - if (rRef.IsTabRel()) - rAddr.SetTab(rRef.nRelTab + rPos.Tab()); - else - rAddr.SetTab(rRef.nTab); -} - } bool ScRefTokenHelper::getRangeFromToken(ScRange& rRange, const ScTokenRef& pToken, bool bExternal) @@ -202,41 +183,6 @@ bool ScRefTokenHelper::getRangeFromToken(ScRange& rRange, const ScTokenRef& pTok return false; } -bool ScRefTokenHelper::getAbsRangeFromToken(ScRange& rRange, const ScTokenRef& pToken, const ScAddress& rPos, bool bExternal) -{ - StackVar eType = pToken->GetType(); - switch (pToken->GetType()) - { - case svSingleRef: - case svExternalSingleRef: - { - if ((eType == svExternalSingleRef && !bExternal) || - (eType == svSingleRef && bExternal)) - return false; - - const ScSingleRefData& rRefData = pToken->GetSingleRef(); - singleRefToAbsAddr(rRefData, rRange.aStart, rPos); - rRange.aEnd = rRange.aStart; - return true; - } - case svDoubleRef: - case svExternalDoubleRef: - { - if ((eType == svExternalDoubleRef && !bExternal) || - (eType == svDoubleRef && bExternal)) - return false; - - const ScComplexRefData& rRefData = pToken->GetDoubleRef(); - singleRefToAbsAddr(rRefData.Ref1, rRange.aStart, rPos); - singleRefToAbsAddr(rRefData.Ref2, rRange.aEnd, rPos); - return true; - } - default: - ; // do nothing - } - return false; -} - void ScRefTokenHelper::getRangeListFromTokens(ScRangeList& rRangeList, const vector<ScTokenRef>& rTokens) { vector<ScTokenRef>::const_iterator itr = rTokens.begin(), itrEnd = rTokens.end(); diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index 8196b8a605f8..83be7999715f 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -1823,7 +1823,6 @@ namespace { void GetExternalTableData(const ScDocument* pOldDoc, const ScDocument* pNewDoc, const SCTAB nTab, rtl::OUString& rTabName, sal_uInt16& rFileId) { rtl::OUString aFileName = pOldDoc->GetFileURL();; - std::cout << aFileName << std::endl; rFileId = pNewDoc->GetExternalRefManager()->getExternalFileId(aFileName); rTabName = pOldDoc->GetCopyTabName(nTab); if (rTabName.isEmpty()) @@ -1839,7 +1838,9 @@ bool IsInCopyRange( const ScRange& rRange, const ScDocument* pClipDoc ) bool SkipReference(ScToken* pToken, const ScAddress& rPos, const ScDocument* pOldDoc, bool bRangeName) { ScRange aRange; - if (!ScRefTokenHelper::getAbsRangeFromToken(aRange, pToken, rPos)) + + pToken->CalcAbsIfRel(rPos); + if (!ScRefTokenHelper::getRangeFromToken(aRange, pToken)) return true; if (bRangeName && aRange.aStart.Tab() == rPos.Tab()) |