summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2018-01-29 18:19:33 +0100
committerAndras Timar <andras.timar@collabora.com>2018-02-09 10:05:26 +0100
commit4e014900dac59685d47adfb732c58575770ddc83 (patch)
treea4cc55fc364dcdd450d24cda978d2865cb6947b8
parent68a7e83f0e8dc34cf2b1eeba58a2cd8d3fe7b77d (diff)
CheckLinkFormulaNeedingCheck() for named expressionscp-5.1-26
This is a combination of 3 commits. CheckLinkFormulaNeedingCheck() for .ods named expressions This is specifically necessary for named expressions that are used in conditional format formulas, for which RPN is generated at a later stage, not during import. (cherry picked from commit eae9648e99be53ba441d9d8207aac6f3ce211ef2) CheckLinkFormulaNeedingCheck() for .xls named expressions (cherry picked from commit 8512f13c42ae3fbb287a555616fe10ff04295616) CheckLinkFormulaNeedingCheck() for .xlsx named expressions (cherry picked from commit a1f933ee2b9e23a505d937035821e9571cf4119c) Conflicts: sc/source/filter/oox/defnamesbuffer.cxx e03cb5767c34f8157a492a6d6c3b0700d065052d 217c89822ab477a6c383d170ae739e44efd10fa3 Change-Id: I54ab8dc14f81d6b18b0d17f448187d19d8e396fc Reviewed-on: https://gerrit.libreoffice.org/48858 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sc/source/core/tool/rangenam.cxx8
-rw-r--r--sc/source/filter/excel/xiname.cxx3
-rw-r--r--sc/source/filter/oox/defnamesbuffer.cxx2
3 files changed, 12 insertions, 1 deletions
diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx
index 0377890b2326..463f5b731d23 100644
--- a/sc/source/core/tool/rangenam.cxx
+++ b/sc/source/core/tool/rangenam.cxx
@@ -64,9 +64,14 @@ ScRangeData::ScRangeData( ScDocument* pDok,
mnMaxCol (-1)
{
if (!rSymbol.isEmpty())
- CompileRangeData( rSymbol, pDoc->IsImportingXML());
+ {
// Let the compiler set an error on unknown names for a subsequent
// CompileUnresolvedXML().
+ const bool bImporting = pDoc->IsImportingXML();
+ CompileRangeData( rSymbol, bImporting);
+ if (bImporting)
+ pDoc->CheckLinkFormulaNeedingCheck( *pCode);
+ }
else
{
// #i63513#/#i65690# don't leave pCode as NULL.
@@ -199,6 +204,7 @@ void ScRangeData::CompileUnresolvedXML( sc::CompileFormulaContext& rCxt )
// Don't let the compiler set an error for unknown names on final
// compile, errors are handled by the interpreter thereafter.
CompileRangeData( aSymbol, false);
+ rCxt.getDoc()->CheckLinkFormulaNeedingCheck( *pCode);
}
}
diff --git a/sc/source/filter/excel/xiname.cxx b/sc/source/filter/excel/xiname.cxx
index d09661503c6b..8decfc00e8e0 100644
--- a/sc/source/filter/excel/xiname.cxx
+++ b/sc/source/filter/excel/xiname.cxx
@@ -265,7 +265,10 @@ void XclImpName::InsertName(const ScTokenArray* pArray)
}
}
if (pData)
+ {
+ GetDoc().CheckLinkFormulaNeedingCheck( *pData->GetCode());
mpScData = pData; // cache for later use
+ }
}
XclImpNameManager::XclImpNameManager( const XclImpRoot& rRoot ) :
diff --git a/sc/source/filter/oox/defnamesbuffer.cxx b/sc/source/filter/oox/defnamesbuffer.cxx
index b6c564d303dd..32c957efa4ba 100644
--- a/sc/source/filter/oox/defnamesbuffer.cxx
+++ b/sc/source/filter/oox/defnamesbuffer.cxx
@@ -38,6 +38,7 @@
#include "tokenarray.hxx"
#include "tokenuno.hxx"
#include "compiler.hxx"
+#include "document.hxx"
namespace oox {
namespace xls {
@@ -338,6 +339,7 @@ std::unique_ptr<ScTokenArray> DefinedName::getScTokens(
// after, a resulting error must be reset.
sal_uInt16 nErr = pArray->GetCodeError();
aCompiler.CompileTokenArray();
+ getScDocument().CheckLinkFormulaNeedingCheck( *pArray);
pArray->DelRPN();
pArray->SetCodeError(nErr);