don't use heap for elements in ScRangeList
no need to store small objects like this out of line.
Also
- add move constructor and move assignment operator
- drop Assign method since it now has the same
signature as push_back
Change-Id: I9a8647d3a11f24166a83d399a358a2bce3b2cb79
Reviewed-on: https://gerrit.libreoffice.org/50899
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
diff --git a/sc/inc/address.hxx b/sc/inc/address.hxx
index a3c7040..ddc8546 100644
--- a/sc/inc/address.hxx
+++ b/sc/inc/address.hxx
@@ -480,7 +480,7 @@ inline bool ValidAddress( const ScAddress& rAddress )
}
// ScRange
class SAL_WARN_UNUSED ScRange
class SAL_WARN_UNUSED ScRange final
{
public:
ScAddress aStart;
diff --git a/sc/inc/rangelst.hxx b/sc/inc/rangelst.hxx
index 4d9fe27..d78c705 100644
--- a/sc/inc/rangelst.hxx
+++ b/sc/inc/rangelst.hxx
@@ -28,20 +28,22 @@
class ScDocument;
class SC_DLLPUBLIC ScRangeList : public SvRefBase
class SAL_WARN_UNUSED SC_DLLPUBLIC ScRangeList final : public SvRefBase
{
public:
ScRangeList();
ScRangeList( const ScRangeList& rList );
ScRangeList( const ScRangeList&& rList );
ScRangeList( const ScRange& rRange );
virtual ~ScRangeList() override;
ScRangeList& operator=(const ScRangeList& rList);
void Append( const ScRange& rRange );
ScRangeList& operator=(ScRangeList&& rList);
ScRefFlags Parse( const OUString&, const ScDocument*,
formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO,
SCTAB nDefaultTab = 0, sal_Unicode cDelimiter = 0 );
ScRefFlags Parse( const OUString&, const ScDocument*,
formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO,
SCTAB nDefaultTab = 0, sal_Unicode cDelimiter = 0 );
void Format( OUString&, ScRefFlags nFlags, ScDocument*,
formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO,
@@ -56,8 +58,8 @@ public:
SCTAB nDz
);
void InsertRow( SCTAB nTab, SCCOL nColStart, SCCOL nColEnd, SCROW nRowPos, SCSIZE nSize );
void InsertCol( SCTAB nTab, SCROW nRowStart, SCROW nRowEnd, SCCOL nColPos, SCSIZE nSize );
void InsertRow( SCTAB nTab, SCCOL nColStart, SCCOL nColEnd, SCROW nRowPos, SCSIZE nSize );
void InsertCol( SCTAB nTab, SCROW nRowStart, SCROW nRowEnd, SCCOL nColPos, SCSIZE nSize );
/** For now this method assumes that nTab1 == nTab2
* The algorithm will be much more complicated if nTab1 != nTab2
@@ -81,23 +83,23 @@ public:
ScRange Combine() const;
bool empty() const;
size_t size() const;
ScRange* operator[](size_t idx);
const ScRange* operator[](size_t idx) const;
ScRange* front();
const ScRange* front() const;
ScRange* back();
const ScRange* back() const;
void push_back(ScRange* p);
bool empty() const { return maRanges.empty(); }
size_t size() const { return maRanges.size(); }
ScRange& operator[](size_t idx) { return maRanges[idx]; }
const ScRange& operator[](size_t idx) const { return maRanges[idx]; }
ScRange& front() { return maRanges.front(); }
const ScRange& front() const { return maRanges.front(); }
ScRange& back() { return maRanges.back(); }
const ScRange& back() const { return maRanges.back(); }
void push_back(const ScRange & rRange);
void swap( ScRangeList& r );
private:
::std::vector<ScRange*> maRanges;
::std::vector<ScRange> maRanges;
SCROW mnMaxRowUsed;
typedef std::vector<ScRange*>::iterator iterator;
typedef std::vector<ScRange*>::const_iterator const_iterator;
typedef std::vector<ScRange>::iterator iterator;
typedef std::vector<ScRange>::const_iterator const_iterator;
};
typedef tools::SvRef<ScRangeList> ScRangeListRef;
@@ -110,7 +112,7 @@ inline std::basic_ostream<charT, traits> & operator <<(std::basic_ostream<charT,
{
if (i > 0)
stream << ",";
stream << *(rRangeList[i]);
stream << rRangeList[i];
}
stream << ")";
diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx
index f99d23df..3f7c931 100644
--- a/sc/qa/unit/helper/qahelper.cxx
+++ b/sc/qa/unit/helper/qahelper.cxx
@@ -53,7 +53,7 @@ std::ostream& operator<<(std::ostream& rStrm, const ScRangeList& rList)
{
rStrm << "ScRangeList: \n";
for(size_t i = 0; i < rList.size(); ++i)
rStrm << *rList[i];
rStrm << rList[i];
return rStrm;
}
@@ -382,14 +382,14 @@ ScRangeList getChartRanges(ScDocument& rDoc, const SdrOle2Obj& rChartObj)
ScRefFlags nRes = aRange.Parse(aRangeReps[i], &rDoc, rDoc.GetAddressConvention());
if (nRes & ScRefFlags::VALID)
// This is a range address.
aRanges.Append(aRange);
aRanges.push_back(aRange);
else
{
// Parse it as a single cell address.
ScAddress aAddr;
nRes = aAddr.Parse(aRangeReps[i], &rDoc, rDoc.GetAddressConvention());
CPPUNIT_ASSERT_MESSAGE("Failed to parse a range representation.", (nRes & ScRefFlags::VALID));
aRanges.Append(aAddr);
aRanges.push_back(aAddr);
}
}
diff --git a/sc/qa/unit/mark_test.cxx b/sc/qa/unit/mark_test.cxx
index a083d48..0c393e9 100644
--- a/sc/qa/unit/mark_test.cxx
+++ b/sc/qa/unit/mark_test.cxx
@@ -120,10 +120,10 @@ static void lcl_GetSortedRanges( const ScRangeList& rRangeList, ScRangeList& rRa
size_t nSize = rRangeList.size();
aRanges.reserve( nSize );
for ( size_t nIdx = 0; nIdx < nSize; ++nIdx )
aRanges.push_back( *rRangeList[nIdx] );
aRanges.push_back( rRangeList[nIdx] );
std::sort( aRanges.begin(), aRanges.end() );
for ( size_t nIdx = 0; nIdx < nSize; ++nIdx )
rRangeListOut.Append( aRanges[nIdx] );
rRangeListOut.push_back( aRanges[nIdx] );
}
void Test::testSimpleMark( const ScRange& rRange, const ScRange& rSelectionCover,
@@ -544,25 +544,25 @@ void Test::testMultiMark_FourRanges()
aData.aMarks.push_back( aSingle4 );
aData.aSelectionCover = ScRange( 0, 0, 0, MAXCOL, MAXROW, 0 );
aData.aLeftEnvelope.Append( ScRange( 9, 5, 0, 9, 10, 0 ) );
aData.aLeftEnvelope.Append( ScRange( 24, 7, 0, 24, 15, 0 ) );
aData.aLeftEnvelope.Append( ScRange( 34, 0, 0, 34, 19, 0 ) );
aData.aLeftEnvelope.Append( ScRange( 34, 21, 0, 34, MAXROW, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 9, 5, 0, 9, 10, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 24, 7, 0, 24, 15, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 34, 0, 0, 34, 19, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 34, 21, 0, 34, MAXROW, 0 ) );
aData.aRightEnvelope.Append( ScRange( 21, 5, 0, 21, 10, 0 ) );
aData.aRightEnvelope.Append( ScRange( 31, 7, 0, 31, 15, 0 ) );
aData.aRightEnvelope.Append( ScRange( 36, 0, 0, 36, 19, 0 ) );
aData.aRightEnvelope.Append( ScRange( 36, 21, 0, 36, MAXROW, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 21, 5, 0, 21, 10, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 31, 7, 0, 31, 15, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 36, 0, 0, 36, 19, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 36, 21, 0, 36, MAXROW, 0 ) );
aData.aTopEnvelope.Append( ScRange( 10, 4, 0, 20, 4, 0 ) );
aData.aTopEnvelope.Append( ScRange( 25, 6, 0, 30, 6, 0 ) );
aData.aTopEnvelope.Append( ScRange( 0, 19, 0, 34, 19, 0 ) );
aData.aTopEnvelope.Append( ScRange( 36, 19, 0, MAXCOL, 19, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 10, 4, 0, 20, 4, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 25, 6, 0, 30, 6, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 0, 19, 0, 34, 19, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 36, 19, 0, MAXCOL, 19, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 10, 11, 0, 20, 11, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 25, 16, 0, 30, 16, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 0, 21, 0, 34, 21, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 36, 21, 0, MAXCOL, 21, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 10, 11, 0, 20, 11, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 25, 16, 0, 30, 16, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 0, 21, 0, 34, 21, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 36, 21, 0, MAXCOL, 21, 0 ) );
MarkArrayTestData aMarkArrayTestData1;
aMarkArrayTestData1.nCol = 5;
@@ -744,29 +744,29 @@ void Test::testMultiMark_NegativeMarking()
aData.aMarks.push_back( aSingle5 );
aData.aSelectionCover = ScRange( 0, 4, 0, MAXCOL, 21, 0 );
aData.aLeftEnvelope.Append( ScRange( 9, 8, 0, 9, 11, 0 ) );
aData.aLeftEnvelope.Append( ScRange( 9, 13, 0, 9, 20, 0 ) );
aData.aLeftEnvelope.Append( ScRange( 18, 10, 0, 18, 14, 0 ) );
aData.aLeftEnvelope.Append( ScRange( 20, 5, 0, 20, 5, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 9, 8, 0, 9, 11, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 9, 13, 0, 9, 20, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 18, 10, 0, 18, 14, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 20, 5, 0, 20, 5, 0 ) );
aData.aRightEnvelope.Append( ScRange( 17, 5, 0, 17, 5, 0 ) );
aData.aRightEnvelope.Append( ScRange( 15, 10, 0, 15, 14, 0 ) );
aData.aRightEnvelope.Append( ScRange( 26, 8, 0, 26, 11, 0 ) );
aData.aRightEnvelope.Append( ScRange( 26, 13, 0, 26, 20, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 17, 5, 0, 17, 5, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 15, 10, 0, 15, 14, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 26, 8, 0, 26, 11, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 26, 13, 0, 26, 20, 0 ) );
aData.aTopEnvelope.Append( ScRange( 0, 4, 0, 16, 4, 0 ) );
aData.aTopEnvelope.Append( ScRange( 21, 4, 0, MAXCOL, 4, 0 ) );
aData.aTopEnvelope.Append( ScRange( 10, 7, 0, 25, 7, 0 ) );
aData.aTopEnvelope.Append( ScRange( 0, 11, 0, 9, 11, 0 ) );
aData.aTopEnvelope.Append( ScRange( 26, 11, 0, MAXCOL, 11, 0 ) );
aData.aTopEnvelope.Append( ScRange( 15, 14, 0, 18, 14, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 0, 4, 0, 16, 4, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 21, 4, 0, MAXCOL, 4, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 10, 7, 0, 25, 7, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 0, 11, 0, 9, 11, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 26, 11, 0, MAXCOL, 11, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 15, 14, 0, 18, 14, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 0, 6, 0, 16, 6, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 21, 6, 0, MAXCOL, 6, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 15, 10, 0, 18, 10, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 0, 13, 0, 9, 13, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 26, 13, 0, MAXCOL, 13, 0 ) );
aData.aBottomEnvelope.Append( ScRange( 10, 21, 0, 25, 21, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 0, 6, 0, 16, 6, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 21, 6, 0, MAXCOL, 6, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 15, 10, 0, 18, 10, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 0, 13, 0, 9, 13, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 26, 13, 0, MAXCOL, 13, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 10, 21, 0, 25, 21, 0 ) );
aData.aColsWithOneMark.emplace_back( 19, 8, 0, 0, 20, 0 );
aData.aColsWithOneMark.emplace_back( 20, 8, 0, 0, 20, 0 );
diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx
index 1e0236a..0858f7a 100644
--- a/sc/qa/unit/rangelst_test.cxx
+++ b/sc/qa/unit/rangelst_test.cxx
@@ -410,24 +410,24 @@ void Test::testDeleteArea_0Ranges()
void Test::testJoin_Case1()
{
ScRangeList aList;
aList.push_back(new ScRange(1,1,0,3,3,0));
aList.push_back(ScRange(1,1,0,3,3,0));
aList.Join(ScRange(4,1,0,6,3,0));
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
CPPUNIT_ASSERT_EQUAL( ScRange(1,1,0,6,3,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL( ScRange(1,1,0,6,3,0), aList[0]);
}
void Test::testJoin_Case2()
{
ScRangeList aList;
aList.push_back(new ScRange(1,1,0,3,3,0));
aList.push_back(new ScRange(4,1,0,6,3,0));
aList.push_back(new ScRange(7,1,0,9,3,0));
aList.push_back(ScRange(1,1,0,3,3,0));
aList.push_back(ScRange(4,1,0,6,3,0));
aList.push_back(ScRange(7,1,0,9,3,0));
aList.Join(*aList[2], true);
aList.Join(aList[2], true);
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,9,3,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,9,3,0), aList[0]);
}
void Test::testJoin_Case3()
@@ -438,7 +438,7 @@ void Test::testJoin_Case3()
// The second one should have been swallowed by the first one
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), aList[0]);
// Add a disjoint one
aList.Join(ScRange(8,8,0,9,9,0));
@@ -446,9 +446,9 @@ void Test::testJoin_Case3()
// Should be two ones now
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
// The first one should still be as is
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), aList[0]);
// Ditto for the second one
CPPUNIT_ASSERT_EQUAL(ScRange(8,8,0,9,9,0), *aList[1]);
CPPUNIT_ASSERT_EQUAL(ScRange(8,8,0,9,9,0), aList[1]);
}
void Test::testJoin_Case4()
@@ -460,14 +460,14 @@ void Test::testJoin_Case4()
// The one range in the list should have been extended
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,2,8,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,2,8,0), aList[0]);
// Join a range that overlaps it and extends it horizontally
aList.Join(ScRange(2,1,0,4,8,0));
// Again, should have just been extended
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,4,8,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,4,8,0), aList[0]);
// And then the same but on top / to the left of existing range
ScRangeList aList2;
@@ -475,12 +475,12 @@ void Test::testJoin_Case4()
aList2.Join(ScRange(4,1,0,8,6,0));
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList2.size());
CPPUNIT_ASSERT_EQUAL(ScRange(4,1,0,8,8,0), *aList2[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(4,1,0,8,8,0), aList2[0]);
aList2.Join(ScRange(1,1,0,6,8,0));
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList2.size());
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,8,8,0), *aList2[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,8,8,0), aList2[0]);
}
void Test::testJoin_Case5()
@@ -491,14 +491,14 @@ void Test::testJoin_Case5()
// Nothing special so far, two disjoint ranges
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,4,4,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(8,0,0,10,4,0), *aList[1]);
CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,4,4,0), aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(8,0,0,10,4,0), aList[1]);
// This should join the two ranges into one
aList.Join(ScRange(5,0,0,9,4,0));
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,10,4,0), *aList[0]);
CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,10,4,0), aList[0]);
}
void Test::testUpdateReference_DeleteRow()
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index d2544ab..2b03df5 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -355,9 +355,9 @@ void Test::testRangeList()
m_pDoc->InsertTab(0, "foo");
ScRangeList aRL;
aRL.Append(ScRange(1,1,0,3,10,0));
aRL.push_back(ScRange(1,1,0,3,10,0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("List should have one range.", size_t(1), aRL.size());
const ScRange* p = aRL[0];
const ScRange* p = &aRL[0];
CPPUNIT_ASSERT_MESSAGE("Failed to get the range object.", p);
CPPUNIT_ASSERT_MESSAGE("Wrong range.", p->aStart == ScAddress(1,1,0) && p->aEnd == ScAddress(3,10,0));
@@ -582,8 +582,8 @@ void Test::testSelectionFunction()
// Select B2:B8 & D2:D8 disjoint region.
ScRangeList aRanges;
aRanges.Append(ScRange(1,1,0,1,7,0)); // B2:B8
aRanges.Append(ScRange(3,1,0,3,7,0)); // D2:D8
aRanges.push_back(ScRange(1,1,0,1,7,0)); // B2:B8
aRanges.push_back(ScRange(3,1,0,3,7,0)); // D2:D8
ScMarkData aMark;
aMark.MarkFromRangeList(aRanges, true);
@@ -703,8 +703,8 @@ void Test::testSelectionFunction()
// Mark B2 and C3 on first sheet.
aRanges.RemoveAll();
aRanges.Append(ScRange(1,1,0)); // B2
aRanges.Append(ScRange(2,2,0)); // C3
aRanges.push_back(ScRange(1,1,0)); // B2
aRanges.push_back(ScRange(2,2,0)); // C3
aMark.MarkFromRangeList(aRanges, true);
// Additionally select third sheet.
aMark.SelectTable(2, true);
@@ -3566,9 +3566,9 @@ void Test::testCopyPasteMultiRange()
// Copy A2:B2, A4:B4, and A6:B6 to clipboard.
ScDocument aClipDoc(SCDOCMODE_CLIP);
ScClipParam aClipParam;
aClipParam.maRanges.Append(ScRange(0,1,0,1,1,0)); // A2:B2
aClipParam.maRanges.Append(ScRange(0,3,0,1,3,0)); // A4:B4
aClipParam.maRanges.Append(ScRange(0,5,0,1,5,0)); // A6:B6
aClipParam.maRanges.push_back(ScRange(0,1,0,1,1,0)); // A2:B2
aClipParam.maRanges.push_back(ScRange(0,3,0,1,3,0)); // A4:B4
aClipParam.maRanges.push_back(ScRange(0,5,0,1,5,0)); // A6:B6
aClipParam.meDirection = ScClipParam::Row;
m_pDoc->CopyToClip(aClipParam, &aClipDoc, &aMark, false, false);
diff --git a/sc/qa/unit/ucalc_condformat.cxx b/sc/qa/unit/ucalc_condformat.cxx
index 0e8721a..148e434 100644
--- a/sc/qa/unit/ucalc_condformat.cxx
+++ b/sc/qa/unit/ucalc_condformat.cxx
@@ -187,7 +187,7 @@ void Test::testCondFormatInsertDeleteSheets()
// ... and its range is B2:B4.
ScRangeList aCheckRange = pCheck->GetRange();
CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size());
const ScRange* pRange = aCheckRange[0];
const ScRange* pRange = &aCheckRange[0];
CPPUNIT_ASSERT(pRange);
CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4.", ScRange(1,1,0,1,3,0), *pRange);
@@ -205,7 +205,7 @@ void Test::testCondFormatInsertDeleteSheets()
// Make sure the range also got shifted.
aCheckRange = pCheck->GetRange();
CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size());
pRange = aCheckRange[0];
pRange = &aCheckRange[0];
CPPUNIT_ASSERT(pRange);
CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4 on the 2nd sheet after the sheet insertion.", ScRange(1,1,1,1,3,1), *pRange);
@@ -221,7 +221,7 @@ void Test::testCondFormatInsertDeleteSheets()
// Make sure the range got shifted back.
aCheckRange = pCheck->GetRange();
CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size());
pRange = aCheckRange[0];
pRange = &aCheckRange[0];
CPPUNIT_ASSERT(pRange);
CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4 on the 1st sheet after the sheet removal.", ScRange(1,1,0,1,3,0), *pRange);
@@ -238,7 +238,7 @@ void Test::testCondFormatInsertDeleteSheets()
aCheckRange = pCheck->GetRange();
CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size());
pRange = aCheckRange[0];
pRange = &aCheckRange[0];
CPPUNIT_ASSERT(pRange);
CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4 on the 2nd sheet after the undo of the sheet removal.", ScRange(1,1,1,1,3,1), *pRange);
diff --git a/sc/source/core/data/clipparam.cxx b/sc/source/core/data/clipparam.cxx
index 51738c9..b33c499 100644
--- a/sc/source/core/data/clipparam.cxx
+++ b/sc/source/core/data/clipparam.cxx
@@ -32,7 +32,7 @@ ScClipParam::ScClipParam(const ScRange& rRange, bool bCutMode) :
mbCutMode(bCutMode),
mnSourceDocID(0)
{
maRanges.Append(rRange);
maRanges.push_back(rRange);
}
bool ScClipParam::isMultiRange() const
@@ -52,15 +52,15 @@ SCCOL ScClipParam::getPasteColSize()
SCCOL nColSize = 0;
for ( size_t i = 0, nListSize = maRanges.size(); i < nListSize; ++i )
{
ScRange* p = maRanges[ i ];
nColSize += p->aEnd.Col() - p->aStart.Col() + 1;
const ScRange& rRange = maRanges[ i ];
nColSize += rRange.aEnd.Col() - rRange.aStart.Col() + 1;
}
return nColSize;
}
case ScClipParam::Row:
{
// We assume that all ranges have identical column size.
const ScRange& rRange = *maRanges.front();
const ScRange& rRange = maRanges.front();
return rRange.aEnd.Col() - rRange.aStart.Col() + 1;
}
case ScClipParam::Unspecified:
@@ -80,7 +80,7 @@ SCROW ScClipParam::getPasteRowSize()
case ScClipParam::Column:
{
// We assume that all ranges have identical row size.
const ScRange& rRange = *maRanges.front();
const ScRange& rRange = maRanges.front();
return rRange.aEnd.Row() - rRange.aStart.Row() + 1;
}
case ScClipParam::Row:
@@ -88,8 +88,8 @@ SCROW ScClipParam::getPasteRowSize()
SCROW nRowSize = 0;
for ( size_t i = 0, nListSize = maRanges.size(); i < nListSize; ++i )
{
ScRange* p = maRanges[ i ];
nRowSize += p->aEnd.Row() - p->aStart.Row() + 1;
const ScRange& rRange = maRanges[ i ];
nRowSize += rRange.aEnd.Row() - rRange.aStart.Row() + 1;
}
return nRowSize;
}
@@ -123,24 +123,24 @@ void ScClipParam::transpose()
ScRangeList aNewRanges;
if (!maRanges.empty())
{
ScRange* p = maRanges.front();
SCCOL nColOrigin = p->aStart.Col();
SCROW nRowOrigin = p->aStart.Row();
const ScRange & rRange1 = maRanges.front();
SCCOL nColOrigin = rRange1.aStart.Col();
SCROW nRowOrigin = rRange1.aStart.Row();
for ( size_t i = 0, n = maRanges.size(); i < n; ++i )
{
p = maRanges[ i ];
SCCOL nColDelta = p->aStart.Col() - nColOrigin;
SCROW nRowDelta = p->aStart.Row() - nRowOrigin;
const ScRange & rRange = maRanges[ i ];
SCCOL nColDelta = rRange.aStart.Col() - nColOrigin;
SCROW nRowDelta = rRange.aStart.Row() - nRowOrigin;
SCCOL nCol1 = 0;
SCCOL nCol2 = static_cast<SCCOL>(p->aEnd.Row() - p->aStart.Row());
SCCOL nCol2 = static_cast<SCCOL>(rRange.aEnd.Row() - rRange.aStart.Row());
SCROW nRow1 = 0;
SCROW nRow2 = static_cast<SCROW>(p->aEnd.Col() - p->aStart.Col());
SCROW nRow2 = static_cast<SCROW>(rRange.aEnd.Col() - rRange.aStart.Col());
nCol1 += static_cast<SCCOL>(nRowDelta);
nCol2 += static_cast<SCCOL>(nRowDelta);
nRow1 += static_cast<SCROW>(nColDelta);
nRow2 += static_cast<SCROW>(nColDelta);
aNewRanges.push_back( new ScRange(nCol1, nRow1, p->aStart.Tab(), nCol2, nRow2, p->aStart.Tab() ) );
aNewRanges.push_back( ScRange(nCol1, nRow1, rRange.aStart.Tab(), nCol2, nRow2, rRange.aStart.Tab() ) );
}
}
maRanges = aNewRanges;
diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx
index a07f3ac..8826fad 100644
--- a/sc/source/core/data/colorscale.cxx
+++ b/sc/source/core/data/colorscale.cxx
@@ -393,13 +393,13 @@ std::vector<double>& ScColorFormat::getValues() const
const ScRangeList& aRanges = GetRange();
for(size_t i = 0; i < n; ++i)
{
const ScRange* pRange = aRanges[i];
SCTAB nTab = pRange->aStart.Tab();
const ScRange & rRange = aRanges[i];
SCTAB nTab = rRange.aStart.Tab();
SCCOL nColStart = pRange->aStart.Col();
SCROW nRowStart = pRange->aStart.Row();
SCCOL nColEnd = pRange->aEnd.Col();
SCROW nRowEnd = pRange->aEnd.Row();
SCCOL nColStart = rRange.aStart.Col();
SCROW nRowStart = rRange.aStart.Row();
SCCOL nColEnd = rRange.aEnd.Col();
SCROW nRowEnd = rRange.aEnd.Row();
if(nRowEnd == MAXROW)
{
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index 412d623..2dad0de 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -207,7 +207,7 @@ bool ScColumn::HasSelectionMatrixFragment(const ScMarkData& rMark) const
ScRangeList aRanges = rMark.GetMarkedRanges();
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
{
const ScRange& r = *aRanges[i];
const ScRange& r = aRanges[i];
if (nTab < r.aStart.Tab() || r.aEnd.Tab() < nTab)
continue;
diff --git a/sc/source/core/data/columnspanset.cxx b/sc/source/core/data/columnspanset.cxx
index a3f338a..d7d7718 100644
--- a/sc/source/core/data/columnspanset.cxx
+++ b/sc/source/core/data/columnspanset.cxx
@@ -337,15 +337,15 @@ void SingleColumnSpanSet::scan(const ScRangeList& rRanges, SCTAB nTab, SCCOL nCo
{
for (size_t i = 0, n = rRanges.size(); i < n; ++i)
{
const ScRange* p = rRanges[i];
if (nTab < p->aStart.Tab() || p->aEnd.Tab() < nTab)
const ScRange & rRange = rRanges[i];
if (nTab < rRange.aStart.Tab() || rRange.aEnd.Tab() < nTab)
continue;
if (nCol < p->aStart.Col() || p->aEnd.Col() < nCol)
if (nCol < rRange.aStart.Col() || rRange.aEnd.Col() < nCol)
// This column is not in this range. Skip it.
continue;
maSpans.insert_back(p->aStart.Row(), p->aEnd.Row()+1, true);
maSpans.insert_back(rRange.aStart.Row(), rRange.aEnd.Row()+1, true);
}
}
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index c09e5e9..c07d767 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -146,11 +146,8 @@ void start_listen_to(ScFormulaListener& rListener, const ScTokenArray* pTokens,
size_t n = rRangeList.size();
for (size_t i = 0; i < n; ++i)
{
const ScRange* pRange = rRangeList[i];
if (!pRange)
continue;
rListener.addTokenArray(pTokens, *pRange);
const ScRange & rRange = rRangeList[i];
rListener.addTokenArray(pTokens, rRange);
}
}
@@ -784,12 +781,12 @@ void ScConditionEntry::FillCache() const
size_t nListCount = rRanges.size();
for( size_t i = 0; i < nListCount; i++ )
{
const ScRange *aRange = rRanges[i];
SCROW nRow = aRange->aEnd.Row();
SCCOL nCol = aRange->aEnd.Col();
SCCOL nColStart = aRange->aStart.Col();
SCROW nRowStart = aRange->aStart.Row();
SCTAB nTab = aRange->aStart.Tab();
const ScRange & rRange = rRanges[i];
SCROW nRow = rRange.aEnd.Row();
SCCOL nCol = rRange.aEnd.Col();
SCCOL nColStart = rRange.aStart.Col();
SCROW nRowStart = rRange.aStart.Row();
SCTAB nTab = rRange.aStart.Tab();
// temporary fix to workaround slow duplicate entry
// conditions, prevent to use a whole row
@@ -1899,15 +1896,15 @@ void ScConditionalFormat::UpdateInsertTab( sc::RefUpdateInsertTabContext& rCxt )
for (size_t i = 0, n = maRanges.size(); i < n; ++i)
{
// We assume that the start and end sheet indices are equal.
ScRange* pRange = maRanges[i];
SCTAB nTab = pRange->aStart.Tab();
ScRange & rRange = maRanges[i];
SCTAB nTab = rRange.aStart.Tab();
if (nTab < rCxt.mnInsertPos)
// Unaffected.
continue;
pRange->aStart.IncTab(rCxt.mnSheets);
pRange->aEnd.IncTab(rCxt.mnSheets);
rRange.aStart.IncTab(rCxt.mnSheets);
rRange.aEnd.IncTab(rCxt.mnSheets);
}
for (auto it = maEntries.cbegin(); it != maEntries.cend(); ++it)
@@ -1919,8 +1916,8 @@ void ScConditionalFormat::UpdateDeleteTab( sc::RefUpdateDeleteTabContext& rCxt )
for (size_t i = 0, n = maRanges.size(); i < n; ++i)
{
// We assume that the start and end sheet indices are equal.
ScRange* pRange = maRanges[i];
SCTAB nTab = pRange->aStart.Tab();
ScRange & rRange = maRanges[i];
SCTAB nTab = rRange.aStart.Tab();
if (nTab < rCxt.mnDeletePos)
// Left of the deleted sheet(s). Unaffected.
@@ -1929,14 +1926,14 @@ void ScConditionalFormat::UpdateDeleteTab( sc::RefUpdateDeleteTabContext& rCxt )
if (nTab <= rCxt.mnDeletePos+rCxt.mnSheets-1)
{
// On the deleted sheet(s).
pRange->aStart.SetTab(-1);
pRange->aEnd.SetTab(-1);
rRange.aStart.SetTab(-1);
rRange.aEnd.SetTab(-1);
continue;
}
// Right of the deleted sheet(s). Adjust the sheet indices.
pRange->aStart.IncTab(-1*rCxt.mnSheets);
pRange->aEnd.IncTab(-1*rCxt.mnSheets);
rRange.aStart.IncTab(-1*rCxt.mnSheets);
rRange.aEnd.IncTab(-1*rCxt.mnSheets);
}
for (auto it = maEntries.cbegin(); it != maEntries.cend(); ++it)
@@ -1950,8 +1947,8 @@ void ScConditionalFormat::UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt )
SCTAB nMaxTab = std::max<SCTAB>(rCxt.mnOldPos, rCxt.mnNewPos);
for(size_t i = 0; i < n; ++i)
{
ScRange* pRange = maRanges[i];
SCTAB nTab = pRange->aStart.Tab();
ScRange & rRange = maRanges[i];
SCTAB nTab = rRange.aStart.Tab();
if(nTab < nMinTab || nTab > nMaxTab)
{
continue;
@@ -1959,20 +1956,20 @@ void ScConditionalFormat::UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt )
if (nTab == rCxt.mnOldPos)
{
pRange->aStart.SetTab(rCxt.mnNewPos);
pRange->aEnd.SetTab(rCxt.mnNewPos);
rRange.aStart.SetTab(rCxt.mnNewPos);
rRange.aEnd.SetTab(rCxt.mnNewPos);
continue;
}
if (rCxt.mnNewPos < rCxt.mnOldPos)
{
pRange->aStart.IncTab();
pRange->aEnd.IncTab();
rRange.aStart.IncTab();
rRange.aEnd.IncTab();
}
else
{
pRange->aStart.IncTab(-1);
pRange->aEnd.IncTab(-1);
rRange.aStart.IncTab(-1);
rRange.aEnd.IncTab(-1);
}
}
@@ -1985,7 +1982,7 @@ void ScConditionalFormat::DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCR
if (maRanges.empty())
return;
SCTAB nTab = maRanges[0]->aStart.Tab();
SCTAB nTab = maRanges[0].aStart.Tab();
maRanges.DeleteArea( nCol1, nRow1, nTab, nCol2, nRow2, nTab );
}
@@ -2204,8 +2201,7 @@ ScRangeList ScConditionalFormatList::GetCombinedRange() const
const ScRangeList& rRange = itr->GetRange();
for (size_t i = 0, n = rRange.size(); i < n; ++i)
{
if (rRange[i])
aRange.Join(*rRange[i]);
aRange.Join(rRange[i]);
}
}
return aRange;
@@ -2228,7 +2224,7 @@ void ScConditionalFormatList::AddToDocument(ScDocument* pDoc) const
if (rRange.empty())
continue;
SCTAB nTab = rRange.front()->aStart.Tab();
SCTAB nTab = rRange.front().aStart.Tab();
pDoc->AddCondFormatData(rRange, nTab, itr->GetKey());
}
}
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index b4f300b..ff79d99 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -824,8 +824,8 @@ void ScDocument::CopyScenario( SCTAB nSrcTab, SCTAB nDestTab, bool bNewScenario
bool bTouched = false;
for ( size_t nR=0, nRangeCount = aRanges.size(); nR < nRangeCount && !bTouched; nR++ )
{
const ScRange* pRange = aRanges[ nR ];
if ( maTabs[nTab]->HasScenarioRange( *pRange ) )
const ScRange& rRange = aRanges[ nR ];
if ( maTabs[nTab]->HasScenarioRange( rRange ) )
bTouched = true;
}
if (bTouched)
@@ -1117,7 +1117,7 @@ void ScDocument::UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDo
ScRange aSource;
ScClipParam& rClipParam = GetClipParam();
if (!rClipParam.maRanges.empty())
aSource = *rClipParam.maRanges.front();
aSource = rClipParam.maRanges.front();
ScAddress aDest = rDestPos;
SCTAB nClipTab = 0;
diff --git a/sc/source/core/data/documen5.cxx b/sc/source/core/data/documen5.cxx
index f92b740..bb46fe8 100644
--- a/sc/source/core/data/documen5.cxx
+++ b/sc/source/core/data/documen5.cxx
@@ -137,8 +137,7 @@ void ScDocument::UpdateChartArea( const OUString& rChartName,
const ScRange& rNewArea, bool bColHeaders, bool bRowHeaders,
bool bAdd )
{
ScRangeListRef aRLR( new ScRangeList );
aRLR->Append( rNewArea );
ScRangeListRef aRLR( new ScRangeList(rNewArea) );
UpdateChartArea( rChartName, aRLR, bColHeaders, bRowHeaders, bAdd );
}
@@ -295,7 +294,7 @@ void ScDocument::UpdateChartArea( const OUString& rChartName,
aNewRanges->Parse( aRangesStr, this );
for ( size_t nAdd = 0, nAddCount = rNewList->size(); nAdd < nAddCount; ++nAdd )
aNewRanges->Append( *(*rNewList)[nAdd] );
aNewRanges->push_back( (*rNewList)[nAdd] );
}
else
{
@@ -388,7 +387,7 @@ void ScDocument::RestoreChartListener( const OUString& rName )
ScRange aRange;
ScAddress::Details aDetails(GetAddressConvention(), 0, 0);
if ( aRange.ParseAny( aRepresentations[i], this, aDetails ) & ScRefFlags::VALID )
aRanges->Append( aRange );
aRanges->push_back( aRange );
}
pChartListenerCollection->ChangeListening( rName, aRanges );
@@ -414,13 +413,13 @@ void ScDocument::UpdateChartRef( UpdateRefMode eUpdateRefMode,
bool bDataChanged = false;
for ( size_t i = 0, nListSize = aRLR->size(); i < nListSize; ++i )
{
ScRange* pR = (*aRLR)[i];
SCCOL theCol1 = pR->aStart.Col();
SCROW theRow1 = pR->aStart.Row();
SCTAB theTab1 = pR->aStart.Tab();
SCCOL theCol2 = pR->aEnd.Col();
SCROW theRow2 = pR->aEnd.Row();
SCTAB theTab2 = pR->aEnd.Tab();
ScRange& rRange = (*aRLR)[i];
SCCOL theCol1 = rRange.aStart.Col();
SCROW theRow1 = rRange.aStart.Row();
SCTAB theTab1 = rRange.aStart.Tab();
SCCOL theCol2 = rRange.aEnd.Col();
SCROW theRow2 = rRange.aEnd.Row();
SCTAB theTab2 = rRange.aEnd.Tab();
ScRefUpdateRes eRes = ScRefUpdate::Update(
this, eUpdateRefMode,
nCol1,nRow1,nTab1, nCol2,nRow2,nTab2,
@@ -430,24 +429,24 @@ void ScDocument::UpdateChartRef( UpdateRefMode eUpdateRefMode,
if ( eRes != UR_NOTHING )
{
bChanged = true;
aNewRLR->Append( ScRange(
aNewRLR->push_back( ScRange(
theCol1, theRow1, theTab1,
theCol2, theRow2, theTab2 ));
if ( eUpdateRefMode == URM_INSDEL
&& !bDataChanged
&& (eRes == UR_INVALID ||
((pR->aEnd.Col() - pR->aStart.Col()
((rRange.aEnd.Col() - rRange.aStart.Col()
!= theCol2 - theCol1)
|| (pR->aEnd.Row() - pR->aStart.Row()
|| (rRange.aEnd.Row() - rRange.aStart.Row()
!= theRow2 - theRow1)
|| (pR->aEnd.Tab() - pR->aStart.Tab()
|| (rRange.aEnd.Tab() - rRange.aStart.Tab()
!= theTab2 - theTab1))) )
{
bDataChanged = true;
}
}
else
aNewRLR->Append( *pR );
aNewRLR->push_back( rRange );
}
if ( bChanged )
{
diff --git a/sc/source/core/data/documen6.cxx b/sc/source/core/data/documen6.cxx
index 0a882e3..d4b8a41 100644
--- a/sc/source/core/data/documen6.cxx
+++ b/sc/source/core/data/documen6.cxx
@@ -191,7 +191,7 @@ SvtScriptType ScDocument::GetRangeScriptType( const ScRangeList& rRanges )
sc::ColumnSpanSet aSet(false);
for (size_t i = 0, n = rRanges.size(); i < n; ++i)
{
const ScRange& rRange = *rRanges[i];
const ScRange& rRange = rRanges[i];
SCTAB nTab = rRange.aStart.Tab();
SCROW nRow1 = rRange.aStart.Row();
SCROW nRow2 = rRange.aEnd.Row();
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 7ebdb40..aa1ef71 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -1151,7 +1151,7 @@ void ScDocument::LimitChartIfAll( ScRangeListRef& rRangeList )
{
for ( size_t i = 0, nCount = rRangeList->size(); i < nCount; i++ )
{
ScRange aRange( *(*rRangeList)[i] );
ScRange aRange( (*rRangeList)[i] );
if ( ( aRange.aStart.Col() == 0 && aRange.aEnd.Col() == MAXCOL ) ||
( aRange.aStart.Row() == 0 && aRange.aEnd.Row() == MAXROW ) )
{
@@ -1167,7 +1167,7 @@ void ScDocument::LimitChartIfAll( ScRangeListRef& rRangeList )
aRange.aEnd.SetCol( nEndCol );
aRange.aEnd.SetRow( nEndRow );
}
aNew->Append(aRange);
aNew->push_back(aRange);
}
}
else
@@ -2330,7 +2330,7 @@ void ScDocument::CopyTabToClip(SCCOL nCol1, SCROW nRow1,
ScClipParam& rClipParam = pClipDoc->GetClipParam();
pClipDoc->aDocName = aDocName;
rClipParam.maRanges.RemoveAll();
rClipParam.maRanges.Append(ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0));
rClipParam.maRanges.push_back(ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0));
pClipDoc->ResetClip( this, nTab );
sc::CopyToClipContext aCxt(*pClipDoc, false);
@@ -2748,7 +2748,7 @@ void ScDocument::CopyNonFilteredFromClip(
SCROW nSourceRow = rClipStartRow;
SCROW nSourceEnd = 0;
if (!rCxt.getClipDoc()->GetClipParam().maRanges.empty())
nSourceEnd = rCxt.getClipDoc()->GetClipParam().maRanges.front()->aEnd.Row();
nSourceEnd = rCxt.getClipDoc()->GetClipParam().maRanges.front().aEnd.Row();
SCROW nDestRow = nRow1;
while ( nSourceRow <= nSourceEnd && nDestRow <= nRow2 )
@@ -2885,7 +2885,7 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, const ScMarkData& rMar
ScRangeList aLocalRangeList;
if (!pDestRanges)
{
aLocalRangeList.Append( rDestRange);
aLocalRangeList.push_back( rDestRange);
pDestRanges = &aLocalRangeList;
}
@@ -2898,11 +2898,11 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, const ScMarkData& rMar
SCROW nClipEndRow = aClipRange.aEnd.Row();
for ( size_t nRange = 0; nRange < pDestRanges->size(); ++nRange )
{
const ScRange* pRange = (*pDestRanges)[nRange];
SCCOL nCol1 = pRange->aStart.Col();
SCROW nRow1 = pRange->aStart.Row();
SCCOL nCol2 = pRange->aEnd.Col();
SCROW nRow2 = pRange->aEnd.Row();
const ScRange & rRange = (*pDestRanges)[nRange];
SCCOL nCol1 = rRange.aStart.Col();
SCROW nRow1 = rRange.aStart.Row();
SCCOL nCol2 = rRange.aEnd.Col();
SCROW nRow2 = rRange.aEnd.Row();
if (bSkipAttrForEmpty)
{
@@ -3067,12 +3067,12 @@ void ScDocument::CopyMultiRangeFromClip(
for (size_t i = 0, n = rClipParam.maRanges.size(); i < n; ++i)
{
ScRange* p = rClipParam.maRanges[i];
const ScRange & rRange = rClipParam.maRanges[i];
SCROW nRowCount = p->aEnd.Row() - p->aStart.Row() + 1;
SCCOL nDx = static_cast<SCCOL>(nCol1 - p->aStart.Col());
SCROW nDy = static_cast<SCROW>(nRow1 - p->aStart.Row());
SCCOL nCol2 = nCol1 + p->aEnd.Col() - p->aStart.Col();
SCROW nRowCount = rRange.aEnd.Row() - rRange.aStart.Row() + 1;
SCCOL nDx = static_cast<SCCOL>(nCol1 - rRange.aStart.Col());
SCROW nDy = static_cast<SCROW>(nRow1 - rRange.aStart.Row());
SCCOL nCol2 = nCol1 + rRange.aEnd.Col() - rRange.aStart.Col();
SCROW nEndRow = nRow1 + nRowCount - 1;
CopyBlockFromClip(aCxt, nCol1, nRow1, nCol2, nEndRow, rMark, nDx, nDy);
@@ -3084,7 +3084,7 @@ void ScDocument::CopyMultiRangeFromClip(
nRow1 += nRowCount;
break;
case ScClipParam::Column:
nCol1 += p->aEnd.Col() - p->aStart.Col() + 1;
nCol1 += rRange.aEnd.Col() - rRange.aStart.Col() + 1;
break;
default:
;
@@ -3119,7 +3119,7 @@ void ScDocument::SetClipArea( const ScRange& rArea, bool bCut )
{
ScClipParam& rClipParam = GetClipParam();
rClipParam.maRanges.RemoveAll();
rClipParam.maRanges.Append(rArea);
rClipParam.maRanges.push_back(rArea);
rClipParam.mbCutMode = bCut;
}
else
@@ -3141,22 +3141,22 @@ void ScDocument::GetClipArea(SCCOL& nClipX, SCROW& nClipY, bool bIncludeFiltered
// No clip range. Bail out.
return;
ScRange* p = rClipRanges.front();
SCCOL nStartCol = p->aStart.Col();
SCCOL nEndCol = p->aEnd.Col();
SCROW nStartRow = p->aStart.Row();
SCROW nEndRow = p->aEnd.Row();
ScRange & rRange = rClipRanges.front();
SCCOL nStartCol = rRange.aStart.Col();
SCCOL nEndCol = rRange.aEnd.Col();
SCROW nStartRow = rRange.aStart.Row();
SCROW nEndRow = rRange.aEnd.Row();
for ( size_t i = 1, n = rClipRanges.size(); i < n; ++i )
{
p = rClipRanges[ i ];
if (p->aStart.Col() < nStartCol)
nStartCol = p->aStart.Col();
if (p->aStart.Row() < nStartRow)
nStartRow = p->aStart.Row();
if (p->aEnd.Col() > nEndCol)
nEndCol = p->aEnd.Col();
if (p->aEnd.Row() < nEndRow)
nEndRow = p->aEnd.Row();
rRange = rClipRanges[ i ];
if (rRange.aStart.Col() < nStartCol)
nStartCol = rRange.aStart.Col();
if (rRange.aStart.Row() < nStartRow)
nStartRow = rRange.aStart.Row();
if (rRange.aEnd.Col() > nEndCol)
nEndCol = rRange.aEnd.Col();
if (rRange.aEnd.Row() < nEndRow)
nEndRow = rRange.aEnd.Row();
}
nClipX = nEndCol - nStartCol;
@@ -3187,8 +3187,8 @@ void ScDocument::GetClipStart(SCCOL& nClipX, SCROW& nClipY)
ScRangeList& rClipRanges = GetClipParam().maRanges;
if ( !rClipRanges.empty() )
{
nClipX = rClipRanges.front()->aStart.Col();
nClipY = rClipRanges.front()->aStart.Row();
nClipX = rClipRanges.front().aStart.Col();
nClipY = rClipRanges.front().aStart.Row();
}
}
else
@@ -3210,8 +3210,8 @@ bool ScDocument::HasClipFilteredRows()
for ( size_t i = 0, n = rClipRanges.size(); i < n; ++i )
{
ScRange* p = rClipRanges[ i ];
bool bAnswer = maTabs[nCountTab]->HasFilteredRows(p->aStart.Row(), p->aEnd.Row());
ScRange & rRange = rClipRanges[ i ];
bool bAnswer = maTabs[nCountTab]->HasFilteredRows(rRange.aStart.Row(), rRange.aEnd.Row());
if (bAnswer)
return true;
}
@@ -3910,7 +3910,7 @@ void ScDocument::InterpretDirtyCells( const ScRangeList& rRanges )
for (size_t nPos=0, nRangeCount = rRanges.size(); nPos < nRangeCount; nPos++)
{
const ScRange& rRange = *rRanges[nPos];
const ScRange& rRange = rRanges[nPos];
for (SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab)
{
ScTable* pTab = FetchTable(nTab);
@@ -5104,16 +5104,16 @@ void ScDocument::GetSelectionFrame( const ScMarkData& rMark,
bool bMultipleRows = false, bMultipleCols = false;
for( size_t nRangeIdx = 0; nRangeIdx < nRangeCount; ++nRangeIdx )
{
const ScRange* pRange = aRangeList[ nRangeIdx ];
bMultipleRows = ( bMultipleRows || ( pRange->aStart.Row() != pRange->aEnd.Row() ) );
bMultipleCols = ( bMultipleCols || ( pRange->aStart.Col() != pRange->aEnd.Col() ) );
const ScRange rRange = aRangeList[ nRangeIdx ];
bMultipleRows = ( bMultipleRows || ( rRange.aStart.Row() != rRange.aEnd.Row() ) );
bMultipleCols = ( bMultipleCols || ( rRange.aStart.Col() != rRange.aEnd.Col() ) );
SCTAB nMax = static_cast<SCTAB>(maTabs.size());
ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
for (; itr != itrEnd && *itr < nMax; ++itr)
if (maTabs[*itr])
maTabs[*itr]->MergeBlockFrame( &rLineOuter, &rLineInner, aFlags,
pRange->aStart.Col(), pRange->aStart.Row(),
pRange->aEnd.Col(), pRange->aEnd.Row() );
rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row() );
}
rLineInner.EnableHor( bMultipleRows );
rLineInner.EnableVer( bMultipleCols );
@@ -5725,10 +5725,10 @@ void ScDocument::ApplySelectionFrame( const ScMarkData& rMark,
{
for ( size_t j=0; j < nRangeCount; j++ )
{
ScRange aRange = *aRangeList[ j ];
const ScRange & rRange = aRangeList[ j ];
maTabs[*itr]->ApplyBlockFrame( rLineOuter, pLineInner,
aRange.aStart.Col(), aRange.aStart.Row(),
aRange.aEnd.Col(), aRange.aEnd.Row() );
rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row() );
}
}
}
@@ -5780,34 +5780,34 @@ void ScDocument::ApplySelectionFrame( const ScMarkData& rMark,
size_t nEnvelopeRangeCount = rRangeListTopEnvelope.size();
for ( size_t j=0; j < nEnvelopeRangeCount; j++ )
{
const ScRange* pRange = rRangeListTopEnvelope[ j ];
const ScRange & rRange = rRangeListTopEnvelope[ j ];
maTabs[*itr1]->ApplyBlockFrame( aTop, &aTopInfo,
pRange->aStart.Col(), pRange->aStart.Row(),
pRange->aEnd.Col(), pRange->aEnd.Row() );
rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row() );
}
nEnvelopeRangeCount = rRangeListBottomEnvelope.size();
for ( size_t j=0; j < nEnvelopeRangeCount; j++ )
{
const ScRange* pRange = rRangeListBottomEnvelope[ j ];
const ScRange & rRange = rRangeListBottomEnvelope[ j ];
maTabs[*itr1]->ApplyBlockFrame( aBottom, &aBottomInfo,
pRange->aStart.Col(), pRange->aStart.Row(),
pRange->aEnd.Col(), pRange->aEnd.Row() );
rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row() );
}
nEnvelopeRangeCount = rRangeListLeftEnvelope.size();
for ( size_t j=0; j < nEnvelopeRangeCount; j++ )
{
const ScRange* pRange = rRangeListLeftEnvelope[ j ];
const ScRange & rRange = rRangeListLeftEnvelope[ j ];
maTabs[*itr1]->ApplyBlockFrame( aLeft, &aLeftInfo,
pRange->aStart.Col(), pRange->aStart.Row(),
pRange->aEnd.Col(), pRange->aEnd.Row() );
rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row() );
}
nEnvelopeRangeCount = rRangeListRightEnvelope.size();
for ( size_t j=0; j < nEnvelopeRangeCount; j++ )
{
const ScRange* pRange = rRangeListRightEnvelope[ j ];
const ScRange & rRange = rRangeListRightEnvelope[ j ];
maTabs[*itr1]->ApplyBlockFrame( aRight, &aRightInfo,
pRange->aStart.Col(), pRange->aStart.Row(),
pRange->aEnd.Col(), pRange->aEnd.Row() );
rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row() );
}
}
}
@@ -5892,9 +5892,8 @@ void ScDocument::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData&
rMark.FillRangeListWithMarks( &aRangeList, false);
for (size_t i = 0; i < aRangeList.size(); ++i)
{
const ScRange* pRange = aRangeList[i];
if (pRange)
EndListeningIntersectedGroups( aCxt, *pRange, &aGroupPos);
const ScRange & rRange = aRangeList[i];
EndListeningIntersectedGroups( aCxt, rRange, &aGroupPos);
}
aCxt.purgeEmptyBroadcasters();
}
@@ -5920,9 +5919,7 @@ void ScDocument::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData&
rMark.FillRangeListWithMarks( &aRangeList, false);
for (size_t i = 0; i < aRangeList.size(); ++i)
{
const ScRange* pRange = aRangeList[i];
if (pRange)
SetDirty( *pRange, true);
SetDirty( aRangeList[i], true);
}
//Notify listeners on top and bottom of the group that has been split
for (size_t i = 0; i < aGroupPos.size(); ++i) {
@@ -5953,10 +5950,10 @@ void ScDocument::DeleteSelectionTab(
rMark.FillRangeListWithMarks( &aRangeList, false);
for (size_t i = 0; i < aRangeList.size(); ++i)
{
const ScRange* pRange = aRangeList[i];
if (pRange && pRange->aStart.Tab() <= nTab && nTab <= pRange->aEnd.Tab())
const ScRange & rRange = aRangeList[i];
if (rRange.aStart.Tab() <= nTab && nTab <= rRange.aEnd.Tab())
{
ScRange aRange( *pRange);
ScRange aRange( rRange);
aRange.aStart.SetTab( nTab);
aRange.aEnd.SetTab( nTab);
EndListeningIntersectedGroups( aCxt, aRange, &aGroupPos);
@@ -5982,10 +5979,10 @@ void ScDocument::DeleteSelectionTab(
rMark.FillRangeListWithMarks( &aRangeList, false);
for (size_t i = 0; i < aRangeList.size(); ++i)
{
const ScRange* pRange = aRangeList[i];
if (pRange && pRange->aStart.Tab() <= nTab && nTab <= pRange->aEnd.Tab())
const ScRange & rRange = aRangeList[i];
if (rRange.aStart.Tab() <= nTab && nTab <= rRange.aEnd.Tab())
{
ScRange aRange( *pRange);
ScRange aRange( rRange);
aRange.aStart.SetTab( nTab);
aRange.aEnd.SetTab( nTab);
SetDirty( aRange, true);
@@ -6575,9 +6572,9 @@ void ScDocument::ForgetNoteCaptions( const ScRangeList& rRanges, bool bPreserveD
{
for (size_t i = 0, n = rRanges.size(); i < n; ++i)
{
const ScRange* p = rRanges[i];
const ScAddress& s = p->aStart;
const ScAddress& e = p->aEnd;
const ScRange & rRange = rRanges[i];
const ScAddress& s = rRange.aStart;
const ScAddress& e = rRange.aEnd;
for (SCTAB nTab = s.Tab(); nTab <= e.Tab(); ++nTab)
{
ScTable* pTab = FetchTable(nTab);
@@ -6598,11 +6595,11 @@ CommentCaptionState ScDocument::GetAllNoteCaptionsState( const ScRangeList& rRan
for (size_t i = 0, n = rRanges.size(); i < n; ++i)
{
const ScRange* pRange = rRanges[i];
const ScRange & rRange = rRanges[i];
for( SCTAB nTab = pRange->aStart.Tab(); nTab <= pRange->aEnd.Tab(); ++nTab )
for( SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab )
{
aState = maTabs[nTab]->GetAllNoteCaptionsState( *pRange, aNotes );
aState = maTabs[nTab]->GetAllNoteCaptionsState( rRange, aNotes );
if (aState == CommentCaptionState::MIXED)
return aState;
@@ -6706,14 +6703,14 @@ void ScDocument::GetAllNoteEntries( SCTAB nTab, std::vector<sc::NoteEntry>& rNot
return pTab->GetAllNoteEntries( rNotes );
}
void ScDocument::GetNotesInRange( const ScRangeList& rRange, std::vector<sc::NoteEntry>& rNotes ) const
void ScDocument::GetNotesInRange( const ScRangeList& rRangeList, std::vector<sc::NoteEntry>& rNotes ) const
{
for( size_t i = 0; i < rRange.size(); ++i)
for( size_t i = 0; i < rRangeList.size(); ++i)
{
const ScRange* pRange = rRange[i];
for( SCTAB nTab = pRange->aStart.Tab(); nTab <= pRange->aEnd.Tab(); ++nTab )
const ScRange & rRange = rRangeList[i];
for( SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab )
{
maTabs[nTab]->GetNotesInRange( *pRange, rNotes );
maTabs[nTab]->GetNotesInRange( rRange, rNotes );
}
}
}
@@ -6723,14 +6720,14 @@ void ScDocument::GetUnprotectedCells( ScRangeList& rRangeList, SCTAB nTab ) cons
maTabs[nTab]->GetUnprotectedCells( rRangeList );
}
bool ScDocument::ContainsNotesInRange( const ScRangeList& rRange ) const
bool ScDocument::ContainsNotesInRange( const ScRangeList& rRangeList ) const
{
for( size_t i = 0; i < rRange.size(); ++i)
for( size_t i = 0; i < rRangeList.size(); ++i)
{
const ScRange* pRange = rRange[i];
for( SCTAB nTab = pRange->aStart.Tab(); nTab < pRange->aEnd.Tab(); ++nTab )
const ScRange & rRange = rRangeList[i];
for( SCTAB nTab = rRange.aStart.Tab(); nTab < rRange.aEnd.Tab(); ++nTab )
{
bool bContainsNote = maTabs[nTab]->ContainsNotesInRange( *pRange );
bool bContainsNote = maTabs[nTab]->ContainsNotesInRange( rRange );
if(bContainsNote)
return true;
}
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index d15cd9d..3414445 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -1426,8 +1426,8 @@ static bool lcl_IsAllInRange( const ::std::vector< ScRangeList >& rRangesVector,
const ScRangeList& rRanges = *aIt;
for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ )
{
ScRange aRange = *rRanges[ i ];
if ( !rClipRange.In( aRange ) )
const ScRange & rRange = rRanges[ i ];
if ( !rClipRange.In( rRange ) )
{
return false; // at least one range is not valid
}
@@ -1448,13 +1448,13 @@ static bool lcl_MoveRanges( ::std::vector< ScRangeList >& rRangesVector, const S
ScRangeList& rRanges = *aIt;
for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ )
{
ScRange* pRange = rRanges[ i ];
if ( rSourceRange.In( *pRange ) )
ScRange aRange = rRanges[ i ];
if ( rSourceRange.In( aRange ) )
{
SCCOL nDiffX = rDestPos.Col() - rSourceRange.aStart.Col();
SCROW nDiffY = rDestPos.Row() - rSourceRange.aStart.Row();
SCTAB nDiffZ = rDestPos.Tab() - rSourceRange.aStart.Tab();
if (!pRange->Move( nDiffX, nDiffY, nDiffZ, aErrorRange))
if (!aRange.Move( nDiffX, nDiffY, nDiffZ, aErrorRange))
{
assert(!"can't move range");
}
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index ebaefc3..04cfe1c 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -4291,12 +4291,12 @@ struct ScDependantsCalculator
for (size_t i = 0; i < aRangeList.size(); ++i)
{
const ScRange* pRange = aRangeList[i];
assert(pRange->aStart.Tab() == pRange->aEnd.Tab());
for (auto nCol = pRange->aStart.Col(); nCol <= pRange->aEnd.Col(); nCol++)
const ScRange & rRange = aRangeList[i];
assert(rRange.aStart.Tab() == rRange.aEnd.Tab());
for (auto nCol = rRange.aStart.Col(); nCol <= rRange.aEnd.Col(); nCol++)
{
if (!mrDoc.HandleRefArrayForParallelism(ScAddress(nCol, pRange->aStart.Row(), pRange->aStart.Tab()),
pRange->aEnd.Row() - pRange->aStart.Row() + 1))
if (!mrDoc.HandleRefArrayForParallelism(ScAddress(nCol, rRange.aStart.Row(), rRange.aStart.Tab()),
rRange.aEnd.Row() - rRange.aStart.Row() + 1))
return false;
}
}
diff --git a/sc/source/core/data/markdata.cxx b/sc/source/core/data/markdata.cxx
index 73a22ae..ecd2b2e 100644
--- a/sc/source/core/data/markdata.cxx
+++ b/sc/source/core/data/markdata.cxx
@@ -341,7 +341,7 @@ void ScMarkData::MarkFromRangeList( const ScRangeList& rList, bool bReset )
size_t nCount = rList.size();
if ( nCount == 1 && !bMarked && !bMultiMarked )
{
const ScRange& rRange = *rList[ 0 ];
const ScRange& rRange = rList[ 0 ];
SetMarkArea( rRange );
SelectTable( rRange.aStart.Tab(), true );
}
@@ -349,7 +349,7 @@ void ScMarkData::MarkFromRangeList( const ScRangeList& rList, bool bReset )
{
for (size_t i=0; i < nCount; i++)
{
const ScRange& rRange = *rList[ i ];
const ScRange& rRange = rList[ i ];
SetMultiMarkArea( rRange );
SelectTable( rRange.aStart.Tab(), true );
}
@@ -405,13 +405,13 @@ void ScMarkData::FillRangeListWithMarks( ScRangeList* pList, bool bClear, SCTAB
if ( bMarked )
{
if (nForTab < 0)
pList->Append( aMarkRange );
pList->push_back( aMarkRange );
else
{
ScRange aRange( aMarkRange );
aRange.aStart.SetTab( nForTab );
aRange.aEnd.SetTab( nForTab );
pList->Append( aRange );
pList->push_back( aRange );
}
}
}
@@ -428,10 +428,10 @@ void ScMarkData::ExtendRangeListTables( ScRangeList* pList ) const
for (; it != maTabMarked.end(); ++it)
for ( size_t i=0, nCount = aOldList.size(); i<nCount; i++)
{
ScRange aRange = *aOldList[ i ];
ScRange aRange = aOldList[ i ];
aRange.aStart.SetTab(*it);
aRange.aEnd.SetTab(*it);
pList->Append( aRange );
pList->push_back( aRange );
}
}
@@ -459,7 +459,7 @@ std::vector<sc::ColRowSpan> ScMarkData::GetMarkedRowSpans() const
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
{
const ScRange& r = *aRanges[i];
const ScRange& r = aRanges[i];
itPos = aSpans.insert(itPos, r.aStart.Row(), r.aEnd.Row()+1, true).first;
}
@@ -706,7 +706,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
ScRange aAddRange(nCol - 1, nTop, aMultiRange.aStart.Tab(),
nCol - 1, nBottom, aMultiRange.aStart.Tab());
lcl_AddRanges( rRange, aAddRange ); // Left envelope
aLeftEnvelope.Append( aAddRange );
aLeftEnvelope.push_back( aAddRange );
}
else if( nCol > nStartCol )
{
@@ -728,7 +728,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
ScRange aAddRange( nCol - 1, nTop1, aMultiRange.aStart.Tab(),
nCol - 1, nBottom1, aMultiRange.aStart.Tab() );
lcl_AddRanges( rRange, aAddRange ); // Left envelope
aLeftEnvelope.Append( aAddRange );
aLeftEnvelope.push_back( aAddRange );
nTop1 = ++nBottom1;
}
}
@@ -747,7 +747,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
ScRange aAddRange( nCol, nTopPrev, aMultiRange.aStart.Tab(),
nCol, nBottomPrev, aMultiRange.aStart.Tab());
lcl_AddRanges( rRange, aAddRange ); // Right envelope
aRightEnvelope.Append( aAddRange );
aRightEnvelope.push_back( aAddRange );
nTopPrev = nBottomPrev = (nBottom + 1);
}
else
@@ -755,7 +755,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
ScRange aAddRange( nCol, nTopPrev, aMultiRange.aStart.Tab(),
nCol, nBottomPrev, aMultiRange.aStart.Tab());
lcl_AddRanges( rRange, aAddRange ); // Right envelope
aRightEnvelope.Append( aAddRange );
aRightEnvelope.push_back( aAddRange );
nTopPrev = ++nBottomPrev;
}
}
@@ -795,7 +795,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
ScRange aAddRange(nCol, nTopPrev, aMultiRange.aStart.Tab(),
nCol, nBottomPrev, aMultiRange.aStart.Tab());
lcl_AddRanges( rRange, aAddRange ); // Right envelope
aRightEnvelope.Append( aAddRange );
aRightEnvelope.push_back( aAddRange );
nTopPrev = ++nBottomPrev;
}
else
@@ -820,7 +820,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
ScRange aAddRange(nCol, nTopPrev, aMultiRange.aStart.Tab(),
nCol, nBottomPrev, aMultiRange.aStart.Tab());
lcl_AddRanges( rRange, aAddRange ); // Right envelope
aRightEnvelope.Append( aAddRange );
aRightEnvelope.push_back( aAddRange );
nTopPrev = ++nBottomPrev;
}
else
@@ -844,7 +844,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
if( !rKV.second.getRangeData( nStart, aRange ) )
break;
if( aRange.mbValue ) // is marked
aTopEnvelope.Append( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(),
aTopEnvelope.push_back( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(),
aRange.mnCol2, rKV.first, aMultiRange.aStart.Tab() ) );
nStart = aRange.mnCol2 + 1;
}
@@ -858,7 +858,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
if( !rKV.second.getRangeData( nStart, aRange ) )
break;
if( aRange.mbValue ) // is marked
aBottomEnvelope.Append( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(),
aBottomEnvelope.push_back( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(),
aRange.mnCol2, rKV.first, aMultiRange.aStart.Tab() ) );
nStart = aRange.mnCol2 + 1;
}
@@ -878,22 +878,22 @@ void ScMarkData::GetSelectionCover( ScRange& rRange )
// Each envelope will have zero or more ranges for single rectangle selection.
if( nCol1 > 0 )
{
aLeftEnvelope.Append( ScRange( nCol1 - 1, nRow1, nTab1, nCol1 - 1, nRow2, nTab2 ) );
aLeftEnvelope.push_back( ScRange( nCol1 - 1, nRow1, nTab1, nCol1 - 1, nRow2, nTab2 ) );
--nCol1New;
}
if( nRow1 > 0 )
{
aTopEnvelope.Append( ScRange( nCol1, nRow1 - 1, nTab1, nCol2, nRow1 - 1, nTab2 ) );
aTopEnvelope.push_back( ScRange( nCol1, nRow1 - 1, nTab1, nCol2, nRow1 - 1, nTab2 ) );
--nRow1New;
}
if( nCol2 < MAXCOL )
{
aRightEnvelope.Append( ScRange( nCol2 + 1, nRow1, nTab1, nCol2 + 1, nRow2, nTab2 ) );
aRightEnvelope.push_back( ScRange( nCol2 + 1, nRow1, nTab1, nCol2 + 1, nRow2, nTab2 ) );
++nCol2New;
}
if( nRow2 < MAXROW )
{
aBottomEnvelope.Append( ScRange( nCol1, nRow2 + 1, nTab1, nCol2, nRow2 + 1, nTab2 ) );
aBottomEnvelope.push_back( ScRange( nCol1, nRow2 + 1, nTab1, nCol2, nRow2 + 1, nTab2 ) );
++nRow2New;
}
rRange = ScRange( nCol1New, nRow1New, nTab1, nCol2New, nRow2New, nTab2 );
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index adb40b6..67e4da1 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -461,10 +461,10 @@ void ScTable::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMa
for (size_t i = 0; i < aRangeList.size(); ++i)
{
ScRange* pRange = aRangeList[i];
const ScRange & rRange = aRangeList[i];
if((nDelFlag & InsertDeleteFlags::ATTRIB) && pRange && pRange->aStart.Tab() == nTab)
mpCondFormatList->DeleteArea( pRange->aStart.Col(), pRange->aStart.Row(), pRange->aEnd.Col(), pRange->aEnd.Row() );
if((nDelFlag & InsertDeleteFlags::ATTRIB) && rRange.aStart.Tab() == nTab)
mpCondFormatList->DeleteArea( rRange.aStart.Col(), rRange.aStart.Row(), rRange.aEnd.Col(), rRange.aEnd.Row() );
}
// Do not set protected cell in a protected sheet
@@ -535,9 +535,8 @@ void ScTable::CopyToClip(
{
for ( size_t i = 0, nListSize = rRanges.size(); i < nListSize; ++i )
{
const ScRange* p = rRanges[ i ];
if (p)
CopyToClip( rCxt, p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), pTable);
const ScRange & r = rRanges[ i ];
CopyToClip( rCxt, r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), pTable);
}
}
@@ -579,7 +578,7 @@ bool CheckAndDeduplicateCondFormat(ScDocument* pDocument, ScConditionalFormat* p
ScRangeList& rDstRangeList = pOldFormat->GetRangeList();
for (size_t i = 0; i < rNewRangeList.size(); ++i)
{
rDstRangeList.Join(*rNewRangeList[i]);
rDstRangeList.Join(rNewRangeList[i]);
}
pDocument->AddCondFormatData(pOldFormat->GetRange(), nTab, pOldFormat->GetKey());
return true;
@@ -1365,8 +1364,8 @@ bool ScTable::HasScenarioRange( const ScRange& rRange ) const
{
for ( size_t j = 0, n = pList->size(); j < n; j++ )
{
const ScRange* pR = (*pList)[j];
if ( pR->Intersects( aTabRange ) )
const ScRange & rR = (*pList)[j];
if ( rR.Intersects( aTabRange ) )
return true;
}
}
@@ -2430,8 +2429,8 @@ bool ScTable::IsSelectionEditable( const ScMarkData& rMark,
{
for (size_t i=0, nRange = aRanges.size(); (i < nRange) && bIsEditable; i++ )
{
ScRange aRange = *aRanges[ i ];
if(pDocument->HasScenarioRange(nScenTab, aRange))
const ScRange & rRange = aRanges[ i ];
if(pDocument->HasScenarioRange(nScenTab, rRange))
{
ScScenarioFlags nFlags;
pDocument->GetScenarioFlags(nScenTab,nFlags);
@@ -2459,8 +2458,8 @@ bool ScTable::IsSelectionEditable( const ScMarkData& rMark,
rMark.FillRangeListWithMarks( &aRanges, false );
for (size_t i = 0, nRange = aRanges.size(); (i < nRange) && bIsEditable; i++)
{
ScRange aRange = *aRanges[ i ];
if(pDocument->HasScenarioRange(nTab, aRange))
const ScRange & rRange = aRanges[ i ];
if(pDocument->HasScenarioRange(nTab, rRange))
{
ScScenarioFlags nFlags;
pDocument->GetScenarioFlags(nTab,nFlags);
@@ -2575,16 +2574,16 @@ void ScTable::ApplyPatternIfNumberformatIncompatible( const ScRange& rRange,
}
}
void ScTable::AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex )
void ScTable::AddCondFormatData( const ScRangeList& rRangeList, sal_uInt32 nIndex )
{
size_t n = rRange.size();
size_t n = rRangeList.size();
for(size_t i = 0; i < n; ++i)
{
const ScRange* pRange = rRange[i];
SCCOL nColStart = pRange->aStart.Col();
SCCOL nColEnd = pRange->aEnd.Col();
SCROW nRowStart = pRange->aStart.Row();
SCROW nRowEnd = pRange->aEnd.Row();
const ScRange & rRange = rRangeList[i];
SCCOL nColStart = rRange.aStart.Col();
SCCOL nColEnd = rRange.aEnd.Col();
SCROW nRowStart = rRange.aStart.Row();
SCROW nRowEnd = rRange.aEnd.Row();
for(SCCOL nCol = nColStart; nCol <= nColEnd; ++nCol)
{
aCol[nCol].AddCondFormat(nRowStart, nRowEnd, nIndex);
@@ -2592,16 +2591,16 @@ void ScTable::AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex )
}
}
void ScTable::RemoveCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex )
void ScTable::RemoveCondFormatData( const ScRangeList& rRangeList, sal_uInt32 nIndex )
{
size_t n = rRange.size();
size_t n = rRangeList.size();
for(size_t i = 0; i < n; ++i)
{
const ScRange* pRange = rRange[i];
SCCOL nColStart = pRange->aStart.Col();
SCCOL nColEnd = pRange->aEnd.Col();
SCROW nRowStart = pRange->aStart.Row();
SCROW nRowEnd = pRange->aEnd.Row();
const ScRange & rRange = rRangeList[i];
SCCOL nColStart = rRange.aStart.Col();
SCCOL nColEnd = rRange.aEnd.Col();
SCROW nRowStart = rRange.aStart.Row();
SCROW nRowEnd = rRange.aEnd.Row();
for(SCCOL nCol = nColStart; nCol <= nColEnd; ++nCol)
{
aCol[nCol].RemoveCondFormat(nRowStart, nRowEnd, nIndex);
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 5d37436..217c74d 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -1235,7 +1235,7 @@ void ScTable::SortReorderByRowRefUpdate(
// could be anywhere in the sorted range after reordering.
for (size_t i = 0, n = aTmp.size(); i < n; ++i)
{
ScRange aRange = *aTmp[i];
ScRange aRange = aTmp[i];
if (!aMoveRange.Intersects(aRange))
{
// Doesn't overlap with the sorted range at all.
diff --git a/sc/source/core/data/table6.cxx b/sc/source/core/data/table6.cxx
index 4e06668..efdb518 100644
--- a/sc/source/core/data/table6.cxx
+++ b/sc/source/core/data/table6.cxx
@@ -842,8 +842,7 @@ bool ScTable::SearchAndReplaceEmptyCells(
GetFirstDataPos(nColStart, nRowStart);
GetLastDataPos(nColEnd, nRowEnd);
ScRangeList aRanges;
aRanges.Append(ScRange(nColStart, nRowStart, nTab, nColEnd, nRowEnd, nTab));
ScRangeList aRanges(ScRange(nColStart, nRowStart, nTab, nColEnd, nRowEnd, nTab));
if (rSearchItem.GetSelection())
{
@@ -856,23 +855,23 @@ bool ScTable::SearchAndReplaceEmptyCells(
rMark.FillRangeListWithMarks(&aMarkedRanges, true);
for ( size_t i = 0, n = aMarkedRanges.size(); i < n; ++i )
{
ScRange* p = aMarkedRanges[ i ];
if (p->aStart.Col() > nColEnd || p->aStart.Row() > nRowEnd || p->aEnd.Col() < nColStart || p->aEnd.Row() < nRowStart)
ScRange & rRange = aMarkedRanges[ i ];
if (rRange.aStart.Col() > nColEnd || rRange.aStart.Row() > nRowEnd || rRange.aEnd.Col() < nColStart || rRange.aEnd.Row() < nRowStart)
// This range is outside the data area. Skip it.
continue;
// Shrink the range into data area only.
if (p->aStart.Col() < nColStart)
p->aStart.SetCol(nColStart);
if (p->aStart.Row() < nRowStart)
p->aStart.SetRow(nRowStart);
if (rRange.aStart.Col() < nColStart)
rRange.aStart.SetCol(nColStart);
if (rRange.aStart.Row() < nRowStart)
rRange.aStart.SetRow(nRowStart);
if (p->aEnd.Col() > nColEnd)
p->aEnd.SetCol(nColEnd);
if (p->aEnd.Row() > nRowEnd)
p->aEnd.SetRow(nRowEnd);
if (rRange.aEnd.Col() > nColEnd)
rRange.aEnd.SetCol(nColEnd);
if (rRange.aEnd.Row() > nRowEnd)
rRange.aEnd.SetRow(nRowEnd);
aNewRanges.Append(*p);
aNewRanges.push_back(rRange);
}
aRanges = aNewRanges;
}
@@ -884,8 +883,8 @@ bool ScTable::SearchAndReplaceEmptyCells(
{
for ( size_t i = aRanges.size(); i > 0; --i )
{
ScRange* p = aRanges[ i - 1 ];
if (SearchRangeForEmptyCell(*p, rSearchItem, rCol, rRow, rUndoStr))
const ScRange & rRange = aRanges[ i - 1 ];
if (SearchRangeForEmptyCell(rRange, rSearchItem, rCol, rRow, rUndoStr))
return true;
}
}
@@ -893,8 +892,8 @@ bool ScTable::SearchAndReplaceEmptyCells(
{
for ( size_t i = 0, nListSize = aRanges.size(); i < nListSize; ++i )
{
ScRange* p = aRanges[ i ];
if (SearchRangeForEmptyCell(*p, rSearchItem, rCol, rRow, rUndoStr))
const ScRange & rRange = aRanges[ i ];
if (SearchRangeForEmptyCell(rRange, rSearchItem, rCol, rRow, rUndoStr))
return true;
}
}
@@ -904,8 +903,8 @@ bool ScTable::SearchAndReplaceEmptyCells(
bool bFound = false;
for ( size_t i = 0, nListSize = aRanges.size(); i < nListSize; ++i )
{
ScRange* p = aRanges[ i ];
bFound |= SearchRangeForAllEmptyCells(*p, rSearchItem, rMatchedRanges, rUndoStr, pUndoDoc);
ScRange const & rRange = aRanges[ i ];
bFound |= SearchRangeForAllEmptyCells(rRange, rSearchItem, rMatchedRanges, rUndoStr, pUndoDoc);
}
return bFound;
}
diff --git a/sc/source/core/data/tabprotection.cxx b/sc/source/core/data/tabprotection.cxx
index 05b53d1..3deb550 100644
--- a/sc/source/core/data/tabprotection.cxx
+++ b/sc/source/core/data/tabprotection.cxx
@@ -489,7 +489,7 @@ bool ScTableProtectionImpl::isBlockEditable( const ScRange& rRange ) const
if (!(*it).hasSecurityDescriptor() && (*it).maRangeList.is())
{
ScRangeList aList( (*it).maRangeList->GetIntersectedRange( rRange));
if (aList.size() == 1 && *aList[0] == rRange)
if (aList.size() == 1 && aList[0] == rRange)
{
// Range is editable if no password is assigned.
if (!(*it).hasPassword())
@@ -516,13 +516,13 @@ bool ScTableProtectionImpl::isBlockEditable( const ScRange& rRange ) const
size_t nRanges = rRanges.size();
for (size_t i=0; i < nRanges; ++i)
{
aRangeList.Append( *rRanges[i]);
aRangeList.push_back( rRanges[i]);
}
}
}
}
ScRangeList aResultList( aRangeList.GetIntersectedRange( rRange));
return aResultList.size() == 1 && *aResultList[0] == rRange;
return aResultList.size() == 1 && aResultList[0] == rRange;
}
bool ScTableProtectionImpl::isSelectionEditable( const ScRangeList& rRangeList ) const
@@ -532,7 +532,7 @@ bool ScTableProtectionImpl::isSelectionEditable( const ScRangeList& rRangeList )
for (size_t i=0, nRanges = rRangeList.size(); i < nRanges; ++i)
{
if (!isBlockEditable( *rRangeList[i]))
if (!isBlockEditable( rRangeList[i]))
return false;
}
return true;
diff --git a/sc/source/core/tool/chartarr.cxx b/sc/source/core/tool/chartarr.cxx
index 6b020b0..ef73e57 100644
--- a/sc/source/core/tool/chartarr.cxx
+++ b/sc/source/core/tool/chartarr.cxx
@@ -68,8 +68,8 @@ ScMemChart* ScChartArray::CreateMemChart()
return CreateMemChartMulti();
else if ( nCount == 1 )
{
ScRange* pR = aRangeListRef->front();
if ( pR->aStart.Tab() != pR->aEnd.Tab() )
const ScRange & rR = aRangeListRef->front();
if ( rR.aStart.Tab() != rR.aEnd.Tab() )
return CreateMemChartMulti();
else
return CreateMemChartSingle();
@@ -129,7 +129,7 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
SCROW nRow2;
SCTAB nTab2;
ScRangeListRef aRangeListRef(GetRangeList());
aRangeListRef->front()->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
aRangeListRef->front().GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
SCCOL nStrCol = nCol1; // remember for labeling
SCROW nStrRow = nRow1;
diff --git a/sc/source/core/tool/charthelper.cxx b/sc/source/core/tool/charthelper.cxx
index 12e05fa..79140b9 100644
--- a/sc/source/core/tool/charthelper.cxx
+++ b/sc/source/core/tool/charthelper.cxx
@@ -76,21 +76,21 @@ bool lcl_AdjustRanges( ScRangeList& rRanges, SCTAB nSourceTab, SCTAB nDestTab, S
for ( size_t i=0, nCount = rRanges.size(); i < nCount; i++ )
{
ScRange* pRange = rRanges[ i ];
if ( pRange->aStart.Tab() == nSourceTab && pRange->aEnd.Tab() == nSourceTab )
ScRange & rRange = rRanges[ i ];
if ( rRange.aStart.Tab() == nSourceTab && rRange.aEnd.Tab() == nSourceTab )
{
pRange->aStart.SetTab( nDestTab );
pRange->aEnd.SetTab( nDestTab );
rRange.aStart.SetTab( nDestTab );
rRange.aEnd.SetTab( nDestTab );
bChanged = true;
}
if ( pRange->aStart.Tab() >= nTabCount )
if ( rRange.aStart.Tab() >= nTabCount )
{
pRange->aStart.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 );
rRange.aStart.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 );
bChanged = true;
}
if ( pRange->aEnd.Tab() >= nTabCount )
if ( rRange.aEnd.Tab() >= nTabCount )
{
pRange->aEnd.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 );
rRange.aEnd.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 );
bChanged = true;
}
}
@@ -417,8 +417,7 @@ void ScChartHelper::CreateProtectedChartListenersAndNotify( ScDocument* pDoc, co
{
tools::Rectangle aRectangle = pSdrOle2Obj->GetSnapRect();
ScRange aRange( pDoc->GetRange( nTab, aRectangle ) );
ScRangeList aChangeRanges;
aChangeRanges.Append( aRange );
ScRangeList aChangeRanges( aRange );
uno::Sequence< beans::PropertyValue > aProperties( 1 );
aProperties[ 0 ].Name = "Name";
diff --git a/sc/source/core/tool/chartpos.cxx b/sc/source/core/tool/chartpos.cxx
index db2469d..fb78be8 100644
--- a/sc/source/core/tool/chartpos.cxx
+++ b/sc/source/core/tool/chartpos.cxx
@@ -90,8 +90,7 @@ ScChartPositioner::~ScChartPositioner()
void ScChartPositioner::SetRangeList( const ScRange& rRange )
{
aRangeListRef = new ScRangeList;
aRangeListRef->Append( rRange );
aRangeListRef = new ScRangeList( rRange );
InvalidateGlue();
}
@@ -105,7 +104,7 @@ void ScChartPositioner::GlueState()
{
if ( !aRangeListRef->empty() )
{
pR = aRangeListRef->front();
pR = &aRangeListRef->front();
if ( pR->aStart.Tab() == pR->aEnd.Tab() )
eGlue = ScChartGlue::NONE;
else
@@ -122,7 +121,7 @@ void ScChartPositioner::GlueState()
return;
}
pR = aRangeListRef->front();
pR = &aRangeListRef->front();
nStartCol = pR->aStart.Col();
nStartRow = pR->aStart.Row();
SCCOL nMaxCols, nEndCol;
@@ -143,7 +142,7 @@ void ScChartPositioner::GlueState()
// in last pass; i = nRanges so don't use at()
if ( i < nRanges )
pR = (*aRangeListRef)[i];
pR = &(*aRangeListRef)[i];
}
SCCOL nC = nEndCol - nStartCol + 1;
if ( nC == 1 )
@@ -176,7 +175,7 @@ void ScChartPositioner::GlueState()
SCROW nRow, nRow1, nRow2;
for ( size_t i = 0, nRanges = aRangeListRef->size(); i < nRanges; ++i )
{ // mark selections as used in 2D
pR = (*aRangeListRef)[i];
pR = &(*aRangeListRef)[i];
nCol1 = pR->aStart.Col() - nStartCol;
nCol2 = pR->aEnd.Col() - nStartCol;
nRow1 = pR->aStart.Row() - nStartRow;
@@ -274,7 +273,7 @@ void ScChartPositioner::CheckColRowHeaders()
GlueState();
if ( aRangeListRef->size() == 1 )
{
aRangeListRef->front()->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
aRangeListRef->front().GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
if ( nCol1 > nCol2 || nRow1 > nRow2 )
bColStrings = bRowStrings = false;
else
@@ -299,8 +298,8 @@ void ScChartPositioner::CheckColRowHeaders()
++i
)
{
ScRange* pR = (*aRangeListRef)[i];
pR->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
const ScRange & rR = (*aRangeListRef)[i];
rR.GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
bool bTopRow = (nRow1 == nStartRow);
if ( bRowStrings && (bVert || nCol1 == nStartCol) )
{ // NONE or ROWS: RowStrings in every selection possible
@@ -362,8 +361,8 @@ void ScChartPositioner::CreatePositionMap()
SCROW nNoGlueRow = 0;
for ( size_t i = 0, nRanges = aRangeListRef->size(); i < nRanges; ++i )
{
ScRange* pR = (*aRangeListRef)[i];
pR->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
const ScRange & rR = (*aRangeListRef)[i];
rR.GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
for ( nTab = nTab1; nTab <= nTab2; nTab++ )
{
// nTab in ColKey to allow to have the same col/row in another table
diff --git a/sc/source/core/tool/dbdata.cxx b/sc/source/core/tool/dbdata.cxx
index efb3f15..75ff41b 100644
--- a/sc/source/core/tool/dbdata.cxx
+++ b/sc/source/core/tool/dbdata.cxx
@@ -1398,11 +1398,11 @@ void ScDBCollection::RefreshDirtyTableColumnNames()
{
for (size_t i=0; i < maNamedDBs.maDirtyTableColumnNames.size(); ++i)
{
const ScRange* pRange = maNamedDBs.maDirtyTableColumnNames[i];
const ScRange & rRange = maNamedDBs.maDirtyTableColumnNames[i];
for (auto const& it : maNamedDBs)
{
if (it->AreTableColumnNamesDirty())
it->RefreshTableColumnNames( &maNamedDBs.mrDoc, *pRange);
it->RefreshTableColumnNames( &maNamedDBs.mrDoc, rRange);
}
}
maNamedDBs.maDirtyTableColumnNames.RemoveAll();
diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx
index 0513d25..3b68a8fd 100644
--- a/sc/source/core/tool/rangelst.cxx
+++ b/sc/source/core/tool/rangelst.cxx
@@ -42,9 +42,9 @@ class FindEnclosingRange
{
public:
explicit FindEnclosingRange(const T& rTest) : mrTest(rTest) {}
bool operator() (const ScRange* pRange) const
bool operator() (const ScRange & rRange) const
{
return pRange->In(mrTest);
return rRange.In(mrTest);
}
private:
const T& mrTest;
@@ -55,9 +55,9 @@ class FindRangeIn
{
public:
FindRangeIn(const T& rTest) : mrTest(rTest) {}
bool operator() (const ScRange* pRange) const
bool operator() (const ScRange& rRange) const
{
return mrTest.In(*pRange);
return mrTest.In(rRange);
}
private:
const T& mrTest;
@@ -68,9 +68,9 @@ class FindIntersectingRange
{
public:
explicit FindIntersectingRange(const T& rTest) : mrTest(rTest) {}
bool operator() (const ScRange* pRange) const
bool operator() (const ScRange & rRange) const
{
return pRange->Intersects(mrTest);
return rRange.Intersects(mrTest);
}
private:
const T& mrTest;
@@ -79,13 +79,13 @@ private:
class AppendToList
{
public:
explicit AppendToList(vector<ScRange*>& rRanges) : mrRanges(rRanges) {}
void operator() (const ScRange* p)
explicit AppendToList(vector<ScRange>& rRanges) : mrRanges(rRanges) {}
void operator() (const ScRange& r)
{
mrRanges.push_back(new ScRange(*p));
mrRanges.push_back(r);
}
private:
vector<ScRange*>& mrRanges;
vector<ScRange>& mrRanges;
};
class CountCells
@@ -93,12 +93,12 @@ class CountCells
public:
CountCells() : mnCellCount(0) {}
void operator() (const ScRange* p)
void operator() (const ScRange & r)
{
mnCellCount +=
size_t(p->aEnd.Col() - p->aStart.Col() + 1)
* size_t(p->aEnd.Row() - p->aStart.Row() + 1)
* size_t(p->aEnd.Tab() - p->aStart.Tab() + 1);
size_t(r.aEnd.Col() - r.aStart.Col() + 1)
* size_t(r.aEnd.Row() - r.aStart.Row() + 1)
* size_t(r.aEnd.Tab() - r.aStart.Tab() + 1);
}
size_t getCellCount() const { return mnCellCount; }
@@ -119,9 +119,9 @@ public:
mbFirst(true),
mbFullAddressNotation(bFullAddressNotation) {}
void operator() (const ScRange* p)
void operator() (const ScRange & r)
{
OUString aStr(p->Format(mnFlags, mpDoc, meConv, mbFullAddressNotation));
OUString aStr(r.Format(mnFlags, mpDoc, meConv, mbFullAddressNotation));
if (mbFirst)
mbFirst = false;
else
@@ -175,7 +175,7 @@ ScRefFlags ScRangeList::Parse( const OUString& rStr, const ScDocument* pDoc,
applyStartToEndFlags(nRes, nTmp1);
if ( nRes & ScRefFlags::VALID )
Append( aRange );
push_back( aRange );
nResult &= nRes; // all common bits are preserved
}
while (nPos >= 0);
@@ -200,11 +200,11 @@ void ScRangeList::Format( OUString& rStr, ScRefFlags nFlags, ScDocument* pDoc,
rStr = aStr;
}
void ScRangeList::Join( const ScRange& r, bool bIsInList )
void ScRangeList::Join( const ScRange& rNewRange, bool bIsInList )
{
if ( maRanges.empty() )
{
Append( r );
push_back( rNewRange );
return ;
}
@@ -219,22 +219,22 @@ void ScRangeList::Join( const ScRange& r, bool bIsInList )
if (!bIsInList)
{
const SCROW nRow1 = r.aStart.Row();
const SCROW nRow1 = rNewRange.aStart.Row();
if (nRow1 > mnMaxRowUsed + 1)
{
Append( r );
push_back( rNewRange );
return;
}
else if (nRow1 == mnMaxRowUsed + 1)
{
// Check if we can simply enlarge the last range.
ScRange* p = maRanges.back();
if (p->aEnd.Row() + 1 == nRow1 &&
p->aStart.Col() == r.aStart.Col() && p->aEnd.Col() == r.aEnd.Col() &&
p->aStart.Tab() == r.aStart.Tab() && p->aEnd.Tab() == r.aEnd.Tab())
ScRange & rLast = maRanges.back();
if (rLast.aEnd.Row() + 1 == nRow1 &&
rLast.aStart.Col() == rNewRange.aStart.Col() && rLast.aEnd.Col() == rNewRange.aEnd.Col() &&
rLast.aStart.Tab() == rNewRange.aStart.Tab() && rLast.aEnd.Tab() == rNewRange.aEnd.Tab())
{
const SCROW nRow2 = r.aEnd.Row();
p->aEnd.SetRow( nRow2 );
const SCROW nRow2 = rNewRange.aEnd.Row();
rLast.aEnd.SetRow( nRow2 );
mnMaxRowUsed = nRow2;
return;
}
@@ -242,7 +242,7 @@ void ScRangeList::Join( const ScRange& r, bool bIsInList )
}
bool bJoinedInput = false;
const ScRange* pOver = &r;
const ScRange* pOver = &rNewRange;
Label_Range_Join:
@@ -257,14 +257,14 @@ Label_Range_Join:
size_t nOverPos = std::numeric_limits<size_t>::max();
for (size_t i = 0; i < maRanges.size(); ++i)
{
ScRange* p = maRanges[i];
if ( p == pOver )
ScRange & rRange = maRanges[i];
if ( &rRange == pOver )
{
nOverPos = i;
continue; // the same one, continue with the next
}
bool bJoined = false;
if ( p->In( *pOver ) )
if ( rRange.In( *pOver ) )
{ // range pOver included in or identical to range p
// XXX if we never used Append() before Join() we could remove
// pOver and end processing, but it is not guaranteed and there can
@@ -277,40 +277,40 @@ Label_Range_Join:
break; // for
}
}
else if ( pOver->In( *p ) )
{ // range p included in range pOver, make pOver the new range
*p = *pOver;
else if ( pOver->In( rRange ) )
{ // range rRange included in range pOver, make pOver the new range
rRange = *pOver;
bJoined = true;
}
if ( !bJoined && p->aStart.Tab() == nTab1 && p->aEnd.Tab() == nTab2 )
if ( !bJoined && rRange.aStart.Tab() == nTab1 && rRange.aEnd.Tab() == nTab2 )
{ // 2D
if ( p->aStart.Col() == nCol1 && p->aEnd.Col() == nCol2 )
if ( rRange.aStart.Col() == nCol1 && rRange.aEnd.Col() == nCol2 )
{
if ( p->aStart.Row() <= nRow2+1 &&
p->aStart.Row() >= nRow1 )
if ( rRange.aStart.Row() <= nRow2+1 &&
rRange.aStart.Row() >= nRow1 )
{ // top
p->aStart.SetRow( nRow1 );
rRange.aStart.SetRow( nRow1 );
bJoined = true;
}
else if ( p->aEnd.Row() >= nRow1-1 &&
p->aEnd.Row() <= nRow2 )
else if ( rRange.aEnd.Row() >= nRow1-1 &&
rRange.aEnd.Row() <= nRow2 )
{ // bottom
p->aEnd.SetRow( nRow2 );
rRange.aEnd.SetRow( nRow2 );
bJoined = true;
}
}
else if ( p->aStart.Row() == nRow1 && p->aEnd.Row() == nRow2 )
else if ( rRange.aStart.Row() == nRow1 && rRange.aEnd.Row() == nRow2 )
{
if ( p->aStart.Col() <= nCol2+1 &&
p->aStart.Col() >= nCol1 )
if ( rRange.aStart.Col() <= nCol2+1 &&
rRange.aStart.Col() >= nCol1 )
{ // left
p->aStart.SetCol( nCol1 );
rRange.aStart.SetCol( nCol1 );
bJoined = true;
}
else if ( p->aEnd.Col() >= nCol1-1 &&
p->aEnd.Col() <= nCol2 )
else if ( rRange.aEnd.Col() >= nCol1-1 &&
rRange.aEnd.Col() <= nCol2 )
{ // right
p->aEnd.SetCol( nCol2 );
rRange.aEnd.SetCol( nCol2 );
bJoined = true;
}
}
@@ -325,7 +325,7 @@ Label_Range_Join:
{
for (size_t nOver = 0, nRanges = maRanges.size(); nOver < nRanges; ++nOver)
{
if (maRanges[nOver] == pOver)
if (&maRanges[nOver] == pOver)
{
Remove(nOver);
break;
@@ -334,13 +334,13 @@ Label_Range_Join:
}
}
bJoinedInput = true;
pOver = p;
pOver = &rRange;
bIsInList = true;
goto Label_Range_Join;
}
}
if ( !bIsInList && !bJoinedInput )
Append( r );
push_back( rNewRange );
}
bool ScRangeList::operator==( const ScRangeList& r ) const
@@ -351,13 +351,13 @@ bool ScRangeList::operator==( const ScRangeList& r ) const
if (maRanges.size() != r.maRanges.size())
return false;
vector<ScRange*>::const_iterator itr1 = maRanges.begin(), itrEnd = maRanges.end();
vector<ScRange*>::const_iterator itr2 = r.maRanges.begin();
auto itr1 = maRanges.begin(), itrEnd = maRanges.end();
auto itr2 = r.maRanges.begin();
for (; itr1 != itrEnd; ++itr1, ++itr2)
{
const ScRange* p1 = *itr1;
const ScRange* p2 = *itr2;
if (*p1 != *p2)
const ScRange& r1 = *itr1;
const ScRange& r2 = *itr2;
if (r1 != r2)
return false;
}
return true;
@@ -413,14 +413,14 @@ bool ScRangeList::UpdateReference(
iterator itr = maRanges.begin(), itrEnd = maRanges.end();
for (; itr != itrEnd; ++itr)
{
ScRange* pR = *itr;
ScRange& rR = *itr;
SCCOL theCol1;
SCROW theRow1;
SCTAB theTab1;
SCCOL theCol2;
SCROW theRow2;
SCTAB theTab2;
pR->GetVars( theCol1, theRow1, theTab1, theCol2, theRow2, theTab2 );
rR.GetVars( theCol1, theRow1, theTab1, theCol2, theRow2, theTab2 );
if ( ScRefUpdate::Update( pDoc, eUpdateRefMode,
nCol1, nRow1, nTab1, nCol2, nRow2, nTab2,
nDx, nDy, nDz,
@@ -428,8 +428,8 @@ bool ScRangeList::UpdateReference(
!= UR_NOTHING )
{
bChanged = true;
pR->aStart.Set( theCol1, theRow1, theTab1 );
pR->aEnd.Set( theCol2, theRow2, theTab2 );
rR.aStart.Set( theCol1, theRow1, theTab1 );
rR.aEnd.Set( theCol2, theRow2, theTab2 );
if (mnMaxRowUsed < theRow2)
mnMaxRowUsed = theRow2;
}
@@ -440,7 +440,7 @@ bool ScRangeList::UpdateReference(
if( nDx < 0 || nDy < 0 )
{
size_t n = maRanges.size();
Join(*maRanges[n-1], true);
Join(maRanges[n-1], true);
}
}
@@ -453,14 +453,14 @@ void ScRangeList::InsertRow( SCTAB nTab, SCCOL nColStart, SCCOL nColEnd, SCROW n
for(iterator it = maRanges.begin(), itEnd = maRanges.end(); it != itEnd;
++it)
{
ScRange* pRange = *it;
if(pRange->aStart.Tab() <= nTab && pRange->aEnd.Tab() >= nTab)
ScRange & rRange = *it;
if(rRange.aStart.Tab() <= nTab && rRange.aEnd.Tab() >= nTab)
{
if(pRange->aEnd.Row() == nRowPos - 1 && (nColStart <= pRange->aEnd.Col() || nColEnd >= pRange->aStart.Col()))
if(rRange.aEnd.Row() == nRowPos - 1 && (nColStart <= rRange.aEnd.Col() || nColEnd >= rRange.aStart.Col()))
{
SCCOL nNewRangeStartCol = std::max<SCCOL>(nColStart, pRange->aStart.Col());
SCCOL nNewRangeEndCol = std::min<SCCOL>(nColEnd, pRange->aEnd.Col());
SCROW nNewRangeStartRow = pRange->aEnd.Row() + 1;
SCCOL nNewRangeStartCol = std::max<SCCOL>(nColStart, rRange.aStart.Col());
SCCOL nNewRangeEndCol = std::min<SCCOL>(nColEnd, rRange.aEnd.Col());
SCROW nNewRangeStartRow = rRange.aEnd.Row() + 1;
SCROW nNewRangeEndRow = nRowPos + nSize - 1;
aNewRanges.emplace_back(nNewRangeStartCol, nNewRangeStartRow, nTab, nNewRangeEndCol,
nNewRangeEndRow, nTab);
@@ -486,14 +486,14 @@ void ScRangeList::InsertCol( SCTAB nTab, SCROW nRowStart, SCROW nRowEnd, SCCOL n
for(iterator it = maRanges.begin(), itEnd = maRanges.end(); it != itEnd;
++it)
{
ScRange* pRange = *it;
if(pRange->aStart.Tab() <= nTab && pRange->aEnd.Tab() >= nTab)
ScRange & rRange = *it;
if(rRange.aStart.Tab() <= nTab && rRange.aEnd.Tab() >= nTab)
{
if(pRange->aEnd.Col() == nColPos - 1 && (nRowStart <= pRange->aEnd.Row() || nRowEnd >= pRange->aStart.Row()))
if(rRange.aEnd.Col() == nColPos - 1 && (nRowStart <= rRange.aEnd.Row() || nRowEnd >= rRange.aStart.Row()))
{
SCROW nNewRangeStartRow = std::max<SCROW>(nRowStart, pRange->aStart.Row());
SCROW nNewRangeEndRow = std::min<SCROW>(nRowEnd, pRange->aEnd.Row());
SCCOL nNewRangeStartCol = pRange->aEnd.Col() + 1;
SCROW nNewRangeStartRow = std::max<SCROW>(nRowStart, rRange.aStart.Row());
SCROW nNewRangeEndRow = std::min<SCROW>(nRowEnd, rRange.aEnd.Row());
SCCOL nNewRangeStartCol = rRange.aEnd.Col() + 1;
SCCOL nNewRangeEndCol = nColPos + nSize - 1;
aNewRanges.emplace_back(nNewRangeStartCol, nNewRangeStartRow, nTab, nNewRangeEndCol,
nNewRangeEndRow, nTab);
@@ -539,12 +539,12 @@ bool checkForOneRange(
return nDeleteX1 <= nX1 && nX2 <= nDeleteX2 && (nDeleteY1 <= nY1 || nY2 <= nDeleteY2);
}
bool handleOneRange( const ScRange& rDeleteRange, ScRange* p )
bool handleOneRange( const ScRange& rDeleteRange, ScRange& r )
{
const ScAddress& rDelStart = rDeleteRange.aStart;
const ScAddress& rDelEnd = rDeleteRange.aEnd;
ScAddress aPStart = p->aStart;
ScAddress aPEnd = p->aEnd;
ScAddress aPStart = r.aStart;
ScAddress aPEnd = r.aEnd;
SCCOL nDeleteCol1 = rDelStart.Col();
SCCOL nDeleteCol2 = rDelEnd.Col();
SCROW nDeleteRow1 = rDelStart.Row();
@@ -565,7 +565,7 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p )
// | |
// +------+ (xxx) = deleted region
p->aStart.SetRow(nDeleteRow1+1);
r.aStart.SetRow(nDeleteRow1+1);
return true;
}
else if (nRow2 <= nDeleteRow2)
@@ -576,7 +576,7 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p )
// |xxxxxx|
// +------+ (xxx) = deleted region
p->aEnd.SetRow(nDeleteRow1-1);
r.aEnd.SetRow(nDeleteRow1-1);
return true;
}
}
@@ -591,7 +591,7 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p )
// |xx| |
// +--+--+ (xxx) = deleted region
p->aStart.SetCol(nDeleteCol2+1);
r.aStart.SetCol(nDeleteCol2+1);
return true;
}
else if (nCol2 <= nDeleteCol2)
@@ -602,19 +602,19 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p )
// | |xx|
// +--+--+ (xxx) = deleted region
p->aEnd.SetCol(nDeleteCol1-1);
r.aEnd.SetCol(nDeleteCol1-1);
return true;
}
}
return false;
}
bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRange>& rNewRanges )
bool handleTwoRanges( const ScRange& rDeleteRange, ScRange& r, std::vector<ScRange>& rNewRanges )
{
const ScAddress& rDelStart = rDeleteRange.aStart;
const ScAddress& rDelEnd = rDeleteRange.aEnd;
ScAddress aPStart = p->aStart;
ScAddress aPEnd = p->aEnd;
ScAddress aPStart = r.aStart;
ScAddress aPEnd = r.aEnd;
SCCOL nDeleteCol1 = rDelStart.Col();
SCCOL nDeleteCol2 = rDelEnd.Col();
SCROW nDeleteRow1 = rDelStart.Row();
@@ -645,7 +645,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan
ScRange aNewRange( nCol1, nDeleteRow1, nTab, nDeleteCol1-1, nRow2, nTab ); // 2
rNewRanges.push_back(aNewRange);
p->aEnd.SetRow(nDeleteRow1-1); // 1
r.aEnd.SetRow(nDeleteRow1-1); // 1
return true;
}
else if (nRow1 <= nDeleteRow2 && nDeleteRow2 < nRow2 && nDeleteRow1 <= nRow1)
@@ -664,7 +664,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan
ScRange aNewRange( aPStart, ScAddress(nDeleteCol1-1, nRow2, nTab) ); // 1
rNewRanges.push_back(aNewRange);
p->aStart.SetRow(nDeleteRow2+1); // 2
r.aStart.SetRow(nDeleteRow2+1); // 2
return true;
}
}
@@ -689,7 +689,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan
ScRange aNewRange( ScAddress( nDeleteCol2+1, nDeleteRow1, nTab ), aPEnd ); // 2
rNewRanges.push_back(aNewRange);
p->aEnd.SetRow(nDeleteRow1-1); // 1
r.aEnd.SetRow(nDeleteRow1-1); // 1
return true;
}
else if (nRow1 <= nDeleteRow2 && nDeleteRow2 < nRow2 && nDeleteRow1 <= nRow1)
@@ -708,7 +708,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan
ScRange aNewRange(nDeleteCol2+1, nRow1, nTab, nCol2, nDeleteRow2, nTab); // 1
rNewRanges.push_back(aNewRange);
p->aStart.SetRow(nDeleteRow2+1); // 2
r.aStart.SetRow(nDeleteRow2+1); // 2
return true;
}
}
@@ -725,7 +725,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan
ScRange aNewRange( aPStart, ScAddress(nCol2, nDeleteRow1-1, nTab) ); // 1
rNewRanges.push_back(aNewRange);
p->aStart.SetRow(nDeleteRow2+1); // 2
r.aStart.SetRow(nDeleteRow2+1); // 2
return true;
}
else if (nCol1 < nDeleteCol1 && nDeleteCol2 < nCol2 && nDeleteRow1 <= nRow1 && nRow2 <= nDeleteRow2)
@@ -741,7 +741,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan
ScRange aNewRange( aPStart, ScAddress(nDeleteCol1-1, nRow2, nTab) ); // 1
rNewRanges.push_back(aNewRange);
p->aStart.SetCol(nDeleteCol2+1); // 2
r.aStart.SetCol(nDeleteCol2+1); // 2
return true;
}
@@ -785,12 +785,12 @@ bool checkForThreeRanges(
return false;
}
bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRange>& rNewRanges )
bool handleThreeRanges( const ScRange& rDeleteRange, ScRange& r, std::vector<ScRange>& rNewRanges )
{
const ScAddress& rDelStart = rDeleteRange.aStart;
const ScAddress& rDelEnd = rDeleteRange.aEnd;
ScAddress aPStart = p->aStart;
ScAddress aPEnd = p->aEnd;
ScAddress aPStart = r.aStart;
ScAddress aPEnd = r.aEnd;
SCCOL nDeleteCol1 = rDelStart.Col();
SCCOL nDeleteCol2 = rDelEnd.Col();
SCROW nDeleteRow1 = rDelStart.Row();
@@ -819,7 +819,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR
aNewRange = ScRange(ScAddress(nDeleteCol1, nDeleteRow2+1, nTab), aPEnd); // 3
rNewRanges.push_back(aNewRange);
p->aEnd.SetCol(nDeleteCol1-1); // 1
r.aEnd.SetCol(nDeleteCol1-1); // 1
}
else
{
@@ -837,7 +837,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR
aNewRange = ScRange(nCol1, nDeleteRow2+1, nTab, nDeleteCol2, nRow2, nTab); // 3
rNewRanges.push_back(aNewRange);
p->aStart.SetCol(nDeleteCol2+1); // 2
r.aStart.SetCol(nDeleteCol2+1); // 2
}
return true;
}
@@ -861,7 +861,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR
aNewRange = ScRange(ScAddress(nDeleteCol2+1, nDeleteRow1, nTab), aPEnd); // 3
rNewRanges.push_back( aNewRange );
p->aEnd.SetRow(nDeleteRow1-1); // 1
r.aEnd.SetRow(nDeleteRow1-1); // 1
}
else
{
@@ -880,7 +880,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR
aNewRange = ScRange(nDeleteCol2+1, nRow1, nTab, nCol2, nDeleteRow2, nTab); // 2
rNewRanges.push_back( aNewRange );
p->aStart.SetRow(nDeleteRow2+1); // 3
r.aStart.SetRow(nDeleteRow2+1); // 3
}
return true;
}
@@ -888,12 +888,12 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR
return false;
}
bool handleFourRanges( const ScRange& rDelRange, ScRange* p, std::vector<ScRange>& rNewRanges )
bool handleFourRanges( const ScRange& rDelRange, ScRange& r, std::vector<ScRange>& rNewRanges )
{
const ScAddress& rDelStart = rDelRange.aStart;
const ScAddress& rDelEnd = rDelRange.aEnd;
ScAddress aPStart = p->aStart;
ScAddress aPEnd = p->aEnd;
ScAddress aPStart = r.aStart;
ScAddress aPEnd = r.aEnd;
SCCOL nDeleteCol1 = rDelStart.Col();
SCCOL nDeleteCol2 = rDelEnd.Col();
SCROW nDeleteRow1 = rDelStart.Row();
@@ -926,7 +926,7 @@ bool handleFourRanges( const ScRange& rDelRange, ScRange* p, std::vector<ScRange
aNewRange = ScRange(nDeleteCol2+1, nDeleteRow1, nTab, nCol2, nDeleteRow2, nTab); // 3
rNewRanges.push_back( aNewRange );
p->aEnd.SetRow(nDeleteRow1-1); // 1
r.aEnd.SetRow(nDeleteRow1-1); // 1
return true;
}
@@ -960,7 +960,7 @@ bool ScRangeList::DeleteArea( SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
// 1. Delete area and pRange intersect
// 2. Delete area and pRange are not intersecting
// checking for 2 and if true skip this range
if(!(*itr)->Intersects(aRange))
if(!itr->Intersects(aRange))
continue;
// We get between 1 and 4 ranges from the difference of the first with the second
@@ -1016,14 +1016,14 @@ const ScRange* ScRangeList::Find( const ScAddress& rAdr ) const
{
const_iterator itr = find_if(
maRanges.begin(), maRanges.end(), FindEnclosingRange<ScAddress>(rAdr));
return itr == maRanges.end() ? nullptr : *itr;
return itr == maRanges.end() ? nullptr : &*itr;
}
ScRange* ScRangeList::Find( const ScAddress& rAdr )
{
iterator itr = find_if(
maRanges.begin(), maRanges.end(), FindEnclosingRange<ScAddress>(rAdr));
return itr == maRanges.end() ? nullptr : *itr;
return itr == maRanges.end() ? nullptr : &*itr;
}
ScRangeList::ScRangeList() : mnMaxRowUsed(-1) {}
@@ -1037,11 +1037,18 @@ ScRangeList::ScRangeList( const ScRangeList& rList ) :
mnMaxRowUsed = rList.mnMaxRowUsed;
}
ScRangeList::ScRangeList( const ScRangeList&& rList ) :
SvRefBase(),
maRanges(rList.maRanges),
mnMaxRowUsed(rList.mnMaxRowUsed)
{
}
ScRangeList::ScRangeList( const ScRange& rRange ) :
mnMaxRowUsed(-1)
{
maRanges.reserve(1);
Append(rRange);
push_back(rRange);
}
ScRangeList& ScRangeList::operator=(const ScRangeList& rList)
@@ -1053,10 +1060,11 @@ ScRangeList& ScRangeList::operator=(const ScRangeList& rList)
return *this;
}
void ScRangeList::Append( const ScRange& rRange )
ScRangeList& ScRangeList::operator=(ScRangeList&& rList)
{
ScRange* pR = new ScRange( rRange );
push_back( pR );
maRanges = std::move(rList.maRanges);
mnMaxRowUsed = rList.mnMaxRowUsed;
return *this;
}
bool ScRangeList::Intersects( const ScRange& rRange ) const
@@ -1080,16 +1088,11 @@ void ScRangeList::Remove(size_t nPos)
if (maRanges.size() <= nPos)
// Out-of-bound condition. Bail out.
return;
iterator itr = maRanges.begin();
advance(itr, nPos);
delete *itr;
maRanges.erase(itr);
maRanges.erase(maRanges.begin() + nPos);
}
void ScRangeList::RemoveAll()
{
for_each(maRanges.begin(), maRanges.end(), std::default_delete<ScRange>());
maRanges.clear();
}
@@ -1099,11 +1102,11 @@ ScRange ScRangeList::Combine() const
return ScRange();
const_iterator itr = maRanges.begin(), itrEnd = maRanges.end();
ScRange aRet = **itr;
ScRange aRet = *itr;
++itr;
for (; itr != itrEnd; ++itr)
{
const ScRange& r = **itr;
const ScRange& r = *itr;
SCROW nRow1 = r.aStart.Row(), nRow2 = r.aEnd.Row();
SCCOL nCol1 = r.aStart.Col(), nCol2 = r.aEnd.Col();
SCTAB nTab1 = r.aStart.Tab(), nTab2 = r.aEnd.Tab();
@@ -1123,51 +1126,11 @@ ScRange ScRangeList::Combine() const
return aRet;
}
bool ScRangeList::empty() const
void ScRangeList::push_back(const ScRange & r)
{
return maRanges.empty();
}
size_t ScRangeList::size() const
{
return maRanges.size();
}
ScRange* ScRangeList::operator [](size_t idx)
{
return maRanges[idx];
}
const ScRange* ScRangeList::operator [](size_t idx) const
{
return maRanges[idx];
}
ScRange* ScRangeList::front()
{
return maRanges.front();
}
const ScRange* ScRangeList::front() const
{
return maRanges.front();
}
ScRange* ScRangeList::back()
{
return maRanges.back();
}
const ScRange* ScRangeList::back() const
{
return maRanges.back();
}
void ScRangeList::push_back(ScRange* p)
{
maRanges.push_back(p);
if (mnMaxRowUsed < p->aEnd.Row())
mnMaxRowUsed = p->aEnd.Row();
maRanges.push_back(r);
if (mnMaxRowUsed < r.aEnd.Row())
mnMaxRowUsed = r.aEnd.Row();
}
void ScRangeList::swap( ScRangeList& r )
@@ -1181,14 +1144,14 @@ ScAddress ScRangeList::GetTopLeftCorner() const
if(empty())
return ScAddress();
ScAddress aAddr = maRanges[0]->aStart;
ScAddress const * pAddr = &maRanges[0].aStart;
for(size_t i = 1, n = size(); i < n; ++i)
{
if(maRanges[i]->aStart < aAddr)
aAddr = maRanges[i]->aStart;
if(maRanges[i].aStart < *pAddr)
pAddr = &maRanges[i].aStart;
}
return aAddr;
return *pAddr;
}
ScRangeList ScRangeList::GetIntersectedRange(const ScRange& rRange) const
@@ -1197,12 +1160,12 @@ ScRangeList ScRangeList::GetIntersectedRange(const ScRange& rRange) const
for(const_iterator itr = maRanges.begin(), itrEnd = maRanges.end();
itr != itrEnd; ++itr)
{
if((*itr)->Intersects(rRange))
if(itr->Intersects(rRange))
{
SCCOL nColStart1, nColEnd1, nColStart2, nColEnd2;
SCROW nRowStart1, nRowEnd1, nRowStart2, nRowEnd2;
SCTAB nTabStart1, nTabEnd1, nTabStart2, nTabEnd2;
(*itr)->GetVars(nColStart1, nRowStart1, nTabStart1,
itr->GetVars(nColStart1, nRowStart1, nTabStart1,
nColEnd1, nRowEnd1, nTabEnd1);
rRange.GetVars(nColStart2, nRowStart2, nTabStart2,
nColEnd2, nRowEnd2, nTabEnd2);
diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx
index 67bd935..153fc21c 100644
--- a/sc/source/core/tool/rangeutl.cxx
+++ b/sc/source/core/tool/rangeutl.cxx
@@ -542,13 +542,13 @@ bool ScRangeStringConverter::GetRangeListFromString(
sal_Int32 nOffset = 0;
while( nOffset >= 0 )
{
std::unique_ptr<ScRange> pRange( new ScRange );
ScRange aRange;
if (
GetRangeFromString( *pRange, rRangeListStr, pDocument, eConv, nOffset, cSeparator, cQuote ) &&
GetRangeFromString( aRange, rRangeListStr, pDocument, eConv, nOffset, cSeparator, cQuote ) &&
(nOffset >= 0)
)
{
rRangeList.push_back( pRange.release() );
rRangeList.push_back( aRange );
}
else if (nOffset > -1)
bRet = false;
@@ -644,9 +644,8 @@ void ScRangeStringConverter::GetStringFromRangeList(
{
for( size_t nIndex = 0, nCount = pRangeList->size(); nIndex < nCount; nIndex++ )
{
const ScRange* pRange = (*pRangeList)[nIndex];
if( pRange )
GetStringFromRange( sRangeListStr, *pRange, pDocument, eConv, cSeparator, true );
const ScRange & rRange = (*pRangeList)[nIndex];
GetStringFromRange( sRangeListStr, rRange, pDocument, eConv, cSeparator, true );
}
}
rString = sRangeListStr;
diff --git a/sc/source/core/tool/reftokenhelper.cxx b/sc/source/core/tool/reftokenhelper.cxx
index d1422f1..af6960e 100644
--- a/sc/source/core/tool/reftokenhelper.cxx
+++ b/sc/source/core/tool/reftokenhelper.cxx
@@ -163,7 +163,7 @@ void ScRefTokenHelper::getRangeListFromTokens(
{
ScRange aRange;
getRangeFromToken(aRange, *itr, rPos);
rRangeList.Append(aRange);
rRangeList.push_back(aRange);
}
}
@@ -187,13 +187,9 @@ void ScRefTokenHelper::getTokensFromRangeList(vector<ScTokenRef>& pTokens, const
aTokens.reserve(nCount);
for (size_t i = 0; i < nCount; ++i)
{
const ScRange* pRange = rRanges[i];
if (!pRange)
// failed.
return;
const ScRange & rRange = rRanges[i];
ScTokenRef pToken;
ScRefTokenHelper::getTokenFromRange(pToken,* pRange);
ScRefTokenHelper::getTokenFromRange(pToken, rRange);
aTokens.push_back(pToken);
}
pTokens.swap(aTokens);
diff --git a/sc/source/filter/excel/excform.cxx b/sc/source/filter/excel/excform.cxx
index 499c315..b7c7afa 100644
--- a/sc/source/filter/excel/excform.cxx
+++ b/sc/source/filter/excel/excform.cxx
@@ -1423,7 +1423,7 @@ void ExcelToSc::GetAbsRefs( ScRangeList& rRangeList, XclImpStream& rStrm, std::s
nRow1 &= 0x3FFF;
nRow2 &= 0x3FFF;
if( GetAddressConverter().ConvertRange( aScRange, XclRange( nCol1, nRow1, nCol2, nRow2 ), nTab1, nTab2, true ) )
rRangeList.Append( aScRange );
rRangeList.push_back( aScRange );
}
break;
diff --git a/sc/source/filter/excel/excform8.cxx b/sc/source/filter/excel/excform8.cxx
index ccd2211a..515e89c 100644
--- a/sc/source/filter/excel/excform8.cxx
+++ b/sc/source/filter/excel/excform8.cxx
@@ -1580,7 +1580,7 @@ void ExcelToSc8::GetAbsRefs( ScRangeList& r, XclImpStream& aIn, std::size_t nLen
nCol1 &= 0x3FFF;
nCol2 &= 0x3FFF;
if( GetAddressConverter().ConvertRange( aScRange, XclRange( nCol1, nRow1, nCol2, nRow2 ), nTab1, nTab2, true ) )
r.Append( aScRange );
r.push_back( aScRange );
}
break;
case 0x1C: // Error Value [314 266]
diff --git a/sc/source/filter/excel/xecontent.cxx b/sc/source/filter/excel/xecontent.cxx
index 7eb0f68..473200a 100644
--- a/sc/source/filter/excel/xecontent.cxx
+++ b/sc/source/filter/excel/xecontent.cxx
@@ -258,7 +258,7 @@ void XclExpMergedcells::AppendRange( const ScRange& rRange, sal_uInt32 nBaseXFId
{
if( GetBiff() == EXC_BIFF8 )
{
maMergedRanges.Append( rRange );
maMergedRanges.push_back( rRange );
maBaseXFIds.push_back( nBaseXFId );
}
}
@@ -270,8 +270,8 @@ sal_uInt32 XclExpMergedcells::GetBaseXFId( const ScAddress& rPos ) const
ScRangeList& rNCRanges = const_cast< ScRangeList& >( maMergedRanges );
for ( size_t i = 0, nRanges = rNCRanges.size(); i < nRanges; ++i, ++aIt )
{
const ScRange* pScRange = rNCRanges[ i ];
if( pScRange->In( rPos ) )
const ScRange & rScRange = rNCRanges[ i ];
if( rScRange.In( rPos ) )
return *aIt;
}
return EXC_XFID_NOTFOUND;
@@ -308,12 +308,10 @@ void XclExpMergedcells::SaveXml( XclExpXmlStream& rStrm )
FSEND );
for( size_t i = 0; i < nCount; ++i )
{
if( const ScRange* pRange = maMergedRanges[ i ] )
{
rWorksheet->singleElement( XML_mergeCell,
XML_ref, XclXmlUtils::ToOString( *pRange ).getStr(),
const ScRange & rRange = maMergedRanges[ i ];
rWorksheet->singleElement( XML_mergeCell,
XML_ref, XclXmlUtils::ToOString( rRange ).getStr(),
FSEND );
}
}
rWorksheet->endElement( XML_mergeCells );
}
@@ -540,9 +538,9 @@ XclExpLabelranges::XclExpLabelranges( const XclExpRoot& rRoot ) :
// row labels only over 1 column (restriction of Excel97/2000/XP)
for ( size_t i = 0, nRanges = maRowRanges.size(); i < nRanges; ++i )
{
ScRange* pScRange = maRowRanges[ i ];
if( pScRange->aStart.Col() != pScRange->aEnd.Col() )
pScRange->aEnd.SetCol( pScRange->aStart.Col() );
ScRange & rScRange = maRowRanges[ i ];
if( rScRange.aStart.Col() != rScRange.aEnd.Col() )
rScRange.aEnd.SetCol( rScRange.aStart.Col() );
}
// col label ranges
FillRangeList( maColRanges, rRoot.GetDoc().GetColNameRangesRef(), nScTab );
@@ -556,7 +554,7 @@ void XclExpLabelranges::FillRangeList( ScRangeList& rScRanges,
ScRangePair* pRangePair = (*xLabelRangesRef)[i];
const ScRange& rScRange = pRangePair->GetRange( 0 );
if( rScRange.aStart.Tab() == nScTab )
rScRanges.Append( rScRange );
rScRanges.push_back( rScRange );
}
}
@@ -1345,8 +1343,8 @@ XclExpColorScale::XclExpColorScale( const XclExpRoot& rRoot, const ScColorScaleF
XclExpRoot( rRoot ),
mnPriority( nPriority )
{
const ScRange* pRange = rFormat.GetRange().front();
ScAddress aAddr = pRange->aStart;
const ScRange & rRange = rFormat.GetRange().front();
ScAddress aAddr = rRange.aStart;
for(ScColorScaleEntries::const_iterator itr = rFormat.begin();
itr != rFormat.end(); ++itr)
{
@@ -1385,8 +1383,8 @@ XclExpDataBar::XclExpDataBar( const XclExpRoot& rRoot, const ScDataBarFormat& rF
mnPriority( nPriority ),
maGUID(rGUID)
{
const ScRange* pRange = rFormat.GetRange().front();
ScAddress aAddr = pRange->aStart;
const ScRange & rRange = rFormat.GetRange().front();
ScAddress aAddr = rRange.aStart;
// exact position is not important, we allow only absolute refs
mpCfvoLowerLimit.reset( new XclExpCfvo( GetRoot(), *mrFormat.GetDataBarData()->mpLowerLimit.get(), aAddr, true ) );
mpCfvoUpperLimit.reset( new XclExpCfvo( GetRoot(), *mrFormat.GetDataBarData()->mpUpperLimit.get(), aAddr, false ) );
@@ -1438,8 +1436,8 @@ XclExpIconSet::XclExpIconSet( const XclExpRoot& rRoot, const ScIconSetFormat& rF
mrFormat( rFormat ),
mnPriority( nPriority )
{
const ScRange* pRange = rFormat.GetRange().front();
ScAddress aAddr = pRange->aStart;
const ScRange & rRange = rFormat.GetRange().front();
ScAddress aAddr = rRange.aStart;
for (auto const& itr : rFormat)
{
// exact position is not important, we allow only absolute refs
diff --git a/sc/source/filter/excel/xeextlst.cxx b/sc/source/filter/excel/xeextlst.cxx
index 52d90b1..0fa2819 100644
--- a/sc/source/filter/excel/xeextlst.cxx
+++ b/sc/source/filter/excel/xeextlst.cxx
@@ -308,7 +308,7 @@ XclExpExtConditionalFormatting::XclExpExtConditionalFormatting( const XclExpRoot
XclExpRoot(rRoot),
maRange(rRange)
{
ScAddress aAddr = maRange.front()->aStart;
ScAddress aAddr = maRange.front().aStart;
for (auto itr = rData.begin(), itrEnd = rData.end(); itr != itrEnd; ++itr)
{
const ScFormatEntry* pEntry = itr->pEntry;
diff --git a/sc/source/filter/excel/xeformula.cxx b/sc/source/filter/excel/xeformula.cxx
index dab92a0..3cd1bd9 100644
--- a/sc/source/filter/excel/xeformula.cxx
+++ b/sc/source/filter/excel/xeformula.cxx
@@ -2630,7 +2630,7 @@ XclTokenArrayRef XclExpFormulaCompiler::CreateFormula( XclFormulaType eType, con
{
if( nIdx > 0 )
aScTokArr.AddOpCode( ocUnion );
lclPutRangeToTokenArray( aScTokArr, *rScRanges[ nIdx ], nCurrScTab, b3DRefOnly );
lclPutRangeToTokenArray( aScTokArr, rScRanges[ nIdx ], nCurrScTab, b3DRefOnly );
}
return mxImpl->CreateFormula( eType, aScTokArr );
}
diff --git a/sc/source/filter/excel/xehelper.cxx b/sc/source/filter/excel/xehelper.cxx
index d9f7e38..0d9d7b4 100644
--- a/sc/source/filter/excel/xehelper.cxx
+++ b/sc/source/filter/excel/xehelper.cxx
@@ -250,8 +250,8 @@ void XclExpAddressConverter::ValidateRangeList( ScRangeList& rScRanges, bool bWa
{
for ( size_t nRange = rScRanges.size(); nRange > 0; )
{
ScRange* pScRange = rScRanges[ --nRange ];
if( !CheckRange( *pScRange, bWarn ) )
ScRange & rScRange = rScRanges[ --nRange ];
if( !CheckRange( rScRange, bWarn ) )
rScRanges.Remove(nRange);
}
}
@@ -262,12 +262,10 @@ void XclExpAddressConverter::ConvertRangeList( XclRangeList& rXclRanges,
rXclRanges.clear();
for( size_t nPos = 0, nCount = rScRanges.size(); nPos < nCount; ++nPos )
{
if( const ScRange* pScRange = rScRanges[ nPos ] )
{
XclRange aXclRange( ScAddress::UNINITIALIZED );
if( ConvertRange( aXclRange, *pScRange, bWarn ) )
rXclRanges.push_back( aXclRange );
}
const ScRange & rScRange = rScRanges[ nPos ];
XclRange aXclRange( ScAddress::UNINITIALIZED );
if( ConvertRange( aXclRange, rScRange, bWarn ) )
rXclRanges.push_back( aXclRange );
}
}
diff --git a/sc/source/filter/excel/xename.cxx b/sc/source/filter/excel/xename.cxx
index 7b315d1..d0f9579 100644
--- a/sc/source/filter/excel/xename.cxx
+++ b/sc/source/filter/excel/xename.cxx
@@ -602,7 +602,7 @@ void XclExpNameManagerImpl::CreateBuiltInNames()
aRange.aStart.SetTab( nScTab );
aRange.aEnd.SetTab( nScTab );
aRange.PutInOrder();
aRangeList.Append( aRange );
aRangeList.push_back( aRange );
}
// create the NAME record (do not warn if ranges are shrunken)
GetAddressConverter().ValidateRangeList( aRangeList, false );
@@ -615,12 +615,12 @@ void XclExpNameManagerImpl::CreateBuiltInNames()
ScRangeList aTitleList;
// repeated columns
if( const ScRange* pColRange = rDoc.GetRepeatColRange( nScTab ) )
aTitleList.Append( ScRange(
aTitleList.push_back( ScRange(
pColRange->aStart.Col(), 0, nScTab,
pColRange->aEnd.Col(), GetXclMaxPos().Row(), nScTab ) );
// repeated rows
if( const ScRange* pRowRange = rDoc.GetRepeatRowRange( nScTab ) )
aTitleList.Append( ScRange(
aTitleList.push_back( ScRange(
0, pRowRange->aStart.Row(), nScTab,
GetXclMaxPos().Col(), pRowRange->aEnd.Row(), nScTab ) );
// create the NAME record
@@ -695,7 +695,7 @@ sal_uInt16 XclExpNameManager::InsertBuiltInName( sal_Unicode cBuiltIn, const ScR
if( !rRangeList.empty() )
{
XclTokenArrayRef xTokArr = GetFormulaCompiler().CreateFormula( EXC_FMLATYPE_NAME, rRangeList );
nNameIdx = mxImpl->InsertBuiltInName( cBuiltIn, xTokArr, rRangeList.front()->aStart.Tab(), rRangeList );
nNameIdx = mxImpl->InsertBuiltInName( cBuiltIn, xTokArr, rRangeList.front().aStart.Tab(), rRangeList );
}
return nNameIdx;
}
diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx
index 537c494..5a1c4a9 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -778,7 +778,7 @@ OString XclXmlUtils::ToOString( const XclRangeList& rRanges )
for( XclRangeVector::const_iterator i = rRanges.begin(), end = rRanges.end();
i != end; ++i )
{
aRanges.Append( lcl_ToRange( *i ) );
aRanges.push_back( lcl_ToRange( *i ) );
}
return ToOString( aRanges );
}
diff --git a/sc/source/filter/excel/xicontent.cxx b/sc/source/filter/excel/xicontent.cxx
index 5c01b7e..91244a7 100644
--- a/sc/source/filter/excel/xicontent.cxx
+++ b/sc/source/filter/excel/xicontent.cxx
@@ -448,7 +448,6 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm )
SCTAB nScTab = rRoot.GetCurrScTab();
XclImpAddressConverter& rAddrConv = rRoot.GetAddressConverter();
ScRangePairListRef xLabelRangesRef;
const ScRange* pScRange = nullptr;
XclRangeList aRowXclRanges, aColXclRanges;
rStrm >> aRowXclRanges >> aColXclRanges;
@@ -459,8 +458,8 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm )
xLabelRangesRef = rDoc.GetRowNameRangesRef();
for ( size_t i = 0, nRanges = aRowScRanges.size(); i < nRanges; ++i )
{
pScRange = aRowScRanges[ i ];
ScRange aDataRange( *pScRange );
const ScRange & rScRange = aRowScRanges[ i ];
ScRange aDataRange( rScRange );
if( aDataRange.aEnd.Col() < MAXCOL )
{
aDataRange.aStart.SetCol( aDataRange.aEnd.Col() + 1 );
@@ -471,7 +470,7 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm )
aDataRange.aEnd.SetCol( aDataRange.aStart.Col() - 1 );
aDataRange.aStart.SetCol( 0 );
}
xLabelRangesRef->Append( ScRangePair( *pScRange, aDataRange ) );
xLabelRangesRef->Append( ScRangePair( rScRange, aDataRange ) );
}
// column label ranges
@@ -481,8 +480,8 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm )
for ( size_t i = 0, nRanges = aColScRanges.size(); i < nRanges; ++i )
{
pScRange = aColScRanges[ i ];
ScRange aDataRange( *pScRange );
const ScRange & rScRange = aColScRanges[ i ];
ScRange aDataRange( rScRange );
if( aDataRange.aEnd.Row() < MAXROW )
{
aDataRange.aStart.SetRow( aDataRange.aEnd.Row() + 1 );
@@ -493,7 +492,7 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm )
aDataRange.aEnd.SetRow( aDataRange.aStart.Row() - 1 );
aDataRange.aStart.SetRow( 0 );
}
xLabelRangesRef->Append( ScRangePair( *pScRange, aDataRange ) );
xLabelRangesRef->Append( ScRangePair( rScRange, aDataRange ) );
}
}
@@ -651,7 +650,7 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm )
// *** formulas ***
const ScAddress& rPos = maRanges.front()->aStart; // assured above that maRanges is not empty
const ScAddress& rPos = maRanges.front().aStart; // assured above that maRanges is not empty
ExcelToSc& rFmlaConv = GetOldFmlaConverter();
::std::unique_ptr< ScTokenArray > xTokArr1;
@@ -690,7 +689,7 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm )
{
mxScCondFmt.reset( new ScConditionalFormat( 0/*nKey*/, &GetDocRef() ) );
if(maRanges.size() > 1)
maRanges.Join(*maRanges[0], true);
maRanges.Join(maRanges[0], true);
mxScCondFmt->SetRange(maRanges);
}
@@ -705,7 +704,7 @@ void XclImpCondFormat::Apply()
{
ScDocument& rDoc = GetDoc();
SCTAB nTab = maRanges.front()->aStart.Tab();
SCTAB nTab = maRanges.front().aStart.Tab();
sal_uLong nKey = rDoc.AddCondFormat( mxScCondFmt->Clone(), nTab );
rDoc.AddCondFormatData( maRanges, nTab, nKey );
@@ -888,7 +887,7 @@ void XclImpValidationManager::ReadDV( XclImpStream& rStrm )
return;
// first range for base address for relative references
const ScRange& rScRange = *aScRanges.front(); // aScRanges is not empty
const ScRange& rScRange = aScRanges.front(); // aScRanges is not empty
// process string list of a list validity (convert to list of string tokens)
if( xTokArr1.get() && (eValMode == SC_VALID_LIST) && ::get_flag( nFlags, EXC_DV_STRINGLIST ) )
@@ -938,9 +937,9 @@ void XclImpValidationManager::Apply()
// apply all ranges
for ( size_t i = 0, nRanges = rItem.maRanges.size(); i < nRanges; ++i )
{
const ScRange* pScRange = rItem.maRanges[ i ];
rDoc.ApplyPatternAreaTab( pScRange->aStart.Col(), pScRange->aStart.Row(),
pScRange->aEnd.Col(), pScRange->aEnd.Row(), pScRange->aStart.Tab(), aPattern );
const ScRange & rScRange = rItem.maRanges[ i ];
rDoc.ApplyPatternAreaTab( rScRange.aStart.Col(), rScRange.aStart.Row(),
rScRange.aEnd.Col(), rScRange.aEnd.Row(), rScRange.aStart.Tab(), aPattern );
}
}
maDVItems.clear();
diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx
index f38c13f..94b2d01 100644
--- a/sc/source/filter/excel/xiescher.cxx
+++ b/sc/source/filter/excel/xiescher.cxx
@@ -1927,8 +1927,8 @@ void XclImpControlHelper::ReadCellLinkFormula( XclImpStream& rStrm, bool bWithBo
// Use first cell of first range
if ( !aScRanges.empty() )
{
const ScRange* pScRange = aScRanges.front();
mxCellLink.reset( new ScAddress( pScRange->aStart ) );
const ScRange & rScRange = aScRanges.front();
mxCellLink.reset( new ScAddress( rScRange.aStart ) );
}
}
@@ -1939,8 +1939,8 @@ void XclImpControlHelper::ReadSourceRangeFormula( XclImpStream& rStrm, bool bWit
// Use first range
if ( !aScRanges.empty() )
{
const ScRange* pScRange = aScRanges.front();
mxSrcRange.reset( new ScRange( *pScRange ) );
const ScRange & rScRange = aScRanges.front();
mxSrcRange.reset( new ScRange( rScRange ) );
}
}
diff --git a/sc/source/filter/excel/xihelper.cxx b/sc/source/filter/excel/xihelper.cxx
index 3633a01..c2b65d1 100644
--- a/sc/source/filter/excel/xihelper.cxx
+++ b/sc/source/filter/excel/xihelper.cxx
@@ -131,7 +131,7 @@ void XclImpAddressConverter::ConvertRangeList( ScRangeList& rScRanges,
{
ScRange aScRange( ScAddress::UNINITIALIZED );
if( ConvertRange( aScRange, *aIt, nScTab, nScTab, bWarn ) )
rScRanges.Append( aScRange );
rScRanges.push_back( aScRange );
}
}
diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx
index 1059f88..75100c8 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -1905,11 +1905,11 @@ void XclImpXFRangeBuffer::SetXF( const ScAddress& rScPos, sal_uInt16 nXFIndex, X
if( pXF && ((pXF->GetHorAlign() == EXC_XF_HOR_CENTER_AS) || (pXF->GetHorAlign() == EXC_XF_HOR_FILL)) )
{
// expand last merged range if this attribute is set repeatedly
ScRange* pRange = maMergeList.empty() ? nullptr : maMergeList.back();
ScRange* pRange = maMergeList.empty() ? nullptr : &maMergeList.back();
if (pRange && (pRange->aEnd.Row() == nScRow) && (pRange->aEnd.Col() + 1 == nScCol) && (eMode == xlXFModeBlank))
pRange->aEnd.IncCol();
else if( eMode != xlXFModeBlank ) // do not merge empty cells
maMergeList.Append( ScRange( nScCol, nScRow, 0 ) );
maMergeList.push_back( ScRange( nScCol, nScRow, 0 ) );
}
}
}
@@ -1970,7 +1970,7 @@ void XclImpXFRangeBuffer::SetHyperlink( const XclRange& rXclRange, const OUStrin
void XclImpXFRangeBuffer::SetMerge( SCCOL nScCol1, SCROW nScRow1, SCCOL nScCol2, SCROW nScRow2 )
{
if( (nScCol1 < nScCol2) || (nScRow1 < nScRow2) )
maMergeList.Append( ScRange( nScCol1, nScRow1, 0, nScCol2, nScRow2, 0 ) );
maMergeList.push_back( ScRange( nScCol1, nScRow1, 0, nScCol2, nScRow2, 0 ) );
}
void XclImpXFRangeBuffer::Finalize()
@@ -2029,17 +2029,17 @@ void XclImpXFRangeBuffer::Finalize()
// apply cell merging
for ( size_t i = 0, nRange = maMergeList.size(); i < nRange; ++i )
{
const ScRange* pRange = maMergeList[ i ];
const ScAddress& rStart = pRange->aStart;
const ScAddress& rEnd = pRange->aEnd;
const ScRange & rRange = maMergeList[ i ];
const ScAddress& rStart = rRange.aStart;
const ScAddress& rEnd = rRange.aEnd;
bool bMultiCol = rStart.Col() != rEnd.Col();
bool bMultiRow = rStart.Row() != rEnd.Row();
// set correct right border
if( bMultiCol )
SetBorderLine( *pRange, nScTab, SvxBoxItemLine::RIGHT );
SetBorderLine( rRange, nScTab, SvxBoxItemLine::RIGHT );
// set correct lower border
if( bMultiRow )
SetBorderLine( *pRange, nScTab, SvxBoxItemLine::BOTTOM );
SetBorderLine( rRange, nScTab, SvxBoxItemLine::BOTTOM );
// do merge
if( bMultiCol || bMultiRow )
rDoc.getDoc().DoMerge( nScTab, rStart.Col(), rStart.Row(), rEnd.Col(), rEnd.Row() );
diff --git a/sc/source/filter/html/htmlimp.cxx b/sc/source/filter/html/htmlimp.cxx
index 4065583..a5f1f11 100644
--- a/sc/source/filter/html/htmlimp.cxx
+++ b/sc/source/filter/html/htmlimp.cxx
@@ -221,7 +221,7 @@ OUString ScHTMLImport::GetHTMLRangeNameList( const ScDocument* pDoc, const OUStr
if( pRangeData->IsReference( aRange ) && !aRangeList.In( aRange ) )
{
aNewName = ScGlobal::addToken(aNewName, aToken, ';');
aRangeList.Append( aRange );
aRangeList.push_back( aRange );
}
}
else
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index fd596fb..e53eec4 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -445,10 +445,10 @@ void ScHTMLLayoutParser::SkipLocked( ScEEParseEntry* pE, bool bJoin )
bAgain = false;
for ( size_t i = 0, nRanges = xLockedList->size(); i < nRanges; ++i )
{
ScRange* pR = (*xLockedList)[i];
if ( pR->Intersects( aRange ) )
ScRange & rR = (*xLockedList)[i];
if ( rR.Intersects( aRange ) )
{
pE->nCol = pR->aEnd.Col() + 1;
pE->nCol = rR.aEnd.Col() + 1;
SCCOL nTmp = pE->nCol + pE->nColOverlap - 1;
if ( pE->nCol > MAXCOL || nTmp > MAXCOL )
bBadCol = true;
@@ -2428,7 +2428,7 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
}
if( rSpanSize.mnRows > 1 )
{
maVMergedCells.Append( aNewRange );
maVMergedCells.push_back( aNewRange );
/* Do not insert vertically merged ranges into maUsedCells yet,
because they may be shrunken (see above). The final vertically
merged ranges are inserted in FillEmptyCells(). */
@@ -2436,7 +2436,7 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
else
{
if( rSpanSize.mnCols > 1 )
maHMergedCells.Append( aNewRange );
maHMergedCells.push_back( aNewRange );
/* Insert horizontally merged ranges and single cells into
maUsedCells, they will not be changed anymore. */
maUsedCells.Join( aNewRange );
@@ -2589,8 +2589,8 @@ void ScHTMLTable::FillEmptyCells()
// insert the final vertically merged ranges into maUsedCells
for ( size_t i = 0, nRanges = maVMergedCells.size(); i < nRanges; ++i )
{
ScRange* pRange = maVMergedCells[ i ];
maUsedCells.Join( *pRange );
ScRange & rRange = maVMergedCells[ i ];
maUsedCells.Join( rRange );
}
for( ScAddress aAddr; aAddr.Row() < maSize.mnRows; aAddr.IncRow() )
diff --git a/sc/source/filter/oox/addressconverter.cxx b/sc/source/filter/oox/addressconverter.cxx
index 9f77412..987cef4 100644
--- a/sc/source/filter/oox/addressconverter.cxx
+++ b/sc/source/filter/oox/addressconverter.cxx
@@ -421,7 +421,7 @@ bool AddressConverter::convertToCellRange( ScRange& orRange,
void AddressConverter::validateCellRangeList( ScRangeList& orRanges, bool bTrackOverflow )
{
for( size_t nIndex = orRanges.size(); nIndex > 0; --nIndex )
if( !validateCellRange( *orRanges[ nIndex - 1 ], true, bTrackOverflow ) )
if( !validateCellRange( orRanges[ nIndex - 1 ], true, bTrackOverflow ) )
orRanges.Remove( nIndex - 1 );
}
@@ -435,7 +435,7 @@ void AddressConverter::convertToCellRangeList( ScRangeList& orRanges,
{
OUString aToken = rString.getToken( 0, ' ', nPos );
if( !aToken.isEmpty() && convertToCellRange( aRange, aToken, nSheet, true, bTrackOverflow ) )
orRanges.Append(aRange);
orRanges.push_back(aRange);
}
}
@@ -445,7 +445,7 @@ void AddressConverter::convertToCellRangeList( ScRangeList& orRanges,
ScRange aRange;
for( ::std::vector< BinRange >::const_iterator aIt = rBinRanges.begin(), aEnd = rBinRanges.end(); aIt != aEnd; ++aIt )
if( convertToCellRange( aRange, *aIt, nSheet, true, bTrackOverflow ) )
orRanges.Append( aRange );
orRanges.push_back( aRange );
}
Sequence<CellRangeAddress> AddressConverter::toApiSequence(const ScRangeList& orRanges)
@@ -455,7 +455,7 @@ Sequence<CellRangeAddress> AddressConverter::toApiSequence(const ScRangeList& or
CellRangeAddress* pApiRanges = aRangeSequence.getArray();
for (size_t i = 0; i < nSize; ++i)
{
ScUnoConversion::FillApiRange(pApiRanges[i], *orRanges[i]);
ScUnoConversion::FillApiRange(pApiRanges[i], orRanges[i]);
}
return aRangeSequence;
}
diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx
index 175b4a4..22f2445 100644
--- a/sc/source/filter/oox/condformatbuffer.cxx
+++ b/sc/source/filter/oox/condformatbuffer.cxx
@@ -1117,7 +1117,7 @@ void CondFormatBuffer::finalizeImport()
ScDocument* pDoc = &getScDocument();
const ScRangeList& rRange = (*itr)->getRange();
SCTAB nTab = rRange.front()->aStart.Tab();
SCTAB nTab = rRange.front().aStart.Tab();
ScConditionalFormat* pFormat = findFormatByRange(rRange, pDoc, nTab);
if (!pFormat)
{
diff --git a/sc/source/filter/oox/defnamesbuffer.cxx b/sc/source/filter/oox/defnamesbuffer.cxx
index 5b6adf5..84bba72 100644
--- a/sc/source/filter/oox/defnamesbuffer.cxx
+++ b/sc/source/filter/oox/defnamesbuffer.cxx
@@ -378,7 +378,7 @@ void DefinedName::convertFormula( const css::uno::Sequence<css::sheet::ExternalL
const ScAddress& rMaxPos = getAddressConverter().getMaxAddress();
for (size_t i = 0, nSize = aTitleRanges.size(); i < nSize; ++i)
{
const ScRange& rRange = *aTitleRanges[i];
const ScRange& rRange = aTitleRanges[i];
bool bFullRow = (rRange.aStart.Col() == 0) && ( rRange.aEnd.Col() >= rMaxPos.Col() );
bool bFullCol = (rRange.aStart.Row() == 0) && ( rRange.aEnd.Row() >= rMaxPos.Row() );
if( !bHasRowTitles && bFullRow && !bFullCol )
diff --git a/sc/source/filter/oox/extlstcontext.cxx b/sc/source/filter/oox/extlstcontext.cxx
index b5b3951..52fc82a 100644
--- a/sc/source/filter/oox/extlstcontext.cxx
+++ b/sc/source/filter/oox/extlstcontext.cxx
@@ -163,8 +163,8 @@ void ExtConditionalFormattingContext::onEndElement()
SCTAB nTab = getSheetIndex();
for (size_t i = 0; i < aRange.size(); ++i)
{
aRange[i]->aStart.SetTab(nTab);
aRange[i]->aEnd.SetTab(nTab);
aRange[i].aStart.SetTab(nTab);
aRange[i].aEnd.SetTab(nTab);
}
std::vector< std::unique_ptr<ExtCfCondFormat> >& rExtFormats = getCondFormats().importExtCondFormat();
diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx
index 2cb2ae9..476f0de 100644
--- a/sc/source/filter/oox/formulabase.cxx
+++ b/sc/source/filter/oox/formulabase.cxx
@@ -1499,7 +1499,7 @@ TokenToRangeListState lclProcessRef( ScRangeList& orRanges, const Any& rData, sa
ScAddress aAddress;
// ignore invalid addresses (with #REF! errors), but do not stop parsing
if( lclConvertToCellAddress( aAddress, aSingleRef, nForbiddenFlags, nFilterBySheet ) )
orRanges.Append( ScRange(aAddress, aAddress) );
orRanges.push_back( ScRange(aAddress, aAddress) );
return STATE_REF;
}
ComplexReference aComplexRef;
@@ -1508,7 +1508,7 @@ TokenToRangeListState lclProcessRef( ScRangeList& orRanges, const Any& rData, sa
ScRange aRange;
// ignore invalid ranges (with #REF! errors), but do not stop parsing
if( lclConvertToCellRange( aRange, aComplexRef, nForbiddenFlags, nFilterBySheet ) )
orRanges.Append( aRange );
orRanges.push_back( aRange );
return STATE_REF;
}
return STATE_ERROR;
@@ -1610,7 +1610,7 @@ bool FormulaProcessorBase::extractCellRange( ScRange& orRange,
lclProcessRef( aRanges, extractReference( rTokens ), -1 );
if( !aRanges.empty() )
{
orRange = *aRanges.front();
orRange = aRanges.front();
return true;
}
return false;
diff --git a/sc/source/filter/oox/scenariobuffer.cxx b/sc/source/filter/oox/scenariobuffer.cxx
index 33dd467..aaa00d9 100644
--- a/sc/source/filter/oox/scenariobuffer.cxx
+++ b/sc/source/filter/oox/scenariobuffer.cxx
@@ -108,7 +108,7 @@ void Scenario::finalizeImport()
ScRangeList aRanges;
for( ScenarioCellVector::iterator aIt = maCells.begin(), aEnd = maCells.end(); aIt != aEnd; ++aIt )
if( !aIt->mbDeleted && rAddrConv.checkCellAddress( aIt->maPos, true ) )
aRanges.Append( ScRange(aIt->maPos, aIt->maPos) );
aRanges.push_back( ScRange(aIt->maPos, aIt->maPos) );
if( !aRanges.empty() && !maModel.maName.isEmpty() ) try
{
diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx b/sc/source/filter/oox/sheetdatabuffer.cxx
index d9d98b8..cf44072 100644
--- a/sc/source/filter/oox/sheetdatabuffer.cxx
+++ b/sc/source/filter/oox/sheetdatabuffer.cxx
@@ -336,7 +336,7 @@ void addIfNotInMyMap( const StylesBuffer& rStyles, std::map< FormatKeyPair, ScRa
// add ranges from the rangelist to the existing rangelist for the
// matching style ( should we check if they overlap ? )
for (size_t i = 0, nSize = rRangeList.size(); i < nSize; ++i)
it->second.Append(*rRangeList[i]);
it->second.push_back(rRangeList[i]);
return;
}
}
@@ -423,7 +423,7 @@ void SheetDataBuffer::finalizeImport()
{
const ScRangeList& rRanges( it->second );
for (size_t i = 0, nSize = rRanges.size(); i < nSize; ++i)
addColXfStyle( it->first.first, it->first.second, *rRanges[i]);
addColXfStyle( it->first.first, it->first.second, rRanges[i]);
}
for ( std::map< sal_Int32, std::vector< ValueRange > >::iterator it = maXfIdRowRangeList.begin(), it_end = maXfIdRowRangeList.end(); it != it_end; ++it )
@@ -660,7 +660,7 @@ void SheetDataBuffer::setCellFormat( const CellModel& rModel )
if( rModel.mnXfId >= 0 )
{
ScRangeList& rRangeList = maXfIdRangeLists[ XfIdNumFmtKey( rModel.mnXfId, -1 ) ];
ScRange* pLastRange = rRangeList.empty() ? nullptr : rRangeList.back();
ScRange* pLastRange = rRangeList.empty() ? nullptr : &rRangeList.back();
/* The xlsx sheet data contains row wise information.
* It is sufficient to check if the row range size is one
*/
@@ -674,28 +674,28 @@ void SheetDataBuffer::setCellFormat( const CellModel& rModel )
}
else
{
rRangeList.Append(ScRange(rModel.maCellAddr));
pLastRange = rRangeList.back();
rRangeList.push_back(ScRange(rModel.maCellAddr));
pLastRange = &rRangeList.back();
}
if (rRangeList.size() > 1)
{
for (size_t i = rRangeList.size() - 1; i != 0; --i)
{
ScRange* pMergeRange = rRangeList[i - 1];
if (pLastRange->aStart.Tab() != pMergeRange->aStart.Tab())
ScRange& rMergeRange = rRangeList[i - 1];
if (pLastRange->aStart.Tab() != rMergeRange.aStart.Tab())
break;
/* Try to merge this with the previous range */
if (pLastRange->aStart.Row() == (pMergeRange->aEnd.Row() + 1) &&
pLastRange->aStart.Col() == pMergeRange->aStart.Col() &&
pLastRange->aEnd.Col() == pMergeRange->aEnd.Col())
if (pLastRange->aStart.Row() == (rMergeRange.aEnd.Row() + 1) &&
pLastRange->aStart.Col() == rMergeRange.aStart.Col() &&
pLastRange->aEnd.Col() == rMergeRange.aEnd.Col())
{
pMergeRange->aEnd.SetRow(pLastRange->aEnd.Row());
rMergeRange.aEnd.SetRow(pLastRange->aEnd.Row());
rRangeList.Remove(rRangeList.size() - 1);
break;
}
else if (pLastRange->aStart.Row() > (pMergeRange->aEnd.Row() + 1))
else if (pLastRange->aStart.Row() > (rMergeRange.aEnd.Row() + 1))
break; // Un-necessary to check with any other rows
}
}
diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx
index 7d5c910..a4ecfd8 100644
--- a/sc/source/filter/xcl97/xcl97rec.cxx
+++ b/sc/source/filter/xcl97/xcl97rec.cxx
@@ -1382,9 +1382,9 @@ ExcEScenario::ExcEScenario( const XclExpRoot& rRoot, SCTAB nTab )
for( size_t nRange = 0; (nRange < pRList->size()) && bContLoop; nRange++ )
{
const ScRange* pRange = (*pRList)[nRange];
for( nRow = pRange->aStart.Row(); (nRow <= pRange->aEnd.Row()) && bContLoop; nRow++ )
for( nCol = pRange->aStart.Col(); (nCol <= pRange->aEnd.Col()) && bContLoop; nCol++ )
const ScRange & rRange = (*pRList)[nRange];
for( nRow = rRange.aStart.Row(); (nRow <= rRange.aEnd.Row()) && bContLoop; nRow++ )
for( nCol = rRange.aStart.Col(); (nCol <= rRange.aEnd.Col()) && bContLoop; nCol++ )
{
if( rDoc.HasValueData( nCol, nRow, nTab ) )
{
diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx
index 3db4904..6fdcdee 100644
--- a/sc/source/filter/xml/xmlcondformat.cxx
+++ b/sc/source/filter/xml/xmlcondformat.cxx
@@ -264,7 +264,7 @@ void SAL_CALL ScXMLConditionalFormatContext::endFastElement( sal_Int32 /*nElemen
// conditions could be loosened, but I am too tired to think on that right now.)
if (pFormat->size() == 1 &&
pFormat->GetRange().size() == 1 &&
pFormat->GetRange()[0]->aStart == aSrcPos &&
pFormat->GetRange()[0].aStart == aSrcPos &&
HasOneSingleFullyRelativeReference( pTokens, aOffsetForSingleRelRef ))
{
bSingleRelativeReference = true;
@@ -327,7 +327,7 @@ void SAL_CALL ScXMLConditionalFormatContext::endFastElement( sal_Int32 /*nElemen
// Mark cache entry as fresh, do necessary mangling of it and just return
aCacheEntry.mnAge = 0;
for (size_t k = 0; k < pFormat->GetRange().size(); ++k)
aCacheEntry.mpFormat->GetRangeList().Join(*(pFormat->GetRange()[k]));
aCacheEntry.mpFormat->GetRangeList().Join(pFormat->GetRange()[k]);
return;
}
}
diff --git a/sc/source/filter/xml/xmlsceni.cxx b/sc/source/filter/xml/xmlsceni.cxx
index 5a934b0..ed3c8b0 100644
--- a/sc/source/filter/xml/xmlsceni.cxx
+++ b/sc/source/filter/xml/xmlsceni.cxx
@@ -114,10 +114,9 @@ void SAL_CALL ScXMLTableScenarioContext::endFastElement( sal_Int32 /*nElement*/
pDoc->SetScenarioData( nCurrTable, sComment, aBorderColor, nFlags );
for( size_t i = 0; i < aScenarioRanges.size(); ++i )
{
ScRange* pRange(aScenarioRanges[ i ]);
if( pRange )
pDoc->ApplyFlagsTab( pRange->aStart.Col(), pRange->aStart.Row(),
pRange->aEnd.Col(), pRange->aEnd.Row(), nCurrTable, ScMF::Scenario );
ScRange const & rRange = aScenarioRanges[ i ];
pDoc->ApplyFlagsTab( rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row(), nCurrTable, ScMF::Scenario );
}
pDoc->SetActiveScenario( nCurrTable, bIsActive );
}
diff --git a/sc/source/filter/xml/xmlstyli.cxx b/sc/source/filter/xml/xmlstyli.cxx
index 0970b1a..5087bf0 100644
--- a/sc/source/filter/xml/xmlstyli.cxx
+++ b/sc/source/filter/xml/xmlstyli.cxx
@@ -511,8 +511,8 @@ void XMLTableStyleContext::ApplyCondFormat( const uno::Sequence<table::CellRange
size_t n = aRangeList.size();
for(size_t i = 0; i < n; ++i)
{
const ScRange* pRange = aRangeList[i];
rRangeList.Join(*pRange);
const ScRange & rRange = aRangeList[i];
rRangeList.Join(rRange);
}
pDoc->AddCondFormatData( aRangeList, nTab, nCondId );
diff --git a/sc/source/filter/xml/xmlsubti.cxx b/sc/source/filter/xml/xmlsubti.cxx
index a71d38e..520d484 100644
--- a/sc/source/filter/xml/xmlsubti.cxx
+++ b/sc/source/filter/xml/xmlsubti.cxx
@@ -275,7 +275,7 @@ void ScMyTables::AddMatrixRange(
nEndColumn, nEndRow, maCurrentCellPos.Tab()
);
maMatrixRangeList.Append(aScRange);
maMatrixRangeList.push_back(aScRange);
ScDocumentImport& rDoc = rImport.GetDoc();
ScTokenArray aCode;
diff --git a/sc/source/filter/xml/xmltabi.cxx b/sc/source/filter/xml/xmltabi.cxx
index 6cfa897..82e8c90 100644
--- a/sc/source/filter/xml/xmltabi.cxx
+++ b/sc/source/filter/xml/xmltabi.cxx
@@ -368,7 +368,7 @@ void SAL_CALL ScXMLTableContext::endFastElement(sal_Int32 /*nElement*/)
size_t nCount = aRangeList.size();
for (size_t i=0; i< nCount; i++ )
{
pDoc->AddPrintRange( nCurTab, *aRangeList[i] );
pDoc->AddPrintRange( nCurTab, aRangeList[i] );
}
}
else if (!bPrintEntireSheet)
diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx b/sc/source/ui/Accessibility/AccessibleCell.cxx
index e589d1d..3093137 100644
--- a/sc/source/ui/Accessibility/AccessibleCell.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCell.cxx
@@ -588,7 +588,7 @@ bool ScAccessibleCell::IsDropdown()
SCTAB nRangeCount = aRanges.size();
for (i=0; i<nRangeCount; i++)
{
ScRange aRange = *aRanges[i];
ScRange aRange = aRanges[i];
mpDoc->ExtendTotalMerge( aRange );
bool bTextBelow = ( aRange.aStart.Row() == 0 );
// MT IA2: Not used: sal_Bool bIsInScen = sal_False;
diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index 0111d54..09b7f61 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -54,16 +54,13 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa
{
if (pMarkedRanges->size() <= 1)
{
ScRange* pRange = pMarkedRanges->front();
if (pRange)
{
// MT IA2: Not used.
// const int nRowNum = pRange->aEnd.Row() - pRange->aStart.Row() + 1;
const int nColNum = pRange->aEnd.Col() - pRange->aStart.Col() + 1;
const int nCurCol = nSelectedChildIndex % nColNum;
const int nCurRow = (nSelectedChildIndex - nCurCol)/nColNum;
return ScMyAddress(static_cast<SCCOL>(pRange->aStart.Col() + nCurCol), pRange->aStart.Row() + nCurRow, maActiveCell.Tab());
}
ScRange const & rRange = pMarkedRanges->front();
// MT IA2: Not used.
// const int nRowNum = rRange.aEnd.Row() - rRange.aStart.Row() + 1;
const int nColNum = rRange.aEnd.Col() - rRange.aStart.Col() + 1;
const int nCurCol = nSelectedChildIndex % nColNum;
const int nCurRow = (nSelectedChildIndex - nCurCol)/nColNum;
return ScMyAddress(static_cast<SCCOL>(rRange.aStart.Col() + nCurCol), rRange.aStart.Row() + nCurRow, maActiveCell.Tab());
}
else
{
@@ -73,24 +70,24 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa
size_t nSize = pMarkedRanges->size();
for (size_t i = 0; i < nSize; ++i)
{
ScRange* pRange = (*pMarkedRanges)[i];
if (pRange->aStart.Tab() != pRange->aEnd.Tab())
ScRange const & rRange = (*pMarkedRanges)[i];
if (rRange.aStart.Tab() != rRange.aEnd.Tab())
{
if ((maActiveCell.Tab() >= pRange->aStart.Tab()) ||
maActiveCell.Tab() <= pRange->aEnd.Tab())
if ((maActiveCell.Tab() >= rRange.aStart.Tab()) ||
maActiveCell.Tab() <= rRange.aEnd.Tab())
{
m_vecTempRange.push_back(pRange);
nMinRow = std::min(pRange->aStart.Row(),nMinRow);
nMaxRow = std::max(pRange->aEnd.Row(),nMaxRow);
m_vecTempRange.push_back(rRange);
nMinRow = std::min(rRange.aStart.Row(),nMinRow);
nMaxRow = std::max(rRange.aEnd.Row(),nMaxRow);
}
else
SAL_WARN("sc", "Range of wrong table");
}
else if(pRange->aStart.Tab() == maActiveCell.Tab())
else if(rRange.aStart.Tab() == maActiveCell.Tab())
{
m_vecTempRange.push_back(pRange);
nMinRow = std::min(pRange->aStart.Row(),nMinRow);
nMaxRow = std::max(pRange->aEnd.Row(),nMaxRow);
m_vecTempRange.push_back(rRange);
nMinRow = std::min(rRange.aStart.Row(),nMinRow);
nMaxRow = std::max(rRange.aEnd.Row(),nMaxRow);
}
else
SAL_WARN("sc", "Range of wrong table");
@@ -103,10 +100,10 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa
VEC_RANGE::const_iterator vi = m_vecTempRange.begin();
for (; vi < m_vecTempRange.end(); ++vi)
{
ScRange *p = *vi;
if ( row >= p->aStart.Row() && row <= p->aEnd.Row())
ScRange const & r = *vi;
if ( row >= r.aStart.Row() && row <= r.aEnd.Row())
{
m_vecTempCol.emplace_back(p->aStart.Col(),p->aEnd.Col());
m_vecTempCol.emplace_back(r.aStart.Col(),r.aEnd.Col());
}
}
}
@@ -129,46 +126,46 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa
return ScMyAddress(0,0,maActiveCell.Tab());
}
bool ScAccessibleSpreadsheet::CalcScRangeDifferenceMax(const ScRange *pSrc, const ScRange *pDest, int nMax, VEC_MYADDR &vecRet, int &nSize)
bool ScAccessibleSpreadsheet::CalcScRangeDifferenceMax(const ScRange & rSrc, const ScRange & rDest, int nMax, VEC_MYADDR &vecRet, int &nSize)
{
//Src Must be :Src > Dest
if (pDest->In(*pSrc))
if (rDest.In(rSrc))
{//Here is Src In Dest,Src <= Dest
return false;
}
if (!pDest->Intersects(*pSrc))
if (!rDest.Intersects(rSrc))
{
int nCellCount = sal_uInt32(pDest->aEnd.Col() - pDest->aStart.Col() + 1)
* sal_uInt32(pDest->aEnd.Row() - pDest->aStart.Row() + 1)
* sal_uInt32(pDest->aEnd.Tab() - pDest->aStart.Tab() + 1);
int nCellCount = sal_uInt32(rDest.aEnd.Col() - rDest.aStart.Col() + 1)
* sal_uInt32(rDest.aEnd.Row() - rDest.aStart.Row() + 1)
* sal_uInt32(rDest.aEnd.Tab() - rDest.aStart.Tab() + 1);
if (nCellCount + nSize > nMax)
{
return true;
}
else if(nCellCount > 0)
{
for (sal_Int32 row = pDest->aStart.Row(); row <= pDest->aEnd.Row();++row)
for (sal_Int32 row = rDest.aStart.Row(); row <= rDest.aEnd.Row();++row)
{
for (sal_uInt16 col = pDest->aStart.Col(); col <= pDest->aEnd.Col();++col)
for (sal_uInt16 col = rDest.aStart.Col(); col <= rDest.aEnd.Col();++col)
{
vecRet.emplace_back(col,row,pDest->aStart.Tab());
vecRet.emplace_back(col,row,rDest.aStart.Tab());
}
}
}
return false;
}
sal_Int32 nMinRow = pSrc->aStart.Row();
sal_Int32 nMaxRow = pSrc->aEnd.Row();
sal_Int32 nMinRow = rSrc.aStart.Row();
sal_Int32 nMaxRow = rSrc.aEnd.Row();
for (; nMinRow <= nMaxRow ; ++nMinRow,--nMaxRow)
{
for (sal_uInt16 col = pSrc->aStart.Col(); col <= pSrc->aEnd.Col();++col)
for (sal_uInt16 col = rSrc.aStart.Col(); col <= rSrc.aEnd.Col();++col)
{
if (nSize > nMax)
{
return true;
}
ScMyAddress cell(col,nMinRow,pSrc->aStart.Tab());
if(!pDest->In(cell))
ScMyAddress cell(col,nMinRow,rSrc.aStart.Tab());
if(!rDest.In(cell))
{//In Src ,Not In Dest
vecRet.push_back(cell);
++nSize;
@@ -176,14 +173,14 @@ bool ScAccessibleSpreadsheet::CalcScRangeDifferenceMax(const ScRange *pSrc, cons
}
if (nMinRow != nMaxRow)
{
for (sal_uInt16 col = pSrc->aStart.Col(); col <= pSrc->aEnd.Col();++col)
for (sal_uInt16 col = rSrc.aStart.Col(); col <= rSrc.aEnd.Col();++col)
{
if (nSize > nMax)
{
return true;
}
ScMyAddress cell(col,nMaxRow,pSrc->aStart.Tab());
if(!pDest->In(cell))
ScMyAddress cell(col,nMaxRow,rSrc.aStart.Tab());
if(!rDest.In(cell))
{//In Src ,Not In Dest
vecRet.push_back(cell);
++nSize;
@@ -213,12 +210,12 @@ bool ScAccessibleSpreadsheet::CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScR
size_t nSrcSize = pSrc->size();
for (size_t i = 0; i < nSrcSize; ++i)
{
ScRange* pRange = (*pSrc)[i];
for (sal_Int32 row = pRange->aStart.Row(); row <= pRange->aEnd.Row();++row)
ScRange const & rRange = (*pSrc)[i];
for (sal_Int32 row = rRange.aStart.Row(); row <= rRange.aEnd.Row();++row)
{
for (sal_uInt16 col = pRange->aStart.Col(); col <= pRange->aEnd.Col();++col)
for (sal_uInt16 col = rRange.aStart.Col(); col <= rRange.aEnd.Col();++col)
{
vecRet.emplace_back(col,row,pRange->aStart.Tab());
vecRet.emplace_back(col,row, rRange.aStart.Tab());
}
}
}
@@ -229,12 +226,12 @@ bool ScAccessibleSpreadsheet::CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScR
size_t nSizeSrc = pSrc->size();
for (size_t i = 0; i < nSizeSrc; ++i)
{
ScRange* pRange = (*pSrc)[i];
ScRange const & rRange = (*pSrc)[i];
size_t nSizeDest = pDest->size();
for (size_t j = 0; j < nSizeDest; ++j)
{
ScRange* pRangeDest = (*pDest)[j];
if (CalcScRangeDifferenceMax(pRange,pRangeDest,nMax,vecRet,nSize))
ScRange const & rRangeDest = (*pDest)[j];
if (CalcScRangeDifferenceMax(rRange,rRangeDest,nMax,vecRet,nSize))
{
return true;
}
diff --git a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx
index 7cb1520..f6613f6 100644
--- a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx
@@ -66,7 +66,7 @@ OUString lclCreateMultiParameterFormula(
OUString aResult;
for (size_t i = 0; i < aRangeList.size(); i++)
{
OUString aRangeString(aRangeList[i]->Format(ScRefFlags::RANGE_ABS, pDocument, aAddressDetails));
OUString aRangeString(aRangeList[i].Format(ScRefFlags::RANGE_ABS, pDocument, aAddressDetails));
OUString aFormulaString = aFormulaTemplate.replaceAll(aWildcard, aRangeString);
aResult += aFormulaString;
if(i != aRangeList.size() - 1) // Not Last
@@ -86,7 +86,7 @@ void lclMakeSubRangesList(ScRangeList& rRangeList, const ScRange& rInputRange, S
for( ; pIterator->hasNext(); pIterator->next() )
{
ScRange aRange = pIterator->get();
rRangeList.Append(aRange);
rRangeList.push_back(aRange);
}
}
@@ -170,9 +170,9 @@ void ScAnalysisOfVarianceDialog::RowColumn(ScRangeList& rRangeList, AddressWalke
{
for (size_t i = 0; i < rRangeList.size(); i++)
{
ScRange* pRange = rRangeList[i];
ScRange const & rRange = rRangeList[i];
aTemplate.setTemplate(sFormula);
aTemplate.applyRange(strWildcardRange, *pRange);
aTemplate.applyRange(strWildcardRange, rRange);
aOutput.writeFormula(aTemplate.getTemplate());
if (pResultRange != nullptr)
pResultRange->aEnd = aOutput.current();
@@ -249,7 +249,7 @@ void ScAnalysisOfVarianceDialog::AnovaSingleFactor(AddressWalkerWriter& output,
}
output.nextRow();
aTemplate.autoReplaceRange("%FIRST_COLUMN%", *aRangeList[0]);
aTemplate.autoReplaceRange("%FIRST_COLUMN%", aRangeList[0]);
// Between Groups
{
@@ -416,8 +416,8 @@ void ScAnalysisOfVarianceDialog::AnovaTwoFactor(AddressWalkerWriter& output, For
// Setup auto-replace strings
aTemplate.autoReplaceRange(strWildcardRange, mInputRange);
aTemplate.autoReplaceRange("%FIRST_COLUMN%", *aColumnRangeList[0]);
aTemplate.autoReplaceRange("%FIRST_ROW%", *aRowRangeList[0]);
aTemplate.autoReplaceRange("%FIRST_COLUMN%", aColumnRangeList[0]);
aTemplate.autoReplaceRange("%FIRST_ROW%", aRowRangeList[0]);
// Rows
{
diff --git a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx
index 6342228..98d022c 100644
--- a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx
+++ b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx
@@ -38,8 +38,8 @@ namespace
if (j >= i)
{
aTemplate.setTemplate(aTemplateString);
aTemplate.applyRange("%VAR1%", *aRangeList[i]);
aTemplate.applyRange("%VAR2%", *aRangeList[j]);
aTemplate.applyRange("%VAR1%", aRangeList[i]);
aTemplate.applyRange("%VAR2%", aRangeList[j]);
aOutput.writeFormula(aTemplate.getTemplate());
}
aOutput.nextRow();
diff --git a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx
index 7c4ca72..b654bea 100644
--- a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx
@@ -361,7 +361,7 @@ IMPL_LINK_NOARG(ScRandomNumberGeneratorDialog, InputRangeModified, Edit&, void)
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mpDoc);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
maInputRange = *pRange;
diff --git a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx
index 106fa50..4288714 100644
--- a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx
@@ -344,7 +344,7 @@ IMPL_LINK_NOARG(ScSamplingDialog, RefInputModifyHandler, Edit&, void)
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mDocument);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
mInputRange = *pRange;
@@ -360,7 +360,7 @@ IMPL_LINK_NOARG(ScSamplingDialog, RefInputModifyHandler, Edit&, void)
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
mOutputAddress = pRange->aStart;
diff --git a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx
index 6b17b50..5064519 100644
--- a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx
@@ -33,7 +33,7 @@ ScRangeList ScStatisticsInputOutputDialog::MakeColumnRangeList(SCTAB aTab, ScAdd
ScAddress(inCol, aStart.Row(), aTab),
ScAddress(inCol, aEnd.Row(), aTab) );
aRangeList.Append(aColumnRange);
aRangeList.push_back(aColumnRange);
}
return aRangeList;
}
@@ -47,7 +47,7 @@ ScRangeList ScStatisticsInputOutputDialog::MakeRowRangeList(SCTAB aTab, ScAddres
ScAddress(aStart.Col(), inRow, aTab),
ScAddress(aEnd.Col(), inRow, aTab) );
aRangeList.Append(aRowRange);
aRangeList.push_back(aRowRange);
}
return aRangeList;
}
@@ -233,7 +233,7 @@ IMPL_LINK_NOARG( ScStatisticsInputOutputDialog, RefInputModifyHandler, Edit&, vo
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mDocument);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
mInputRange = *pRange;
@@ -249,7 +249,7 @@ IMPL_LINK_NOARG( ScStatisticsInputOutputDialog, RefInputModifyHandler, Edit&, vo
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
mOutputAddress = pRange->aStart;
diff --git a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx
index 163044c..0fa8c96 100644
--- a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx
@@ -256,7 +256,7 @@ IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, RefInputModifyHandler, Edit&, vo
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpVariable1RangeEdit->GetText(), mDocument);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
mVariable1Range = *pRange;
@@ -272,7 +272,7 @@ IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, RefInputModifyHandler, Edit&, vo
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpVariable2RangeEdit->GetText(), mDocument);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
mVariable2Range = *pRange;
@@ -288,7 +288,7 @@ IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, RefInputModifyHandler, Edit&, vo
{
ScRangeList aRangeList;
bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument);
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr;
const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr;
if (pRange)
{
mOutputAddress = pRange->aStart;
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index b162591..fa56769 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -542,8 +542,7 @@ ScCondFormatDlg::ScCondFormatDlg(SfxBindings* pB, SfxChildWindow* pCW,
if(aRange.empty())
{
ScAddress aPos(mpViewData->GetCurX(), mpViewData->GetCurY(), mpViewData->GetTabNo());
ScRange* pRange = new ScRange(aPos);
aRange.push_back(pRange);
aRange.push_back(ScRange(aPos));
}
mnKey = 0;
}
diff --git a/sc/source/ui/dialogs/searchresults.cxx b/sc/source/ui/dialogs/searchresults.cxx
index f72bb74..374ce58 100644
--- a/sc/source/ui/dialogs/searchresults.cxx
+++ b/sc/source/ui/dialogs/searchresults.cxx
@@ -107,17 +107,17 @@ void SearchResultsDlg::FillResults( ScDocument* pDoc, const ScRangeList &rMatche
/* TODO: a CellNotes iterator would come handy and might speed
* things up a little, though we only loop through the
* search/replace result positions here. */
ScRange aRange( *rMatchedRanges[i] );
ScRange const & rRange( rMatchedRanges[i] );
// Bear in mind that mostly the range is one address position
// or a column or a row joined.
ScAddress aPos( aRange.aStart );
for ( ; aPos.Tab() <= aRange.aEnd.Tab(); aPos.IncTab())
ScAddress aPos( rRange.aStart );
for ( ; aPos.Tab() <= rRange.aEnd.Tab(); aPos.IncTab())
{
if (aPos.Tab() >= nTabCount)
break; // can this even happen? we just searched on existing sheets ...
for (aPos.SetCol( aRange.aStart.Col()); aPos.Col() <= aRange.aEnd.Col(); aPos.IncCol())
for (aPos.SetCol( rRange.aStart.Col()); aPos.Col() <= rRange.aEnd.Col(); aPos.IncCol())
{
for (aPos.SetRow( aRange.aStart.Row()); aPos.Row() <= aRange.aEnd.Row(); aPos.IncRow())
for (aPos.SetRow( rRange.aStart.Row()); aPos.Row() <= rRange.aEnd.Row(); aPos.IncRow())
{
const ScPostIt* pNote = pDoc->GetNote( aPos);
if (pNote)
@@ -133,7 +133,7 @@ void SearchResultsDlg::FillResults( ScDocument* pDoc, const ScRangeList &rMatche
{
for (size_t i = 0, n = nMatchMax; i < n; ++i)
{
ScCellIterator aIter(pDoc, *rMatchedRanges[i]);
ScCellIterator aIter(pDoc, rMatchedRanges[i]);
for (bool bHas = aIter.first(); bHas; bHas = aIter.next())
{
ScAddress aPos = aIter.GetPos();
diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx
index e9ce36f..3e719df 100644
--- a/sc/source/ui/docshell/arealink.cxx
+++ b/sc/source/ui/docshell/arealink.cxx
@@ -281,7 +281,7 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter,
SCROW nEndRow = 0;
if (rSrcDoc.GetCellArea( 0, nEndCol, nEndRow))
{
aSourceRanges.Append( ScRange( 0,0,0, nEndCol, nEndRow, 0));
aSourceRanges.push_back( ScRange( 0,0,0, nEndCol, nEndRow, 0));
nWidth = nEndCol + 1;
nHeight = nEndRow + 2;
}
@@ -295,7 +295,7 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter,
ScRange aTokenRange;
if( FindExtRange( aTokenRange, &rSrcDoc, aToken ) )
{
aSourceRanges.Append( aTokenRange);
aSourceRanges.push_back( aTokenRange);
// columns: find maximum
nWidth = std::max( nWidth, static_cast<SCCOL>(aTokenRange.aEnd.Col() - aTokenRange.aStart.Col() + 1) );
// rows: add row range + 1 empty row
@@ -373,13 +373,13 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter,
ScRange aNewTokenRange( aNewRange.aStart );
for (size_t nRange = 0; nRange < aSourceRanges.size(); ++nRange)
{
ScRange aTokenRange( *aSourceRanges[nRange]);
SCTAB nSrcTab = aTokenRange.aStart.Tab();
ScRange const & rTokenRange( aSourceRanges[nRange]);
SCTAB nSrcTab = rTokenRange.aStart.Tab();
ScMarkData aSourceMark;
aSourceMark.SelectOneTable( nSrcTab ); // selecting for CopyToClip
aSourceMark.SetMarkArea( aTokenRange );
aSourceMark.SetMarkArea( rTokenRange );
ScClipParam aClipParam(aTokenRange, false);
ScClipParam aClipParam(rTokenRange, false);
rSrcDoc.CopyToClip(aClipParam, &aClipDoc, &aSourceMark, false, false);
if ( aClipDoc.HasAttrib( 0,0,nSrcTab, MAXCOL,MAXROW,nSrcTab,
@@ -393,8 +393,8 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter,
aClipDoc.ApplyPatternAreaTab( 0,0, MAXCOL,MAXROW, nSrcTab, aPattern );
}
aNewTokenRange.aEnd.SetCol( aNewTokenRange.aStart.Col() + (aTokenRange.aEnd.Col() - aTokenRange.aStart.Col()) );
aNewTokenRange.aEnd.SetRow( aNewTokenRange.aStart.Row() + (aTokenRange.aEnd.Row() - aTokenRange.aStart.Row()) );
aNewTokenRange.aEnd.SetCol( aNewTokenRange.aStart.Col() + (rTokenRange.aEnd.Col() - rTokenRange.aStart.Col()) );
aNewTokenRange.aEnd.SetRow( aNewTokenRange.aStart.Row() + (rTokenRange.aEnd.Row() - rTokenRange.aStart.Row()) );
ScMarkData aDestMark;
aDestMark.SelectOneTable( nDestTab );
aDestMark.SetMarkArea( aNewTokenRange );
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index c81d665..7e21ade 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -1161,8 +1161,8 @@ bool isEditable(ScDocShell& rDocShell, const ScRangeList& rRanges, bool bApi)
for (size_t i = 0, n = rRanges.size(); i < n; ++i)
{
const ScRange* p = rRanges[i];
ScEditableTester aTester(&rDoc, *p);
const ScRange & r = rRanges[i];
ScEditableTester aTester(&rDoc, r);
if (!aTester.IsEditable())
{
if (!bApi)
@@ -1254,8 +1254,8 @@ bool ScDBDocFunc::DataPilotUpdate( ScDPObject* pOldObj, const ScDPObject* pNewOb
WaitObject aWait( ScDocShell::GetActiveDialogParent() );
ScRangeList aRanges;
aRanges.Append(pOldObj->GetOutRange());
aRanges.Append(pNewObj->GetOutRange().aStart); // at least one cell in the output position must be editable.
aRanges.push_back(pOldObj->GetOutRange());
aRanges.push_back(pNewObj->GetOutRange().aStart); // at least one cell in the output position must be editable.
if (!isEditable(rDocShell, aRanges, bApi))
return false;
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index e8705d7..6b0ee19 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -528,21 +528,20 @@ static void lcl_collectAllPredOrSuccRanges(
ScRangeList aSrcRanges(rSrcRanges);
if (aSrcRanges.empty())
return;
ScRange* p = aSrcRanges.front();
ScDetectiveFunc aDetFunc(&rDoc, p->aStart.Tab());
ScRangeList aDestRanges;
ScRange const & rFrontRange = aSrcRanges.front();
ScDetectiveFunc aDetFunc(&rDoc, rFrontRange.aStart.Tab());
for (size_t i = 0, n = aSrcRanges.size(); i < n; ++i)
{
p = aSrcRanges[i];
ScRange const & r = aSrcRanges[i];
if (bPred)
{
aDetFunc.GetAllPreds(
p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), aRefTokens);
r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), aRefTokens);
}
else
{
aDetFunc.GetAllSuccs(
p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), aRefTokens);
r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), aRefTokens);
}
}
rRefTokens.swap(aRefTokens);
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 582f39a..8adcbfb 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -104,7 +104,7 @@ void ScDocShell::PostPaint( const ScRangeList& rRanges, PaintPartFlags nPart, sa
ScRangeList aPaintRanges;
for (size_t i = 0, n = rRanges.size(); i < n; ++i)
{
const ScRange& rRange = *rRanges[i];
const ScRange& rRange = rRanges[i];
SCCOL nCol1 = rRange.aStart.Col(), nCol2 = rRange.aEnd.Col();
SCROW nRow1 = rRange.aStart.Row(), nRow2 = rRange.aEnd.Row();
SCTAB nTab1 = rRange.aStart.Tab(), nTab2 = rRange.aEnd.Tab();
@@ -159,7 +159,7 @@ void ScDocShell::PostPaint( const ScRangeList& rRanges, PaintPartFlags nPart, sa
nCol2 = MAXCOL;
}
}
aPaintRanges.Append(ScRange(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2));
aPaintRanges.push_back(ScRange(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2));
}
Broadcast(ScPaintHint(aPaintRanges.Combine(), nPart));
@@ -255,9 +255,9 @@ void ScDocShell::UnlockPaint_Impl(bool bDoc)
for ( size_t i = 0, nCount = xRangeList->size(); i < nCount; i++ )
{
//! nExtFlags ???
ScRange aRange = *(*xRangeList)[i];
PostPaint( aRange.aStart.Col(), aRange.aStart.Row(), aRange.aStart.Tab(),
aRange.aEnd.Col(), aRange.aEnd.Row(), aRange.aEnd.Tab(),
ScRange const & rRange = (*xRangeList)[i];
PostPaint( rRange.aStart.Col(), rRange.aStart.Row(), rRange.aStart.Tab(),
rRange.aEnd.Col(), rRange.aEnd.Row(), rRange.aEnd.Tab(),
nParts );
}
}
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index d0d95a2..81f321d 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -331,7 +331,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
if ( !aRangeListRef->empty() )
{
bMultiRange = true;
aSingleRange = *aRangeListRef->front(); // for header
aSingleRange = aRangeListRef->front(); // for header
bValid = true;
}
else
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index 8b1730a..acd05f0 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -865,7 +865,7 @@ sal_uLong ScDocShell::TransferTab( ScDocShell& rSrcDocShell, SCTAB nSrcPos,
// set the transferred area to the copyparam to make adjusting formulas possible
ScClipParam aParam;
ScRange aRange(0, 0, nSrcPos, MAXCOL, MAXROW, nSrcPos);
aParam.maRanges.Append(aRange);
aParam.maRanges.push_back(aRange);
rSrcDoc.SetClipParam(aParam);
sal_uLong nErrVal = aDocument.TransferTab( &rSrcDoc, nSrcPos, nDestPos,
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 9676d89..4ca3df9 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -435,10 +435,7 @@ void ScExternalRefCache::Table::setCachedCell(SCCOL nCol, SCROW nRow)
void ScExternalRefCache::Table::setCachedCellRange(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
{
ScRange aRange(nCol1, nRow1, 0, nCol2, nRow2, 0);
if ( maCachedRanges.empty() )
maCachedRanges.Append(aRange);
else
maCachedRanges.Join(aRange);
maCachedRanges.Join(aRange);
}
void ScExternalRefCache::Table::setWholeTableCached()
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index f8dd7e3..224e88a 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -322,11 +322,11 @@ bool ScTableLink::Refresh(const OUString& rNewFile, const OUString& rNewFilter,
for (size_t nPos=0; nPos < nRanges; nPos++)
{
const ScRange* pRange = aErrorCells[ nPos ];
SCCOL nStartCol = pRange->aStart.Col();
SCROW nStartRow = pRange->aStart.Row();
SCCOL nEndCol = pRange->aEnd.Col();
SCROW nEndRow = pRange->aEnd.Row();
const ScRange & rRange = aErrorCells[ nPos ];
SCCOL nStartCol = rRange.aStart.Col();
SCROW nStartRow = rRange.aStart.Row();
SCCOL nEndCol = rRange.aEnd.Col();
SCROW nEndRow = rRange.aEnd.Row();
for (SCROW nRow=nStartRow; nRow<=nEndRow; nRow++)
for (SCCOL nCol=nStartCol; nCol<=nEndCol; nCol++)
{
diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx
index a041c7b..b494a11 100644
--- a/sc/source/ui/drawfunc/fuins2.cxx
+++ b/sc/source/ui/drawfunc/fuins2.cxx
@@ -462,10 +462,10 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, vcl::Window* pWin, ScDrawV
// get "total" range for positioning
if ( !aRanges.empty() )
{
aPositionRange = *aRanges[ 0 ];
aPositionRange = aRanges[ 0 ];
for ( size_t i = 1, nCount = aRanges.size(); i < nCount; ++i )
{
aPositionRange.ExtendTo( *aRanges[ i ] );
aPositionRange.ExtendTo( aRanges[ i ] );
}
}
diff --git a/sc/source/ui/inc/AccessibleSpreadsheet.hxx b/sc/source/ui/inc/AccessibleSpreadsheet.hxx
index baf47f0..ade94b0 100644
--- a/sc/source/ui/inc/AccessibleSpreadsheet.hxx
+++ b/sc/source/ui/inc/AccessibleSpreadsheet.hxx
@@ -269,7 +269,7 @@ public:
ScRange m_aLastWithInMarkRange;
OUString m_strCurCellValue;
ScRangeList m_LastMarkedRanges;
typedef std::vector<ScRange*> VEC_RANGE;
typedef std::vector<ScRange> VEC_RANGE;
VEC_RANGE m_vecTempRange;
typedef std::pair<sal_uInt16,sal_uInt16> PAIR_COL;
typedef std::vector<PAIR_COL> VEC_COL;
@@ -280,7 +280,7 @@ public:
bool IsScAddrFormulaSel (const ScAddress &addr) const;
bool IsFormulaMode();
ScMyAddress CalcScAddressFromRangeList(ScRangeList *pMarkedRanges,sal_Int32 nSelectedChildIndex);
static bool CalcScRangeDifferenceMax(const ScRange *pSrc, const ScRange *pDest,int nMax,VEC_MYADDR &vecRet,int &nSize);
static bool CalcScRangeDifferenceMax(const ScRange & rSrc, const ScRange & rDest,int nMax,VEC_MYADDR &vecRet,int &nSize);
static bool CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScRangeList *pDest,int nMax,VEC_MYADDR &vecRet);
};
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index 50bcf63..197ca46 100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -475,8 +475,7 @@ namespace HelperNotifyChanges
{
if (ScModelObj* pModelObj = getMustPropagateChangesModel(rDocShell))
{
ScRangeList aChangeRanges;
aChangeRanges.Append(rRange);
ScRangeList aChangeRanges(rRange);
Notify(*pModelObj, aChangeRanges, rType);
}
}
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index 6a6f6f3..210392e 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -244,8 +244,8 @@ void ScAcceptChgDlg::Init()
if( !aChangeViewSet.GetTheRangeList().empty() )
{
const ScRange* pRangeEntry = aChangeViewSet.GetTheRangeList().front();
OUString aRefStr(pRangeEntry->Format(ScRefFlags::RANGE_ABS_3D, pDoc));
const ScRange & rRangeEntry = aChangeViewSet.GetTheRangeList().front();
OUString aRefStr(rRangeEntry.Format(ScRefFlags::RANGE_ABS_3D, pDoc));
pTPFilter->SetRange(aRefStr);
}
@@ -338,8 +338,8 @@ bool ScAcceptChgDlg::IsValidAction(const ScChangeAction* pScChangeAction)
{
for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i )
{
ScRange* pRangeEntry = aRangeList[ i ];
if (pRangeEntry->Intersects(aRef)) {
ScRange const & rRangeEntry = aRangeList[ i ];
if (rRangeEntry.Intersects(aRef)) {
bFlag = true;
break;
}
@@ -457,8 +457,8 @@ SvTreeListEntry* ScAcceptChgDlg::AppendChangeAction(
{
for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i )
{
ScRange* pRangeEntry = aRangeList[ i ];
if( pRangeEntry->Intersects(aRef) )
ScRange const & rRangeEntry = aRangeList[ i ];
if( rRangeEntry.Intersects(aRef) )
{
bHasFilterEntry=true;
bFlag=true;
@@ -527,8 +527,8 @@ SvTreeListEntry* ScAcceptChgDlg::AppendFilteredAction(
{
for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i )
{
ScRange* pRangeEntry=aRangeList[ i ];
if( pRangeEntry->Intersects(aRef) )
ScRange const & rRangeEntry=aRangeList[ i ];
if( rRangeEntry.Intersects(aRef) )
{
if( pScChangeAction->GetState()==eState )
bFlag = true;
@@ -647,8 +647,8 @@ SvTreeListEntry* ScAcceptChgDlg::InsertChangeActionContent(const ScChangeActionC
{
for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i )
{
ScRange* pRangeEntry = aRangeList[ i ];
if( pRangeEntry->Intersects(aRef) )
ScRange const & rRangeEntry = aRangeList[ i ];
if( rRangeEntry.Intersects(aRef) )
{
bFlag=true;
break;
diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx b/sc/source/ui/miscdlgs/anyrefdg.cxx
index 8a9c71e..e4e51f9 100644
--- a/sc/source/ui/miscdlgs/anyrefdg.cxx
+++ b/sc/source/ui/miscdlgs/anyrefdg.cxx
@@ -144,9 +144,9 @@ void ScFormulaReferenceHelper::ShowSimpleReference(const OUString& rStr)
{
for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i )
{
ScRange* pRangeEntry = aRangeList[ i ];
ScRange const & rRangeEntry = aRangeList[ i ];
Color aColName = ScRangeFindList::GetColorName( i );
pTabViewShell->AddHighlightRange( *pRangeEntry, aColName );
pTabViewShell->AddHighlightRange( rRangeEntry, aColName );
}
}
}
@@ -173,10 +173,10 @@ bool ScFormulaReferenceHelper::ParseWithNames( ScRangeList& rRanges, const OUStr
aRange.aStart.SetTab( nRefTab );
if ( (nFlags & ScRefFlags::TAB2_3D) == ScRefFlags::ZERO )
aRange.aEnd.SetTab( aRange.aStart.Tab() );
rRanges.Append( aRange );
rRanges.push_back( aRange );
}
else if ( ScRangeUtil::MakeRangeFromName( aRangeStr, pDoc, nRefTab, aRange, RUTL_NAMES, aDetails ) )
rRanges.Append( aRange );
rRanges.push_back( aRange );
else
bError = true;
}
@@ -304,13 +304,13 @@ void ScFormulaReferenceHelper::ReleaseFocus( formula::RefEdit* pEdit )
{
if ( !aRangeList.empty() )
{
const ScRange* pRange = aRangeList.front();
pViewShell->SetTabNo( pRange->aStart.Tab() );
pViewShell->MoveCursorAbs( pRange->aStart.Col(),
pRange->aStart.Row(), SC_FOLLOW_JUMP, false, false );
pViewShell->MoveCursorAbs( pRange->aEnd.Col(),
pRange->aEnd.Row(), SC_FOLLOW_JUMP, true, false );
m_pDlg->SetReference( *pRange, pDoc );
const ScRange & rRange = aRangeList.front();
pViewShell->SetTabNo( rRange.aStart.Tab() );
pViewShell->MoveCursorAbs( rRange.aStart.Col(),
rRange.aStart.Row(), SC_FOLLOW_JUMP, false, false );
pViewShell->MoveCursorAbs( rRange.aEnd.Col(),
rRange.aEnd.Row(), SC_FOLLOW_JUMP, true, false );
m_pDlg->SetReference( rRange, pDoc );
}
}
}
diff --git a/sc/source/ui/miscdlgs/highred.cxx b/sc/source/ui/miscdlgs/highred.cxx
index 9601a7c..627fb68a 100644
--- a/sc/source/ui/miscdlgs/highred.cxx
+++ b/sc/source/ui/miscdlgs/highred.cxx
@@ -123,8 +123,8 @@ void ScHighlightChgDlg::Init()
if ( !aChangeViewSet.GetTheRangeList().empty() )
{
const ScRange* pRangeEntry = aChangeViewSet.GetTheRangeList().front();
OUString aRefStr(pRangeEntry->Format(ScRefFlags::RANGE_ABS_3D, pDoc));
const ScRange & rRangeEntry = aChangeViewSet.GetTheRangeList().front();
OUString aRefStr(rRangeEntry.Format(ScRefFlags::RANGE_ABS_3D, pDoc));
m_pFilterCtr->SetRange(aRefStr);
}
m_pFilterCtr->Enable();
diff --git a/sc/source/ui/miscdlgs/optsolver.cxx b/sc/source/ui/miscdlgs/optsolver.cxx
index 73141f4..6ffb40c 100644
--- a/sc/source/ui/miscdlgs/optsolver.cxx
+++ b/sc/source/ui/miscdlgs/optsolver.cxx
@@ -868,7 +868,7 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal
for ( size_t nRangePos=0, nRange = aVarRanges.size(); nRangePos < nRange; ++nRangePos )
{
ScRange aRange(*aVarRanges[ nRangePos ] );
ScRange aRange( aVarRanges[ nRangePos ] );
aRange.PutInOrder();
SCTAB nTab = aRange.aStart.Tab();
diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx
index 6198c87..d88d29d7 100644
--- a/sc/source/ui/undo/undobase.cxx
+++ b/sc/source/ui/undo/undobase.cxx
@@ -388,7 +388,7 @@ void ScMultiBlockUndo::ShowBlock()
return;
// Move to the sheet of the first range.
ScRange aRange = *maBlockRanges.front();
ScRange aRange = maBlockRanges.front();
ShowTable(aRange);
pViewShell->MoveCursorAbs(
aRange.aStart.Col(), aRange.aStart.Row(), SC_FOLLOW_JUMP, false, false);
@@ -399,7 +399,7 @@ void ScMultiBlockUndo::ShowBlock()
for (size_t i = 1, n = maBlockRanges.size(); i < n; ++i)
{
aRange = *maBlockRanges[i];
aRange = maBlockRanges[i];
aRange.aStart.SetTab(nTab);
aRange.aEnd.SetTab(nTab);
pViewShell->MarkRange(aRange, false, true);
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index a59b5d5..6d96cda 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -919,7 +919,7 @@ void ScUndoPaste::SetChangeTrack()
{
for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
{
pChangeTrack->AppendContentRange(*maBlockRanges[i], pUndoDoc,
pChangeTrack->AppendContentRange(maBlockRanges[i], pUndoDoc,
nStartChangeAction, nEndChangeAction, SC_CACM_PASTE );
}
}
@@ -963,7 +963,7 @@ void ScUndoPaste::DoChange(bool bUndo)
bool bRowInfo = true;
for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
{
const ScRange& r = *maBlockRanges[i];
const ScRange& r = maBlockRanges[i];
bColInfo &= (r.aStart.Row() == 0 && r.aEnd.Row() == MAXROW);
bRowInfo &= (r.aStart.Col() == 0 && r.aEnd.Col() == MAXCOL);
if (!bColInfo && !bRowInfo)
@@ -977,7 +977,7 @@ void ScUndoPaste::DoChange(bool bUndo)
// all sheets - CopyToDocument skips those that don't exist in pRedoDoc
for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
{
ScRange aCopyRange = *maBlockRanges[i];
ScRange aCopyRange = maBlockRanges[i];
aCopyRange.aStart.SetTab(0);
aCopyRange.aEnd.SetTab(nTabCount-1);
rDoc.CopyToDocument(aCopyRange, nUndoFlags, false, *pRedoDoc);
@@ -992,7 +992,7 @@ void ScUndoPaste::DoChange(bool bUndo)
aMarkData.MarkToMulti();
rDoc.DeleteSelection(nUndoFlags, aMarkData, false); // no broadcasting here
for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
rDoc.BroadcastCells(*maBlockRanges[i], SfxHintId::ScDataChanged);
rDoc.BroadcastCells(maBlockRanges[i], SfxHintId::ScDataChanged);
aMarkData.MarkToSimple();
@@ -1002,7 +1002,7 @@ void ScUndoPaste::DoChange(bool bUndo)
{
for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
{
ScRange aRange = *maBlockRanges[i];
ScRange aRange = maBlockRanges[i];
aRange.aStart.SetTab(nFirstSelected);
aRange.aEnd.SetTab(nFirstSelected);
pRedoDoc->UndoToDocument(aRange, nUndoFlags, false, rDoc);
@@ -1023,7 +1023,7 @@ void ScUndoPaste::DoChange(bool bUndo)
{
pWorkRefData->DoUndo( &rDoc, true ); // true = bSetChartRangeLists for SetChartListenerCollection
if (!maBlockRanges.empty() &&
rDoc.RefreshAutoFilter(0, 0, MAXCOL, MAXROW, maBlockRanges[0]->aStart.Tab()))
rDoc.RefreshAutoFilter(0, 0, MAXCOL, MAXROW, maBlockRanges[0].aStart.Tab()))
bPaintAll = true;
}
@@ -1034,7 +1034,7 @@ void ScUndoPaste::DoChange(bool bUndo)
{
for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
{
ScRange aRange = *maBlockRanges[i];
ScRange aRange = maBlockRanges[i];
ScMarkData::iterator itr = aMarkData.begin(), itrEnd = aMarkData.end();
for (; itr != itrEnd && *itr < nTabCount; ++itr)
{
@@ -1058,7 +1058,7 @@ void ScUndoPaste::DoChange(bool bUndo)
PaintPartFlags nPaint = PaintPartFlags::Grid;
for (size_t i = 0, n = aDrawRanges.size(); i < n; ++i)
{
ScRange& rDrawRange = *aDrawRanges[i];
ScRange& rDrawRange = aDrawRanges[i];
rDoc.ExtendMerge(rDrawRange, true); // only needed for single sheet (text/rtf etc.)
if (bPaintAll)
{
@@ -1072,12 +1072,12 @@ void ScUndoPaste::DoChange(bool bUndo)
}
else
{
if (maBlockRanges[i]->aStart.Row() == 0 && maBlockRanges[i]->aEnd.Row() == MAXROW) // whole column
if (maBlockRanges[i].aStart.Row() == 0 && maBlockRanges[i].aEnd.Row() == MAXROW) // whole column
{
nPaint |= PaintPartFlags::Top;
rDrawRange.aEnd.SetCol(MAXCOL);
}
if (maBlockRanges[i]->aStart.Col() == 0 && maBlockRanges[i]->aEnd.Col() == MAXCOL) // whole row
if (maBlockRanges[i].aStart.Col() == 0 && maBlockRanges[i].aEnd.Col() == MAXCOL) // whole row
{
nPaint |= PaintPartFlags::Left;
rDrawRange.aEnd.SetRow(MAXROW);
@@ -1109,7 +1109,7 @@ void ScUndoPaste::Undo()
BeginUndo();
DoChange(true);
if (!maBlockRanges.empty())
ShowTable(*maBlockRanges.front());
ShowTable(maBlockRanges.front());
EndUndo();
SfxGetpApp()->Broadcast( SfxHint( SfxHintId::ScAreaLinksChanged ) );
}
@@ -1380,8 +1380,8 @@ void ScUndoDragDrop::Undo()
for (size_t i = 0; i < maPaintRanges.size(); ++i)
{
const ScRange* p = maPaintRanges[i];
PaintArea(*p, mnPaintExtFlags);
const ScRange& r = maPaintRanges[i];
PaintArea(r, mnPaintExtFlags);
}
EndUndo();
@@ -2339,16 +2339,16 @@ static ScRange lcl_TotalRange( const ScRangeList& rRanges )
ScRange aTotal;
if ( !rRanges.empty() )
{
aTotal = *rRanges[ 0 ];
aTotal = rRanges[ 0 ];
for ( size_t i = 1, nCount = rRanges.size(); i < nCount; ++i )
{
ScRange aRange = *rRanges[ i ];
if (aRange.aStart.Col() < aTotal.aStart.Col()) aTotal.aStart.SetCol(aRange.aStart.Col());
if (aRange.aStart.Row() < aTotal.aStart.Row()) aTotal.aStart.SetRow(aRange.aStart.Row());
if (aRange.aStart.Tab() < aTotal.aStart.Tab()) aTotal.aStart.SetTab(aRange.aStart.Tab());
if (aRange.aEnd.Col() > aTotal.aEnd.Col() ) aTotal.aEnd.SetCol( aRange.aEnd.Col() );
if (aRange.aEnd.Row() > aTotal.aEnd.Row() ) aTotal.aEnd.SetRow( aRange.aEnd.Row() );
if (aRange.aEnd.Tab() > aTotal.aEnd.Tab() ) aTotal.aEnd.SetTab(aRange.aEnd.Tab() );
ScRange const & rRange = rRanges[ i ];
if (rRange.aStart.Col() < aTotal.aStart.Col()) aTotal.aStart.SetCol(rRange.aStart.Col());
if (rRange.aStart.Row() < aTotal.aStart.Row()) aTotal.aStart.SetRow(rRange.aStart.Row());
if (rRange.aStart.Tab() < aTotal.aStart.Tab()) aTotal.aStart.SetTab(rRange.aStart.Tab());
if (rRange.aEnd.Col() > aTotal.aEnd.Col() ) aTotal.aEnd.SetCol( rRange.aEnd.Col() );
if (rRange.aEnd.Row() > aTotal.aEnd.Row() ) aTotal.aEnd.SetRow( rRange.aEnd.Row() );
if (rRange.aEnd.Tab() > aTotal.aEnd.Tab() ) aTotal.aEnd.SetTab(rRange.aEnd.Tab() );
}
}
return aTotal;
@@ -2391,17 +2391,17 @@ void ScUndoBorder::Redo()
size_t nCount = xRanges->size();
for (size_t i = 0; i < nCount; ++i )
{
ScRange aRange = *(*xRanges)[i];
SCTAB nTab = aRange.aStart.Tab();
ScRange const & rRange = (*xRanges)[i];
SCTAB nTab = rRange.aStart.Tab();
ScMarkData aMark;
aMark.SetMarkArea( aRange );
aMark.SetMarkArea( rRange );
aMark.SelectTable( nTab, true );
rDoc.ApplySelectionFrame(aMark, *xOuter, xInner.get());
}
for (size_t i = 0; i < nCount; ++i)
pDocShell->PostPaint( *(*xRanges)[i], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE );
pDocShell->PostPaint( (*xRanges)[i], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE );
EndRedo();
}
diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx
index 7734e2a..522914e 100644
--- a/sc/source/ui/undo/undocell.cxx
+++ b/sc/source/ui/undo/undocell.cxx
@@ -60,7 +60,7 @@ namespace HelperNotifyChanges
for (const auto & rOldValue : rOldValues)
{
aChangeRanges.Append( ScRange(rPos.Col(), rPos.Row(), rOldValue.mnTab));
aChangeRanges.push_back( ScRange(rPos.Col(), rPos.Row(), rOldValue.mnTab));
}
Notify(*pModelObj, aChangeRanges, "cell-change");
diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx
index b3de44e..d3cef47 100644
--- a/sc/source/ui/undo/undodat.cxx
+++ b/sc/source/ui/undo/undodat.cxx
@@ -1676,7 +1676,7 @@ ScUndoChartData::ScUndoChartData( ScDocShell* pNewDocShell, const OUString& rNam
bAddRange( bAdd )
{
aNewRangeListRef = new ScRangeList;
aNewRangeListRef->Append( rNew );
aNewRangeListRef->push_back( rNew );
Init();
}
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index d68573a..0e6b0ef 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -919,19 +919,17 @@ static SCTAB lcl_FirstTab( const ScRangeList& rRanges )
{
if (rRanges.empty())
throw std::out_of_range("empty range");
const ScRange* pFirst = rRanges[0];
if (pFirst)
return pFirst->aStart.Tab();
return 0; // shouldn't happen
const ScRange & rFirst = rRanges[0];
return rFirst.aStart.Tab();
}
static bool lcl_WholeSheet( const ScRangeList& rRanges )
{
if ( rRanges.size() == 1 )
{
const ScRange* pRange = rRanges[0];
if ( pRange && pRange->aStart.Col() == 0 && pRange->aEnd.Col() == MAXCOL &&
pRange->aStart.Row() == 0 && pRange->aEnd.Row() == MAXROW )
const ScRange & rRange = rRanges[0];
if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL &&
rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW )
return true;
}
return false;
@@ -1062,8 +1060,8 @@ void ScHelperFunctions::ApplyBorder( ScDocShell* pDocShell, const ScRangeList& r
size_t nCount = rRanges.size();
for (size_t i = 0; i < nCount; ++i)
{
ScRange aRange( *rRanges[ i ] );
SCTAB nTab = aRange.aStart.Tab();
ScRange const & rRange = rRanges[ i ];
SCTAB nTab = rRange.aStart.Tab();
if (bUndo)
{
@@ -1071,11 +1069,11 @@ void ScHelperFunctions::ApplyBorder( ScDocShell* pDocShell, const ScRangeList& r
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
else
pUndoDoc->AddUndoTab( nTab, nTab );
rDoc.CopyToDocument(aRange, InsertDeleteFlags::ATTRIB, false, *pUndoDoc);
rDoc.CopyToDocument(rRange, InsertDeleteFlags::ATTRIB, false, *pUndoDoc);
}
ScMarkData aMark;
aMark.SetMarkArea( aRange );
aMark.SetMarkArea( rRange );
aMark.SelectTable( nTab, true );
rDoc.ApplySelectionFrame(aMark, rOuter, &rInner);
@@ -1089,7 +1087,7 @@ void ScHelperFunctions::ApplyBorder( ScDocShell* pDocShell, const ScRangeList& r
}
for (size_t i = 0; i < nCount; ++i )
pDocShell->PostPaint( *rRanges[ i ], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE );
pDocShell->PostPaint( rRanges[ i ], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE );
pDocShell->SetDocumentModified();
}
@@ -1422,7 +1420,7 @@ ScCellRangesBase::ScCellRangesBase(ScDocShell* pDocSh, const ScRange& rR) :
ScRange aCellRange(rR);
aCellRange.PutInOrder();
aRanges.Append( aCellRange );
aRanges.push_back( aCellRange );
if (pDocShell) // Null if created with createInstance
{
@@ -1585,14 +1583,11 @@ void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
)
{
// #101755#; the range size of a sheet does not change
ScRange* pR = aRanges.front();
if (pR)
{
pR->aStart.SetCol(0);
pR->aStart.SetRow(0);
pR->aEnd.SetCol(MAXCOL);
pR->aEnd.SetRow(MAXROW);
}
ScRange & rR = aRanges.front();
rR.aStart.SetCol(0);
rR.aStart.SetRow(0);
rR.aEnd.SetCol(MAXCOL);
rR.aEnd.SetRow(MAXROW);
}
RefChanged();
@@ -1689,7 +1684,7 @@ void ScCellRangesBase::RefChanged()
ScDocument& rDoc = pDocShell->GetDocument();
for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i )
rDoc.StartListeningArea( *aRanges[ i ], false, pValueListener );
rDoc.StartListeningArea( aRanges[ i ], false, pValueListener );
}
ForgetCurrentAttrs();
@@ -1713,7 +1708,7 @@ void ScCellRangesBase::InitInsertRange(ScDocShell* pDocSh, const ScRange& rR)
ScRange aCellRange(rR);
aCellRange.PutInOrder();
aRanges.RemoveAll();
aRanges.Append( aCellRange );
aRanges.push_back( aCellRange );
pDocShell->GetDocument().AddUnoObject(*this);
@@ -1726,7 +1721,7 @@ void ScCellRangesBase::AddRange(const ScRange& rRange, const bool bMergeRanges)
if (bMergeRanges)
aRanges.Join(rRange);
else
aRanges.Append(rRange);
aRanges.push_back(rRange);
RefChanged();
}
@@ -1736,7 +1731,7 @@ void ScCellRangesBase::SetNewRange(const ScRange& rNew)
aCellRange.PutInOrder();
aRanges.RemoveAll();
aRanges.Append( aCellRange );
aRanges.push_back( aCellRange );
RefChanged();
}
@@ -1818,7 +1813,7 @@ uno::Sequence<sal_Int8> SAL_CALL ScCellRangesBase::getImplementationId()
void ScCellRangesBase::PaintGridRanges_Impl( )
{
for (size_t i = 0, nCount = aRanges.size(); i < nCount; ++i)
pDocShell->PostPaint( *aRanges[ i ], PaintPartFlags::Grid );
pDocShell->PostPaint( aRanges[ i ], PaintPartFlags::Grid );
}
// XSheetOperation
@@ -2095,7 +2090,7 @@ uno::Any SAL_CALL ScCellRangesBase::getPropertyDefault( const OUString& aPropert
formula::FormulaGrammar::mapAPItoGrammar( bEnglish, bXML));
aAny <<= uno::Reference<sheet::XSheetConditionalEntries>(
new ScTableConditionalFormat( &rDoc, 0, aRanges[0]->aStart.Tab(), eGrammar ));
new ScTableConditionalFormat( &rDoc, 0, aRanges[0].aStart.Tab(), eGrammar ));
}
break;
case SC_WID_UNO_VALIDAT:
@@ -2301,10 +2296,10 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
{
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
{
ScRange aRange = *aRanges[i];
ScRange const & rRange = aRanges[i];
/* TODO: Iterate through the range */
ScAddress aAddr = aRange.aStart;
ScAddress aAddr = rRange.aStart;
ScDocument& rDoc = pDocShell->GetDocument();
ScRefCellValue aCell(rDoc, aAddr);
@@ -2327,7 +2322,7 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
aEngine.QuickSetAttribs(aAttr, ESelection(0, 0, 0, aStr.getLength()));
// The cell will own the text object instance.
rDoc.SetEditText(aRanges[0]->aStart, aEngine.CreateTextObject());
rDoc.SetEditText(aRanges[0].aStart, aEngine.CreateTextObject());
}
}
}
@@ -2392,16 +2387,16 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
formula::FormulaGrammar::GRAM_UNSPECIFIED :
formula::FormulaGrammar::mapAPItoGrammar( bEnglish, bXML));
SCTAB nTab = aRanges.front()->aStart.Tab();
SCTAB nTab = aRanges.front().aStart.Tab();
// To remove conditional formats for all cells in aRanges we need to:
// Remove conditional format data from cells' attributes
rDoc.RemoveCondFormatData( aRanges, nTab, 0 );
// And also remove ranges from conditional formats list
for (size_t i = 0; i < aRanges.size(); ++i)
{
rDoc.GetCondFormList( aRanges[i]->aStart.Tab() )->DeleteArea(
aRanges[i]->aStart.Col(), aRanges[i]->aStart.Row(),
aRanges[i]->aEnd.Col(), aRanges[i]->aEnd.Row() );
rDoc.GetCondFormList( aRanges[i].aStart.Tab() )->DeleteArea(
aRanges[i].aStart.Col(), aRanges[i].aStart.Row(),
aRanges[i].aEnd.Col(), aRanges[i].aEnd.Row() );
}
// Then we can apply new conditional format if there is one
@@ -2415,7 +2410,7 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
// and repaint
for (size_t i = 0; i < aRanges.size(); ++i)
pDocShell->PostPaint(*aRanges[i], PaintPartFlags::Grid);
pDocShell->PostPaint(aRanges[i], PaintPartFlags::Grid);
pDocShell->SetDocumentModified();
}
}
@@ -2538,14 +2533,14 @@ void ScCellRangesBase::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
//! loop through all ranges
if ( !aRanges.empty() )
{
const ScRange* pFirst = aRanges[ 0 ];
const ScRange & rFirst = aRanges[ 0 ];
SvxBoxItem aOuter(ATTR_BORDER);
SvxBoxInfoItem aInner(ATTR_BORDER_INNER);
ScDocument& rDoc = pDocShell->GetDocument();
ScMarkData aMark;
aMark.SetMarkArea( *pFirst );
aMark.SelectTable( pFirst->aStart.Tab(), true );
aMark.SetMarkArea( rFirst );
aMark.SelectTable( rFirst.aStart.Tab(), true );
rDoc.GetSelectionFrame( aMark, aOuter, aInner );
if (pEntry->nWID == SC_WID_UNO_TBLBORD2)
@@ -2574,7 +2569,7 @@ void ScCellRangesBase::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
if(!rIndex.empty())
nIndex = rIndex[0];
rAny <<= uno::Reference<sheet::XSheetConditionalEntries>(
new ScTableConditionalFormat( &rDoc, nIndex, aRanges.front()->aStart.Tab(), eGrammar ));
new ScTableConditionalFormat( &rDoc, nIndex, aRanges.front().aStart.Tab(), eGrammar ));
}
}
break;
@@ -3012,11 +3007,11 @@ ScMemChart* ScCellRangesBase::CreateMemChart_Impl() const
// (only here - Listeners are registered for the whole area)
//! check immediately if a ScTableSheetObj?
const ScRange* pRange = aRanges[0];
if ( pRange->aStart.Col() == 0 && pRange->aEnd.Col() == MAXCOL &&
pRange->aStart.Row() == 0 && pRange->aEnd.Row() == MAXROW )
const ScRange & rRange = aRanges[0];
if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL &&
rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW )
{
SCTAB nTab = pRange->aStart.Tab();
SCTAB nTab = rRange.aStart.Tab();
SCCOL nStartX;
SCROW nStartY; // Get start
@@ -3034,8 +3029,7 @@ ScMemChart* ScCellRangesBase::CreateMemChart_Impl() const
nEndY = 0;
}
xChartRanges = new ScRangeList;
xChartRanges->Append( ScRange( nStartX, nStartY, nTab, nEndX, nEndY, nTab ) );
xChartRanges = new ScRangeList( ScRange( nStartX, nStartY, nTab, nEndX, nEndY, nTab ) );
}
}
if (!xChartRanges.is()) // otherwise take Ranges directly
@@ -3081,13 +3075,13 @@ ScRangeListRef ScCellRangesBase::GetLimitedChartRanges_Impl( long nDataColumns,
{
if ( aRanges.size() == 1 )
{
const ScRange* pRange = aRanges[0];
if ( pRange->aStart.Col() == 0 && pRange->aEnd.Col() == MAXCOL &&
pRange->aStart.Row() == 0 && pRange->aEnd.Row() == MAXROW )
const ScRange & rRange = aRanges[0];
if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL &&
rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW )
{
// if aRanges is a complete sheet, limit to given size
SCTAB nTab = pRange->aStart.Tab();
SCTAB nTab = rRange.aStart.Tab();
long nEndColumn = nDataColumns - 1 + ( bChartColAsHdr ? 1 : 0 );
if ( nEndColumn < 0 )
@@ -3101,8 +3095,7 @@ ScRangeListRef ScCellRangesBase::GetLimitedChartRanges_Impl( long nDataColumns,
if ( nEndRow > MAXROW )
nEndRow = MAXROW;
ScRangeListRef xChartRanges = new ScRangeList;
xChartRanges->Append( ScRange( 0, 0, nTab, static_cast<SCCOL>(nEndColumn), static_cast<SCROW>(nEndRow), nTab ) );
ScRangeListRef xChartRanges = new ScRangeList( ScRange( 0, 0, nTab, static_cast<SCCOL>(nEndColumn), static_cast<SCROW>(nEndRow), nTab ) );
return xChartRanges;
}
}
@@ -3386,7 +3379,7 @@ void SAL_CALL ScCellRangesBase::addModifyListener(const uno::Reference<util::XMo
ScDocument& rDoc = pDocShell->GetDocument();
for ( size_t i = 0, nCount = aRanges.size(); i < nCount; i++)
rDoc.StartListeningArea( *aRanges[ i ], false, pValueListener );
rDoc.StartListeningArea( aRanges[ i ], false, pValueListener );
acquire(); // don't lose this object (one ref for all listeners)
}
@@ -3475,9 +3468,9 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryEmptyCel
// mark occupied cells
for (size_t i = 0, nCount = aRanges.size(); i < nCount; ++i)
{
ScRange aRange = *aRanges[ i ];
ScRange const & rRange = aRanges[ i ];
ScCellIterator aIter( &rDoc, aRange );
ScCellIterator aIter( &rDoc, rRange );
for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next())
{
// notes count as non-empty
@@ -3510,9 +3503,9 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryContentC
// select matching cells
for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i )
{
ScRange aRange = *aRanges[ i ];
ScRange const & rRange = aRanges[ i ];
ScCellIterator aIter( &rDoc, aRange );
ScCellIterator aIter( &rDoc, rRange );
for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next())
{
bool bAdd = false;
@@ -3599,9 +3592,9 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryFormulaC
// select matching cells
for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i )
{
ScRange aRange = *aRanges[ i ];
ScRange const & rRange = aRanges[ i ];
ScCellIterator aIter( &rDoc, aRange );
ScCellIterator aIter( &rDoc, rRange );
for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next())
{
if (aIter.getType() == CELLTYPE_FORMULA)
@@ -3673,7 +3666,7 @@ uno::Reference<sheet::XSheetCellRanges> ScCellRangesBase::QueryDifferences_Impl(
for (i=0; i<nRangeCount; i++)
{
ScRange aRange( *aRanges[ i ] );
ScRange aRange( aRanges[ i ] );
if ( aRange.Intersects( aCellRange ) )
{
if (bColumnDiff)
@@ -3697,9 +3690,9 @@ uno::Reference<sheet::XSheetCellRanges> ScCellRangesBase::QueryDifferences_Impl(
ScAddress aCmpAddr;
for (i=0; i<nRangeCount; i++)
{
ScRange aRange( *aRanges[ i ] );
ScRange const & rRange = aRanges[ i ];
ScCellIterator aIter( &rDoc, aRange );
ScCellIterator aIter( &rDoc, rRange );
for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next())
{
if (bColumnDiff)
@@ -3748,7 +3741,7 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryIntersec
ScRangeList aNew;
for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i )
{
ScRange aTemp( *aRanges[ i ] );
ScRange aTemp( aRanges[ i ] );
if ( aTemp.Intersects( aMask ) )
aNew.Join( ScRange( std::max( aTemp.aStart.Col(), aMask.aStart.Col() ),
std::max( aTemp.aStart.Row(), aMask.aStart.Row() ),
@@ -3784,8 +3777,8 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryPreceden
for (size_t nR = 0, nCount = aNewRanges.size(); nR<nCount; ++nR)
{
ScRange aRange( *aNewRanges[ nR] );
ScCellIterator aIter( &rDoc, aRange );
ScRange const & rRange = aNewRanges[ nR];
ScCellIterator aIter( &rDoc, rRange );
for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next())
{
if (aIter.getType() != CELLTYPE_FORMULA)
@@ -3842,14 +3835,17 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryDependen
bool bMark = false;
ScDetectiveRefIter aIter(aCellIter.getFormulaCell());
ScRange aRefRange;
while ( aIter.GetNextRef( aRefRange) )
while ( aIter.GetNextRef( aRefRange) && !bMark )
{
size_t nRangesCount = aNewRanges.size();
for (size_t nR = 0; nR < nRangesCount; ++nR)
{
ScRange aRange( *aNewRanges[ nR ] );
if (aRange.Intersects(aRefRange))
ScRange const & rRange = aNewRanges[ nR ];
if (rRange.Intersects(aRefRange))
{
bMark = true; // depending on part of Range
break;
}
}
}
if (bMark)
@@ -3984,7 +3980,7 @@ uno::Reference<uno::XInterface> SAL_CALL ScCellRangesBase::findNext(
const ScRangeList& rStartRanges = pRangesImp->GetRangeList();
if ( rStartRanges.size() == 1 )
{
ScAddress aStartPos = rStartRanges[ 0 ]->aStart;
ScAddress aStartPos = rStartRanges[ 0 ].aStart;
return Find_Impl( xDesc, &aStartPos );
}
}
@@ -4194,11 +4190,11 @@ ScCellRangeObj* ScCellRangesObj::GetObjectByIndex_Impl(sal_Int32 nIndex) const
const ScRangeList& rRanges = GetRangeList();
if ( pDocSh && nIndex >= 0 && nIndex < sal::static_int_cast<sal_Int32>(rRanges.size()) )
{
ScRange aRange( *rRanges[ nIndex ] );
if ( aRange.aStart == aRange.aEnd )
return new ScCellObj( pDocSh, aRange.aStart );
ScRange const & rRange = rRanges[ nIndex ];
if ( rRange.aStart == rRange.aEnd )
return new ScCellObj( pDocSh, rRange.aStart );
else
return new ScCellRangeObj( pDocSh, aRange );
return new ScCellRangeObj( pDocSh, rRange );
}
return nullptr; // no DocShell or wrong index
@@ -4217,7 +4213,7 @@ uno::Sequence<table::CellRangeAddress> SAL_CALL ScCellRangesObj::getRangeAddress
table::CellRangeAddress* pAry = aSeq.getArray();
for ( size_t i=0; i < nCount; i++)
{
ScUnoConversion::FillApiRange( aRangeAddress, *rRanges[ i ] );
ScUnoConversion::FillApiRange( aRangeAddress, rRanges[ i ] );
pAry[i] = aRangeAddress;
}
return aSeq;
@@ -4285,13 +4281,13 @@ void SAL_CALL ScCellRangesObj::removeRangeAddress( const table::CellRangeAddress
ScRangeList aNotSheetRanges;
for (size_t i = 0; i < rRanges.size(); ++i)
{
if (rRanges[ i]->aStart.Tab() == rRange.Sheet)
if (rRanges[ i].aStart.Tab() == rRange.Sheet)
{
aSheetRanges.Append( *rRanges[ i ] );
aSheetRanges.push_back( rRanges[ i ] );
}
else
{
aNotSheetRanges.Append( *rRanges[ i ] );
aNotSheetRanges.push_back( rRanges[ i ] );
}
}
ScMarkData aMarkData;
@@ -4317,7 +4313,7 @@ void SAL_CALL ScCellRangesObj::removeRangeAddress( const table::CellRangeAddress
aMarkData.FillRangeListWithMarks( &aNew, false );
for ( size_t j = 0; j < aNew.size(); ++j)
{
AddRange(*aNew[ j ], false);
AddRange(aNew[ j ], false);
}
}
@@ -4396,7 +4392,7 @@ void SAL_CALL ScCellRangesObj::insertByName( const OUString& aName, const uno::A
const ScRangeList& rAddRanges = pRangesImp->GetRangeList();
size_t nAddCount = rAddRanges.size();
for ( size_t i = 0; i < nAddCount; i++ )
aNew.Join( *rAddRanges[ i ] );
aNew.Join( rAddRanges[ i ] );
SetNewRanges(aNew);
bDone = true;
@@ -4405,7 +4401,7 @@ void SAL_CALL ScCellRangesObj::insertByName( const OUString& aName, const uno::A
// if a name is given, also insert into list of named entries
// (only possible for a single range)
// name is not in m_pImpl->m_aNamedEntries (tested above)
m_pImpl->m_aNamedEntries.emplace_back( aName, *rAddRanges[ 0 ] );
m_pImpl->m_aNamedEntries.emplace_back( aName, rAddRanges[ 0 ] );
}
}
}
@@ -4426,7 +4422,7 @@ static bool lcl_FindRangeByName( const ScRangeList& rRanges, ScDocShell* pDocSh,
ScDocument& rDoc = pDocSh->GetDocument();
for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ )
{
aRangeStr = rRanges[ i ]->Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc);
aRangeStr = rRanges[ i ].Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc);
if ( aRangeStr == rName )
{
rIndex = i;
@@ -4446,7 +4442,7 @@ static bool lcl_FindRangeOrEntry( const ScNamedEntryArr_Impl& rNamedEntries,
size_t nIndex = 0;
if ( lcl_FindRangeByName( rRanges, pDocSh, rName, nIndex ) )
{
rFound = *rRanges[ nIndex ];
rFound = rRanges[ nIndex ];
return true;
}
@@ -4504,7 +4500,7 @@ void SAL_CALL ScCellRangesObj::removeByName( const OUString& aName )
ScRangeList aNew;
for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ )
if (i != nIndex)
aNew.Append( *rRanges[ i ] );
aNew.push_back( rRanges[ i ] );
SetNewRanges(aNew);
bDone = true;
}
@@ -4521,7 +4517,7 @@ void SAL_CALL ScCellRangesObj::removeByName( const OUString& aName )
if (m_pImpl->m_aNamedEntries[n].GetName() == aName)
{
aDiff.RemoveAll();
aDiff.Append(m_pImpl->m_aNamedEntries[n].GetRange());
aDiff.push_back(m_pImpl->m_aNamedEntries[n].GetRange());
bValid = true;
}
}
@@ -4532,9 +4528,9 @@ void SAL_CALL ScCellRangesObj::removeByName( const OUString& aName )
for ( size_t i = 0, nDiffCount = aDiff.size(); i < nDiffCount; i++ )
{
ScRange* pDiffRange = aDiff[ i ];
if (aMarkData.GetTableSelect( pDiffRange->aStart.Tab() ))
aMarkData.SetMultiMarkArea( *pDiffRange, false );
ScRange const & rDiffRange = aDiff[ i ];
if (aMarkData.GetTableSelect( rDiffRange.aStart.Tab() ))
aMarkData.SetMultiMarkArea( rDiffRange, false );
}
ScRangeList aNew;
@@ -4616,11 +4612,11 @@ uno::Sequence<OUString> SAL_CALL ScCellRangesObj::getElementNames()
for (size_t i=0; i < nCount; i++)
{
// use given name if for exactly this range, otherwise just format
ScRange aRange = *rRanges[ i ];
ScRange const & rRange = rRanges[ i ];
if (m_pImpl->m_aNamedEntries.empty() ||
!lcl_FindEntryName(m_pImpl->m_aNamedEntries, aRange, aRangeStr))
!lcl_FindEntryName(m_pImpl->m_aNamedEntries, rRange, aRangeStr))
{
aRangeStr = aRange.Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc);
aRangeStr = rRange.Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc);
}
pAry[i] = aRangeStr;
}
@@ -4727,8 +4723,8 @@ void ScCellRangeObj::RefChanged()
OSL_ENSURE(rRanges.size() == 1, "What ranges ?!?!");
if ( !rRanges.empty() )
{
const ScRange* pFirst = rRanges[0];
aRange = ScRange(*pFirst);
const ScRange & rFirst = rRanges[0];
aRange = rFirst;
aRange.PutInOrder();
}
}
@@ -5979,8 +5975,7 @@ void ScCellObj::RefChanged()
OSL_ENSURE(rRanges.size() == 1, "What ranges ?!?!");
if ( !rRanges.empty() )
{
const ScRange* pFirst = rRanges[ 0 ];
aCellPos = pFirst->aStart;
aCellPos = rRanges[ 0 ].aStart;
}
}
@@ -6827,8 +6822,7 @@ SCTAB ScTableSheetObj::GetTab_Impl() const
OSL_ENSURE(rRanges.size() == 1, "What ranges ?!?!");
if ( !rRanges.empty() )
{
const ScRange* pFirst = rRanges[ 0 ];
return pFirst->aStart.Tab();
return rRanges[ 0 ].aStart.Tab();
}
return 0;
}
@@ -6924,7 +6918,7 @@ uno::Reference<sheet::XSheetCellCursor> SAL_CALL ScTableSheetObj::createCursorBy
{
const ScRangeList& rRanges = pRangesImp->GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
return new ScCellCursorObj( pDocSh, *rRanges[ 0 ] );
return new ScCellCursorObj( pDocSh, rRanges[ 0 ] );
}
}
return nullptr;
@@ -7933,12 +7927,12 @@ uno::Sequence< table::CellRangeAddress > SAL_CALL ScTableSheetObj::getRanges( )
table::CellRangeAddress* pAry = aRetRanges.getArray();
for( size_t nIndex = 0; nIndex < nCount; nIndex++ )
{
const ScRange* pRange = (*pRangeList)[nIndex];
pAry->StartColumn = pRange->aStart.Col();
pAry->StartRow = pRange->aStart.Row();
pAry->EndColumn = pRange->aEnd.Col();
pAry->EndRow = pRange->aEnd.Row();
pAry->Sheet = pRange->aStart.Tab();
const ScRange & rRange = (*pRangeList)[nIndex];
pAry->StartColumn = rRange.aStart.Col();
pAry->StartRow = rRange.aStart.Row();
pAry->EndColumn = rRange.aEnd.Col();
pAry->EndRow = rRange.aEnd.Row();
pAry->Sheet = rRange.aStart.Tab();
++pAry;
}
return aRetRanges;
@@ -8941,10 +8935,7 @@ ScCellsEnumeration::ScCellsEnumeration(ScDocShell* pDocSh, const ScRangeList& rR
bAtEnd = true;
else
{
SCTAB nTab = 0;
const ScRange* pFirst = aRanges[ 0 ];
if (pFirst)
nTab = pFirst->aStart.Tab();
SCTAB nTab = aRanges[ 0 ].aStart.Tab();
aPos = ScAddress(0,0,nTab);
CheckPos_Impl(); // set aPos on first matching cell
}
@@ -9016,13 +9007,12 @@ void ScCellsEnumeration::Notify( SfxBroadcaster&, const SfxHint& rHint )
if (!bAtEnd) // adjust aPos
{
ScRangeList aNew;
aNew.Append(ScRange(aPos));
ScRangeList aNew { ScRange(aPos) };
aNew.UpdateReference( pRefHint->GetMode(), &pDocShell->GetDocument(), pRefHint->GetRange(),
pRefHint->GetDx(), pRefHint->GetDy(), pRefHint->GetDz() );
if (aNew.size()==1)
{
aPos = aNew[ 0 ]->aStart;
aPos = aNew[ 0 ].aStart;
CheckPos_Impl();
}
}
@@ -9401,8 +9391,7 @@ const ScRangeList& ScUniqueFormatsEntry::GetRanges()
{
if ( eState == STATE_SINGLE )
{
aReturnRanges = new ScRangeList;
aReturnRanges->Append( aSingleRange );
aReturnRanges = new ScRangeList( aSingleRange );
return *aReturnRanges;
}
@@ -9422,7 +9411,7 @@ const ScRangeList& ScUniqueFormatsEntry::GetRanges()
aReturnRanges = new ScRangeList;
ScRangeVector::const_iterator aCompEnd( aCompletedRanges.end() );
for ( ScRangeVector::const_iterator aCompIter( aCompletedRanges.begin() ); aCompIter != aCompEnd; ++aCompIter )
aReturnRanges->Append( *aCompIter );
aReturnRanges->push_back( *aCompIter );
aCompletedRanges.clear();
return *aReturnRanges;
@@ -9439,7 +9428,7 @@ struct ScUniqueFormatsOrder
OSL_ENSURE( rList1.size() > 0 && rList2.size() > 0, "ScUniqueFormatsOrder: empty list" );
// compare start positions using ScAddress comparison operator
return ( rList1[ 0 ]->aStart < rList2[ 0 ]->aStart );
return ( rList1[ 0 ].aStart < rList2[ 0 ].aStart );
}
};
diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx
index 96f527e..e0def91 100644
--- a/sc/source/ui/unoobj/chart2uno.cxx
+++ b/sc/source/ui/unoobj/chart2uno.cxx
@@ -2669,10 +2669,9 @@ void ScChart2DataSequence::UpdateTokensFromRanges(const ScRangeList& rRanges)
for ( size_t i = 0, nCount = rRanges.size(); i < nCount; ++i )
{
ScTokenRef pToken;
const ScRange* pRange = rRanges[i];
OSL_ENSURE(pRange, "range object is nullptr.");
const ScRange & rRange = rRanges[i];
ScRefTokenHelper::getTokenFromRange(pToken, *pRange);
ScRefTokenHelper::getTokenFromRange(pToken, rRange);
sal_uInt32 nOrigPos = (*m_pRangeIndices)[i];
m_aTokens[nOrigPos] = pToken;
}
@@ -2756,7 +2755,7 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
{
ScRange aRange;
ScRefTokenHelper::getRangeFromToken(aRange, *itr, ScAddress());
aRanges.Append(aRange);
aRanges.push_back(aRange);
sal_uInt32 nPos = distance(itrBeg, itr);
m_pRangeIndices->push_back(nPos);
}
diff --git a/sc/source/ui/unoobj/chartuno.cxx b/sc/source/ui/unoobj/chartuno.cxx
index 1c7cb56..c146e3a 100644
--- a/sc/source/ui/unoobj/chartuno.cxx
+++ b/sc/source/ui/unoobj/chartuno.cxx
@@ -166,7 +166,7 @@ void SAL_CALL ScChartsObj::addNewByName( const OUString& rName,
{
ScRange aRange( static_cast<SCCOL>(pAry[i].StartColumn), pAry[i].StartRow, pAry[i].Sheet,
static_cast<SCCOL>(pAry[i].EndColumn), pAry[i].EndRow, pAry[i].Sheet );
pList->Append( aRange );
pList->push_back( aRange );
}
}
ScRangeListRef xNewRanges( pList );
@@ -531,7 +531,7 @@ void ScChartObj::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const uno:
{
ScRange aRange;
ScUnoConversion::FillScRange( aRange, aCellRange );
rRangeList->Append( aRange );
rRangeList->push_back( aRange );
}
if ( pDocShell )
{
@@ -576,9 +576,9 @@ void ScChartObj::getFastPropertyValue( uno::Any& rValue, sal_Int32 nHandle ) con
table::CellRangeAddress* pCellRanges = aCellRanges.getArray();
for (size_t i = 0; i < nCount; ++i)
{
ScRange aRange(*(*rRangeList)[i]);
ScRange const & rRange = (*rRangeList)[i];
table::CellRangeAddress aCellRange;
ScUnoConversion::FillApiRange(aCellRange, aRange);
ScUnoConversion::FillApiRange(aCellRange, rRange);
pCellRanges[i] = aCellRange;
}
rValue <<= aCellRanges;
@@ -661,13 +661,13 @@ uno::Sequence<table::CellRangeAddress> SAL_CALL ScChartObj::getRanges()
table::CellRangeAddress* pAry = aSeq.getArray();
for (size_t i = 0; i < nCount; i++)
{
ScRange aRange( *(*xRanges)[i] );
ScRange const & rRange = (*xRanges)[i];
aRangeAddress.Sheet = aRange.aStart.Tab();
aRangeAddress.StartColumn = aRange.aStart.Col();
aRangeAddress.StartRow = aRange.aStart.Row();
aRangeAddress.EndColumn = aRange.aEnd.Col();
aRangeAddress.EndRow = aRange.aEnd.Row();
aRangeAddress.Sheet = rRange.aStart.Tab();
aRangeAddress.StartColumn = rRange.aStart.Col();
aRangeAddress.StartRow = rRange.aStart.Row();
aRangeAddress.EndColumn = rRange.aEnd.Col();
aRangeAddress.EndRow = rRange.aEnd.Row();
pAry[i] = aRangeAddress;
}
@@ -694,7 +694,7 @@ void SAL_CALL ScChartObj::setRanges( const uno::Sequence<table::CellRangeAddress
{
ScRange aRange( static_cast<SCCOL>(pAry[i].StartColumn), pAry[i].StartRow, pAry[i].Sheet,
static_cast<SCCOL>(pAry[i].EndColumn), pAry[i].EndRow, pAry[i].Sheet );
pList->Append( aRange );
pList->push_back( aRange );
}
}
ScRangeListRef xNewRanges( pList );
diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx
index 50fb8a7..4f1a5e4 100644
--- a/sc/source/ui/unoobj/condformatuno.cxx
+++ b/sc/source/ui/unoobj/condformatuno.cxx
@@ -354,7 +354,7 @@ sal_Int32 ScCondFormatsObj::createByRange(const uno::Reference< sheet::XSheetCel
if (aCoreRange.empty())
throw lang::IllegalArgumentException();
SCTAB nTab = aCoreRange[0]->aStart.Tab();
SCTAB nTab = aCoreRange[0].aStart.Tab();
ScConditionalFormat* pNewFormat = new ScConditionalFormat(0, &mpDocShell->GetDocument());
pNewFormat->SetRange(aCoreRange);
diff --git a/sc/source/ui/unoobj/cursuno.cxx b/sc/source/ui/unoobj/cursuno.cxx
index edeaa08..9431200 100644
--- a/sc/source/ui/unoobj/cursuno.cxx
+++ b/sc/source/ui/unoobj/cursuno.cxx
@@ -98,7 +98,7 @@ void SAL_CALL ScCellCursorObj::collapseToCurrentRegion()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aOneRange( *rRanges[ 0 ] );
ScRange aOneRange( rRanges[ 0 ] );
aOneRange.PutInOrder();
ScDocShell* pDocSh = GetDocShell();
@@ -123,7 +123,7 @@ void SAL_CALL ScCellCursorObj::collapseToCurrentArray()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aOneRange( *rRanges[ 0 ] );
ScRange aOneRange( rRanges[ 0 ] );
aOneRange.PutInOrder();
ScAddress aCursor(aOneRange.aStart); // use the start address of the range
@@ -158,7 +158,7 @@ void SAL_CALL ScCellCursorObj::collapseToMergedArea()
{
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aNewRange( *rRanges[ 0 ] );
ScRange aNewRange( rRanges[ 0 ] );
ScDocument& rDoc = pDocSh->GetDocument();
rDoc.ExtendOverlapped( aNewRange );
@@ -173,7 +173,7 @@ void SAL_CALL ScCellCursorObj::expandToEntireColumns()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aNewRange( *rRanges[ 0 ] );
ScRange aNewRange( rRanges[ 0 ] );
aNewRange.aStart.SetRow( 0 );
aNewRange.aEnd.SetRow( MAXROW );
@@ -186,7 +186,7 @@ void SAL_CALL ScCellCursorObj::expandToEntireRows()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aNewRange( *rRanges[ 0 ] );
ScRange aNewRange( rRanges[ 0 ] );
aNewRange.aStart.SetCol( 0 );
aNewRange.aEnd.SetCol( MAXCOL );
@@ -206,7 +206,7 @@ void SAL_CALL ScCellCursorObj::collapseToSize( sal_Int32 nColumns, sal_Int32 nRo
{
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aNewRange( *rRanges[ 0 ] );
ScRange aNewRange( rRanges[ 0 ] );
aNewRange.PutInOrder(); //! really?
@@ -237,7 +237,7 @@ void SAL_CALL ScCellCursorObj::gotoStartOfUsedArea(sal_Bool bExpand)
{
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aNewRange( *rRanges[0] );
ScRange aNewRange( rRanges[0] );
SCTAB nTab = aNewRange.aStart.Tab();
SCCOL nUsedX = 0; // fetch the beginning
@@ -264,7 +264,7 @@ void SAL_CALL ScCellCursorObj::gotoEndOfUsedArea( sal_Bool bExpand )
{
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aNewRange( *rRanges[ 0 ]);
ScRange aNewRange( rRanges[ 0 ]);
SCTAB nTab = aNewRange.aStart.Tab();
SCCOL nUsedX = 0; // fetch the end
@@ -293,7 +293,7 @@ void SAL_CALL ScCellCursorObj::gotoStart()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aOneRange( *rRanges[ 0 ]);
ScRange aOneRange( rRanges[ 0 ]);
aOneRange.PutInOrder();
ScDocShell* pDocSh = GetDocShell();
@@ -321,7 +321,7 @@ void SAL_CALL ScCellCursorObj::gotoEnd()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aOneRange( *rRanges[ 0 ] );
ScRange aOneRange( rRanges[ 0 ] );
aOneRange.PutInOrder();
ScDocShell* pDocSh = GetDocShell();
@@ -346,7 +346,7 @@ void SAL_CALL ScCellCursorObj::gotoNext()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aOneRange( *rRanges[ 0 ] );
ScRange aOneRange( rRanges[ 0 ] );
aOneRange.PutInOrder();
ScAddress aCursor(aOneRange.aStart); // always use start of block
@@ -368,7 +368,7 @@ void SAL_CALL ScCellCursorObj::gotoPrevious()
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aOneRange( *rRanges[ 0 ] );
ScRange aOneRange( rRanges[ 0 ] );
aOneRange.PutInOrder();
ScAddress aCursor(aOneRange.aStart); // always use start of block
@@ -390,7 +390,7 @@ void SAL_CALL ScCellCursorObj::gotoOffset( sal_Int32 nColumnOffset, sal_Int32 nR
SolarMutexGuard aGuard;
const ScRangeList& rRanges = GetRangeList();
OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" );
ScRange aOneRange( *rRanges[ 0 ] );
ScRange aOneRange( rRanges[ 0 ] );
aOneRange.PutInOrder();
if ( aOneRange.aStart.Col() + nColumnOffset >= 0 &&
diff --git a/sc/source/ui/unoobj/dapiuno.cxx b/sc/source/ui/unoobj/dapiuno.cxx
index 0f4af4a..9c2a26d 100644
--- a/sc/source/ui/unoobj/dapiuno.cxx
+++ b/sc/source/ui/unoobj/dapiuno.cxx
@@ -1310,18 +1310,13 @@ void ScDataPilotTableObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
else if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
{
ScRange aRange( 0, 0, nTab );
ScRangeList aRanges;
aRanges.Append( aRange );
ScRangeList aRanges( aRange );
const ScUpdateRefHint& rRef = static_cast< const ScUpdateRefHint& >( rHint );
if ( aRanges.UpdateReference( rRef.GetMode(), &GetDocShell()->GetDocument(), rRef.GetRange(),
rRef.GetDx(), rRef.GetDy(), rRef.GetDz() ) &&
aRanges.size() == 1 )
{
const ScRange* pRange = aRanges.front();
if ( pRange )
{
nTab = pRange->aStart.Tab();
}
nTab = aRanges.front().aStart.Tab();
}
}
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 8d3881b..6eeeef3 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -2952,14 +2952,14 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r
{
uno::Reference< table::XCellRange > xRangeObj;
ScRange aRange( *rRanges[ nIndex ] );
if ( aRange.aStart == aRange.aEnd )
ScRange const & rRange = rRanges[ nIndex ];
if ( rRange.aStart == rRange.aEnd )
{
xRangeObj.set( new ScCellObj( pDocShell, aRange.aStart ) );
xRangeObj.set( new ScCellObj( pDocShell, rRange.aStart ) );
}
else
{
xRangeObj.set( new ScCellRangeObj( pDocShell, aRange ) );
xRangeObj.set( new ScCellRangeObj( pDocShell, rRange ) );
}
util::ElementChange& rChange = aEvent.Changes[ static_cast< sal_Int32 >( nIndex ) ];
@@ -3003,9 +3003,9 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r
size_t nRangeCount = rRanges.size();
for ( size_t nIndex = 0; nIndex < nRangeCount; ++nIndex )
{
ScRange aRange( *rRanges[ nIndex ] );
if ( aRange.aStart.Tab() == nTab )
aTabRanges.Append( aRange );
ScRange const & rRange = rRanges[ nIndex ];
if ( rRange.aStart.Tab() == nTab )
aTabRanges.push_back( rRange );
}
size_t nTabRangeCount = aTabRanges.size();
if ( nTabRangeCount > 0 )
@@ -3013,11 +3013,11 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r
uno::Reference<uno::XInterface> xTarget;
if ( nTabRangeCount == 1 )
{
ScRange aRange( *aTabRanges[ 0 ] );
if ( aRange.aStart == aRange.aEnd )
xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellObj( pDocShell, aRange.aStart ) ) );
ScRange const & rRange = aTabRanges[ 0 ];
if ( rRange.aStart == rRange.aEnd )
xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellObj( pDocShell, rRange.aStart ) ) );
else
xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellRangeObj( pDocShell, aRange ) ) );
xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellRangeObj( pDocShell, rRange ) ) );
}
else
xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellRangesObj( pDocShell, aTabRanges ) ) );
@@ -3633,9 +3633,8 @@ uno::Sequence < uno::Reference< table::XCellRange > > SAL_CALL ScTableSheetsObj:
xRet.realloc(nCount);
for( size_t nIndex = 0; nIndex < nCount; nIndex++ )
{
const ScRange* pRange = aRangeList[ nIndex ];
if( pRange )
xRet[nIndex] = new ScCellRangeObj(pDocShell, *pRange);
const ScRange & rRange = aRangeList[ nIndex ];
xRet[nIndex] = new ScCellRangeObj(pDocShell, rRange);
}
return xRet;
diff --git a/sc/source/ui/unoobj/funcuno.cxx b/sc/source/ui/unoobj/funcuno.cxx
index 01f2026..68cf909 100644
--- a/sc/source/ui/unoobj/funcuno.cxx
+++ b/sc/source/ui/unoobj/funcuno.cxx
@@ -549,18 +549,18 @@ uno::Any SAL_CALL ScFunctionAccess::callFunction( const OUString& aName,
const ScRangeList& rRanges = pImpl->GetRangeList();
if ( pSrcDoc && rRanges.size() == 1 )
{
ScRange aSrcRange = *rRanges[ 0 ];
ScRange const & rSrcRange = rRanges[ 0 ];
long nStartRow = nDocRow;
long nColCount = aSrcRange.aEnd.Col() - aSrcRange.aStart.Col() + 1;
long nRowCount = aSrcRange.aEnd.Row() - aSrcRange.aStart.Row() + 1;
long nColCount = rSrcRange.aEnd.Col() - rSrcRange.aStart.Col() + 1;
long nRowCount = rSrcRange.aEnd.Row() - rSrcRange.aStart.Row() + 1;
if ( nStartRow + nRowCount > MAXROWCOUNT )
bOverflow = true;
else
{
// copy data
if ( !lcl_CopyData( pSrcDoc, aSrcRange, pDoc, ScAddress( 0, static_cast<SCROW>(nDocRow), 0 ) ) )
if ( !lcl_CopyData( pSrcDoc, rSrcRange, pDoc, ScAddress( 0, static_cast<SCROW>(nDocRow), 0 ) ) )
bOverflow = true;
}
diff --git a/sc/source/ui/unoobj/viewuno.cxx b/sc/source/ui/unoobj/viewuno.cxx
index d253827..ec637f1 100644
--- a/sc/source/ui/unoobj/viewuno.cxx
+++ b/sc/source/ui/unoobj/viewuno.cxx
@@ -626,8 +626,8 @@ static bool lcl_TabInRanges( SCTAB nTab, const ScRangeList& rRanges )
{
for (size_t i = 0, nCount = rRanges.size(); i < nCount; ++i)
{
const ScRange* pRange = rRanges[ i ];
if ( nTab >= pRange->aStart.Tab() && nTab <= pRange->aEnd.Tab() )
const ScRange & rRange = rRanges[ i ];
if ( nTab >= rRange.aStart.Tab() && nTab <= rRange.aEnd.Tab() )
return true;
}
return false;
@@ -739,25 +739,22 @@ sal_Bool SAL_CALL ScTabViewObj::select( const uno::Any& aSelection )
if ( nRangeCount == 0 )
pViewSh->Unmark();
else if ( nRangeCount == 1 )
pViewSh->MarkRange( *rRanges[ 0 ] );
pViewSh->MarkRange( rRanges[ 0 ] );
else
{
// multiselection
const ScRange* pFirst = rRanges[ 0 ];
if ( pFirst && !lcl_TabInRanges( rViewData.GetTabNo(), rRanges ) )
pViewSh->SetTabNo( pFirst->aStart.Tab() );
const ScRange & rFirst = rRanges[ 0 ];
if ( !lcl_TabInRanges( rViewData.GetTabNo(), rRanges ) )
pViewSh->SetTabNo( rFirst.aStart.Tab() );
pViewSh->DoneBlockMode();
pViewSh->InitOwnBlockMode();
rViewData.GetMarkData().MarkFromRangeList( rRanges, true );
pViewSh->MarkDataChanged();
rViewData.GetDocShell()->PostPaintGridAll(); // Marks (old&new)
if ( pFirst )
{
pViewSh->AlignToCursor( pFirst->aStart.Col(), pFirst->aStart.Row(),
SC_FOLLOW_JUMP );
pViewSh->SetCursor( pFirst->aStart.Col(), pFirst->aStart.Row() );
}
pViewSh->AlignToCursor( rFirst.aStart.Col(), rFirst.aStart.Row(),
SC_FOLLOW_JUMP );
pViewSh->SetCursor( rFirst.aStart.Col(), rFirst.aStart.Row() );
//! method of the view to select RangeList
}
@@ -922,7 +919,7 @@ uno::Any SAL_CALL ScTabViewObj::getSelection()
break;
case 1:
{
const ScRange& rRange = *(aRangeList[ 0 ]);
const ScRange& rRange = aRangeList[ 0 ];
if (rRange.aStart == rRange.aEnd)
pObj = new ScCellObj( pDocSh, rRange.aStart );
else
@@ -1086,7 +1083,7 @@ void SAL_CALL ScTabViewObj::setActiveSheet( const uno::Reference<sheet::XSpreads
const ScRangeList& rRanges = pRangesImp->GetRangeList();
if ( rRanges.size() == 1 )
{
SCTAB nNewTab = rRanges[ 0 ]->aStart.Tab();
SCTAB nNewTab = rRanges[ 0 ].aStart.Tab();
if ( pViewSh->GetViewData().GetDocument()->HasTable(nNewTab) )
pViewSh->SetTabNo( nNewTab );
}
diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx
index 58cc3e9..978de71 100644
--- a/sc/source/ui/vba/vbaapplication.cxx
+++ b/sc/source/ui/vba/vbaapplication.cxx
@@ -1127,11 +1127,11 @@ uno::Reference< excel::XRange > lclCreateVbaRange(
ScRangeList aCellRanges;
for( ListOfScRange::const_iterator aIt = rList.begin(), aEnd = rList.end(); aIt != aEnd; ++aIt )
aCellRanges.Append( *aIt );
aCellRanges.push_back( *aIt );
if( aCellRanges.size() == 1 )
{
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocShell, *aCellRanges.front() ) );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocShell, aCellRanges.front() ) );
return new ScVbaRange( excel::getUnoSheetModuleObj( xRange ), rxContext, xRange );
}
if( aCellRanges.size() > 1 )
diff --git a/sc/source/ui/vba/vbaeventshelper.cxx b/sc/source/ui/vba/vbaeventshelper.cxx
index 24ae774..400f645 100644
--- a/sc/source/ui/vba/vbaeventshelper.cxx
+++ b/sc/source/ui/vba/vbaeventshelper.cxx
@@ -385,7 +385,7 @@ void SAL_CALL ScVbaEventListener::changesOccurred( const util::ChangesEvent& rEv
{
ScRange aRange;
ScUnoConversion::FillScRange( aRange, xCellRangeAddressable->getRangeAddress() );
aRangeList.Append( aRange );
aRangeList.push_back( aRange );
}
}
}
@@ -829,7 +829,7 @@ bool lclSelectionChanged( const ScRangeList& rLeft, const ScRangeList& rRight )
return !(bLeftEmpty && bRightEmpty);
// check sheet indexes of the range lists (assuming that all ranges in a list are on the same sheet)
if (rLeft[0]->aStart.Tab() != rRight[0]->aStart.Tab())
if (rLeft[0].aStart.Tab() != rRight[0].aStart.Tab())
return false;
// compare all ranges
diff --git a/sc/source/ui/vba/vbahyperlinks.cxx b/sc/source/ui/vba/vbahyperlinks.cxx
index 148e774..7e46e38 100644
--- a/sc/source/ui/vba/vbahyperlinks.cxx
+++ b/sc/source/ui/vba/vbahyperlinks.cxx
@@ -42,7 +42,7 @@ bool lclContains( const ScRangeList& rScOuter, const uno::Reference< excel::XRan
throw uno::RuntimeException("Empty range objects" );
for( size_t nIndex = 0, nCount = rScInner.size(); nIndex < nCount; ++nIndex )
if( !rScOuter.In( *rScInner[ nIndex ] ) )
if( !rScOuter.In( rScInner[ nIndex ] ) )
return false;
return true;
}
@@ -89,7 +89,7 @@ bool EqualAnchorFunctor::operator()( const uno::Reference< excel::XHyperlink >&
uno::Reference< excel::XRange > xAnchorRange( rxHlink->getRange(), uno::UNO_QUERY_THROW );
const ScRangeList& rScRanges1 = ScVbaRange::getScRangeList( xAnchorRange );
const ScRangeList& rScRanges2 = ScVbaRange::getScRangeList( mxAnchorRange );
return (rScRanges1.size() == 1) && (rScRanges2.size() == 1) && (*rScRanges1[ 0 ] == *rScRanges2[ 0 ]);
return (rScRanges1.size() == 1) && (rScRanges2.size() == 1) && (rScRanges1[ 0 ] == rScRanges2[ 0 ]);
}
case office::MsoHyperlinkType::msoHyperlinkShape:
case office::MsoHyperlinkType::msoHyperlinkInlineShape:
diff --git a/sc/source/ui/vba/vbanames.cxx b/sc/source/ui/vba/vbanames.cxx
index 553d796..42b290c 100644
--- a/sc/source/ui/vba/vbanames.cxx
+++ b/sc/source/ui/vba/vbanames.cxx
@@ -170,7 +170,7 @@ ScVbaNames::Add( const css::uno::Any& Name ,
if ( ScVbaRange::getCellRangesForAddress( nFlags, sFormula, pDocSh, aCellRanges, eConv , ',' ) )
{
if ( aCellRanges.size() == 1 )
xUnoRange = new ScCellRangeObj( pDocSh, *aCellRanges.front() );
xUnoRange = new ScCellRangeObj( pDocSh, aCellRanges.front() );
else
{
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocSh, aCellRanges ) );
diff --git a/sc/source/ui/vba/vbapagesetup.cxx b/sc/source/ui/vba/vbapagesetup.cxx
index dd4a016..a86c013 100644
--- a/sc/source/ui/vba/vbapagesetup.cxx
+++ b/sc/source/ui/vba/vbapagesetup.cxx
@@ -78,7 +78,7 @@ OUString SAL_CALL ScVbaPageSetup::getPrintArea()
{
ScRange aRange;
ScUnoConversion::FillScRange( aRange, aSeq[i] );
aRangeList.Append( aRange );
aRangeList.push_back( aRange );
}
ScDocument& rDoc = excel::getDocShell( mxModel )->GetDocument();
aRangeList.Format( aPrintArea, ScRefFlags::RANGE_ABS, &rDoc, formula::FormulaGrammar::CONV_XL_A1, ',' );
@@ -106,9 +106,9 @@ void SAL_CALL ScVbaPageSetup::setPrintArea( const OUString& rAreas )
uno::Sequence< table::CellRangeAddress > aSeq( aCellRanges.size() );
for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i )
{
ScRange* pRange = aCellRanges[ i ];
ScRange & rRange = aCellRanges[ i ];
table::CellRangeAddress aRangeAddress;
ScUnoConversion::FillApiRange( aRangeAddress, *pRange );
ScUnoConversion::FillApiRange( aRangeAddress, rRange );
aSeq[ i++ ] = aRangeAddress;
}
xPrintAreas->setPrintAreas( aSeq );
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index f9577e4..00e3b6c 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -236,12 +236,12 @@ static uno::Reference< excel::XRange > lcl_makeXRangeFromSheetCellRanges( const
{
ScRange refRange;
ScUnoConversion::FillScRange( refRange, sAddresses[ index ] );
aCellRanges.Append( refRange );
aCellRanges.push_back( refRange );
}
// Single range
if ( aCellRanges.size() == 1 )
{
uno::Reference< table::XCellRange > xTmpRange( new ScCellRangeObj( pDoc, *aCellRanges.front() ) );
uno::Reference< table::XCellRange > xTmpRange( new ScCellRangeObj( pDoc, aCellRanges.front() ) );
xRange = new ScVbaRange( xParent, xContext, xTmpRange );
}
else
@@ -883,7 +883,7 @@ protected:
if ( pUnoRangesBase )
{
ScRangeList aCellRanges = pUnoRangesBase->GetRangeList();
ScCompiler aCompiler( m_pDoc, aCellRanges.front()->aStart, m_eGrammar );
ScCompiler aCompiler( m_pDoc, aCellRanges.front().aStart, m_eGrammar );
// compile the string in the format passed in
std::unique_ptr<ScTokenArray> pArray(aCompiler.CompileString(sFormula));
// set desired convention to that of the document
@@ -926,7 +926,7 @@ public:
pUnoRangesBase )
{
ScRangeList aCellRanges = pUnoRangesBase->GetRangeList();
ScCompiler aCompiler( m_pDoc, aCellRanges.front()->aStart, formula::FormulaGrammar::GRAM_DEFAULT );
ScCompiler aCompiler( m_pDoc, aCellRanges.front().aStart, formula::FormulaGrammar::GRAM_DEFAULT );
std::unique_ptr<ScTokenArray> pArray(aCompiler.CompileString(sVal));
// set desired convention
aCompiler.SetGrammar( m_eGrammar );
@@ -1217,13 +1217,13 @@ bool getScRangeListForAddress( const OUString& sName, ScDocShell* pDocSh, const
for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i )
{
ScRange* pRange = aCellRanges[ i ];
pRange->aStart.SetCol( refRange.aStart.Col() + pRange->aStart.Col() );
pRange->aStart.SetRow( refRange.aStart.Row() + pRange->aStart.Row() );
pRange->aStart.SetTab( bTabFromReferrer ? refRange.aStart.Tab() : pRange->aStart.Tab() );
pRange->aEnd.SetCol( refRange.aStart.Col() + pRange->aEnd.Col() );
pRange->aEnd.SetRow( refRange.aStart.Row() + pRange->aEnd.Row() );
pRange->aEnd.SetTab( bTabFromReferrer ? refRange.aEnd.Tab() : pRange->aEnd.Tab() );
ScRange & rRange = aCellRanges[ i ];
rRange.aStart.SetCol( refRange.aStart.Col() + rRange.aStart.Col() );
rRange.aStart.SetRow( refRange.aStart.Row() + rRange.aStart.Row() );
rRange.aStart.SetTab( bTabFromReferrer ? refRange.aStart.Tab() : rRange.aStart.Tab() );
rRange.aEnd.SetCol( refRange.aStart.Col() + rRange.aEnd.Col() );
rRange.aEnd.SetRow( refRange.aStart.Row() + rRange.aEnd.Row() );
rRange.aEnd.SetTab( bTabFromReferrer ? refRange.aEnd.Tab() : rRange.aEnd.Tab() );
}
}
return true;
@@ -1241,7 +1241,7 @@ getRangeForName( const uno::Reference< uno::XComponentContext >& xContext, const
// Single range
if ( aCellRanges.size() == 1 )
{
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocSh, *aCellRanges.front() ) );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocSh, aCellRanges.front() ) );
uno::Reference< XHelperInterface > xFixThisParent = excel::getUnoSheetModuleObj( xRange );
return new ScVbaRange( xFixThisParent, xContext, xRange );
}
@@ -1305,7 +1305,7 @@ uno::Reference< sheet::XSheetCellRangeContainer > lclExpandToMerged( const uno::
table::CellRangeAddress aRangeAddr = lclGetRangeAddress( lclExpandToMerged( xRange, bRecursive ) );
ScRange aScRange;
ScUnoConversion::FillScRange( aScRange, aRangeAddr );
aScRanges.Append( aScRange );
aScRanges.push_back( aScRange );
}
return new ScCellRangesObj( getDocShellFromRanges( rxCellRanges ), aScRanges );
}
@@ -1387,7 +1387,7 @@ table::CellRangeAddress getCellRangeAddressForVBARange( const uno::Any& aParam,
if ( aCellRanges.size() == 1 )
{
table::CellRangeAddress aRangeAddress;
ScUnoConversion::FillApiRange( aRangeAddress, *aCellRanges.front() );
ScUnoConversion::FillApiRange( aRangeAddress, aCellRanges.front() );
return aRangeAddress;
}
}
@@ -1786,8 +1786,8 @@ ScVbaRange::HasFormula()
// check if there are holes (where some cells are not formulas)
// or returned range is not equal to this range
if ( ( pFormulaRanges->GetRangeList().size() > 1 )
|| ( pFormulaRanges->GetRangeList().front()->aStart != pThisRanges->GetRangeList().front()->aStart )
|| ( pFormulaRanges->GetRangeList().front()->aEnd != pThisRanges->GetRangeList().front()->aEnd )
|| ( pFormulaRanges->GetRangeList().front().aStart != pThisRanges->GetRangeList().front().aStart )
|| ( pFormulaRanges->GetRangeList().front().aEnd != pThisRanges->GetRangeList().front().aEnd )
)
return aNULL(); // should return aNULL;
}
@@ -1872,16 +1872,16 @@ ScVbaRange::Offset( const ::uno::Any &nRowOff, const uno::Any &nColOff )
for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i )
{
ScRange* pRange = aCellRanges[ i ];
ScRange & rRange = aCellRanges[ i ];
if ( bIsColumnOffset )
{
pRange->aStart.SetCol( pRange->aStart.Col() + nColOffset );
pRange->aEnd.SetCol( pRange->aEnd.Col() + nColOffset );
rRange.aStart.SetCol( rRange.aStart.Col() + nColOffset );
rRange.aEnd.SetCol( rRange.aEnd.Col() + nColOffset );
}
if ( bIsRowOffset )
{
pRange->aStart.SetRow( pRange->aStart.Row() + nRowOffset );
pRange->aEnd.SetRow( pRange->aEnd.Row() + nRowOffset );
rRange.aStart.SetRow( rRange.aStart.Row() + nRowOffset );
rRange.aEnd.SetRow( rRange.aEnd.Row() + nRowOffset );
}
}
@@ -1891,7 +1891,7 @@ ScVbaRange::Offset( const ::uno::Any &nRowOff, const uno::Any &nColOff )
return new ScVbaRange( mxParent, mxContext, xRanges );
}
// normal range
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), *aCellRanges.front() ) );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), aCellRanges.front() ) );
return new ScVbaRange( mxParent, mxContext, xRange );
}
@@ -2007,7 +2007,7 @@ ScVbaRange::setFormulaArray(const uno::Any& rFormula)
ScTokenArray aTokenArray;
(void)ScTokenConversion::ConvertToTokenArray( getScDocument(), aTokenArray, aTokens );
getScDocShell()->GetDocFunc().EnterMatrix( *getScRangeList()[0], nullptr, &aTokenArray, OUString(), true, true, EMPTY_OUSTRING, formula::FormulaGrammar::GRAM_API );
getScDocShell()->GetDocFunc().EnterMatrix( getScRangeList()[0], nullptr, &aTokenArray, OUString(), true, true, EMPTY_OUSTRING, formula::FormulaGrammar::GRAM_API );
}
OUString
@@ -2352,7 +2352,7 @@ ScVbaRange::Rows(const uno::Any& aIndex )
ScCellRangesBase* pUnoRangesBase = getCellRangesBase();
ScRangeList aCellRanges = pUnoRangesBase->GetRangeList();
ScRange aRange = *aCellRanges.front();
ScRange aRange = aCellRanges.front();
if( aIndex >>= nValue )
{
aRange.aStart.SetRow( aRange.aStart.Row() + --nValue );
@@ -2392,7 +2392,7 @@ ScVbaRange::Columns(const uno::Any& aIndex )
ScCellRangesBase* pUnoRangesBase = getCellRangesBase();
ScRangeList aCellRanges = pUnoRangesBase->GetRangeList();
ScRange aRange = *aCellRanges.front();
ScRange aRange = aCellRanges.front();
if ( aIndex.hasValue() )
{
sal_Int32 nValue = 0;
@@ -2882,16 +2882,16 @@ ScVbaRange::getEntireColumnOrRow( bool bColumn )
for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i )
{
ScRange* pRange = aCellRanges[ i ];
ScRange & rRange = aCellRanges[ i ];
if ( bColumn )
{
pRange->aStart.SetRow( 0 );
pRange->aEnd.SetRow( MAXROW );
rRange.aStart.SetRow( 0 );
rRange.aEnd.SetRow( MAXROW );
}
else
{
pRange->aStart.SetCol( 0 );
pRange->aEnd.SetCol( MAXCOL );
rRange.aStart.SetCol( 0 );
rRange.aEnd.SetCol( MAXCOL );
}
}
if ( aCellRanges.size() > 1 ) // Multi-Area
@@ -2900,7 +2900,7 @@ ScVbaRange::getEntireColumnOrRow( bool bColumn )
return new ScVbaRange( mxParent, mxContext, xRanges, !bColumn, bColumn );
}
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), *aCellRanges.front() ) );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), aCellRanges.front() ) );
return new ScVbaRange( mxParent, mxContext, xRange, !bColumn, bColumn );
}
@@ -5416,12 +5416,12 @@ ScVbaRange::SpecialCells( const uno::Any& _oType, const uno::Any& _oValue)
{
ScRange refRange;
ScUnoConversion::FillScRange( refRange, *it );
aCellRanges.Append( refRange );
aCellRanges.push_back( refRange );
}
// Single range
if ( aCellRanges.size() == 1 )
{
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getScDocShell(), *aCellRanges.front() ) );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getScDocShell(), aCellRanges.front() ) );
return new ScVbaRange( mxParent, mxContext, xRange );
}
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( getScDocShell(), aCellRanges ) );
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 0608924..daf8830 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -1109,7 +1109,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
if (pDoc->HasTabNotes( rTab ))
{
bHasNotes = true;
aRanges.Append(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab));
aRanges.push_back(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab));
}
}
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index e92e560..93779d6 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -1978,8 +1978,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
ScAddress aPos(pData->GetCurX(), pData->GetCurY(), pData->GetTabNo());
if(aRangeList.empty())
{
ScRange* pRange = new ScRange(aPos);
aRangeList.push_back(pRange);
aRangeList.push_back(ScRange(aPos));
}
const ScConditionalFormat* pCondFormat = nullptr;
@@ -2290,12 +2289,12 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
for ( size_t i = 0; i < nRangeSize; ++i )
{
const ScRange * pRange = aRanges[i];
const SCROW nRow0 = pRange->aStart.Row();
const SCROW nRow1 = pRange->aEnd.Row();
const SCCOL nCol0 = pRange->aStart.Col();
const SCCOL nCol1 = pRange->aEnd.Col();
const SCTAB nRangeTab = pRange->aStart.Tab();
const ScRange & rRange = aRanges[i];
const SCROW nRow0 = rRange.aStart.Row();
const SCROW nRow1 = rRange.aEnd.Row();
const SCCOL nCol0 = rRange.aStart.Col();
const SCCOL nCol1 = rRange.aEnd.Col();
const SCTAB nRangeTab = rRange.aStart.Tab();
// Check by each cell
for ( SCROW nRow = nRow0; nRow <= nRow1; ++nRow )
{
@@ -2362,7 +2361,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
std::vector<sc::NoteEntry> aNotes;
for (auto const& rTab : rMark.GetSelectedTabs())
aRanges.Append(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab));
aRanges.push_back(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab));
CommentCaptionState eState = pDoc->GetAllNoteCaptionsState( aRanges );
pDoc->GetNotesInRange(aRanges, aNotes);
@@ -2416,7 +2415,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
for (auto const& rTab : rMark.GetSelectedTabs())
{
aRangeList.Append(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab));
aRangeList.push_back(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab));
}
aNewMark.MarkFromRangeList( aRangeList, true );
diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx
index 4eead7d..f3cd331 100644
--- a/sc/source/ui/view/cliputil.cxx
+++ b/sc/source/ui/view/cliputil.cxx
@@ -100,7 +100,7 @@ bool ScClipUtil::CheckDestRanges(
{
for (size_t i = 0, n = rDest.size(); i < n; ++i)
{
ScRange aTest = *rDest[i];
ScRange aTest = rDest[i];
// Check for filtered rows in all selected sheets.
ScMarkData::const_iterator itrTab = rMark.begin(), itrTabEnd = rMark.end();
for (; itrTab != itrTabEnd; ++itrTab)
diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx
index dd81e40..38b6d6a 100644
--- a/sc/source/ui/view/dbfunc3.cxx
+++ b/sc/source/ui/view/dbfunc3.cxx
@@ -713,12 +713,12 @@ void ScDBFunc::GetSelectedMemberList(ScDPUniqueStringSet& rEntries, long& rDimen
for (size_t nRangePos=0; nRangePos < nRangeCount && bContinue; nRangePos++)
{
ScRange aRange = *(*xRanges)[nRangePos];
SCCOL nStartCol = aRange.aStart.Col();
SCROW nStartRow = aRange.aStart.Row();
SCCOL nEndCol = aRange.aEnd.Col();
SCROW nEndRow = aRange.aEnd.Row();
SCTAB nTab = aRange.aStart.Tab();
ScRange const & rRange = (*xRanges)[nRangePos];
SCCOL nStartCol = rRange.aStart.Col();
SCROW nStartRow = rRange.aStart.Row();
SCCOL nEndCol = rRange.aEnd.Col();
SCROW nEndRow = rRange.aEnd.Row();
SCTAB nTab = rRange.aStart.Tab();
for (SCROW nRow=nStartRow; nRow<=nEndRow && bContinue; nRow++)
for (SCCOL nCol=nStartCol; nCol<=nEndCol && bContinue; nCol++)
diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx
index bee41f5..2571d95 100644
--- a/sc/source/ui/view/drawvie4.cxx
+++ b/sc/source/ui/view/drawvie4.cxx
@@ -258,7 +258,7 @@ void getOleSourceRanges(const SdrMarkList& rMarkList, bool& rAnyOle, bool& rOneO
if (aRange.Parse(*it, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
{
for(size_t i = 0; i < aRange.size(); ++i)
pRanges->push_back(*aRange[i]);
pRanges->push_back(aRange[i]);
}
else if (aAddr.Parse(*it, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
pRanges->push_back(aAddr);
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 4795290..edca231 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -5270,7 +5270,7 @@ bool ScGridWindow::HasScenarioButton( const Point& rPosPixel, ScRange& rScenRang
size_t nRangeCount = aRanges.size();
for (size_t j=0; j< nRangeCount; ++j)
{
ScRange aRange = *aRanges[j];
ScRange aRange = aRanges[j];
// Always extend scenario frame to merged cells where no new non-covered cells
// are framed
pDoc->ExtendTotalMerge( aRange );
@@ -5704,14 +5704,14 @@ void ScGridWindow::UpdateCopySourceOverlay()
mpOOSelectionBorder.reset(new sdr::overlay::OverlayObjectList);
for ( size_t i = 0; i < rClipParam.maRanges.size(); ++i )
{
ScRange* p = rClipParam.maRanges[i];
if (p->aStart.Tab() != nCurTab)
ScRange const & r = rClipParam.maRanges[i];
if (r.aStart.Tab() != nCurTab)
continue;
SCCOL nClipStartX = p->aStart.Col();
SCROW nClipStartY = p->aStart.Row();
SCCOL nClipEndX = p->aEnd.Col();
SCROW nClipEndY = p->aEnd.Row();
SCCOL nClipStartX = r.aStart.Col();
SCROW nClipStartY = r.aStart.Row();
SCCOL nClipEndX = r.aEnd.Col();
SCROW nClipEndY = r.aEnd.Row();
Point aClipStartScrPos = pViewData->GetScrPos( nClipStartX, nClipStartY, eWhich );
Point aClipEndScrPos = pViewData->GetScrPos( nClipEndX + 1, nClipEndY + 1, eWhich );
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 81f9bf2..cd20ed0 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -206,7 +206,7 @@ static void lcl_DrawScenarioFrames( OutputDevice* pDev, ScViewData* pViewData, S
for (size_t j = 0, n = xRanges->size(); j < n; ++j)
{
ScRange aRange = *(*xRanges)[j];
ScRange aRange = (*xRanges)[j];
// Always extend scenario frame to merged cells where no new non-covered cells
// are framed
pDoc->ExtendTotalMerge( aRange );
diff --git a/sc/source/ui/view/gridwin_dbgutil.cxx b/sc/source/ui/view/gridwin_dbgutil.cxx
index e6cd83a..f4ff902 100644
--- a/sc/source/ui/view/gridwin_dbgutil.cxx
+++ b/sc/source/ui/view/gridwin_dbgutil.cxx
@@ -100,13 +100,11 @@ void ScGridWindow::dumpCellProperties()
for (size_t i = 0, n = aList.size(); i < n; ++i)
{
ScRange* pRange = aList[i];
if (!pRange)
continue;
ScRange const & rRange = aList[i];
for (SCCOL nCol = pRange->aStart.Col(); nCol <= pRange->aEnd.Col(); ++nCol)
for (SCCOL nCol = rRange.aStart.Col(); nCol <= rRange.aEnd.Col(); ++nCol)
{
for (SCROW nRow = pRange->aStart.Row(); nRow <= pRange->aEnd.Row(); ++nRow)
for (SCROW nRow = rRange.aStart.Row(); nRow <= rRange.aEnd.Row(); ++nRow)
{
const ScPatternAttr* pPatternAttr = pDoc->GetPattern(nCol, nRow, nTab);
xmlTextWriterStartElement(writer, BAD_CAST("cell"));
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index a789e66..41bd76e 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -2488,11 +2488,11 @@ void ScTabView::DoChartSelection(
size_t nListSize = aRangeList.size();
for ( size_t j = 0; j < nListSize; ++j )
{
ScRange* p = aRangeList[j];
ScRange const & r = aRangeList[j];
if( rHighlightedRange.Index == - 1 )
AddHighlightRange( *p, aSelColor );
AddHighlightRange( r, aSelColor );
else
AddHighlightRange( lcl_getSubRangeByIndex( *p, rHighlightedRange.Index ), aSelColor );
AddHighlightRange( lcl_getSubRangeByIndex( r, rHighlightedRange.Index ), aSelColor );
}
}
}
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index f750375..46fe3f1 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -614,24 +614,21 @@ bool ScTabViewShell::UseSubTotal(ScRangeList* pRangeList)
size_t nRangeIndex (0);
while (!bSubTotal && nRangeIndex < nRangeCount)
{
const ScRange* pRange = (*pRangeList)[nRangeIndex];
if( pRange )
const ScRange& rRange = (*pRangeList)[nRangeIndex];
SCTAB nTabEnd(rRange.aEnd.Tab());
SCTAB nTab(rRange.aStart.Tab());
while (!bSubTotal && nTab <= nTabEnd)
{
SCTAB nTabEnd(pRange->aEnd.Tab());
SCTAB nTab(pRange->aStart.Tab());
while (!bSubTotal && nTab <= nTabEnd)
SCROW nRowEnd(rRange.aEnd.Row());
SCROW nRow(rRange.aStart.Row());
while (!bSubTotal && nRow <= nRowEnd)
{
SCROW nRowEnd(pRange->aEnd.Row());
SCROW nRow(pRange->aStart.Row());
while (!bSubTotal && nRow <= nRowEnd)
{
if (pDoc->RowFiltered(nRow, nTab))
bSubTotal = true;
else
++nRow;
}
++nTab;
if (pDoc->RowFiltered(nRow, nTab))
bSubTotal = true;
else
++nRow;
}
++nTab;
}
++nRangeIndex;
}
@@ -647,14 +644,11 @@ bool ScTabViewShell::UseSubTotal(ScRangeList* pRangeList)
nRangeIndex = 0;
while (!bSubTotal && nRangeIndex < nRangeCount)
{
const ScRange* pRange = (*pRangeList)[nRangeIndex];
if( pRange )
{
ScRange aDBArea;
rDB.GetArea(aDBArea);
if (aDBArea.Intersects(*pRange))
bSubTotal = true;
}
const ScRange & rRange = (*pRangeList)[nRangeIndex];
ScRange aDBArea;
rDB.GetArea(aDBArea);
if (aDBArea.Intersects(rRange))
bSubTotal = true;
++nRangeIndex;
}
}
@@ -677,10 +671,10 @@ const OUString ScTabViewShell::DoAutoSum(bool& rRangeFinder, bool& rSubTotal)
const size_t nCount = aMarkRangeList.size();
for ( size_t i = 0; i < nCount; ++i )
{
const ScRange aRange( *aMarkRangeList[i] );
if ( pDoc->IsBlockEmpty( aRange.aStart.Tab(),
aRange.aStart.Col(), aRange.aStart.Row(),
aRange.aEnd.Col(), aRange.aEnd.Row() ) )
const ScRange & rRange( aMarkRangeList[i] );
if ( pDoc->IsBlockEmpty( rRange.aStart.Tab(),
rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row() ) )
{
bEmpty = true;
break;
@@ -693,7 +687,7 @@ const OUString ScTabViewShell::DoAutoSum(bool& rRangeFinder, bool& rSubTotal)
const bool bDataFound = GetAutoSumArea( aRangeList );
if ( bDataFound )
{
ScAddress aAddr = aRangeList.back()->aEnd;
ScAddress aAddr = aRangeList.back().aEnd;
aAddr.IncRow();
const bool bSubTotal( UseSubTotal( &aRangeList ) );
EnterAutoSum( aRangeList, bSubTotal, aAddr );
@@ -704,15 +698,15 @@ const OUString ScTabViewShell::DoAutoSum(bool& rRangeFinder, bool& rSubTotal)
const bool bSubTotal( UseSubTotal( &aMarkRangeList ) );
for ( size_t i = 0; i < nCount; ++i )
{
const ScRange aRange( *aMarkRangeList[i] );
const ScRange & rRange = aMarkRangeList[i];
const bool bSetCursor = ( i == nCount - 1 );
const bool bContinue = ( i != 0 );
if ( !AutoSum( aRange, bSubTotal, bSetCursor, bContinue ) )
if ( !AutoSum( rRange, bSubTotal, bSetCursor, bContinue ) )
{
MarkRange( aRange, false );
SetCursor( aRange.aEnd.Col(), aRange.aEnd.Row() );
MarkRange( rRange, false );
SetCursor( rRange.aEnd.Col(), rRange.aEnd.Row() );
const ScRangeList aRangeList;
ScAddress aAddr = aRange.aEnd;
ScAddress aAddr = rRange.aEnd;
aAddr.IncRow();
aFormula = GetAutoSumFormula( aRangeList, bSubTotal, aAddr );
break;
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 1b7bdb7..89845c0 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -1188,8 +1188,7 @@ void ScViewData::GetMultiArea( ScRangeListRef& rRange ) const
{
ScRange aSimple;
GetSimpleArea(aSimple);
rRange = new ScRangeList;
rRange->Append(aSimple);
rRange = new ScRangeList(aSimple);
}
}
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 2727e0b..e572964 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -330,7 +330,7 @@ static ScAutoSum lcl_GetAutoSumForColumnRange( ScDocument* pDoc, ScRangeList& rR
bool bContinue = false;
do
{
rRangeList.Append( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) );
rRangeList.push_back( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) );
nEndRow = static_cast< SCROW >( nExtend );
bContinue = lcl_FindNextSumEntryInColumn( pDoc, nCol, nEndRow /*inout*/, nTab, nExtend /*out*/, aStart.Row() );
if ( bContinue )
@@ -346,7 +346,7 @@ static ScAutoSum lcl_GetAutoSumForColumnRange( ScDocument* pDoc, ScRangeList& rR
{
--nStartRow;
}
rRangeList.Append( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) );
rRangeList.push_back( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) );
if (eSum == ScAutoSumNone)
eSum = ScAutoSumData;
}
@@ -375,7 +375,7 @@ static ScAutoSum lcl_GetAutoSumForRowRange( ScDocument* pDoc, ScRangeList& rRang
bool bContinue = false;
do
{
rRangeList.Append( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) );
rRangeList.push_back( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) );
nEndCol = static_cast< SCCOL >( nExtend );
bContinue = lcl_FindNextSumEntryInRow( pDoc, nEndCol /*inout*/, nRow, nTab, nExtend /*out*/, aStart.Col() );
if ( bContinue )
@@ -391,7 +391,7 @@ static ScAutoSum lcl_GetAutoSumForRowRange( ScDocument* pDoc, ScRangeList& rRang
{
--nStartCol;
}
rRangeList.Append( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) );
rRangeList.push_back( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) );
if (eSum == ScAutoSumNone)
eSum = ScAutoSumData;
}
@@ -476,7 +476,7 @@ bool ScViewFunc::GetAutoSumArea( ScRangeList& rRangeList )
--nStartCol;
}
}
rRangeList.Append(
rRangeList.push_back(
ScRange( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab ) );
if ( eSum == ScAutoSumSum )
{
@@ -665,7 +665,7 @@ bool ScViewFunc::AutoSum( const ScRange& rRange, bool bSubTotal, bool bSetCursor
if ( (eSum = lcl_GetAutoSumForColumnRange( pDoc, aRangeList, aRange )) != ScAutoSumNone )
{
if (++nRowSums == 1)
nRowSumsStartCol = aRangeList[0]->aStart.Col();
nRowSumsStartCol = aRangeList[0].aStart.Col();
const OUString aFormula = GetAutoSumFormula(
aRangeList, bSubTotal, ScAddress(nCol, nInsRow, nTab));
EnterData( nCol, nInsRow, nTab, aFormula );
@@ -702,7 +702,7 @@ bool ScViewFunc::AutoSum( const ScRange& rRange, bool bSubTotal, bool bSetCursor
if ( (eSum = lcl_GetAutoSumForRowRange( pDoc, aRangeList, aRange )) != ScAutoSumNone )
{
if (++nColSums == 1)
nColSumsStartRow = aRangeList[0]->aStart.Row();
nColSumsStartRow = aRangeList[0].aStart.Row();
const OUString aFormula = GetAutoSumFormula( aRangeList, bSubTotal, ScAddress(nInsCol, nRow, nTab) );
EnterData( nInsCol, nRow, nTab, aFormula );
}
@@ -749,15 +749,14 @@ OUString ScViewFunc::GetAutoSumFormula( const ScRangeList& rRangeList, bool bSub
if(!rRangeList.empty())
{
ScRangeList aRangeList = rRangeList;
const ScRange* pFirst = aRangeList.front();
size_t ListSize = aRangeList.size();
for ( size_t i = 0; i < ListSize; ++i )
for ( size_t i = 1; i < ListSize; ++i )
{
const ScRange* p = aRangeList[i];
if (p != pFirst)
const ScRange & r = aRangeList[i];
if (i != 0)
pArray->AddOpCode(ocSep);
ScComplexRefData aRef;
aRef.InitRangeRel(*p, rAddr);
aRef.InitRangeRel(r, rAddr);
pArray->AddDoubleReference(aRef);
}
}
@@ -996,8 +995,8 @@ void ScViewFunc::SetPrintRanges( bool bEntireSheet, const OUString* pPrint,
rMark.FillRangeListWithMarks( pList.get(), false );
for (size_t i = 0, n = pList->size(); i < n; ++i)
{
ScRange* pR = (*pList)[i];
rDoc.AddPrintRange(nTab, *pR);
const ScRange & rR = (*pList)[i];
rDoc.AddPrintRange(nTab, rR);
}
}
}
@@ -1391,7 +1390,7 @@ void ScViewFunc::FillAuto( FillDir eDir, SCCOL nStartCol, SCROW nStartRow,
default:
break;
}
aChangeRanges.Append( aChangeRange );
aChangeRanges.push_back( aChangeRange );
HelperNotifyChanges::Notify(*pModelObj, aChangeRanges);
}
}
@@ -1863,7 +1862,7 @@ bool ScViewFunc::SearchAndReplace( const SvxSearchItem* pSearchItem,
rMark.ResetMark();
for (size_t i = 0, n = aMatchedRanges.size(); i < n; ++i)
{
const ScRange& r = *aMatchedRanges[i];
const ScRange& r = aMatchedRanges[i];
if (r.aStart.Tab() == nTab)
rMark.SetMultiMarkArea(r);
}
@@ -2762,7 +2761,7 @@ void ScViewFunc::MoveTable(
break; // for
}
ScRange aRange( 0, 0, TheTabs[j], MAXCOL, MAXROW, TheTabs[j] );
aParam.maRanges.Append(aRange);
aParam.maRanges.push_back(aRange);
}
pDoc->SetClipParam(aParam);
if ( nErrVal > 0 )
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index 3afb0f4..7d6efcf 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -161,8 +161,7 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, bool bCut, bool bApi, bool bI
if ( eMarkType == SC_MARK_SIMPLE || eMarkType == SC_MARK_SIMPLE_FILTERED )
{
ScRangeList aRangeList;
aRangeList.Append( aRange );
ScRangeList aRangeList( aRange );
bDone = CopyToClip( pClipDoc, aRangeList, bCut, bApi, bIncludeObjects, bStopEdit );
}
else if (eMarkType == SC_MARK_MULTI)
@@ -190,7 +189,7 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b
if ( bStopEdit )
UpdateInputLine();
ScRange aRange = *rRanges[0];
ScRange aRange = rRanges[0];
ScClipParam aClipParam( aRange, bCut );
aClipParam.maRanges = rRanges;
@@ -304,26 +303,26 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b
// Check for geometrical feasibility of the ranges.
bool bValidRanges = true;
ScRange* p = aClipParam.maRanges.front();
ScRange & r = aClipParam.maRanges.front();
SCCOL nPrevColDelta = 0;
SCROW nPrevRowDelta = 0;
SCCOL nPrevCol = p->aStart.Col();
SCROW nPrevRow = p->aStart.Row();
SCCOL nPrevColSize = p->aEnd.Col() - p->aStart.Col() + 1;
SCROW nPrevRowSize = p->aEnd.Row() - p->aStart.Row() + 1;
SCCOL nPrevCol = r.aStart.Col();
SCROW nPrevRow = r.aStart.Row();
SCCOL nPrevColSize = r.aEnd.Col() - r.aStart.Col() + 1;
SCROW nPrevRowSize = r.aEnd.Row() - r.aStart.Row() + 1;
for ( size_t i = 1; i < aClipParam.maRanges.size(); ++i )
{
p = aClipParam.maRanges[i];
r = aClipParam.maRanges[i];
if ( pDoc->HasSelectedBlockMatrixFragment(
p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), rMark) )
r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), rMark) )
{
if (!bApi)
ErrorMessage(STR_MATRIXFRAGMENTERR);
return false;
}
SCCOL nColDelta = p->aStart.Col() - nPrevCol;
SCROW nRowDelta = p->aStart.Row() - nPrevRow;
SCCOL nColDelta = r.aStart.Col() - nPrevCol;
SCROW nRowDelta = r.aStart.Row() - nPrevRow;
if ((nColDelta && nRowDelta) || (nPrevColDelta && nRowDelta) || (nPrevRowDelta && nColDelta))
{
@@ -339,8 +338,8 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b
aClipParam.meDirection = ScClipParam::Row;
}
SCCOL nColSize = p->aEnd.Col() - p->aStart.Col() + 1;
SCROW nRowSize = p->aEnd.Row() - p->aStart.Row() + 1;
SCCOL nColSize = r.aEnd.Col() - r.aStart.Col() + 1;
SCROW nRowSize = r.aEnd.Row() - r.aStart.Row() + 1;
if (aClipParam.meDirection == ScClipParam::Column && nRowSize != nPrevRowSize)
{
@@ -356,8 +355,8 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b
break;
}
nPrevCol = p->aStart.Col();
nPrevRow = p->aStart.Row();
nPrevCol = r.aStart.Col();
nPrevRow = r.aStart.Row();
nPrevColDelta = nColDelta;
nPrevRowDelta = nRowDelta;
nPrevColSize = nColSize;
@@ -831,7 +830,7 @@ bool checkDestRangeForOverwrite(const ScRangeList& rDestRanges, const ScDocument
{
for (size_t i = 0; i < nRangeSize && bIsEmpty; ++i)
{
const ScRange& rRange = *rDestRanges[i];
const ScRange& rRange = rDestRanges[i];
bIsEmpty = pDoc->IsBlockEmpty(
*itrTab, rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row());
@@ -1018,8 +1017,8 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc,
size_t ListSize = aRangeList.size();
for ( size_t i = 0; i < ListSize; ++i )
{
ScRange* p = aRangeList[i];
nUnfilteredRows += p->aEnd.Row() - p->aStart.Row() + 1;
ScRange & r = aRangeList[i];
nUnfilteredRows += r.aEnd.Row() - r.aStart.Row() + 1;
}
#if 0
/* This isn't needed but could be a desired restriction. */
@@ -1141,8 +1140,7 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc,
SC_MOD()->GetInputOptions().GetReplaceCellsWarn();
if ( bAskIfNotEmpty )
{
ScRangeList aTestRanges;
aTestRanges.Append(aUserRange);
ScRangeList aTestRanges(aUserRange);
vcl::Window* pWin = GetViewData().GetDialogParent();
if (!checkDestRangeForOverwrite(aTestRanges, pDoc, aFilteredMark, pWin ? pWin->GetFrameWeld() : nullptr))
return false;
@@ -1510,8 +1508,7 @@ bool ScViewFunc::PasteMultiRangesFromClip(
if (bAskIfNotEmpty)
{
ScRangeList aTestRanges;
aTestRanges.Append(aMarkedRange);
ScRangeList aTestRanges(aMarkedRange);
vcl::Window* pWin = GetViewData().GetDialogParent();
if (!checkDestRangeForOverwrite(aTestRanges, pDoc, aMark, pWin ? pWin->GetFrameWeld() : nullptr))
return false;
@@ -1688,7 +1685,7 @@ bool ScViewFunc::PasteFromClipToMultiRanges(
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
{
pDoc->CopyToDocument(
*aRanges[i], nUndoFlags, false, *pUndoDoc, &aMark);
aRanges[i], nUndoFlags, false, *pUndoDoc, &aMark);
}
}
@@ -1702,7 +1699,7 @@ bool ScViewFunc::PasteFromClipToMultiRanges(
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
{
pDoc->CopyToDocument(
*aRanges[i], InsertDeleteFlags::CONTENTS, false, *pMixDoc, &aMark);
aRanges[i], InsertDeleteFlags::CONTENTS, false, *pMixDoc, &aMark);
}
}
}
@@ -1716,14 +1713,14 @@ bool ScViewFunc::PasteFromClipToMultiRanges(
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
{
pDoc->CopyFromClip(
*aRanges[i], aMark, (nFlags & ~InsertDeleteFlags::OBJECTS), nullptr, pClipDoc,
aRanges[i], aMark, (nFlags & ~InsertDeleteFlags::OBJECTS), nullptr, pClipDoc,
false, false, true, bSkipEmpty);
}
if (pMixDoc.get())
{
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
pDoc->MixDocument(*aRanges[i], nFunction, bSkipEmpty, pMixDoc.get());
pDoc->MixDocument(aRanges[i], nFunction, bSkipEmpty, pMixDoc.get());
}
AdjustBlockHeight(); // update row heights before pasting objects
@@ -1734,7 +1731,7 @@ bool ScViewFunc::PasteFromClipToMultiRanges(
for (size_t i = 0, n = aRanges.size(); i < n; ++i)
{
pDoc->CopyFromClip(
*aRanges[i], aMark, InsertDeleteFlags::OBJECTS, nullptr, pClipDoc,
aRanges[i], aMark, InsertDeleteFlags::OBJECTS, nullptr, pClipDoc,
false, false, true, bSkipEmpty);
}
}
@@ -1790,14 +1787,14 @@ void ScViewFunc::PostPasteFromClip(const ScRangeList& rPasteRanges, const ScMark
ScRangeList aChangeRanges;
for (size_t i = 0, n = rPasteRanges.size(); i < n; ++i)
{
const ScRange& r = *rPasteRanges[i];
const ScRange& r = rPasteRanges[i];
ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
for (; itr != itrEnd; ++itr)
{
ScRange aChangeRange(r);
aChangeRange.aStart.SetTab(*itr);
aChangeRange.aEnd.SetTab(*itr);
aChangeRanges.Append(aChangeRange);
aChangeRanges.push_back(aChangeRange);
}
}
HelperNotifyChanges::Notify(*pModelObj, aChangeRanges);
diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx
index 78bdd8e..498da89 100644
--- a/sc/source/ui/view/viewfun4.cxx
+++ b/sc/source/ui/view/viewfun4.cxx
@@ -239,7 +239,7 @@ void ScViewFunc::DoRefConversion()
SCTAB i = *itr;
for (size_t j = 0; j < nCount; ++j)
{
ScRange aRange = *(*xRanges)[j];
ScRange aRange = (*xRanges)[j];
aRange.aStart.SetTab(i);
aRange.aEnd.SetTab(i);
ScCellIterator aIter( pDoc, aRange );
diff --git a/sc/source/ui/view/viewfun6.cxx b/sc/source/ui/view/viewfun6.cxx
index 6e13f26..ffe5035 100644
--- a/sc/source/ui/view/viewfun6.cxx
+++ b/sc/source/ui/view/viewfun6.cxx
@@ -128,25 +128,24 @@ void ScViewFunc::MarkAndJumpToRanges(const ScRangeList& rRanges)
size_t ListSize = aRanges.size();
for ( size_t i = 0; i < ListSize; ++i )
{
const ScRange* p = aRanges[i];
const ScRange & r = aRanges[i];
// Collect only those ranges that are on the same sheet as the current
// cursor.
if (p->aStart.Tab() == aCurPos.Tab())
aRangesToMark.Append(*p);
if (r.aStart.Tab() == aCurPos.Tab())
aRangesToMark.push_back(r);
}
if (aRangesToMark.empty())
return;
// Jump to the first range of all precedent ranges.
const ScRange* p = aRangesToMark.front();
lcl_jumpToRange(*p, &rView, &pDocSh->GetDocument());
const ScRange & r = aRangesToMark.front();
lcl_jumpToRange(r, &rView, &pDocSh->GetDocument());
ListSize = aRangesToMark.size();
for ( size_t i = 0; i < ListSize; ++i )
{
p = aRangesToMark[i];
MarkRange(*p, false, true);
MarkRange(aRangesToMark[i], false, true);
}
}
@@ -161,7 +160,7 @@ void ScViewFunc::DetectiveMarkPred()
if (rMarkData.IsMarked() || rMarkData.IsMultiMarked())
rMarkData.FillRangeListWithMarks(&aRanges, false);
else
aRanges.Append(aCurPos);
aRanges.push_back(aCurPos);
vector<ScTokenRef> aRefTokens;
pDocSh->GetDocFunc().DetectiveCollectAllPreds(aRanges, aRefTokens);
@@ -225,7 +224,7 @@ void ScViewFunc::DetectiveMarkSucc()
if (rMarkData.IsMarked() || rMarkData.IsMultiMarked())
rMarkData.FillRangeListWithMarks(&aRanges, false);
else
aRanges.Append(aCurPos);
aRanges.push_back(aCurPos);
vector<ScTokenRef> aRefTokens;
pDocSh->GetDocFunc().DetectiveCollectAllSuccs(aRanges, aRefTokens);
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index bd21e08..8e516e3 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -324,7 +324,7 @@ namespace HelperNotifyChanges
ScRangeList aChangeRanges;
ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
for (; itr != itrEnd; ++itr)
aChangeRanges.Append( ScRange( nCol, nRow, *itr ) );
aChangeRanges.push_back( ScRange( nCol, nRow, *itr ) );
HelperNotifyChanges::Notify(*pModelObj, aChangeRanges, "cell-change");
}
@@ -1162,7 +1162,7 @@ void ScViewFunc::ApplySelectionPattern( const ScPatternAttr& rAttr, bool bCursor
ScRange aChangeRange( aMarkRange );
aChangeRange.aStart.SetTab( *itr );
aChangeRange.aEnd.SetTab( *itr );
aChangeRanges.Append( aChangeRange );
aChangeRanges.push_back( aChangeRange );
}
SCCOL nStartCol = aMarkRange.aStart.Col();
@@ -1225,7 +1225,7 @@ void ScViewFunc::ApplySelectionPattern( const ScPatternAttr& rAttr, bool bCursor
pNewEditData = pEditObj->Clone();
}
aChangeRanges.Append(aPos);
aChangeRanges.push_back(aPos);
std::unique_ptr<ScPatternAttr> pOldPat(new ScPatternAttr(*rDoc.GetPattern( nCol, nRow, nTab )));
rDoc.ApplyPattern( nCol, nRow, nTab, rAttr );
@@ -1965,7 +1965,7 @@ void ScViewFunc::DeleteContents( InsertDeleteFlags nFlags )
ScRangeList aChangeRanges;
if ( bSimple )
{
aChangeRanges.Append( aMarkRange );
aChangeRanges.push_back( aMarkRange );
}
else
{
@@ -2291,7 +2291,7 @@ void ScViewFunc::SetWidthOrHeight(
SCCOL nEndCol = rRange.mnEnd;
for ( SCCOL nCol = nStartCol; nCol <= nEndCol; ++nCol )
{
aChangeRanges.Append( ScRange( nCol, 0, nTab ) );
aChangeRanges.push_back( ScRange( nCol, 0, nTab ) );
}
}
}