LibreOffice Module sc (master)
1
|
#include <markmulti.hxx>
Public Member Functions | |
ScMultiSel (ScSheetLimits const &) | |
ScMultiSel (const ScMultiSel &rMultiSel)=default | |
ScMultiSel (ScMultiSel &&rMultiSel)=default | |
ScMultiSel & | operator= (const ScMultiSel &rMultiSel) |
ScMultiSel & | operator= (ScMultiSel &&rMultiSel) |
SCCOL | GetMultiSelectionCount () const |
bool | HasMarks (SCCOL nCol) const |
bool | HasOneMark (SCCOL nCol, SCROW &rStartRow, SCROW &rEndRow) const |
bool | GetMark (SCCOL nCol, SCROW nRow) const |
bool | IsAllMarked (SCCOL nCol, SCROW nStartRow, SCROW nEndRow) const |
bool | HasEqualRowsMarked (SCCOL nCol1, SCCOL nCol2) const |
SCROW | GetNextMarked (SCCOL nCol, SCROW nRow, bool bUp) const |
SCCOL | GetStartOfEqualColumns (SCCOL nLastCol, SCCOL nMinCol=0) const |
void | SetMarkArea (SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow, bool bMark) |
void | Set (ScRangeList const &) |
optimised init-from-range-list. More... | |
bool | IsRowMarked (SCROW nRow) const |
bool | IsRowRangeMarked (SCROW nStartRow, SCROW nEndRow) const |
bool | IsEmpty () const |
ScMarkArray | GetMarkArray (SCCOL nCol) const |
void | Clear () |
void | MarkAllCols (SCROW nStartRow, SCROW nEndRow) |
bool | HasAnyMarks () const |
void | ShiftCols (SCCOL nStartCol, sal_Int32 nColOffset) |
void | ShiftRows (SCROW nStartRow, sal_Int32 nRowOffset) |
const ScMarkArray & | GetRowSelArray () const |
const ScMarkArray * | GetMultiSelArray (SCCOL nCol) const |
Private Attributes | |
std::vector< ScMarkArray > | aMultiSelContainer |
ScMarkArray | aRowSel |
const ScSheetLimits & | mrSheetLimits |
Friends | |
class | ScMultiSelIter |
Definition at line 30 of file markmulti.hxx.
ScMultiSel::ScMultiSel | ( | ScSheetLimits const & | ) |
|
default |
|
default |
void ScMultiSel::Clear | ( | ) |
Definition at line 48 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::Reset().
Referenced by ScMarkData::ResetMark(), Set(), and ShiftCols().
Definition at line 106 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::GetMark().
Referenced by ScMarkData::IsCellMarked().
ScMarkArray ScMultiSel::GetMarkArray | ( | SCCOL | nCol | ) | const |
Definition at line 332 of file markmulti.cxx.
References mrSheetLimits, ScMultiSelIter::Next(), and ScMarkArray::SetMarkArea().
Referenced by ScMarkData::GetMarkArray().
const ScMarkArray * ScMultiSel::GetMultiSelArray | ( | SCCOL | nCol | ) | const |
Definition at line 410 of file markmulti.cxx.
References aMultiSelContainer.
Referenced by ScMarkData::GetMarkedColSpans().
SCCOL ScMultiSel::GetMultiSelectionCount | ( | ) | const |
Definition at line 54 of file markmulti.cxx.
References aMultiSelContainer, i, and nCount.
Definition at line 174 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMarkArray::GetNextMarked(), HasMarks(), and PutInOrder().
Referenced by ScMarkData::GetNextMarked().
|
inline |
Definition at line 72 of file markmulti.hxx.
Referenced by ScMarkData::GetMarkedColSpans().
Definition at line 155 of file markmulti.cxx.
References aMultiSelContainer, and aRowSel.
Referenced by ScMarkData::GetStartOfEqualColumns().
bool ScMultiSel::HasAnyMarks | ( | ) | const |
Definition at line 342 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasMarks().
Referenced by ScMarkData::HasAnyMultiMarks().
Definition at line 138 of file markmulti.cxx.
References aMultiSelContainer.
Referenced by ScMarkData::FillRangeListWithMarks().
bool ScMultiSel::HasMarks | ( | SCCOL | nCol | ) | const |
Definition at line 63 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasMarks().
Referenced by ScMarkData::FillRangeListWithMarks(), ScFormatShell::GetCurrentNumberFormatType(), GetNextMarked(), ScMarkData::GetSelectionCover(), ScMarkData::HasMultiMarks(), IsAllMarked(), ScMarkData::MarkToSimple(), and ScColumn::MergeSelectionPattern().
Definition at line 70 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasOneMark().
Referenced by ScMarkData::MarkToSimple().
Definition at line 113 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMultiSelIter::GetRangeData(), HasMarks(), ScMarkArray::HasMarks(), ScMarkArray::IsAllMarked(), ScFlatBoolRowSegments::RangeData::mbValue, and ScFlatBoolRowSegments::RangeData::mnRow2.
Referenced by ScMarkData::IsAllMarked(), and ScMarkData::IsColumnMarked().
|
inline |
Definition at line 62 of file markmulti.hxx.
References ScMarkArray::HasMarks().
Referenced by ScMarkData::SetMultiMarkArea().
bool ScMultiSel::IsRowMarked | ( | SCROW | nRow | ) | const |
Definition at line 319 of file markmulti.cxx.
References aRowSel, and ScMarkArray::GetMark().
Referenced by ScMarkData::IsRowMarked().
Definition at line 324 of file markmulti.cxx.
References aRowSel, ScMarkArray::GetMark(), and ScMarkArray::GetMarkEnd().
Referenced by ScMarkData::IsAllMarked().
Definition at line 193 of file markmulti.cxx.
References aMultiSelContainer, ScSheetLimits::mnMaxCol, and mrSheetLimits.
Referenced by SetMarkArea().
ScMultiSel & ScMultiSel::operator= | ( | const ScMultiSel & | rMultiSel | ) |
Definition at line 33 of file markmulti.cxx.
References aMultiSelContainer, and aRowSel.
ScMultiSel & ScMultiSel::operator= | ( | ScMultiSel && | rMultiSel | ) |
Definition at line 40 of file markmulti.cxx.
References aMultiSelContainer, and aRowSel.
void ScMultiSel::Set | ( | ScRangeList const & | rList | ) |
optimised init-from-range-list.
Specifically this is optimised for cases where we have very large data columns with lots and lots of ranges.
Definition at line 262 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScRange::aStart, Clear(), ScSheetLimits::mnMaxCol, mrSheetLimits, ScAddress::Row(), ScMarkArray::SetMarkArea(), and ScRangeList::size().
Referenced by ScMarkData::ScMarkData().
void ScMultiSel::SetMarkArea | ( | SCCOL | nStartCol, |
SCCOL | nEndCol, | ||
SCROW | nStartRow, | ||
SCROW | nEndRow, | ||
bool | bMark | ||
) |
Definition at line 202 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMarkArray::GetMark(), ScMarkArray::GetMarkEnd(), ScSheetLimits::GetMaxRowCount(), ScMarkArray::GetNextMarked(), ScMarkArray::HasMarks(), MarkAllCols(), ScSheetLimits::mnMaxCol, mrSheetLimits, and ScMarkArray::SetMarkArea().
Referenced by ScMarkData::SetMultiMarkArea().
Definition at line 352 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, Clear(), i, ScSheetLimits::mnMaxCol, and mrSheetLimits.
Referenced by ScMarkData::ShiftCols().
Definition at line 403 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::Shift().
Referenced by ScMarkData::ShiftRows().
|
friend |
Definition at line 38 of file markmulti.hxx.
|
private |
Definition at line 34 of file markmulti.hxx.
Referenced by Clear(), GetMark(), GetMultiSelArray(), GetMultiSelectionCount(), GetNextMarked(), GetStartOfEqualColumns(), HasAnyMarks(), HasEqualRowsMarked(), HasMarks(), HasOneMark(), IsAllMarked(), MarkAllCols(), operator=(), ScMultiSelIter::ScMultiSelIter(), Set(), SetMarkArea(), ShiftCols(), and ShiftRows().
|
private |
Definition at line 35 of file markmulti.hxx.
Referenced by Clear(), GetMark(), GetNextMarked(), GetStartOfEqualColumns(), HasAnyMarks(), HasMarks(), HasOneMark(), IsAllMarked(), IsRowMarked(), IsRowRangeMarked(), operator=(), ScMultiSelIter::ScMultiSelIter(), Set(), SetMarkArea(), ShiftCols(), and ShiftRows().
|
private |
Definition at line 36 of file markmulti.hxx.
Referenced by GetMarkArray(), MarkAllCols(), ScMultiSelIter::ScMultiSelIter(), Set(), SetMarkArea(), and ShiftCols().