sc/inc/formulalogger.hxx | 19 +++++++++++++------ sc/source/core/data/grouptokenconverter.cxx | 6 +++--- sc/source/core/tool/formulalogger.cxx | 27 +++++++++++++++++++-------- 3 files changed, 35 insertions(+), 17 deletions(-)
New commits: commit da534e882225b0533471ffd9c4f7031122378969 Author: Kohei Yoshida <[email protected]> Date: Sat Nov 5 10:23:52 2016 -0400 Pass the current cell position to conditionally display sheet name. Change-Id: I28dba90500af7c11db569fded28ce571a1ec9089 diff --git a/sc/inc/formulalogger.hxx b/sc/inc/formulalogger.hxx index 1df49cc..5d5502f 100644 --- a/sc/inc/formulalogger.hxx +++ b/sc/inc/formulalogger.hxx @@ -85,19 +85,24 @@ public: * Add to the log a vector reference information for a single * reference. */ - void addRefMessage( const ScAddress& rPos, size_t nLen, const formula::VectorRefArray& rArray ); + void addRefMessage( + const ScAddress& rCellPos, const ScAddress& rRefPos, size_t nLen, + const formula::VectorRefArray& rArray ); /** * Add to the log a vector reference information for a range * reference. */ void addRefMessage( - const ScAddress& rPos, size_t nLen, const std::vector<formula::VectorRefArray>& rArrays ); + const ScAddress& rCellPos, const ScAddress& rRefPos, size_t nLen, + const std::vector<formula::VectorRefArray>& rArrays ); /** * Add to the log a single cell reference information. */ - void addRefMessage( const ScAddress& rPos, const formula::FormulaToken& rToken ); + void addRefMessage( + const ScAddress& rCellPos, const ScAddress& rRefPos, + const formula::FormulaToken& rToken ); /** * Call this when the group calculation has finished successfullly. @@ -134,20 +139,22 @@ public: void addMessage( const OUString& /*rMsg*/ ) { (void) this; /* loplugin:staticmethods */ } void addRefMessage( - const ScAddress& /*rPos*/, size_t /*nLen*/, + const ScAddress& /*rCellPos*/, const ScAddress& /*rRefPos*/, size_t /*nLen*/, const formula::VectorRefArray& /*rArray*/ ) { (void) this; /* loplugin:staticmethods */ } void addRefMessage( - const ScAddress& /*rPos*/, size_t /*nLen*/, + const ScAddress& /*rCellPos*/, const ScAddress& /*rRefPos*/, size_t /*nLen*/, const std::vector<formula::VectorRefArray>& /*rArrays*/ ) { (void) this; /* loplugin:staticmethods */ } - void addRefMessage( const ScAddress& /*rPos*/, const formula::FormulaToken& /*rToken*/ ) + void addRefMessage( + const ScAddress& /*rCellPos*/, const ScAddress& /*rRefPos*/, + const formula::FormulaToken& /*rToken*/ ) { (void) this; /* loplugin:staticmethods */ } diff --git a/sc/source/core/data/grouptokenconverter.cxx b/sc/source/core/data/grouptokenconverter.cxx index e4eecfb..977dc4f 100644 --- a/sc/source/core/data/grouptokenconverter.cxx +++ b/sc/source/core/data/grouptokenconverter.cxx @@ -138,7 +138,7 @@ bool ScGroupTokenConverter::convert( ScTokenArray& rCode, sc::FormulaLogger::Gro formula::SingleVectorRefToken aTok(aArray, nLen, nTrimLen); mrGroupTokens.AddToken(aTok); - rScope.addRefMessage(aRefPos, nLen, aArray); + rScope.addRefMessage(mrPos, aRefPos, nLen, aArray); if (nTrimLen && !mxFormulaGroupContext) { @@ -160,7 +160,7 @@ bool ScGroupTokenConverter::convert( ScTokenArray& rCode, sc::FormulaLogger::Gro return false; mrGroupTokens.AddToken(*pNewToken); - rScope.addRefMessage(aRefPos, *pNewToken); + rScope.addRefMessage(mrPos, aRefPos, *pNewToken); } } break; @@ -224,7 +224,7 @@ bool ScGroupTokenConverter::convert( ScTokenArray& rCode, sc::FormulaLogger::Gro formula::DoubleVectorRefToken aTok(aArrays, nRequestedLength, nArrayLength, nRefRowSize, bAbsFirst, bAbsLast); mrGroupTokens.AddToken(aTok); - rScope.addRefMessage(aRefPos, nRequestedLength, aArrays); + rScope.addRefMessage(mrPos, aRefPos, nRequestedLength, aArrays); if (nArrayLength && !aArrays.empty() && !mxFormulaGroupContext) { diff --git a/sc/source/core/tool/formulalogger.cxx b/sc/source/core/tool/formulalogger.cxx index a5337bf..a9480aa 100644 --- a/sc/source/core/tool/formulalogger.cxx +++ b/sc/source/core/tool/formulalogger.cxx @@ -40,6 +40,14 @@ std::unique_ptr<osl::File> initFile() return o3tl::make_unique<osl::File>(aPath); } +ScRefFlags getRefFlags( const ScAddress& rCellPos, const ScAddress& rRefPos ) +{ + ScRefFlags eFlags = ScRefFlags::VALID; + if (rCellPos.Tab() != rRefPos.Tab()) + eFlags |= ScRefFlags::TAB_3D; + return eFlags; +} + } FormulaLogger& FormulaLogger::get() @@ -117,13 +125,14 @@ void FormulaLogger::GroupScope::addMessage( const OUString& rMsg ) } void FormulaLogger::GroupScope::addRefMessage( - const ScAddress& rPos, size_t nLen, const formula::VectorRefArray& rArray ) + const ScAddress& rCellPos, const ScAddress& rRefPos, size_t nLen, + const formula::VectorRefArray& rArray ) { OUStringBuffer aBuf; - ScRange aRefRange(rPos); + ScRange aRefRange(rRefPos); aRefRange.aEnd.IncRow(nLen-1); - OUString aRangeStr = aRefRange.Format(ScRefFlags::VALID, &mpImpl->mrDoc); + OUString aRangeStr = aRefRange.Format(getRefFlags(rCellPos, rRefPos), &mpImpl->mrDoc); aBuf.append(aRangeStr); aBuf.appendAscii(": "); @@ -158,21 +167,23 @@ void FormulaLogger::GroupScope::addRefMessage( } void FormulaLogger::GroupScope::addRefMessage( - const ScAddress& rPos, size_t nLen, const std::vector<formula::VectorRefArray>& rArrays ) + const ScAddress& rCellPos, const ScAddress& rRefPos, size_t nLen, + const std::vector<formula::VectorRefArray>& rArrays ) { - ScAddress aPos(rPos); // copy + ScAddress aPos(rRefPos); // copy for (const formula::VectorRefArray& rArray : rArrays) { - addRefMessage(aPos, nLen, rArray); + addRefMessage(rCellPos, aPos, nLen, rArray); aPos.IncCol(); } } void FormulaLogger::GroupScope::addRefMessage( - const ScAddress& rPos, const formula::FormulaToken& rToken ) + const ScAddress& rCellPos, const ScAddress& rRefPos, + const formula::FormulaToken& rToken ) { OUStringBuffer aBuf; - OUString aPosStr = rPos.Format(ScRefFlags::VALID, &mpImpl->mrDoc); + OUString aPosStr = rRefPos.Format(getRefFlags(rCellPos, rRefPos), &mpImpl->mrDoc); aBuf.append(aPosStr); aBuf.appendAscii(": "); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
