return by ref from ScDocument::GetRangeName
to make it obvious that it never returns nullptr Change-Id: I8218f921583c49fcbd57a1693716317423a9febe Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/941 Tested-by: Jenkins CPCI <releng@collaboraoffice.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 8a63916739a316a9432b47862d2212c1e689f9cf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209451 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
This commit is contained in:
committed by
Xisco Fauli
parent
c4b307b8d2
commit
37d0bc1d77
+1
-1
@@ -783,7 +783,7 @@ public:
|
||||
SC_DLLPUBLIC void SetAllRangeNames(const std::map<OUString, ScRangeName>& rRangeMap);
|
||||
SC_DLLPUBLIC void GetRangeNameMap(std::map<OUString, ScRangeName*>& rRangeName);
|
||||
SC_DLLPUBLIC ScRangeName* GetRangeName(SCTAB nTab) const;
|
||||
SC_DLLPUBLIC ScRangeName* GetRangeName() const;
|
||||
SC_DLLPUBLIC ScRangeName& GetRangeName() const;
|
||||
void SetRangeName(SCTAB nTab, std::unique_ptr<ScRangeName> pNew);
|
||||
void SetRangeName( std::unique_ptr<ScRangeName> pNewRangeName );
|
||||
bool IsAddressInRangeName( RangeNameScope eScope, const ScAddress& rAddress);
|
||||
|
||||
+1
-1
@@ -256,7 +256,7 @@ public:
|
||||
class SC_DLLPUBLIC ScAreaNameIterator
|
||||
{
|
||||
private:
|
||||
ScRangeName* pRangeName;
|
||||
ScRangeName& rRangeName;
|
||||
ScDBCollection* pDBCollection;
|
||||
ScRangeName::const_iterator maRNPos;
|
||||
ScRangeName::const_iterator maRNEnd;
|
||||
|
||||
@@ -935,7 +935,7 @@ bool ScUcalcTestBase::insertRangeNames(
|
||||
|
||||
OUString ScUcalcTestBase::getRangeByName(const ScDocument* pDoc, const OUString& aRangeName)
|
||||
{
|
||||
ScRangeData* pName = pDoc->GetRangeName()->findByUpperName(aRangeName.toAsciiUpperCase());
|
||||
ScRangeData* pName = pDoc->GetRangeName().findByUpperName(aRangeName.toAsciiUpperCase());
|
||||
CPPUNIT_ASSERT(pName);
|
||||
return pName->GetSymbol(pDoc->GetGrammar());
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ void ScJumboSheetsTest::testRoundtripNamedRanges(const char* name, TestFilter eF
|
||||
ScDocument* pDoc = getScDoc();
|
||||
for (const auto& range : ranges)
|
||||
{
|
||||
ScRangeData* rangeData = pDoc->GetRangeName()->findByUpperName(range.first);
|
||||
ScRangeData* rangeData = pDoc->GetRangeName().findByUpperName(range.first);
|
||||
CPPUNIT_ASSERT(rangeData);
|
||||
CPPUNIT_ASSERT_EQUAL(range.second, rangeData->GetSymbol());
|
||||
}
|
||||
@@ -176,7 +176,7 @@ void ScJumboSheetsTest::testRoundtripNamedRanges(const char* name, TestFilter eF
|
||||
ScDocument* pDoc = getScDoc();
|
||||
for (const auto& range : ranges)
|
||||
{
|
||||
ScRangeData* rangeData = pDoc->GetRangeName()->findByUpperName(range.first);
|
||||
ScRangeData* rangeData = pDoc->GetRangeName().findByUpperName(range.first);
|
||||
CPPUNIT_ASSERT(rangeData);
|
||||
CPPUNIT_ASSERT_EQUAL(range.second, rangeData->GetSymbol());
|
||||
}
|
||||
|
||||
@@ -1247,7 +1247,7 @@ CPPUNIT_TEST_FIXTURE(ScExportTest, testNamedRangeBugfdo62729)
|
||||
createScDoc("ods/fdo62729.ods");
|
||||
ScDocument* pDoc = getScDoc();
|
||||
|
||||
ScRangeName* pNames = pDoc->GetRangeName();
|
||||
ScRangeName* pNames = &pDoc->GetRangeName();
|
||||
//should be just a single named range
|
||||
CPPUNIT_ASSERT_EQUAL(size_t(1), pNames->size());
|
||||
pDoc->DeleteTab(0);
|
||||
@@ -1257,7 +1257,7 @@ CPPUNIT_TEST_FIXTURE(ScExportTest, testNamedRangeBugfdo62729)
|
||||
|
||||
pDoc = getScDoc();
|
||||
|
||||
pNames = pDoc->GetRangeName();
|
||||
pNames = &pDoc->GetRangeName();
|
||||
//after reload should still have a named range
|
||||
CPPUNIT_ASSERT_EQUAL(size_t(1), pNames->size());
|
||||
#endif
|
||||
|
||||
@@ -1350,7 +1350,7 @@ CPPUNIT_TEST_FIXTURE(ScExportTest3, testAbsNamedRangeHTML)
|
||||
pDocSh->DoHardRecalc();
|
||||
|
||||
ScDocument* pDoc = getScDoc();
|
||||
ScRangeData* pRangeData = pDoc->GetRangeName()->findByUpperName(u"HTML_1"_ustr);
|
||||
ScRangeData* pRangeData = pDoc->GetRangeName().findByUpperName(u"HTML_1"_ustr);
|
||||
ScSingleRefData& rRef
|
||||
= static_cast<ScDoubleRefToken*>(pRangeData->GetCode()->FirstToken())->GetSingleRef();
|
||||
// see tdf#119141 for the reason why this isn't Sheet1.HTML_1
|
||||
|
||||
@@ -979,7 +979,7 @@ CPPUNIT_TEST_FIXTURE(ScExportTest5, testTdf157318)
|
||||
|
||||
// Check if there is one global named range
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1),
|
||||
static_cast<sal_uInt16>(pDoc->GetRangeName()->size()));
|
||||
static_cast<sal_uInt16>(pDoc->GetRangeName().size()));
|
||||
|
||||
// Check if there is one named range in the first sheet
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1),
|
||||
|
||||
@@ -49,7 +49,7 @@ void testRangeNameImpl(const ScDocument& rDoc)
|
||||
{
|
||||
//check one range data per sheet and one global more detailed
|
||||
//add some more checks here
|
||||
ScRangeData* pRangeData = rDoc.GetRangeName()->findByUpperName(u"GLOBAL1"_ustr);
|
||||
ScRangeData* pRangeData = rDoc.GetRangeName().findByUpperName(u"GLOBAL1"_ustr);
|
||||
CPPUNIT_ASSERT_MESSAGE("range name Global1 not found", pRangeData);
|
||||
double aValue = rDoc.GetValue(1, 0, 0);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("range name Global1 should reference Sheet1.A1", 1.0, aValue);
|
||||
@@ -528,12 +528,12 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest, testHiddenRangeNameODS)
|
||||
ScDocument* pDoc = getScDoc();
|
||||
|
||||
// This named range is set to "hidden"
|
||||
ScRangeData* pRangeData1 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
ScRangeData* pRangeData1 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData1);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(sheet::NamedRangeFlag::HIDDEN),
|
||||
pRangeData1->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
// This named range is visible
|
||||
ScRangeData* pRangeData2 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
ScRangeData* pRangeData2 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData2);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(0),
|
||||
pRangeData2->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
@@ -546,11 +546,11 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest, testHiddenRangeNameODS)
|
||||
// Check if both named ranges are hidden after saving and reloading
|
||||
saveAndReload(TestFilter::ODS);
|
||||
pDoc = getScDoc();
|
||||
pRangeData1 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
pRangeData1 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData1);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(sheet::NamedRangeFlag::HIDDEN),
|
||||
pRangeData1->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
pRangeData2 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
pRangeData2 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData2);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(sheet::NamedRangeFlag::HIDDEN),
|
||||
pRangeData2->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
@@ -562,12 +562,12 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest, testHiddenRangeNameXLSX)
|
||||
ScDocument* pDoc = getScDoc();
|
||||
|
||||
// This named range is set to "hidden"
|
||||
ScRangeData* pRangeData1 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
ScRangeData* pRangeData1 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData1);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(sheet::NamedRangeFlag::HIDDEN),
|
||||
pRangeData1->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
// This named range is visible
|
||||
ScRangeData* pRangeData2 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
ScRangeData* pRangeData2 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData2);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(0),
|
||||
pRangeData2->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
@@ -575,11 +575,11 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest, testHiddenRangeNameXLSX)
|
||||
// Save as ODS and test if the named ranges are still with the correct hidden flag
|
||||
saveAndReload(TestFilter::ODS);
|
||||
pDoc = getScDoc();
|
||||
pRangeData1 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
pRangeData1 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE1"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData1);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(sheet::NamedRangeFlag::HIDDEN),
|
||||
pRangeData1->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
pRangeData2 = pDoc->GetRangeName()->findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
pRangeData2 = pDoc->GetRangeName().findByUpperName(u"NAMEDRANGE2"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData2);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(0),
|
||||
pRangeData2->GetUnoType() & sheet::NamedRangeFlag::HIDDEN);
|
||||
@@ -591,7 +591,7 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest, testHiddenNamedExpression)
|
||||
ScDocument* pDoc = getScDoc();
|
||||
|
||||
// Adds two hidden named expressions and two non-hidden named expressions
|
||||
ScRangeName* pNamedRanges = pDoc->GetRangeName();
|
||||
ScRangeName* pNamedRanges = &pDoc->GetRangeName();
|
||||
ScRangeData* pRangeData1 = new ScRangeData(*pDoc, u"NAME1"_ustr, u"100"_ustr);
|
||||
pRangeData1->AddType(ScRangeData::Type::Hidden);
|
||||
pNamedRanges->insert(pRangeData1);
|
||||
@@ -607,7 +607,7 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest, testHiddenNamedExpression)
|
||||
// Save and reload to test whether the named expressions retain the hidden where applicable
|
||||
saveAndReload(TestFilter::ODS);
|
||||
pDoc = getScDoc();
|
||||
pNamedRanges = pDoc->GetRangeName();
|
||||
pNamedRanges = &pDoc->GetRangeName();
|
||||
CPPUNIT_ASSERT_EQUAL(size_t(4), pNamedRanges->size());
|
||||
pRangeData1 = pNamedRanges->findByUpperName(u"NAME1"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData1);
|
||||
@@ -633,12 +633,12 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest, testHiddenNamedExpressionODS)
|
||||
ScDocument* pDoc = getScDoc();
|
||||
|
||||
// The document has 2 named expressions; the first is hidden; the second is visible
|
||||
ScRangeName* pNamedRanges = pDoc->GetRangeName();
|
||||
ScRangeData* pRangeData1 = pNamedRanges->findByUpperName(u"NAME1"_ustr);
|
||||
ScRangeName& rNamedRanges = pDoc->GetRangeName();
|
||||
ScRangeData* pRangeData1 = rNamedRanges.findByUpperName(u"NAME1"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData1);
|
||||
CPPUNIT_ASSERT_EQUAL(ScRangeData::Type::Hidden, pRangeData1->GetType());
|
||||
CPPUNIT_ASSERT_EQUAL(u"100"_ustr, pRangeData1->GetSymbol());
|
||||
ScRangeData* pRangeData2 = pNamedRanges->findByUpperName(u"NAME2"_ustr);
|
||||
ScRangeData* pRangeData2 = rNamedRanges.findByUpperName(u"NAME2"_ustr);
|
||||
CPPUNIT_ASSERT(pRangeData2);
|
||||
CPPUNIT_ASSERT_EQUAL(ScRangeData::Type::Name, pRangeData2->GetType());
|
||||
CPPUNIT_ASSERT_EQUAL(u"200"_ustr, pRangeData2->GetSymbol());
|
||||
|
||||
@@ -1507,9 +1507,9 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest2, testNamedExpressionsXLSXML_Global)
|
||||
CPPUNIT_ASSERT_EQUAL(u"=SUM(MyRange2)"_ustr,
|
||||
pDoc->GetFormula(aPos.Col(), aPos.Row(), aPos.Tab()));
|
||||
|
||||
const ScRangeData* pRD = pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
const ScRangeData* pRD = pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pRD);
|
||||
pRD = pDoc->GetRangeName()->findByUpperName(u"MYRANGE2"_ustr);
|
||||
pRD = pDoc->GetRangeName().findByUpperName(u"MYRANGE2"_ustr);
|
||||
CPPUNIT_ASSERT(pRD);
|
||||
}
|
||||
|
||||
|
||||
@@ -399,8 +399,8 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest5, testTdf94627)
|
||||
|
||||
ScDocument* pDoc = getScDoc();
|
||||
|
||||
ScRangeName* pRangeName = pDoc->GetRangeName();
|
||||
ScRangeData* pRangeData = pRangeName->findByUpperName("NAME1");
|
||||
ScRangeName& rRangeName = pDoc->GetRangeName();
|
||||
ScRangeData* pRangeData = rRangeName.findByUpperName("NAME1");
|
||||
CPPUNIT_ASSERT(pRangeData);
|
||||
|
||||
OUString aFormula = pRangeData->GetSymbol();
|
||||
|
||||
@@ -3173,9 +3173,9 @@ CPPUNIT_TEST_FIXTURE(SyncTest, testSync_InsertNameList_DefaultAndSheetView)
|
||||
int nView3ID = aView3.getViewID();
|
||||
|
||||
// Add a named range so InsertNameList has something to insert
|
||||
ScRangeName* pGlobalNames = pDocument->GetRangeName();
|
||||
ScRangeName& rGlobalNames = pDocument->GetRangeName();
|
||||
ScRangeData* pRangeData = new ScRangeData(*pDocument, u"TestRange"_ustr, u"$A$10:$B$20"_ustr);
|
||||
pGlobalNames->insert(pRangeData);
|
||||
rGlobalNames.insert(pRangeData);
|
||||
|
||||
// Create sheet view 1
|
||||
{
|
||||
|
||||
@@ -1971,13 +1971,12 @@ CPPUNIT_TEST_FIXTURE(Test, testNamedRange)
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to insert range names.", bSuccess);
|
||||
m_pDoc->SetRangeName(std::move(pNames));
|
||||
|
||||
ScRangeName* pNewRanges = m_pDoc->GetRangeName();
|
||||
CPPUNIT_ASSERT(pNewRanges);
|
||||
ScRangeName& rNewRanges = m_pDoc->GetRangeName();
|
||||
|
||||
// Make sure the index lookup does the right thing.
|
||||
for (const auto& rName : aNames)
|
||||
{
|
||||
const ScRangeData* p = pNewRanges->findByIndex(rName.mnIndex);
|
||||
const ScRangeData* p = rNewRanges.findByIndex(rName.mnIndex);
|
||||
CPPUNIT_ASSERT_MESSAGE("lookup of range name by index failed.", p);
|
||||
OUString aName = p->GetName();
|
||||
CPPUNIT_ASSERT_MESSAGE("wrong range name is retrieved.", aName.equalsAscii(rName.mpName));
|
||||
@@ -1991,12 +1990,12 @@ CPPUNIT_TEST_FIXTURE(Test, testNamedRange)
|
||||
ASSERT_DOUBLES_EQUAL_MESSAGE ("calculation failed", 1.0, result);
|
||||
|
||||
// Test copy-ability of range names.
|
||||
std::unique_ptr<ScRangeName> pCopiedRanges(new ScRangeName(*pNewRanges));
|
||||
std::unique_ptr<ScRangeName> pCopiedRanges(new ScRangeName(rNewRanges));
|
||||
m_pDoc->SetRangeName(std::move(pCopiedRanges));
|
||||
// Make sure the index lookup still works.
|
||||
for (const auto& rName : aNames)
|
||||
{
|
||||
const ScRangeData* p = m_pDoc->GetRangeName()->findByIndex(rName.mnIndex);
|
||||
const ScRangeData* p = m_pDoc->GetRangeName().findByIndex(rName.mnIndex);
|
||||
CPPUNIT_ASSERT_MESSAGE("lookup of range name by index failed with the copied instance.", p);
|
||||
OUString aName = p->GetName();
|
||||
CPPUNIT_ASSERT_MESSAGE("wrong range name is retrieved with the copied instance.", aName.equalsAscii(rName.mpName));
|
||||
|
||||
@@ -402,7 +402,7 @@ CPPUNIT_TEST_FIXTURE(TestCopyPaste, testCopyPaste)
|
||||
m_pDoc->CopyFromClip(aRange, aMark, InsertDeleteFlags::ALL, nullptr, &aClipDoc2);
|
||||
|
||||
// The global2 range must not have changed.
|
||||
pGlobal2 = m_pDoc->GetRangeName()->findByUpperName(u"GLOBAL2"_ustr);
|
||||
pGlobal2 = m_pDoc->GetRangeName().findByUpperName(u"GLOBAL2"_ustr);
|
||||
CPPUNIT_ASSERT_MESSAGE("GLOBAL2 name not found", pGlobal2);
|
||||
OUString aSymbol = pGlobal2->GetSymbol();
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("GLOBAL2 named range changed", aGlobal2Symbol, aSymbol);
|
||||
|
||||
@@ -112,9 +112,8 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaCreateStringFromTokens)
|
||||
{ false, "sheetx", "Test.J1" }
|
||||
};
|
||||
|
||||
ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
|
||||
ScRangeName& rGlobalNames = m_pDoc->GetRangeName();
|
||||
ScRangeName* pSheetNames = m_pDoc->GetRangeName(0);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to obtain global named expression object.", pGlobalNames);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to obtain sheet-local named expression object.", pSheetNames);
|
||||
|
||||
for (size_t i = 0; i < SAL_N_ELEMENTS(aNames); ++i)
|
||||
@@ -125,7 +124,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaCreateStringFromTokens)
|
||||
|
||||
if (aNames[i].bGlobal)
|
||||
{
|
||||
bool bInserted = pGlobalNames->insert(pName);
|
||||
bool bInserted = rGlobalNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to insert a new name.", bInserted);
|
||||
}
|
||||
else
|
||||
@@ -2473,7 +2472,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateInsertColumns)
|
||||
CPPUNIT_ASSERT_EQUAL(6.0, m_pDoc->GetValue(ScAddress(3,3,0)));
|
||||
|
||||
// Check that the named reference points to the moved cell, now D2.
|
||||
ScRangeData* pName = m_pDoc->GetRangeName()->findByUpperName(u"ROWRELATIVERANGE"_ustr);
|
||||
ScRangeData* pName = m_pDoc->GetRangeName().findByUpperName(u"ROWRELATIVERANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
OUString aSymbol = pName->GetSymbol(aNamePos, formula::FormulaGrammar::GRAM_ENGLISH);
|
||||
CPPUNIT_ASSERT_EQUAL(u"$Formula.$D2"_ustr, aSymbol);
|
||||
@@ -2484,7 +2483,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateInsertColumns)
|
||||
CPPUNIT_ASSERT_EQUAL(2.0, m_pDoc->GetValue(ScAddress(4,1,0)));
|
||||
|
||||
// Check that the named column reference points to the moved column, now D.
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"ENTIRECOLUMN"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"ENTIRECOLUMN"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
aSymbol = pName->GetSymbol(aNamePos, formula::FormulaGrammar::GRAM_ENGLISH);
|
||||
CPPUNIT_ASSERT_EQUAL(u"$D:$D"_ustr, aSymbol);
|
||||
@@ -2496,7 +2495,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateInsertColumns)
|
||||
|
||||
// Check that the named row reference still points to the same entire row
|
||||
// and does not have a #REF! error due to inserted columns.
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"ENTIREROW"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"ENTIREROW"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
aSymbol = pName->GetSymbol(aNamePos, formula::FormulaGrammar::GRAM_ENGLISH);
|
||||
CPPUNIT_ASSERT_EQUAL(u"$2:$2"_ustr, aSymbol);
|
||||
@@ -3372,13 +3371,12 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateName)
|
||||
m_pDoc->SetValue(ScAddress(2,4,0), 4);
|
||||
|
||||
// Add a named expression that references the immediate left cell.
|
||||
ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to obtain global named expression object.", pGlobalNames);
|
||||
ScRangeName& rGlobalNames = m_pDoc->GetRangeName();
|
||||
ScRangeData* pName = new ScRangeData(
|
||||
*m_pDoc, u"ToLeft"_ustr, u"RC[-1]"_ustr, ScAddress(2,1,0),
|
||||
ScRangeData::Type::Name, formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1);
|
||||
|
||||
bool bInserted = pGlobalNames->insert(pName);
|
||||
bool bInserted = rGlobalNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to insert a new name.", bInserted);
|
||||
|
||||
// Insert formulas in D2:D5 using the named expression.
|
||||
@@ -3419,7 +3417,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateName)
|
||||
// Insert a new named expression that references these values as absolute range.
|
||||
pName = new ScRangeData(
|
||||
*m_pDoc, u"MyRange"_ustr, u"$B$10:$B$12"_ustr, ScAddress(0,0,0), ScRangeData::Type::Name, formula::FormulaGrammar::GRAM_NATIVE);
|
||||
bInserted = pGlobalNames->insert(pName);
|
||||
bInserted = rGlobalNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to insert a new name.", bInserted);
|
||||
|
||||
// Set formula at C8 that references this named expression.
|
||||
@@ -3430,7 +3428,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateName)
|
||||
m_pDoc->InsertCol(ScRange(1,9,0,2,11,0));
|
||||
|
||||
// This should shift the absolute range B10:B12 that MyRange references.
|
||||
pName = pGlobalNames->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = rGlobalNames.findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to find named expression 'MyRange' in the global scope.", pName);
|
||||
OUString aExpr = pName->GetSymbol();
|
||||
CPPUNIT_ASSERT_EQUAL(u"$D$10:$D$12"_ustr, aExpr);
|
||||
@@ -3450,7 +3448,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateName)
|
||||
m_pDoc->GetName(1, aName);
|
||||
CPPUNIT_ASSERT_EQUAL(u"Formula"_ustr, aName);
|
||||
|
||||
pName = pGlobalNames->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = rGlobalNames.findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to find named expression 'MyRange' in the global scope.", pName);
|
||||
|
||||
m_pDoc->SetValue(ScAddress(3,9,1), 10);
|
||||
@@ -3463,7 +3461,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateName)
|
||||
m_pDoc->GetName(0, aName);
|
||||
CPPUNIT_ASSERT_EQUAL(u"Formula"_ustr, aName);
|
||||
|
||||
pName = pGlobalNames->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = rGlobalNames.findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to find named expression 'MyRange' in the global scope.", pName);
|
||||
|
||||
m_pDoc->SetValue(ScAddress(3,9,0), 11);
|
||||
@@ -3471,11 +3469,11 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateName)
|
||||
|
||||
// Clear all and start over.
|
||||
clearRange(m_pDoc, ScRange(0,0,0,100,100,0));
|
||||
pGlobalNames->clear();
|
||||
rGlobalNames.clear();
|
||||
|
||||
pName = new ScRangeData(
|
||||
*m_pDoc, u"MyRange"_ustr, u"$B$1:$C$6"_ustr, ScAddress(0,0,0), ScRangeData::Type::Name, formula::FormulaGrammar::GRAM_NATIVE);
|
||||
bInserted = pGlobalNames->insert(pName);
|
||||
bInserted = rGlobalNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to insert a new name.", bInserted);
|
||||
aExpr = pName->GetSymbol();
|
||||
CPPUNIT_ASSERT_EQUAL(u"$B$1:$C$6"_ustr, aExpr);
|
||||
@@ -3509,7 +3507,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameMove)
|
||||
m_pDoc->SetString(ScAddress(0,9,0), u"=SUM(MyRange)"_ustr);
|
||||
CPPUNIT_ASSERT_EQUAL(6.0, m_pDoc->GetValue(ScAddress(0,9,0)));
|
||||
|
||||
ScRangeData* pData = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
ScRangeData* pData = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pData);
|
||||
OUString aSymbol = pData->GetSymbol(m_pDoc->GetGrammar());
|
||||
CPPUNIT_ASSERT_EQUAL(u"$Test.$B$2:$B$4"_ustr, aSymbol);
|
||||
@@ -3532,7 +3530,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameMove)
|
||||
// Undo and check.
|
||||
pUndoMgr->Undo();
|
||||
|
||||
pData = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pData = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pData);
|
||||
aSymbol = pData->GetSymbol(m_pDoc->GetGrammar());
|
||||
CPPUNIT_ASSERT_EQUAL(u"$Test.$B$2:$B$4"_ustr, aSymbol);
|
||||
@@ -3541,7 +3539,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameMove)
|
||||
// Redo and check.
|
||||
pUndoMgr->Redo();
|
||||
|
||||
pData = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pData = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pData);
|
||||
aSymbol = pData->GetSymbol(m_pDoc->GetGrammar());
|
||||
CPPUNIT_ASSERT_EQUAL(u"$Test.$D$3:$D$5"_ustr, aSymbol);
|
||||
@@ -3568,7 +3566,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameMove)
|
||||
|
||||
// Clear and start over.
|
||||
clearSheet(m_pDoc, 0);
|
||||
m_pDoc->GetRangeName()->clear();
|
||||
m_pDoc->GetRangeName().clear();
|
||||
|
||||
// Set value to B2.
|
||||
m_pDoc->SetValue(ScAddress(1,1,0), 2.0);
|
||||
@@ -3615,7 +3613,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameExpandRef)
|
||||
ScMarkData aMark(m_pDoc->GetSheetLimits());
|
||||
aMark.SelectOneTable(0);
|
||||
rFunc.InsertCells(ScRange(0,3,0,m_pDoc->MaxCol(),3,0), &aMark, INS_INSROWS_BEFORE, false, true);
|
||||
ScRangeData* pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
ScRangeData* pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
OUString aSymbol = pName->GetSymbol(m_pDoc->GetGrammar());
|
||||
CPPUNIT_ASSERT_EQUAL(u"$A$1:$A$4"_ustr, aSymbol);
|
||||
@@ -3628,7 +3626,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameExpandRef)
|
||||
// Insert a new column at column 2, which should not expand the named
|
||||
// range as it is only one column wide.
|
||||
rFunc.InsertCells(ScRange(1,0,0,1,m_pDoc->MaxRow(),0), &aMark, INS_INSCOLS_BEFORE, false, true);
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
aSymbol = pName->GetSymbol(m_pDoc->GetGrammar());
|
||||
CPPUNIT_ASSERT_EQUAL(u"$A$1:$A$4"_ustr, aSymbol);
|
||||
@@ -3640,7 +3638,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameExpandRef)
|
||||
CPPUNIT_ASSERT_EQUAL(8.0, m_pDoc->GetValue(ScAddress(0,6,0)));
|
||||
|
||||
// Clear the document and start over.
|
||||
m_pDoc->GetRangeName()->clear();
|
||||
m_pDoc->GetRangeName().clear();
|
||||
clearSheet(m_pDoc, 0);
|
||||
|
||||
// Set values to B4:B6.
|
||||
@@ -3658,14 +3656,14 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameExpandRef)
|
||||
// Insert rows over 3:5 which should expand the range by 3 rows.
|
||||
rFunc.InsertCells(ScRange(0,2,0,m_pDoc->MaxCol(),4,0), &aMark, INS_INSROWS_BEFORE, false, true);
|
||||
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
|
||||
aSymbol = pName->GetSymbol(m_pDoc->GetGrammar());
|
||||
CPPUNIT_ASSERT_EQUAL(u"$B$4:$B$9"_ustr, aSymbol);
|
||||
|
||||
// Clear the document and start over.
|
||||
m_pDoc->GetRangeName()->clear();
|
||||
m_pDoc->GetRangeName().clear();
|
||||
clearSheet(m_pDoc, 0);
|
||||
|
||||
// Set values to A1:A3.
|
||||
@@ -3730,7 +3728,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameExpandRef2)
|
||||
|
||||
// Insert a new column at column 3, which should expand the named
|
||||
rFunc.InsertCells(ScRange(1,0,0,1,m_pDoc->MaxRow(),0), &aMark, INS_INSCOLS_BEFORE, false, true);
|
||||
ScRangeData* pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
ScRangeData* pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
OUString aSymbol = pName->GetSymbol(m_pDoc->GetGrammar());
|
||||
CPPUNIT_ASSERT_EQUAL(u"$A$1:$C$3"_ustr, aSymbol);
|
||||
@@ -3746,7 +3744,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameDeleteRow)
|
||||
bool bInserted = m_pDoc->InsertNewRangeName(u"MyRange"_ustr, ScAddress(0,0,0), u"$B$2:$B$4"_ustr);
|
||||
CPPUNIT_ASSERT(bInserted);
|
||||
|
||||
const ScRangeData* pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
const ScRangeData* pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
|
||||
sc::TokenStringContext aCxt(*m_pDoc, formula::FormulaGrammar::GRAM_ENGLISH);
|
||||
@@ -3758,7 +3756,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameDeleteRow)
|
||||
bInserted = m_pDoc->InsertNewRangeName(u"MyAddress"_ustr, ScAddress(0,0,0), u"$B$3"_ustr);
|
||||
CPPUNIT_ASSERT(bInserted);
|
||||
|
||||
const ScRangeData* pName2 = m_pDoc->GetRangeName()->findByUpperName(u"MYADDRESS"_ustr);
|
||||
const ScRangeData* pName2 = m_pDoc->GetRangeName().findByUpperName(u"MYADDRESS"_ustr);
|
||||
CPPUNIT_ASSERT(pName2);
|
||||
|
||||
sc::TokenStringContext aCxt2(*m_pDoc, formula::FormulaGrammar::GRAM_ENGLISH);
|
||||
@@ -3792,7 +3790,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameDeleteRow)
|
||||
|
||||
pUndoMgr->Undo();
|
||||
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
pCode = pName->GetCode();
|
||||
|
||||
@@ -3802,7 +3800,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameDeleteRow)
|
||||
// Undo again and check.
|
||||
pUndoMgr->Undo();
|
||||
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
pCode = pName->GetCode();
|
||||
|
||||
@@ -3818,14 +3816,14 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameDeleteRow)
|
||||
// Undo and check.
|
||||
pUndoMgr->Undo();
|
||||
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
pCode = pName->GetCode();
|
||||
|
||||
aExpr = pCode->CreateString(aCxt, ScAddress(0,0,0));
|
||||
CPPUNIT_ASSERT_EQUAL(u"$B$2:$B$4"_ustr, aExpr);
|
||||
|
||||
pName2 = m_pDoc->GetRangeName()->findByUpperName(u"MYADDRESS"_ustr);
|
||||
pName2 = m_pDoc->GetRangeName().findByUpperName(u"MYADDRESS"_ustr);
|
||||
CPPUNIT_ASSERT(pName2);
|
||||
pCode2 = pName2->GetCode();
|
||||
|
||||
@@ -3838,14 +3836,14 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameDeleteRow)
|
||||
aMark2.SelectOneTable(1);
|
||||
rFunc.DeleteCells(ScRange(0,2,1,m_pDoc->MaxCol(),2,1), &aMark2, DelCellCmd::CellsUp, true);
|
||||
|
||||
pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
pCode = pName->GetCode();
|
||||
|
||||
aExpr = pCode->CreateString(aCxt, ScAddress(0,0,0));
|
||||
CPPUNIT_ASSERT_EQUAL(u"$B$2:$B$4"_ustr, aExpr);
|
||||
|
||||
pName2 = m_pDoc->GetRangeName()->findByUpperName(u"MYADDRESS"_ustr);
|
||||
pName2 = m_pDoc->GetRangeName().findByUpperName(u"MYADDRESS"_ustr);
|
||||
CPPUNIT_ASSERT(pName2);
|
||||
pCode2 = pName2->GetCode();
|
||||
|
||||
@@ -4193,7 +4191,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdateNameDelete)
|
||||
bool bInserted = m_pDoc->InsertNewRangeName(u"MyRange"_ustr, ScAddress(0,0,0), u"$Test.$B$1"_ustr);
|
||||
CPPUNIT_ASSERT(bInserted);
|
||||
|
||||
const ScRangeData* pName = m_pDoc->GetRangeName()->findByUpperName(u"MYRANGE"_ustr);
|
||||
const ScRangeData* pName = m_pDoc->GetRangeName().findByUpperName(u"MYRANGE"_ustr);
|
||||
CPPUNIT_ASSERT(pName);
|
||||
|
||||
m_pDoc->DeleteCol(1, 0, 3, 0, 0, 1);
|
||||
@@ -4770,13 +4768,12 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFuncSUBTOTAL)
|
||||
m_pDoc->SetValue(ScAddress(2, i, 0), i + 1);
|
||||
|
||||
// Add a named expression for a function.
|
||||
ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to obtain global named expression object.", pGlobalNames);
|
||||
ScRangeName& rGlobalNames = m_pDoc->GetRangeName();
|
||||
ScRangeData* pName = new ScRangeData(
|
||||
*m_pDoc, u"MyRelative"_ustr, u"$C1:$C$1000"_ustr, ScAddress(2, 999, 0),
|
||||
ScRangeData::Type::Name, formula::FormulaGrammar::GRAM_NATIVE);
|
||||
|
||||
bool bInserted = pGlobalNames->insert(pName);
|
||||
bool bInserted = rGlobalNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to insert a new name.", bInserted);
|
||||
|
||||
for (size_t i = 0; i < 1025; i++)
|
||||
|
||||
@@ -1296,9 +1296,9 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFunc_MATCH_INDIRECT)
|
||||
|
||||
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn on auto calculation.
|
||||
|
||||
ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
|
||||
ScRangeName& rGlobalNames = m_pDoc->GetRangeName();
|
||||
ScRangeData* pRangeData = new ScRangeData(*m_pDoc, u"RoleAssignment"_ustr, u"$D$4:$D$13"_ustr);
|
||||
pGlobalNames->insert(pRangeData);
|
||||
rGlobalNames.insert(pRangeData);
|
||||
|
||||
// D6: data to match, in 3rd row of named range.
|
||||
m_pDoc->SetString(3, 5, 0, u"Test1"_ustr);
|
||||
@@ -1905,9 +1905,9 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testExternalRangeName)
|
||||
rExtDoc.InsertTab(0, u"Data1"_ustr);
|
||||
rExtDoc.SetValue(0, 0, 0, 123.456);
|
||||
|
||||
ScRangeName* pRangeName = rExtDoc.GetRangeName();
|
||||
ScRangeName& rRangeName = rExtDoc.GetRangeName();
|
||||
ScRangeData* pRangeData = new ScRangeData(rExtDoc, u"ExternalName"_ustr, u"$Data1.$A$1"_ustr);
|
||||
pRangeName->insert(pRangeData);
|
||||
rRangeName.insert(pRangeData);
|
||||
|
||||
m_pDoc->InsertTab(0, u"Test Sheet"_ustr);
|
||||
m_pDoc->SetString(0, 1, 0, u"='file:///extdata.fake'#ExternalName"_ustr);
|
||||
@@ -2487,8 +2487,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncTableRef)
|
||||
|
||||
{
|
||||
// Insert named expressions.
|
||||
ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to obtain global named expression object.", pGlobalNames);
|
||||
ScRangeName& rGlobalNames = m_pDoc->GetRangeName();
|
||||
|
||||
for (size_t i = 0; i < SAL_N_ELEMENTS(aNames); ++i)
|
||||
{
|
||||
@@ -2499,7 +2498,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncTableRef)
|
||||
= new ScRangeData(*m_pDoc, OUString::createFromAscii(aNames[i].pName),
|
||||
OUString::createFromAscii(aNames[i].pExpr), ScAddress(2, 4, 0),
|
||||
ScRangeData::Type::Name, formula::FormulaGrammar::GRAM_NATIVE);
|
||||
bool bInserted = pGlobalNames->insert(pName);
|
||||
bool bInserted = rGlobalNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE(OString(OString::Concat("Failed to insert named expression ")
|
||||
+ aNames[i].pName + ".")
|
||||
.getStr(),
|
||||
@@ -2665,8 +2664,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncTableRef)
|
||||
|
||||
{
|
||||
// Insert named expressions.
|
||||
ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to obtain global named expression object.", pGlobalNames);
|
||||
ScRangeName& rGlobalNames = m_pDoc->GetRangeName();
|
||||
|
||||
for (size_t i = 0; i < SAL_N_ELEMENTS(aHlNames); ++i)
|
||||
{
|
||||
@@ -2677,7 +2675,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncTableRef)
|
||||
= new ScRangeData(*m_pDoc, OUString::createFromAscii(aHlNames[i].pName),
|
||||
OUString::createFromAscii(aHlNames[i].pExpr), ScAddress(6, 12, 0),
|
||||
ScRangeData::Type::Name, formula::FormulaGrammar::GRAM_NATIVE);
|
||||
bool bInserted = pGlobalNames->insert(pName);
|
||||
bool bInserted = rGlobalNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE(OString(OString::Concat("Failed to insert named expression ")
|
||||
+ aHlNames[i].pName + ".")
|
||||
.getStr(),
|
||||
@@ -4186,11 +4184,11 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testIntersectionOpExcel)
|
||||
{
|
||||
CPPUNIT_ASSERT(m_pDoc->InsertTab(0, u"Test"_ustr));
|
||||
|
||||
ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
|
||||
ScRangeName& rGlobalNames = m_pDoc->GetRangeName();
|
||||
// Horizontal cell range covering C2.
|
||||
pGlobalNames->insert(new ScRangeData(*m_pDoc, u"horz"_ustr, u"$B$2:$D$2"_ustr));
|
||||
rGlobalNames.insert(new ScRangeData(*m_pDoc, u"horz"_ustr, u"$B$2:$D$2"_ustr));
|
||||
// Vertical cell range covering C2.
|
||||
pGlobalNames->insert(new ScRangeData(*m_pDoc, u"vert"_ustr, u"$C$1:$C$3"_ustr));
|
||||
rGlobalNames.insert(new ScRangeData(*m_pDoc, u"vert"_ustr, u"$C$1:$C$3"_ustr));
|
||||
// Data in C2.
|
||||
m_pDoc->SetValue(2, 1, 0, 1.0);
|
||||
|
||||
@@ -6963,7 +6961,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testImplicitIntersectionTakesOperandWhole)
|
||||
{
|
||||
// The wrapper encloses the whole operand, whatever form the operand takes.
|
||||
m_pDoc->InsertTab(0, u"Sheet1"_ustr);
|
||||
m_pDoc->GetRangeName()->insert(
|
||||
m_pDoc->GetRangeName().insert(
|
||||
new ScRangeData(*m_pDoc, u"myrange"_ustr, u"$Sheet1.$A$1:$A$3"_ustr, ScAddress(1, 0, 0)));
|
||||
|
||||
// A name reaches the writer as its own token rather than as a push.
|
||||
|
||||
@@ -792,11 +792,10 @@ CPPUNIT_TEST_FIXTURE(TestPivottable, testPivotTableNamedSource)
|
||||
|
||||
// Name this range.
|
||||
OUString aRangeName(u"MyData"_ustr);
|
||||
ScRangeName* pNames = m_pDoc->GetRangeName();
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to get global range name container.", pNames);
|
||||
ScRangeName& rNames = m_pDoc->GetRangeName();
|
||||
ScRangeData* pName = new ScRangeData(
|
||||
*m_pDoc, aRangeName, aRangeStr);
|
||||
bool bSuccess = pNames->insert(pName);
|
||||
bool bSuccess = rNames.insert(pName);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to insert a new name.", bSuccess);
|
||||
|
||||
ScSheetSourceDesc aSheetDesc(m_pDoc);
|
||||
@@ -859,7 +858,7 @@ CPPUNIT_TEST_FIXTURE(TestPivottable, testPivotTableNamedSource)
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("There shouldn't be any more cache stored.",
|
||||
size_t(0), pDPs->GetNameCaches().size());
|
||||
|
||||
pNames->clear();
|
||||
rNames.clear();
|
||||
m_pDoc->DeleteTab(1);
|
||||
m_pDoc->DeleteTab(0);
|
||||
}
|
||||
|
||||
@@ -1073,7 +1073,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest2, testTdf118983)
|
||||
|
||||
xGlobalSheetSettings->setExpandReferences(true);
|
||||
|
||||
const ScRangeData* pRD = pDoc->GetRangeName()->findByUpperName(u"TEST"_ustr);
|
||||
const ScRangeData* pRD = pDoc->GetRangeName().findByUpperName(u"TEST"_ustr);
|
||||
CPPUNIT_ASSERT(pRD);
|
||||
CPPUNIT_ASSERT_EQUAL(u"$Test.$A$3:$D$7"_ustr, pRD->GetSymbol());
|
||||
|
||||
|
||||
@@ -38,8 +38,8 @@ void sc::TableContentCopier::performCopy(const ScMarkData* pOnlyMarked, ScCloneF
|
||||
if (pNames)
|
||||
pNames->CopyUsedNames(mnSourceTabNo, nPreviousSourceTabNo, mnTargetTabNo, mrDoc, mrDoc,
|
||||
bGlobalNamesToLocal);
|
||||
mrDoc.GetRangeName()->CopyUsedNames(-1, nPreviousSourceTabNo, mnTargetTabNo, mrDoc, mrDoc,
|
||||
bGlobalNamesToLocal);
|
||||
mrDoc.GetRangeName().CopyUsedNames(-1, nPreviousSourceTabNo, mnTargetTabNo, mrDoc, mrDoc,
|
||||
bGlobalNamesToLocal);
|
||||
|
||||
sc::CopyToDocContext aCopyDocCxt(mrDoc);
|
||||
if (mrDoc.pDBCollection)
|
||||
|
||||
@@ -1051,7 +1051,7 @@ bool ScDocument::TransferTab( ScDocument& rSrcDoc, SCTAB nSrcPos,
|
||||
const ScRangeName* pNames = rSrcDoc.GetRangeName( nSrcPos);
|
||||
if (pNames)
|
||||
pNames->CopyUsedNames( nSrcPos, nSrcPos, nDestPos, rSrcDoc, *this, bGlobalNamesToLocal);
|
||||
rSrcDoc.GetRangeName()->CopyUsedNames( -1, nSrcPos, nDestPos, rSrcDoc, *this, bGlobalNamesToLocal);
|
||||
rSrcDoc.GetRangeName().CopyUsedNames( -1, nSrcPos, nDestPos, rSrcDoc, *this, bGlobalNamesToLocal);
|
||||
}
|
||||
rSrcDoc.maTabs[nSrcPos]->CopyToTable(aCxt, 0, 0, MaxCol(), MaxRow(),
|
||||
( bResultsOnly ? InsertDeleteFlags::ALL & ~InsertDeleteFlags::FORMULA : InsertDeleteFlags::ALL),
|
||||
|
||||
@@ -181,11 +181,11 @@ ScRangeName* ScDocument::GetRangeName(SCTAB nTab) const
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ScRangeName* ScDocument::GetRangeName() const
|
||||
ScRangeName& ScDocument::GetRangeName() const
|
||||
{
|
||||
if (!pRangeName)
|
||||
pRangeName.reset(new ScRangeName);
|
||||
return pRangeName.get();
|
||||
return *pRangeName;
|
||||
}
|
||||
|
||||
void ScDocument::SetRangeName(SCTAB nTab, std::unique_ptr<ScRangeName> pNew)
|
||||
@@ -205,7 +205,7 @@ bool ScDocument::IsAddressInRangeName( RangeNameScope eScope, const ScAddress& r
|
||||
ScRange aNameRange;
|
||||
|
||||
if (eScope == RangeNameScope::GLOBAL)
|
||||
pRangeNames= GetRangeName();
|
||||
pRangeNames= &GetRangeName();
|
||||
else
|
||||
pRangeNames= GetRangeName(rAddress.Tab());
|
||||
|
||||
@@ -223,12 +223,10 @@ bool ScDocument::IsAddressInRangeName( RangeNameScope eScope, const ScAddress& r
|
||||
|
||||
bool ScDocument::InsertNewRangeName( const OUString& rName, const ScAddress& rPos, const OUString& rExpr )
|
||||
{
|
||||
ScRangeName* pGlobalNames = GetRangeName();
|
||||
if (!pGlobalNames)
|
||||
return false;
|
||||
ScRangeName& rGlobalNames = GetRangeName();
|
||||
|
||||
ScRangeData* pName = new ScRangeData(*this, rName, rExpr, rPos, ScRangeData::Type::Name, GetGrammar());
|
||||
return pGlobalNames->insert(pName);
|
||||
return rGlobalNames.insert(pName);
|
||||
}
|
||||
|
||||
bool ScDocument::InsertNewRangeName( SCTAB nTab, const OUString& rName, const ScAddress& rPos, const OUString& rExpr )
|
||||
@@ -274,7 +272,7 @@ const ScRangeData* ScDocument::GetRangeAtBlock( const ScRange& rBlock, OUString&
|
||||
|
||||
ScRangeData* ScDocument::FindRangeNameBySheetAndIndex( SCTAB nTab, sal_uInt16 nIndex ) const
|
||||
{
|
||||
const ScRangeName* pRN = (nTab < 0 ? GetRangeName() : GetRangeName(nTab));
|
||||
const ScRangeName* pRN = (nTab < 0 ?& GetRangeName() : GetRangeName(nTab));
|
||||
return (pRN ? pRN->findByIndex( nIndex) : nullptr);
|
||||
}
|
||||
|
||||
|
||||
@@ -783,7 +783,7 @@ bool ScDocument::MarkUsedExternalReferences( const ScTokenArray& rArr, const ScA
|
||||
{
|
||||
// this is a named range. Check if the range contains an external
|
||||
// reference.
|
||||
ScRangeData* pRangeData = GetRangeName()->findByIndex(static_cast<FormulaIndexToken*>(t)->GetIndex());
|
||||
ScRangeData* pRangeData = GetRangeName().findByIndex(static_cast<FormulaIndexToken*>(t)->GetIndex());
|
||||
if (!pRangeData)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -2447,7 +2447,7 @@ void ScDocument::TransposeClip(ScDocument* pTransClip, InsertDeleteFlags nFlags,
|
||||
|
||||
if (pRangeName)
|
||||
{
|
||||
pTransClip->GetRangeName()->clear();
|
||||
pTransClip->GetRangeName().clear();
|
||||
for (const auto& rEntry : *pRangeName)
|
||||
{
|
||||
sal_uInt16 nIndex = rEntry.second->GetIndex();
|
||||
@@ -2545,10 +2545,10 @@ void ScDocument::TransposeClip(ScDocument* pTransClip, InsertDeleteFlags nFlags,
|
||||
|
||||
namespace {
|
||||
|
||||
void copyUsedNamesToClip(ScRangeName* pClipRangeName, ScRangeName* pRangeName,
|
||||
void copyUsedNamesToClip(ScRangeName& rClipRangeName, ScRangeName* pRangeName,
|
||||
const sc::UpdatedRangeNames::NameIndicesType& rUsedNames)
|
||||
{
|
||||
pClipRangeName->clear();
|
||||
rClipRangeName.clear();
|
||||
for (const auto& rEntry : *pRangeName) //TODO: also DB and Pivot regions!!!
|
||||
{
|
||||
sal_uInt16 nIndex = rEntry.second->GetIndex();
|
||||
@@ -2557,7 +2557,7 @@ void copyUsedNamesToClip(ScRangeName* pClipRangeName, ScRangeName* pRangeName,
|
||||
continue;
|
||||
|
||||
ScRangeData* pData = new ScRangeData(*rEntry.second);
|
||||
if (pClipRangeName->insert(pData))
|
||||
if (rClipRangeName.insert(pData))
|
||||
pData->SetIndex(nIndex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -741,7 +741,7 @@ ScRangeData* copyRangeName( const ScRangeData* pOldRangeData, ScDocument& rNewDo
|
||||
|
||||
bool bInserted;
|
||||
if (nNewSheet < 0)
|
||||
bInserted = rNewDoc.GetRangeName()->insert(pRangeData);
|
||||
bInserted = rNewDoc.GetRangeName().insert(pRangeData);
|
||||
else
|
||||
bInserted = rNewDoc.GetRangeName(nNewSheet)->insert(pRangeData);
|
||||
|
||||
@@ -773,10 +773,10 @@ ScRangeData* copyRangeNames( SheetIndexMap& rSheetIndexMap, std::vector<ScRangeD
|
||||
const SCTAB nOldSheet, const SCTAB nNewSheet, bool bSameDoc)
|
||||
{
|
||||
ScRangeData* pRangeData = nullptr;
|
||||
const ScRangeName* pOldRangeName = (nTab < 0 ? rOldDoc.GetRangeName() : rOldDoc.GetRangeName(nTab));
|
||||
const ScRangeName* pOldRangeName = (nTab < 0 ? &rOldDoc.GetRangeName() : rOldDoc.GetRangeName(nTab));
|
||||
if (pOldRangeName)
|
||||
{
|
||||
const ScRangeName* pNewRangeName = (nNewSheet < 0 ? rNewDoc.GetRangeName() : rNewDoc.GetRangeName(nNewSheet));
|
||||
const ScRangeName* pNewRangeName = (nNewSheet < 0 ? &rNewDoc.GetRangeName() : rNewDoc.GetRangeName(nNewSheet));
|
||||
sc::UpdatedRangeNames::NameIndicesType aSet( rReferencingNames.getUpdatedNames(nTab));
|
||||
for (auto const & rIndex : aSet)
|
||||
{
|
||||
@@ -876,7 +876,7 @@ bool ScDocument::CopyAdjustRangeName( SCTAB& rSheet, sal_uInt16& rIndex, ScRange
|
||||
}
|
||||
else
|
||||
{
|
||||
pOldRangeData = GetRangeName()->findByIndex(nOldIndex);
|
||||
pOldRangeData = GetRangeName().findByIndex(nOldIndex);
|
||||
if (!pOldRangeData)
|
||||
return false; // might be an error in the formula array
|
||||
aRangeName = pOldRangeData->GetUpperName();
|
||||
@@ -895,9 +895,8 @@ bool ScDocument::CopyAdjustRangeName( SCTAB& rSheet, sal_uInt16& rIndex, ScRange
|
||||
if (!rpRangeData && !bGlobalNamesToLocal)
|
||||
{
|
||||
nNewSheet = -1;
|
||||
pNewNames = rNewDoc.GetRangeName();
|
||||
if (pNewNames)
|
||||
rpRangeData = pNewNames->findByUpperName(aRangeName);
|
||||
pNewNames = &rNewDoc.GetRangeName();
|
||||
rpRangeData = pNewNames->findByUpperName(aRangeName);
|
||||
}
|
||||
// If no range name was found copy it.
|
||||
if (!rpRangeData)
|
||||
|
||||
@@ -262,14 +262,11 @@ const ScRange& ScSheetSourceDesc::GetSourceRange() const
|
||||
{
|
||||
// Obtain the source range from the range name first.
|
||||
maSourceRange = ScRange();
|
||||
ScRangeName* pRangeName = mpDoc->GetRangeName();
|
||||
ScRangeName& rRangeName = mpDoc->GetRangeName();
|
||||
do
|
||||
{
|
||||
if (!pRangeName)
|
||||
break;
|
||||
|
||||
OUString aUpper = ScGlobal::getCharClass().uppercase(maRangeName);
|
||||
const ScRangeData* pData = pRangeName->findByUpperName(aUpper);
|
||||
const ScRangeData* pData = rRangeName.findByUpperName(aUpper);
|
||||
if (!pData)
|
||||
break;
|
||||
|
||||
|
||||
@@ -258,7 +258,7 @@ bool ScGroupTokenConverter::convert( const ScTokenArray& rCode, sc::FormulaLogge
|
||||
aArrays.push_back(aArray);
|
||||
}
|
||||
|
||||
std::vector<formula::VectorRefArray> aArraysTmp = aArrays;
|
||||
std::vector<formula::VectorRefArray> aArraysTmp = aArrays;
|
||||
formula::DoubleVectorRefToken aTok( std::move(aArraysTmp), nArrayLength, nRefRowSize, bAbsFirst, bAbsLast );
|
||||
mrGroupTokens.AddToken(aTok);
|
||||
rScope.addRefMessage(mrPos, aAbs.aStart, nRequestedLength, aArrays);
|
||||
@@ -283,12 +283,9 @@ bool ScGroupTokenConverter::convert( const ScTokenArray& rCode, sc::FormulaLogge
|
||||
}
|
||||
|
||||
// Named range.
|
||||
ScRangeName* pNames = mrDoc.GetRangeName();
|
||||
if (!pNames)
|
||||
// This should never fail.
|
||||
return false;
|
||||
ScRangeName& rNames = mrDoc.GetRangeName();
|
||||
|
||||
ScRangeData* pRange = pNames->findByIndex(static_cast<const FormulaIndexToken*>(p)->GetIndex());
|
||||
ScRangeData* pRange = rNames.findByIndex(static_cast<const FormulaIndexToken*>(p)->GetIndex());
|
||||
if (!pRange)
|
||||
// No named range exists by that index.
|
||||
return false;
|
||||
|
||||
@@ -3835,9 +3835,8 @@ const ScRangeData* ScCompiler::GetRangeData( SCTAB& rSheet, const OUString& rUpp
|
||||
pData = pRangeName->findByUpperName(rUpperName);
|
||||
if (!pData)
|
||||
{
|
||||
pRangeName = rDoc.GetRangeName();
|
||||
if (pRangeName)
|
||||
pData = pRangeName->findByUpperName(rUpperName);
|
||||
pRangeName = &rDoc.GetRangeName();
|
||||
pData = pRangeName->findByUpperName(rUpperName);
|
||||
if (pData)
|
||||
rSheet = -1;
|
||||
}
|
||||
@@ -3846,8 +3845,8 @@ const ScRangeData* ScCompiler::GetRangeData( SCTAB& rSheet, const OUString& rUpp
|
||||
|
||||
bool ScCompiler::HasPossibleNamedRangeConflict( SCTAB nTab ) const
|
||||
{
|
||||
const ScRangeName* pRangeName = rDoc.GetRangeName();
|
||||
if (pRangeName && pRangeName->hasPossibleAddressConflict())
|
||||
const ScRangeName* pRangeName = &rDoc.GetRangeName();
|
||||
if (pRangeName->hasPossibleAddressConflict())
|
||||
return true;
|
||||
pRangeName = rDoc.GetRangeName(nTab);
|
||||
if (pRangeName && pRangeName->hasPossibleAddressConflict())
|
||||
|
||||
@@ -286,7 +286,7 @@ bool ScRangeUtil::MakeRangeFromName (
|
||||
pData = pRangeNames->findByUpperName(aName);
|
||||
}
|
||||
if (!pData && eScope != RUTL_NAMES_LOCAL)
|
||||
pData = rDoc.GetRangeName()->findByUpperName(aName);
|
||||
pData = rDoc.GetRangeName().findByUpperName(aName);
|
||||
if (pData)
|
||||
{
|
||||
OUString aStrArea;
|
||||
@@ -964,11 +964,8 @@ ScRangeData* ScRangeStringConverter::GetRangeDataFromString( const OUString& rSt
|
||||
}
|
||||
if (!pData)
|
||||
{
|
||||
ScRangeName* pGlobalRangeName = rDoc.GetRangeName();
|
||||
if (pGlobalRangeName)
|
||||
{
|
||||
pData = pGlobalRangeName->findByUpperName(aUpperName);
|
||||
}
|
||||
ScRangeName& rGlobalRangeName = rDoc.GetRangeName();
|
||||
pData = rGlobalRangeName.findByUpperName(aUpperName);
|
||||
}
|
||||
return pData;
|
||||
}
|
||||
@@ -992,15 +989,12 @@ bool ScArea::operator==( const ScArea& r ) const
|
||||
}
|
||||
|
||||
ScAreaNameIterator::ScAreaNameIterator( const ScDocument& rDoc ) :
|
||||
pRangeName(rDoc.GetRangeName()),
|
||||
rRangeName(rDoc.GetRangeName()),
|
||||
pDBCollection(rDoc.GetDBCollection()),
|
||||
bFirstPass(true)
|
||||
{
|
||||
if (pRangeName)
|
||||
{
|
||||
maRNPos = pRangeName->begin();
|
||||
maRNEnd = pRangeName->end();
|
||||
}
|
||||
maRNPos = rRangeName.begin();
|
||||
maRNEnd = rRangeName.end();
|
||||
}
|
||||
|
||||
bool ScAreaNameIterator::Next( OUString& rName, ScRange& rRange )
|
||||
@@ -1009,7 +1003,7 @@ bool ScAreaNameIterator::Next( OUString& rName, ScRange& rRange )
|
||||
{
|
||||
if ( bFirstPass ) // first the area names
|
||||
{
|
||||
if ( pRangeName && maRNPos != maRNEnd )
|
||||
if ( maRNPos != maRNEnd )
|
||||
{
|
||||
const ScRangeData& rData = *maRNPos->second;
|
||||
++maRNPos;
|
||||
|
||||
@@ -54,10 +54,9 @@ TokenStringContext::TokenStringContext( const ScDocument& rDoc, formula::Formula
|
||||
}
|
||||
|
||||
// Fetch all named range names.
|
||||
const ScRangeName* pNames = rDoc.GetRangeName();
|
||||
if (pNames)
|
||||
// global names
|
||||
insertAllNames(maGlobalRangeNames, *pNames);
|
||||
const ScRangeName& rNames = rDoc.GetRangeName();
|
||||
// global names
|
||||
insertAllNames(maGlobalRangeNames, rNames);
|
||||
|
||||
{
|
||||
ScRangeName::TabNameCopyMap aTabRangeNames;
|
||||
|
||||
@@ -523,7 +523,7 @@ sal_uInt16 XclExpNameManagerImpl::InsertName( SCTAB nTab, sal_uInt16 nScNameIdx,
|
||||
{
|
||||
sal_uInt16 nNameIdx = 0;
|
||||
const ScRangeData* pData = nullptr;
|
||||
ScRangeName* pRN = (nTab == SCTAB_GLOBAL) ? GetDoc().GetRangeName() : GetDoc().GetRangeName(nTab);
|
||||
ScRangeName* pRN = (nTab == SCTAB_GLOBAL) ? &GetDoc().GetRangeName() : GetDoc().GetRangeName(nTab);
|
||||
if (pRN)
|
||||
pData = pRN->findByIndex(nScNameIdx);
|
||||
|
||||
|
||||
@@ -241,7 +241,7 @@ void XclImpName::InsertName(const ScTokenArray* pArray)
|
||||
pData->SetIndex( mnNameIndex ); // used as unique identifier in formulas
|
||||
if (mnXclTab == EXC_NAME_GLOBAL)
|
||||
{
|
||||
if (!GetDoc().GetRangeName()->insert(pData))
|
||||
if (!GetDoc().GetRangeName().insert(pData))
|
||||
pData = nullptr;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -309,7 +309,7 @@ ScStyleSheetPool& XclRoot::GetStyleSheetPool() const
|
||||
|
||||
ScRangeName& XclRoot::GetNamedRanges() const
|
||||
{
|
||||
return *GetDoc().GetRangeName();
|
||||
return GetDoc().GetRangeName();
|
||||
}
|
||||
|
||||
SdrPage* XclRoot::GetSdrPage( SCTAB nScTab ) const
|
||||
|
||||
@@ -108,7 +108,7 @@ void ScHTMLImport::InsertRangeName( ScDocument& rDoc, const OUString& rName, con
|
||||
ScTokenArray aTokArray(rDoc);
|
||||
aTokArray.AddDoubleReference( aRefData );
|
||||
ScRangeData* pRangeData = new ScRangeData( rDoc, rName, aTokArray );
|
||||
rDoc.GetRangeName()->insert( pRangeData );
|
||||
rDoc.GetRangeName().insert( pRangeData );
|
||||
}
|
||||
|
||||
void ScHTMLImport::WriteToDocument(
|
||||
@@ -191,7 +191,7 @@ void ScHTMLImport::WriteToDocument(
|
||||
if (!pTable->GetTableCaption().isEmpty())
|
||||
aName.append(" - " + pTable->GetTableCaption());
|
||||
const OUString sName(aName.makeStringAndClear());
|
||||
if (!mrDoc.GetRangeName()->findByUpperName(ScGlobal::getCharClass().uppercase(sName)))
|
||||
if (!mrDoc.GetRangeName().findByUpperName(ScGlobal::getCharClass().uppercase(sName)))
|
||||
InsertRangeName(mrDoc, sName, aNewRange);
|
||||
}
|
||||
}
|
||||
@@ -207,19 +207,19 @@ OUString ScHTMLImport::GetHTMLRangeNameList( const ScDocument& rDoc, std::u16str
|
||||
return OUString();
|
||||
|
||||
OUString aNewName;
|
||||
ScRangeName* pRangeNames = rDoc.GetRangeName();
|
||||
ScRangeName& rRangeNames = rDoc.GetRangeName();
|
||||
ScRangeList aRangeList;
|
||||
sal_Int32 nStringIx = 0;
|
||||
do
|
||||
{
|
||||
OUString aToken( o3tl::getToken(rOrigName, 0, ';', nStringIx ) );
|
||||
if( pRangeNames && ScfTools::IsHTMLTablesName( aToken ) )
|
||||
if( ScfTools::IsHTMLTablesName( aToken ) )
|
||||
{ // build list with all HTML tables
|
||||
sal_uLong nIndex = 1;
|
||||
for(;;)
|
||||
{
|
||||
aToken = ScfTools::GetNameFromHTMLIndex( nIndex++ );
|
||||
const ScRangeData* pRangeData = pRangeNames->findByUpperName(ScGlobal::getCharClass().uppercase(aToken));
|
||||
const ScRangeData* pRangeData = rRangeNames.findByUpperName(ScGlobal::getCharClass().uppercase(aToken));
|
||||
if (!pRangeData)
|
||||
break;
|
||||
ScRange aRange;
|
||||
|
||||
@@ -369,7 +369,7 @@ Reference< XStyle > WorkbookGlobals::getStyleObject( const OUString& rStyleName,
|
||||
|
||||
namespace {
|
||||
|
||||
WorkbookHelper::RangeDataRet lcl_addNewByName(ScDocument& rDoc, ScRangeName* pNames, const OUString& rName, sal_Int16 nIndex, sal_Int32 nUnoType)
|
||||
WorkbookHelper::RangeDataRet lcl_addNewByName(ScDocument& rDoc, ScRangeName& rNames, const OUString& rName, sal_Int16 nIndex, sal_Int32 nUnoType)
|
||||
{
|
||||
bool bDone = false;
|
||||
ScRangeData::Type nNewType = ScRangeData::Type::Name;
|
||||
@@ -389,7 +389,7 @@ WorkbookHelper::RangeDataRet lcl_addNewByName(ScDocument& rDoc, ScRangeName* pNa
|
||||
{
|
||||
return WorkbookHelper::RangeDataRet(pNew, true);
|
||||
}
|
||||
if ( pNames->insert(pNew) )
|
||||
if ( rNames.insert(pNew) )
|
||||
bDone = true;
|
||||
if (!bDone)
|
||||
{
|
||||
@@ -399,11 +399,11 @@ WorkbookHelper::RangeDataRet lcl_addNewByName(ScDocument& rDoc, ScRangeName* pNa
|
||||
return WorkbookHelper::RangeDataRet(pNew, false);
|
||||
}
|
||||
|
||||
OUString findUnusedName( const ScRangeName* pRangeName, const OUString& rSuggestedName )
|
||||
OUString findUnusedName( const ScRangeName& rRangeName, const OUString& rSuggestedName )
|
||||
{
|
||||
OUString aNewName = rSuggestedName;
|
||||
sal_Int32 nIndex = 0;
|
||||
while(pRangeName->findByUpperName(ScGlobal::getCharClass().uppercase(aNewName)))
|
||||
while(rRangeName.findByUpperName(ScGlobal::getCharClass().uppercase(aNewName)))
|
||||
aNewName = rSuggestedName + OUStringChar('_') + OUString::number( nIndex++ );
|
||||
|
||||
return aNewName;
|
||||
@@ -419,11 +419,11 @@ WorkbookHelper::RangeDataRet WorkbookGlobals::createNamedRangeObject(
|
||||
if( !orName.isEmpty() )
|
||||
{
|
||||
ScDocument& rDoc = getScDocument();
|
||||
ScRangeName* pNames = rDoc.GetRangeName();
|
||||
ScRangeName& rNames = rDoc.GetRangeName();
|
||||
// find an unused name
|
||||
orName = findUnusedName( pNames, orName );
|
||||
orName = findUnusedName( rNames, orName );
|
||||
// create the named range
|
||||
aScRangeData = lcl_addNewByName(rDoc, pNames, orName, nIndex, nNameFlags);
|
||||
aScRangeData = lcl_addNewByName(rDoc, rNames, orName, nIndex, nNameFlags);
|
||||
}
|
||||
return aScRangeData;
|
||||
}
|
||||
@@ -440,9 +440,9 @@ WorkbookHelper::RangeDataRet WorkbookGlobals::createLocalNamedRangeObject(
|
||||
if(!pNames)
|
||||
throw RuntimeException(u"invalid sheet index used"_ustr);
|
||||
// find an unused name
|
||||
orName = findUnusedName( pNames, orName );
|
||||
orName = findUnusedName( *pNames, orName );
|
||||
// create the named range
|
||||
aScRangeData = lcl_addNewByName(rDoc, pNames, orName, nIndex, nNameFlags);
|
||||
aScRangeData = lcl_addNewByName(rDoc, *pNames, orName, nIndex, nNameFlags);
|
||||
}
|
||||
return aScRangeData;
|
||||
}
|
||||
|
||||
@@ -201,7 +201,7 @@ void ScOrcusNamedExpression::set_named_range(std::string_view /*name*/, std::str
|
||||
void ScOrcusNamedExpression::commit()
|
||||
{
|
||||
ScRangeName* pNames
|
||||
= mnTab >= 0 ? mrDoc.getDoc().GetRangeName(mnTab) : mrDoc.getDoc().GetRangeName();
|
||||
= mnTab >= 0 ? mrDoc.getDoc().GetRangeName(mnTab) : &mrDoc.getDoc().GetRangeName();
|
||||
if (!pNames)
|
||||
return;
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu
|
||||
// Automatic language option selected. Check for the global 'use US English' option.
|
||||
bNumbersEnglishUS = officecfg::Office::Common::Filter::HTML::Import::NumbersEnglishUS::get();
|
||||
}
|
||||
ScRangeName* pRangeNames = mrDoc.GetRangeName();
|
||||
ScRangeName& rRangeNames = mrDoc.GetRangeName();
|
||||
for ( size_t i = 0, n = mpParser->ListSize(); i < n; ++i )
|
||||
{
|
||||
pE = mpParser->ListEntry( i );
|
||||
@@ -422,11 +422,11 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu
|
||||
bHasGraphics |= GraphicSize( nCol, nRow, pE );
|
||||
if ( pE->pName )
|
||||
{ // Anchor Name => RangeName
|
||||
if (!pRangeNames->findByUpperName(ScGlobal::getCharClass().uppercase(*pE->pName)))
|
||||
if (!rRangeNames.findByUpperName(ScGlobal::getCharClass().uppercase(*pE->pName)))
|
||||
{
|
||||
ScRangeData* pData = new ScRangeData( mrDoc, *pE->pName,
|
||||
ScAddress( nCol, nRow, nTab ) );
|
||||
pRangeNames->insert( pData );
|
||||
rRangeNames.insert( pData );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4274,8 +4274,8 @@ void ScXMLExport::WritePersons(const ScDocument& rDoc)
|
||||
|
||||
void ScXMLExport::WriteNamedExpressions(const ScDocument& rDoc)
|
||||
{
|
||||
ScRangeName* pNamedRanges = rDoc.GetRangeName();
|
||||
WriteNamedRange(rDoc, pNamedRanges);
|
||||
ScRangeName& rNamedRanges = rDoc.GetRangeName();
|
||||
WriteNamedRange(rDoc, &rNamedRanges);
|
||||
}
|
||||
|
||||
void ScXMLExport::WriteExternalDataMapping(ScDocument& rDoc)
|
||||
|
||||
@@ -1314,9 +1314,9 @@ void ScXMLImport::SetNamedRanges()
|
||||
return;
|
||||
|
||||
// Insert the namedRanges
|
||||
ScRangeName* pRangeNames = mpDoc->GetRangeName();
|
||||
ScRangeName& rRangeNames = mpDoc->GetRangeName();
|
||||
::std::for_each(m_aMyNamedExpressions.begin(), m_aMyNamedExpressions.end(),
|
||||
RangeNameInserter(*mpDoc, *pRangeNames, -1));
|
||||
RangeNameInserter(*mpDoc, rRangeNames, -1));
|
||||
}
|
||||
|
||||
void ScXMLImport::SetSheetNamedRanges()
|
||||
|
||||
@@ -2342,8 +2342,8 @@ void ScPosWnd::FillRangeNames(bool initialize)
|
||||
ScDocument& rDoc = pDocShell->GetDocument();
|
||||
|
||||
ScRange aDummy;
|
||||
ScRangeName* pRangeNames = rDoc.GetRangeName();
|
||||
for (const auto& rEntry : *pRangeNames)
|
||||
ScRangeName& rRangeNames = rDoc.GetRangeName();
|
||||
for (const auto& rEntry : rRangeNames)
|
||||
{
|
||||
if (rEntry.second->IsValidReference(aDummy))
|
||||
aSet.insert(rEntry.second->GetName());
|
||||
@@ -2615,12 +2615,12 @@ void ScPosWnd::DoEnter()
|
||||
}
|
||||
else if ( eType == SC_NAME_INPUT_DEFINE )
|
||||
{
|
||||
ScRangeName* pNames = rDoc.GetRangeName();
|
||||
ScRangeName& rNames = rDoc.GetRangeName();
|
||||
ScRange aSelection;
|
||||
if ( pNames && !pNames->findByUpperName(ScGlobal::getCharClass().uppercase(aText)) &&
|
||||
if ( !rNames.findByUpperName(ScGlobal::getCharClass().uppercase(aText)) &&
|
||||
(rViewData.GetSimpleArea( aSelection ) == SC_MARK_SIMPLE) )
|
||||
{
|
||||
ScRangeName aNewRanges( *pNames );
|
||||
ScRangeName aNewRanges( rNames );
|
||||
ScAddress aCursor( rViewData.GetCurX(), rViewData.GetCurY(), rViewData.CurrentTabForData() );
|
||||
OUString aContent(aSelection.Format(rDoc, ScRefFlags::RANGE_ABS_3D, rDoc.GetAddressConvention()));
|
||||
ScRangeData* pNew = new ScRangeData( rDoc, aText, aContent, aCursor );
|
||||
|
||||
@@ -54,11 +54,9 @@ namespace
|
||||
ScRange lclGetRangeForNamedRange(OUString const & aName, const ScDocument& rDocument)
|
||||
{
|
||||
ScRange aInvalidRange(ScAddress::INITIALIZE_INVALID);
|
||||
ScRangeName* pRangeName = rDocument.GetRangeName();
|
||||
if (pRangeName == nullptr)
|
||||
return aInvalidRange;
|
||||
ScRangeName& rRangeName = rDocument.GetRangeName();
|
||||
|
||||
const ScRangeData* pData = pRangeName->findByUpperName(aName.toAsciiUpperCase());
|
||||
const ScRangeData* pData = rRangeName.findByUpperName(aName.toAsciiUpperCase());
|
||||
if (pData == nullptr)
|
||||
return aInvalidRange;
|
||||
|
||||
|
||||
@@ -173,9 +173,9 @@ void ScConsolidateDlg::Init()
|
||||
// Use the ScAreaData helper class to save those range names from the
|
||||
// RangeNames and database ranges that appear in the ListBoxes.
|
||||
|
||||
ScRangeName* pRangeNames = rDoc.GetRangeName();
|
||||
ScRangeName& rRangeNames = rDoc.GetRangeName();
|
||||
ScDBCollection* pDbNames = rDoc.GetDBCollection();
|
||||
size_t nRangeCount = pRangeNames ? pRangeNames->size() : 0;
|
||||
size_t nRangeCount = rRangeNames.size();
|
||||
size_t nDbCount = pDbNames ? pDbNames->getNamedDBs().size() : 0;
|
||||
|
||||
nAreaDataCount = nRangeCount+nDbCount;
|
||||
|
||||
@@ -123,11 +123,11 @@ void ScSpecialFilterDlg::Init( const SfxItemSet& rArgSet )
|
||||
if (m_rDoc.GetChangeTrack() != nullptr)
|
||||
m_xBtnCopyResult->set_sensitive(false);
|
||||
|
||||
ScRangeName* pRangeNames = m_rDoc.GetRangeName();
|
||||
ScRangeName& rRangeNames = m_rDoc.GetRangeName();
|
||||
m_xLbFilterArea->clear();
|
||||
m_xLbFilterArea->append_text(m_aStrUndefined);
|
||||
|
||||
for (const auto& rEntry : *pRangeNames)
|
||||
for (const auto& rEntry : rRangeNames)
|
||||
{
|
||||
if (!rEntry.second->HasType(ScRangeData::Type::Criteria))
|
||||
continue;
|
||||
|
||||
@@ -184,13 +184,13 @@ bool ScAreaLink::FindExtRange( ScRange& rRange, const ScDocument& rSrcDoc, const
|
||||
{
|
||||
bool bFound = false;
|
||||
OUString aUpperName = ScGlobal::getCharClass().uppercase(rAreaName);
|
||||
ScRangeName* pNames = rSrcDoc.GetRangeName();
|
||||
if (pNames) // named ranges
|
||||
{
|
||||
const ScRangeData* p = pNames->findByUpperName(aUpperName);
|
||||
if (p && p->IsValidReference(rRange))
|
||||
bFound = true;
|
||||
}
|
||||
ScRangeName& rNames = rSrcDoc.GetRangeName();
|
||||
|
||||
// named ranges
|
||||
const ScRangeData* p = rNames.findByUpperName(aUpperName);
|
||||
if (p && p->IsValidReference(rRange))
|
||||
bFound = true;
|
||||
|
||||
if (!bFound) // database ranges
|
||||
{
|
||||
ScDBCollection* pDBColl = rSrcDoc.GetDBCollection();
|
||||
|
||||
@@ -573,9 +573,9 @@ bool ScDBDocFunc::RepeatDB( const OUString& rDBName, bool bApi, bool bIsUnnamed,
|
||||
rDoc.CopyToDocument(0, 0, 0, rDoc.MaxCol(), rDoc.MaxRow(), nTabCount-1, InsertDeleteFlags::FORMULA, false, *pUndoDoc);
|
||||
|
||||
// ranges of DB and other
|
||||
ScRangeName* pDocRange = rDoc.GetRangeName();
|
||||
if (!pDocRange->empty())
|
||||
pUndoRange.reset(new ScRangeName( *pDocRange ));
|
||||
ScRangeName& rDocRange = rDoc.GetRangeName();
|
||||
if (!rDocRange.empty())
|
||||
pUndoRange.reset(new ScRangeName( rDocRange ));
|
||||
ScDBCollection* pDocDB = rDoc.GetDBCollection();
|
||||
if (!pDocDB->empty())
|
||||
pUndoDB.reset(new ScDBCollection( *pDocDB ));
|
||||
|
||||
@@ -2238,7 +2238,7 @@ void ScDocFunc::SetNewRangeNames( std::unique_ptr<ScRangeName> pNewRanges, bool
|
||||
}
|
||||
else
|
||||
{
|
||||
pOld = rDoc.GetRangeName();
|
||||
pOld = &rDoc.GetRangeName();
|
||||
}
|
||||
std::unique_ptr<ScRangeName> pUndoRanges(new ScRangeName(*pOld));
|
||||
std::unique_ptr<ScRangeName> pRedoRanges(new ScRangeName(*pNewRanges));
|
||||
@@ -2383,7 +2383,7 @@ bool ScDocFunc::CreateNames( const ScRange& rRange, CreateNameFlags nFlags, bool
|
||||
if (aTab >=0)
|
||||
pNames = rDoc.GetRangeName(nTab);
|
||||
else
|
||||
pNames = rDoc.GetRangeName();
|
||||
pNames = &rDoc.GetRangeName();
|
||||
|
||||
if (!pNames)
|
||||
return false; // shouldn't happen
|
||||
|
||||
@@ -2985,17 +2985,14 @@ bool ScDocShell::DdeSetData( const OUString& rItem,
|
||||
|
||||
// named range?
|
||||
OUString aPos = rItem;
|
||||
ScRangeName* pRange = m_pDocument->GetRangeName();
|
||||
if( pRange )
|
||||
ScRangeName& rRange = m_pDocument->GetRangeName();
|
||||
const ScRangeData* pData = rRange.findByUpperName(ScGlobal::getCharClass().uppercase(aPos));
|
||||
if (pData)
|
||||
{
|
||||
const ScRangeData* pData = pRange->findByUpperName(ScGlobal::getCharClass().uppercase(aPos));
|
||||
if (pData)
|
||||
{
|
||||
if( pData->HasType( ScRangeData::Type::RefArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsPos ) )
|
||||
aPos = pData->GetSymbol(); // continue with the name's contents
|
||||
}
|
||||
if( pData->HasType( ScRangeData::Type::RefArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsPos ) )
|
||||
aPos = pData->GetSymbol(); // continue with the name's contents
|
||||
}
|
||||
|
||||
// Address in DDE function must be always parsed as CONV_OOO so that it
|
||||
|
||||
@@ -2133,9 +2133,9 @@ namespace {
|
||||
|
||||
bool hasRangeName(const ScDocument& rDoc, const OUString& rName)
|
||||
{
|
||||
ScRangeName* pExtNames = rDoc.GetRangeName();
|
||||
ScRangeName& rExtNames = rDoc.GetRangeName();
|
||||
OUString aUpperName = ScGlobal::getCharClass().uppercase(rName);
|
||||
const ScRangeData* pRangeData = pExtNames->findByUpperName(aUpperName);
|
||||
const ScRangeData* pRangeData = rExtNames.findByUpperName(aUpperName);
|
||||
return pRangeData != nullptr;
|
||||
}
|
||||
|
||||
@@ -2354,9 +2354,9 @@ ScExternalRefCache::TokenArrayRef ScExternalRefManager::getDoubleRefTokensFromSr
|
||||
ScExternalRefCache::TokenArrayRef ScExternalRefManager::getRangeNameTokensFromSrcDoc(
|
||||
sal_uInt16 nFileId, const ScDocument& rSrcDoc, OUString& rName)
|
||||
{
|
||||
ScRangeName* pExtNames = rSrcDoc.GetRangeName();
|
||||
ScRangeName& rExtNames = rSrcDoc.GetRangeName();
|
||||
OUString aUpperName = ScGlobal::getCharClass().uppercase(rName);
|
||||
const ScRangeData* pRangeData = pExtNames->findByUpperName(aUpperName);
|
||||
const ScRangeData* pRangeData = rExtNames.findByUpperName(aUpperName);
|
||||
if (!pRangeData)
|
||||
return ScExternalRefCache::TokenArrayRef();
|
||||
|
||||
@@ -3067,14 +3067,13 @@ void ScExternalRefManager::breakLink(sal_uInt16 nFileId)
|
||||
// Remove all named ranges that reference this document.
|
||||
|
||||
// Global named ranges.
|
||||
ScRangeName* pRanges = mrDoc.GetRangeName();
|
||||
if (pRanges)
|
||||
removeRangeNamesBySrcDoc(*pRanges, nFileId);
|
||||
ScRangeName& rRanges = mrDoc.GetRangeName();
|
||||
removeRangeNamesBySrcDoc(rRanges, nFileId);
|
||||
|
||||
// Sheet-local named ranges.
|
||||
for (SCTAB i = 0, n = mrDoc.GetTableCount(); i < n; ++i)
|
||||
{
|
||||
pRanges = mrDoc.GetRangeName(i);
|
||||
ScRangeName* pRanges = mrDoc.GetRangeName(i);
|
||||
if (pRanges)
|
||||
removeRangeNamesBySrcDoc(*pRanges, nFileId);
|
||||
}
|
||||
|
||||
@@ -171,21 +171,20 @@ ScImportExport::ScImportExport( ScDocument& r, const OUString& rPos )
|
||||
SCTAB nTab = ScDocShell::GetCurTab();
|
||||
aRange.aStart.SetTab( nTab );
|
||||
OUString aPos( rPos );
|
||||
|
||||
// Named range?
|
||||
ScRangeName* pRange = rDoc.GetRangeName();
|
||||
if (pRange)
|
||||
ScRangeName& rRange = rDoc.GetRangeName();
|
||||
const ScRangeData* pData = rRange.findByUpperName(ScGlobal::getCharClass().uppercase(aPos));
|
||||
if (pData)
|
||||
{
|
||||
const ScRangeData* pData = pRange->findByUpperName(ScGlobal::getCharClass().uppercase(aPos));
|
||||
if (pData)
|
||||
if( pData->HasType( ScRangeData::Type::RefArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsPos ) )
|
||||
{
|
||||
if( pData->HasType( ScRangeData::Type::RefArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsArea )
|
||||
|| pData->HasType( ScRangeData::Type::AbsPos ) )
|
||||
{
|
||||
aPos = pData->GetSymbol();
|
||||
}
|
||||
aPos = pData->GetSymbol();
|
||||
}
|
||||
}
|
||||
|
||||
formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
|
||||
// Range?
|
||||
if (aRange.Parse(aPos, rDoc, eConv) & ScRefFlags::VALID)
|
||||
|
||||
@@ -37,15 +37,12 @@ static bool lcl_FillRangeFromName( ScRange& rRange, ScDocShell* pDocSh, const OU
|
||||
if (pDocSh)
|
||||
{
|
||||
ScDocument& rDoc = pDocSh->GetDocument();
|
||||
ScRangeName* pNames = rDoc.GetRangeName();
|
||||
if (pNames)
|
||||
ScRangeName& rNames = rDoc.GetRangeName();
|
||||
const ScRangeData* pData = rNames.findByUpperName(ScGlobal::getCharClass().uppercase(rName));
|
||||
if (pData)
|
||||
{
|
||||
const ScRangeData* pData = pNames->findByUpperName(ScGlobal::getCharClass().uppercase(rName));
|
||||
if (pData)
|
||||
{
|
||||
if ( pData->IsValidReference( rRange ) )
|
||||
return true;
|
||||
}
|
||||
if ( pData->IsValidReference( rRange ) )
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -248,10 +248,10 @@ void ScLinkedAreaDlg::UpdateSourceRanges()
|
||||
}
|
||||
|
||||
// tdf#142600 - list tables in order of their appearance in the document's source
|
||||
const ScRangeName* pRangeName = m_pSourceShell->GetDocument().GetRangeName();
|
||||
for (size_t i = 1; i <= pRangeName->index_size(); i++)
|
||||
const ScRangeName& rRangeName = m_pSourceShell->GetDocument().GetRangeName();
|
||||
for (size_t i = 1; i <= rRangeName.index_size(); i++)
|
||||
{
|
||||
if (const ScRangeData* pRangeData = pRangeName->findByIndex(i))
|
||||
if (const ScRangeData* pRangeData = rRangeName.findByIndex(i))
|
||||
{
|
||||
m_xLbRanges->append_text(pRangeData->GetName());
|
||||
}
|
||||
|
||||
@@ -790,8 +790,8 @@ void ScContentTree::GetAreaNames()
|
||||
|
||||
ScRange aDummy;
|
||||
std::set<OUString> aSet;
|
||||
ScRangeName* pRangeNames = pDoc->GetRangeName();
|
||||
for (const auto& rEntry : *pRangeNames)
|
||||
ScRangeName& rRangeNames = pDoc->GetRangeName();
|
||||
for (const auto& rEntry : rRangeNames)
|
||||
{
|
||||
if (rEntry.second->IsValidReference(aDummy))
|
||||
aSet.insert(rEntry.second->GetName());
|
||||
@@ -1108,13 +1108,10 @@ static bool lcl_GetRange( const ScDocument& rDoc, ScContentId nType, const OUStr
|
||||
|
||||
if ( nType == ScContentId::RANGENAME )
|
||||
{
|
||||
ScRangeName* pList = rDoc.GetRangeName();
|
||||
if (pList)
|
||||
{
|
||||
const ScRangeData* p = pList->findByUpperName(ScGlobal::getCharClass().uppercase(rName));
|
||||
if (p && p->IsValidReference(rRange))
|
||||
bFound = true;
|
||||
}
|
||||
ScRangeName& rList = rDoc.GetRangeName();
|
||||
const ScRangeData* p = rList.findByUpperName(ScGlobal::getCharClass().uppercase(rName));
|
||||
if (p && p->IsValidReference(rRange))
|
||||
bFound = true;
|
||||
}
|
||||
else if ( nType == ScContentId::DBAREA )
|
||||
{
|
||||
|
||||
@@ -49,8 +49,8 @@ bool InsertNameListOperation::runImplementation()
|
||||
if (!r.HasType(ScRangeData::Type::Database))
|
||||
++nValidCount;
|
||||
}
|
||||
ScRangeName* pList = rDoc.GetRangeName();
|
||||
for (const auto& rEntry : *pList)
|
||||
ScRangeName& rList = rDoc.GetRangeName();
|
||||
for (const auto& rEntry : rList)
|
||||
{
|
||||
const ScRangeData& r = *rEntry.second;
|
||||
if (!r.HasType(ScRangeData::Type::Database)
|
||||
@@ -89,7 +89,7 @@ bool InsertNameListOperation::runImplementation()
|
||||
if (!r.HasType(ScRangeData::Type::Database))
|
||||
ppSortArray[j++] = &r;
|
||||
}
|
||||
for (const auto & [ rName, rxData ] : *pList)
|
||||
for (const auto & [ rName, rxData ] : rList)
|
||||
{
|
||||
ScRangeData& r = *rxData;
|
||||
if (!r.HasType(ScRangeData::Type::Database) && !pLocalList->findByUpperName(rName))
|
||||
|
||||
@@ -139,9 +139,9 @@ bool SubTotalsOperation::runImplementation()
|
||||
InsertDeleteFlags::FORMULA, false, *pUndoDoc);
|
||||
|
||||
// ranges of DB and other
|
||||
ScRangeName* pDocRange = rDoc.GetRangeName();
|
||||
if (!pDocRange->empty())
|
||||
pUndoRange.reset(new ScRangeName(*pDocRange));
|
||||
ScRangeName& rDocRange = rDoc.GetRangeName();
|
||||
if (!rDocRange.empty())
|
||||
pUndoRange.reset(new ScRangeName(rDocRange));
|
||||
ScDBCollection* pDocDB = rDoc.GetDBCollection();
|
||||
if (!pDocDB->empty())
|
||||
pUndoDB.reset(new ScDBCollection(*pDocDB));
|
||||
|
||||
@@ -389,13 +389,13 @@ void ScPrintAreasDlg::Impl_FillLists()
|
||||
|
||||
// Get ranges and remember in ListBoxen
|
||||
|
||||
ScRangeName* pRangeNames = rDoc.GetRangeName();
|
||||
ScRangeName& rRangeNames = rDoc.GetRangeName();
|
||||
|
||||
if (!pRangeNames || pRangeNames->empty())
|
||||
if (rRangeNames.empty())
|
||||
// No range names to process.
|
||||
return;
|
||||
|
||||
for (const auto& rEntry : *pRangeNames)
|
||||
for (const auto& rEntry : rRangeNames)
|
||||
{
|
||||
if (!rEntry.second->HasType(ScRangeData::Type::AbsArea )
|
||||
&& !rEntry.second->HasType(ScRangeData::Type::RefArea)
|
||||
|
||||
@@ -41,9 +41,9 @@ ScRefUndoData::ScRefUndoData( ScDocument& rDoc, bool bForceDBSnapshot ) :
|
||||
if (pOldDBColl && (bForceDBSnapshot || !pOldDBColl->empty()))
|
||||
pDBCollection.reset(new ScDBCollection(*pOldDBColl));
|
||||
|
||||
const ScRangeName* pOldRanges = rDoc.GetRangeName();
|
||||
if (pOldRanges && !pOldRanges->empty())
|
||||
pRangeName.reset(new ScRangeName(*pOldRanges));
|
||||
const ScRangeName& rOldRanges = rDoc.GetRangeName();
|
||||
if (!rOldRanges.empty())
|
||||
pRangeName.reset(new ScRangeName(rOldRanges));
|
||||
|
||||
// when handling Pivot solely keep the range?
|
||||
|
||||
@@ -85,8 +85,8 @@ void ScRefUndoData::DeleteUnchanged( ScDocument& rDoc )
|
||||
}
|
||||
if (pRangeName)
|
||||
{
|
||||
ScRangeName* pNewRanges = rDoc.GetRangeName();
|
||||
if ( pNewRanges && *pRangeName == *pNewRanges )
|
||||
ScRangeName& rNewRanges = rDoc.GetRangeName();
|
||||
if ( *pRangeName == rNewRanges )
|
||||
pRangeName.reset();
|
||||
}
|
||||
|
||||
|
||||
@@ -1435,15 +1435,14 @@ void ScUndoDragDrop::Undo()
|
||||
aCxt.mnTabDelta = nTabDelta;
|
||||
|
||||
// Global range names.
|
||||
ScRangeName* pName = rDoc.GetRangeName();
|
||||
if (pName)
|
||||
pName->UpdateReference(aCxt);
|
||||
ScRangeName& rName = rDoc.GetRangeName();
|
||||
rName.UpdateReference(aCxt);
|
||||
|
||||
SCTAB nTabCount = rDoc.GetTableCount();
|
||||
for (SCTAB nTab = 0; nTab < nTabCount; ++nTab)
|
||||
{
|
||||
// Sheet-local range names.
|
||||
pName = rDoc.GetRangeName(nTab);
|
||||
ScRangeName* pName = rDoc.GetRangeName(nTab);
|
||||
if (pName)
|
||||
pName->UpdateReference(aCxt, nTab);
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ void ScUndoAddRangeData::Undo()
|
||||
ScRangeName* pRangeName = nullptr;
|
||||
if (mnTab == -1)
|
||||
{
|
||||
pRangeName = rDoc.GetRangeName();
|
||||
pRangeName = &rDoc.GetRangeName();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -107,7 +107,7 @@ void ScUndoAddRangeData::Redo()
|
||||
ScRangeName* pRangeName = nullptr;
|
||||
if (mnTab == -1)
|
||||
{
|
||||
pRangeName = rDoc.GetRangeName();
|
||||
pRangeName = &rDoc.GetRangeName();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -120,7 +120,7 @@ ScRangeData* ScNamedRangeObj::GetRangeData_Impl()
|
||||
if (nTab >= 0)
|
||||
pNames = pDocShell->GetDocument().GetRangeName(nTab);
|
||||
else
|
||||
pNames = pDocShell->GetDocument().GetRangeName();
|
||||
pNames = &pDocShell->GetDocument().GetRangeName();
|
||||
if (pNames)
|
||||
{
|
||||
pRet = pNames->findByUpperName(ScGlobal::getCharClass().uppercase(aName));
|
||||
@@ -163,7 +163,7 @@ void ScNamedRangeObj::Modify_Impl( const OUString* pNewName, const ScTokenArray*
|
||||
if (nTab >= 0)
|
||||
pNames = rDoc.GetRangeName(nTab);
|
||||
else
|
||||
pNames = rDoc.GetRangeName();
|
||||
pNames = &rDoc.GetRangeName();
|
||||
if (!pNames)
|
||||
return;
|
||||
|
||||
@@ -785,12 +785,10 @@ rtl::Reference<ScNamedRangeObj> ScGlobalNamedRangesObj::GetObjectByIndex_Impl(sa
|
||||
if (!pDocShell)
|
||||
return nullptr;
|
||||
|
||||
ScRangeName* pNames = pDocShell->GetDocument().GetRangeName();
|
||||
if (!pNames)
|
||||
return nullptr;
|
||||
ScRangeName& rNames = pDocShell->GetDocument().GetRangeName();
|
||||
|
||||
sal_uInt16 nPos = 0;
|
||||
for (const auto& rName : *pNames)
|
||||
for (const auto& rName : rNames)
|
||||
{
|
||||
if (lcl_UserVisibleName(*rName.second))
|
||||
{
|
||||
@@ -811,7 +809,7 @@ rtl::Reference<ScNamedRangeObj> ScGlobalNamedRangesObj::GetObjectByName_Impl(con
|
||||
|
||||
ScRangeName* ScGlobalNamedRangesObj::GetRangeName_Impl()
|
||||
{
|
||||
return pDocShell->GetDocument().GetRangeName();
|
||||
return &pDocShell->GetDocument().GetRangeName();
|
||||
}
|
||||
|
||||
SCTAB ScGlobalNamedRangesObj::GetTab_Impl()
|
||||
|
||||
@@ -3684,13 +3684,10 @@ void ScCellShell::ExecuteDataPilotDialog()
|
||||
pTabViewShell->GetFrameWeld(), bEnableExt));
|
||||
|
||||
// Populate named ranges (if any).
|
||||
ScRangeName* pRangeName = rDoc.GetRangeName();
|
||||
if (pRangeName)
|
||||
{
|
||||
ScRangeName::const_iterator itr = pRangeName->begin(), itrEnd = pRangeName->end();
|
||||
for (; itr != itrEnd; ++itr)
|
||||
pTypeDlg->AppendNamedRange(itr->second->GetName());
|
||||
}
|
||||
ScRangeName& rRangeName = rDoc.GetRangeName();
|
||||
ScRangeName::const_iterator itr = rRangeName.begin(), itrEnd = rRangeName.end();
|
||||
for (; itr != itrEnd; ++itr)
|
||||
pTypeDlg->AppendNamedRange(itr->second->GetName());
|
||||
|
||||
pTypeDlg->StartExecuteAsync([this, pTypeDlg, pTabViewShell,
|
||||
pScMod, pFact, &rDoc, &rMark, aDestPos](int nResult) mutable {
|
||||
|
||||
@@ -520,9 +520,9 @@ void ScDBFunc::DoSubTotals( const ScSubTotalParam& rParam, bool bRecord,
|
||||
InsertDeleteFlags::FORMULA, false, *pUndoDoc );
|
||||
|
||||
// database and other ranges
|
||||
ScRangeName* pDocRange = rDoc.GetRangeName();
|
||||
if (!pDocRange->empty())
|
||||
pUndoRange.reset(new ScRangeName( *pDocRange ));
|
||||
ScRangeName& rDocRange = rDoc.GetRangeName();
|
||||
if (!rDocRange.empty())
|
||||
pUndoRange.reset(new ScRangeName( rDocRange ));
|
||||
ScDBCollection* pDocDB = rDoc.GetDBCollection();
|
||||
if (!pDocDB->empty())
|
||||
pUndoDB.reset(new ScDBCollection( *pDocDB ));
|
||||
@@ -2312,9 +2312,9 @@ void ScDBFunc::RepeatDB( bool bRecord )
|
||||
rDoc.CopyToDocument( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),nTabCount-1, InsertDeleteFlags::FORMULA, false, *pUndoDoc );
|
||||
|
||||
// data base and other ranges
|
||||
ScRangeName* pDocRange = rDoc.GetRangeName();
|
||||
if (!pDocRange->empty())
|
||||
pUndoRange.reset(new ScRangeName( *pDocRange ));
|
||||
ScRangeName& rDocRange = rDoc.GetRangeName();
|
||||
if (!rDocRange.empty())
|
||||
pUndoRange.reset(new ScRangeName( rDocRange ));
|
||||
ScDBCollection* pDocDB = rDoc.GetDBCollection();
|
||||
if (!pDocDB->empty())
|
||||
pUndoDB.reset(new ScDBCollection( *pDocDB ));
|
||||
|
||||
@@ -3136,7 +3136,7 @@ bool ScViewFunc::InsertName( const OUString& rName, const OUString& rSymbol,
|
||||
ScDocShell* pDocSh = GetViewData().GetDocShell();
|
||||
ScDocument& rDoc = pDocSh->GetDocument();
|
||||
SCTAB nTab = GetViewData().CurrentTabForData();
|
||||
ScRangeName* pList = rDoc.GetRangeName();
|
||||
ScRangeName& rList = rDoc.GetRangeName();
|
||||
|
||||
ScRangeData::Type nType = ScRangeData::Type::Name;
|
||||
auto pNewEntry = std::make_unique<ScRangeData>(
|
||||
@@ -3160,15 +3160,15 @@ bool ScViewFunc::InsertName( const OUString& rName, const OUString& rSymbol,
|
||||
rDoc.PreprocessRangeNameUpdate();
|
||||
|
||||
// input available yet? Then remove beforehand (=change)
|
||||
ScRangeData* pData = pList->findByUpperName(ScGlobal::getCharClass().uppercase(rName));
|
||||
ScRangeData* pData = rList.findByUpperName(ScGlobal::getCharClass().uppercase(rName));
|
||||
if (pData)
|
||||
{ // take old Index
|
||||
pNewEntry->SetIndex(pData->GetIndex());
|
||||
pList->erase(*pData);
|
||||
rList.erase(*pData);
|
||||
}
|
||||
|
||||
// don't delete, insert took ownership, even on failure!
|
||||
if ( pList->insert( pNewEntry.release() ) )
|
||||
if ( rList.insert( pNewEntry.release() ) )
|
||||
bOk = true;
|
||||
|
||||
rDoc.CompileHybridFormula();
|
||||
|
||||
Reference in New Issue
Block a user