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 & | rSheetLimits | ) |
Definition at line 30 of file markmulti.cxx.
|
default |
|
default |
References Set.
void ScMultiSel::Clear | ( | ) |
Definition at line 50 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::Reset().
Referenced by ScMarkData::ResetMark(), Set(), and ShiftCols().
Definition at line 108 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::GetMark().
Referenced by ScMarkData::IsCellMarked().
ScMarkArray ScMultiSel::GetMarkArray | ( | SCCOL | nCol | ) | const |
Definition at line 334 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 412 of file markmulti.cxx.
References aMultiSelContainer.
Referenced by ScMarkData::GetMarkedColSpans().
SCCOL ScMultiSel::GetMultiSelectionCount | ( | ) | const |
Definition at line 56 of file markmulti.cxx.
References aMultiSelContainer, i, and nCount.
Definition at line 176 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMarkArray::GetNextMarked(), and PutInOrder().
Referenced by ScMarkData::GetNextMarked().
|
inline |
Definition at line 72 of file markmulti.hxx.
Referenced by ScMarkData::GetMarkedColSpans().
Definition at line 157 of file markmulti.cxx.
References aMultiSelContainer, and aRowSel.
Referenced by ScMarkData::GetStartOfEqualColumns().
bool ScMultiSel::HasAnyMarks | ( | ) | const |
Definition at line 344 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasMarks().
Referenced by ScMarkData::HasAnyMultiMarks().
Definition at line 140 of file markmulti.cxx.
References aMultiSelContainer.
Referenced by ScMarkData::FillRangeListWithMarks().
bool ScMultiSel::HasMarks | ( | SCCOL | nCol | ) | const |
Definition at line 65 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasMarks().
Referenced by ScMarkData::FillRangeListWithMarks(), ScFormatShell::GetCurrentNumberFormatType(), ScMarkData::GetSelectionCover(), ScMarkData::HasMultiMarks(), ScMarkData::MarkToSimple(), and ScColumn::MergeSelectionPattern().
Definition at line 72 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasOneMark().
Referenced by ScMarkData::MarkToSimple().
Definition at line 115 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMultiSelIter::GetRangeData(), 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 321 of file markmulti.cxx.
References aRowSel, and ScMarkArray::GetMark().
Referenced by ScMarkData::IsRowMarked().
Definition at line 326 of file markmulti.cxx.
References aRowSel, ScMarkArray::GetMark(), and ScMarkArray::GetMarkEnd().
Referenced by ScMarkData::IsAllMarked().
Definition at line 195 of file markmulti.cxx.
References aMultiSelContainer, ScSheetLimits::mnMaxCol, and mrSheetLimits.
Referenced by SetMarkArea().
ScMultiSel & ScMultiSel::operator= | ( | const ScMultiSel & | rMultiSel | ) |
Definition at line 35 of file markmulti.cxx.
References aMultiSelContainer, and aRowSel.
ScMultiSel & ScMultiSel::operator= | ( | ScMultiSel && | rMultiSel | ) |
Definition at line 42 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 264 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, Clear(), ScSheetLimits::mnMaxCol, mrSheetLimits, 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 204 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMarkArray::GetMark(), ScMarkArray::GetMarkEnd(), ScSheetLimits::GetMaxRowCount(), ScMarkArray::GetNextMarked(), ScMarkArray::HasMarks(), MarkAllCols(), ScSheetLimits::mnMaxCol, mrSheetLimits, SetMarkArea(), and ScMarkArray::SetMarkArea().
Referenced by SetMarkArea(), and ScMarkData::SetMultiMarkArea().
void ScMultiSel::ShiftCols | ( | SCCOL | nStartCol, |
sal_Int32 | nColOffset | ||
) |
Definition at line 354 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, Clear(), i, o3tl::make_unsigned(), ScSheetLimits::mnMaxCol, and mrSheetLimits.
Referenced by ScMarkData::ShiftCols().
void ScMultiSel::ShiftRows | ( | SCROW | nStartRow, |
sal_Int32 | nRowOffset | ||
) |
Definition at line 405 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().