summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-01-05 18:35:05 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-01-05 18:40:20 +0100
commit5b8deb57c6782b77fcf180ef6097f71b6e1b07d2 (patch)
tree42888b8f0d70e50d66c4137dceb092236f66d869 /sc
parentac7f046d27b4e47361f44efe252fca867a0a1d02 (diff)
simplify code a bit
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/reftokenhelper.hxx1
-rw-r--r--sc/source/core/tool/reftokenhelper.cxx54
-rw-r--r--sc/source/core/tool/token.cxx5
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())