38#include <mdds/flat_segment_tree.hpp>
40namespace editeng {
class SvxBorderLine; }
41namespace formula {
struct VectorRefArray; }
45struct BroadcasterState;
46struct FormulaGroupEntry;
47class StartListeningContext;
48class EndListeningContext;
49class CopyFromClipContext;
50class CopyToClipContext;
51class CopyToDocContext;
53struct RefUpdateContext;
54struct RefUpdateInsertTabContext;
55struct RefUpdateDeleteTabContext;
56struct RefUpdateMoveTabContext;
57class EditTextIterator;
59class DocumentStreamAccess;
63class RowHeightContext;
64class CompileFormulaContext;
65struct SetFormulaDirtyContext;
135 return static_cast<const T&
>(
GetAttr(nRow, sal_uInt16(nWhich)));
140 return static_cast<const T&
>(
GetAttr(nRow, sal_uInt16(nWhich), nStartRow, nEndRow));
151 bool*
const pIsChanged =
nullptr);
214template< ScQueryCellIteratorAccess accessType, ScQueryCellIteratorType queryType >
216template< ScQueryCellIteratorAccess accessType >
237 size_t nColOffset,
size_t nDestSize,
ScAddress aDestPosition);
306 void FindUsed(
SCROW nStartRow,
SCROW nEndRow, mdds::flat_segment_tree<SCROW, bool>& rUsed )
const;
362 bool bSkipEmpty,
const ScColumn& rSrcCol );
373 bool bGlobalNamesToLocal =
false )
const;
411 bool bInheritNumFormatIfNeeded =
true);
415 bool bInheritNumFormatIfNeeded =
true);
425 const std::vector<sc::RowSpan>& rRanges );
429 const std::vector<sc::RowSpan>& rRanges );
437 void SetValues(
const SCROW nRow,
const std::vector<double>& rVals );
451 bool bForceSystemLocale =
false )
const
553 const ::editeng::SvxBorderLine* pLine,
bool bColorOnly );
570 bool bInSelection,
const ScMarkData& rMark)
const;
588 bool bInPrintTwips =
false )
const;
642 const sc::CellStoreType::iterator& itr);
658 unsigned nThisThread,
unsigned nThreadsTotal );
711 SCROW nRowOffsetDest = 0)
const;
736 std::vector<SCROW>& rNewSharedRows );
741 void DetachFormulaCells(
const sc::CellStoreType::position_type& aPos,
size_t nLength,
742 std::vector<SCROW>* pNewSharedRows );
786#if DUMP_COLUMN_STORAGE
799 bool bInsertFormula );
801 std::vector<SCROW>& rNewSharedRows,
bool bInsertFormula );
805 const std::vector<SCROW>& rNewSharedRows,
809 const sc::CellStoreType::position_type& aPos,
ScFormulaCell& rCell,
810 const std::vector<SCROW>& rNewSharedRows,
815 std::vector<SCROW>& rNewSharedRows);
824 sc::CellStoreType::const_iterator& itPos,
SCROW nRow,
bool bForward)
const;
890 return pAttrArray->GetFirstVisibleAttr( rFirstRow );
897 return pAttrArray->GetLastVisibleAttr( rLastRow, nLastData, bSkipEmpty );
902 return pAttrArray->HasVisibleAttrIn( nStartRow, nEndRow );
927 return pAttrArray->GetNextUnprotected(nRow, bUp);
932 return pAttrArray->HasAttrib( nRow1, nRow2, nMask );
937 return pAttrArray->HasAttrib( nRow, nMask, nStartRow, nEndRow );
944 return pAttrArray->ExtendMerge( nThisCol, nStartRow, nEndRow, rPaintCol, rPaintRow, bRefresh );
949 pAttrArray->MergePatternArea( nRow1, nRow2, rState, bDeep );
956 pAttrArray->MergeBlockFrame( pLineOuter, pLineInner, rFlags, nStartRow, nEndRow, bLeft, nDistRight );
962 pAttrArray->ApplyBlockFrame(rLineOuter, pLineInner, nStartRow, nEndRow, bLeft, nDistRight);
972 return pAttrArray->GetPattern( nRow )->GetItemSet().Get(nWhich);
977 return pAttrArray->GetPatternRange( nStartRow, nEndRow, nRow )->GetItemSet().Get(nWhich);
997 pAttrArray->ApplyStyleArea(nStartRow, nEndRow, rStyle);
1002 return pAttrArray->GetPattern( nRow )->GetStyleSheet();
1007 pAttrArray->FindStyleSheet( pStyleSheet, rUsedRows, bReset );
1012 return pAttrArray->IsStyleSheetUsed( rStyle );
1017 return pAttrArray->ApplyFlags( nStartRow, nEndRow, nFlags );
1022 return pAttrArray->RemoveFlags( nStartRow, nEndRow, nFlags );
1027 pAttrArray->ClearItems( nStartRow, nEndRow, pWhich );
1032 return pAttrArray->SetPattern( nRow, std::move(pPatAttr),
true );
1037 pAttrArray->SetPattern( nRow, &rPatAttr,
true );
1043 pAttrArray->SetPatternArea( nStartRow, nEndRow, &rPatAttr,
true );
1048 pAttrArray->SetAttrEntries( std::move( vNewData ));
size_t SCSIZE
size_t typedef to be able to find places where code was changed from USHORT to size_t and is used to ...
Walk through all cells in an area.
std::unique_ptr< ScAttrArray > pAttrArray
void ApplyStyleArea(SCROW nStartRow, SCROW nEndRow, const ScStyleSheet &rStyle)
const ScPatternAttr * GetPattern(SCROW nRow) const
const SfxPoolItem & GetAttr(SCROW nRow, sal_uInt16 nWhich) const
SCROW ApplySelectionCache(SfxItemPoolCache *pCache, const ScMarkData &rMark, ScEditDataArray *pDataArray, bool *const pIsChanged, SCCOL nCol)
const T & GetAttr(SCROW nRow, TypedWhichId< T > nWhich) const
ScAttrArray & AttrArray()
void DeleteRow(SCROW nStartRow, SCSIZE nSize)
void SetAttrEntries(std::vector< ScAttrEntry > &&vNewData)
bool HasAttrib(SCROW nRow1, SCROW nRow2, HasAttrFlags nMask) const
const ScAttrArray & AttrArray() const
bool IsAllAttrEqual(const ScColumnData &rCol, SCROW nStartRow, SCROW nEndRow) const
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark, SCCOL nCol)
ScColumnData(const ScColumnData &)=delete
bool TestInsertRow(SCSIZE nSize) const
void InitAttrArray(ScAttrArray *attrArray)
void MergePatternArea(ScMergePatternState &rState, SCROW nRow1, SCROW nRow2, bool bDeep) const
void InsertRow(SCROW nStartRow, SCSIZE nSize)
ScColumnData & operator=(const ScColumnData &)=delete
const T & GetAttr(SCROW nRow, TypedWhichId< T > nWhich, SCROW &nStartRow, SCROW &nEndRow) const
SCROW GetNextUnprotected(SCROW nRow, bool bUp) const
Including current, may return -1.
void ApplyPatternArea(SCROW nStartRow, SCROW nEndRow, const ScPatternAttr &rPatAttr, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
const ScStyleSheet * GetStyle(SCROW nRow) const
const ScPatternAttr * GetMostUsedPattern(SCROW nStartRow, SCROW nEndRow) const
void ChangeSelectionIndent(bool bIncrement, const ScMarkData &rMark, SCCOL nCol)
ScDocument & GetDoc() const
sal_uInt32 GetNumberFormat(const ScInterpreterContext &rContext, SCROW nRow) const
std::unique_ptr< ScAttrIterator > CreateAttrIterator(SCROW nStartRow, SCROW nEndRow) const
void DeleteCellNotes(sc::ColumnBlockPosition &rBlockPos, SCROW nRow1, SCROW nRow2, bool bForgetCaptionOwnership)
void DeleteBroadcasters(sc::ColumnBlockPosition &rBlockPos, SCROW nRow1, SCROW nRow2)
void UpdateNoteCaptions(SCROW nRow1, SCROW nRow2)
void CreateSparklineCell(SCROW nRow, std::shared_ptr< sc::Sparkline > const &pSparkline)
SCROW GetFirstDataPos() const
void CollectFormulaCells(std::vector< ScFormulaCell * > &rCells, SCROW nRow1, SCROW nRow2)
svl::SharedString GetSharedString(SCROW nRow) const
bool ApplyFlags(SCROW nStartRow, SCROW nEndRow, ScMF nFlags)
void CellStorageModified()
Called whenever the state of cell array gets modified i.e.
bool HasStringData(SCROW nRow) const
void CopyCellTextAttrsToDocument(SCROW nRow1, SCROW nRow2, ScColumn &rDestCol) const
void DeleteBeforeCopyFromClip(sc::CopyFromClipContext &rCxt, const ScColumn &rClipCol, sc::ColumnSpanSet &rBroadcastSpans)
~ScColumn() COVERITY_NOEXCEPT_FALSE
bool IsVisibleAttrEqual(const ScColumn &rCol, SCROW nStartRow, SCROW nEndRow) const
void FindStyleSheet(const SfxStyleSheetBase *pStyleSheet, ScFlatBoolRowSegments &rUsedRows, bool bReset)
SCROW GetNotePosition(size_t nIndex) const
void ApplyPattern(SCROW nRow, const ScPatternAttr &rPatAttr)
void ClearItems(SCROW nStartRow, SCROW nEndRow, const sal_uInt16 *pWhich)
void UpdateSelectionFunction(const ScRangeList &rRanges, ScFunctionData &rData, const ScFlatBoolRowSegments &rHiddenRows)
FormulaError GetErrCode(SCROW nRow) const
bool HasCellNote(SCROW nStartRow, SCROW nEndRow) const
void PreprocessDBDataUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
bool IsNotesEmptyBlock(SCROW nStartRow, SCROW nEndRow) const
void SetValue(SCROW nRow, double fVal)
sc::CellTextAttrStoreType maCellTextAttrs
void SetFormula(SCROW nRow, const ScTokenArray &rArray, formula::FormulaGrammar::Grammar eGram)
bool HasValueData(SCROW nRow) const
void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
bool TestInsertCol(SCROW nStartRow, SCROW nEndRow) const
bool HasFormulaCell() const
void EndListeningGroup(sc::EndListeningContext &rCxt, SCROW nRow)
bool TestInsertRow(SCROW nStartRow, SCSIZE nSize) const
void DuplicateNotes(SCROW nStartRow, size_t nDataSize, ScColumn &rDestCol, sc::ColumnBlockPosition &rDestBlockPos, bool bCloneCaption, SCROW nRowOffsetDest=0) const
void SplitFormulaGroupByRelativeRef(const ScRange &rBoundRange)
void SetDirty(SCROW nRow1, SCROW nRow2, BroadcastMode)
void PreprocessRangeNameUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
bool HasVisibleDataAt(SCROW nRow) const
void CheckVectorizationState()
bool mbEmptyBroadcastersPending
OUString GetString(sc::ColumnBlockConstPosition &rBlockPos, SCROW nRow, const ScInterpreterContext *pContext=nullptr) const
void TransferCellValuesTo(SCROW nRow, size_t nLen, sc::CellValues &rDest)
void GetUnprotectedCells(SCROW nStartRow, SCROW nEndRow, ScRangeList &rRangeList) const
void RegroupFormulaCells(std::vector< ScAddress > *pGroupPos=nullptr)
Regroup formula cells for the entire column.
void SetError(SCROW nRow, const FormulaError nError)
SCROW FindNextVisibleRowWithContent(sc::CellStoreType::const_iterator &itPos, SCROW nRow, bool bForward) const
ScFormulaCell * SetFormulaCell(SCROW nRow, ScFormulaCell *pCell, sc::StartListeningType eListenType=sc::SingleCellListening, bool bInheritNumFormatIfNeeded=true)
Takes ownership of pCell.
void CloneFormulaCell(sc::ColumnBlockPosition &rBlockPos, const ScFormulaCell &rSrc, const sc::CellTextAttr &rAttr, const std::vector< sc::RowSpan > &rRanges)
void UpdateDrawObjectsForRow(std::vector< SdrObject * > &pObjects, SCCOL nTargetCol, SCROW nTargetRow)
void UpdateInsertTabOnlyCells(sc::RefUpdateInsertTabContext &rCxt)
void DeleteSelection(InsertDeleteFlags nDelFlag, const ScMarkData &rMark, bool bBroadcast)
bool TestCopyScenarioTo(const ScColumn &rDestCol) const
void SetAllFormulasDirty(const sc::SetFormulaDirtyContext &rCxt)
void CollectListeners(std::vector< SvtListener * > &rListeners, SCROW nRow1, SCROW nRow2)
ScPostIt * GetCellNote(SCROW nRow)
void ApplyBlockFrame(const SvxBoxItem &rLineOuter, const SvxBoxInfoItem *pLineInner, SCROW nStartRow, SCROW nEndRow, bool bLeft, SCCOL nDistRight)
void BroadcastCells(const std::vector< SCROW > &rRows, SfxHintId nHint)
void CheckIntegrity() const
bool TestTabRefAbs(SCTAB nTable) const
void DeleteRanges(const std::vector< sc::RowSpan > &rRanges, InsertDeleteFlags nDelFlag)
void RestoreFromCache(SvStream &rStrm)
OUString GetInputString(sc::ColumnBlockConstPosition &rBlockPos, SCROW nRow, bool bForceSystemLocale=false) const
void UpdateDrawObjects(std::vector< std::vector< SdrObject * > > &pObjects, SCROW nRowStart, SCROW nRowEnd)
void CopyToColumn(sc::CopyToDocContext &rCxt, SCROW nRow1, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, ScColumn &rColumn, const ScMarkData *pMarkData=nullptr, bool bAsLink=false, bool bGlobalNamesToLocal=false) const
void CompileColRowNameFormula(sc::CompileFormulaContext &rCxt)
void BroadcastRecalcOnRefMove()
bool ExtendMerge(SCCOL nThisCol, SCROW nStartRow, SCROW nEndRow, SCCOL &rPaintCol, SCROW &rPaintRow, bool bRefresh)
SCROW GetSparklinesMinRow() const
bool SetFormulaCells(SCROW nRow, std::vector< ScFormulaCell * > &rCells)
void InterpretDirtyCells(SCROW nRow1, SCROW nRow2)
void InitBlockPosition(sc::ColumnBlockPosition &rBlockPos)
void StartListeners(sc::StartListeningContext &rCxt, bool bAll)
SCSIZE VisibleCount(SCROW nStartRow, SCROW nEndRow) const
void UpdateDeleteTab(sc::RefUpdateDeleteTabContext &rCxt)
std::vector< sc::FormulaGroupEntry > GetFormulaGroupEntries()
Get all non-grouped formula cells and formula cell groups in the whole column.
void ConvertFormulaToValue(sc::EndListeningContext &rCxt, SCROW nRow1, SCROW nRow2, sc::TableValues *pUndo)
void DumpColumnStorage() const
void MergeBlockFrame(SvxBoxItem *pLineOuter, SvxBoxInfoItem *pLineInner, ScLineFlags &rFlags, SCROW nStartRow, SCROW nEndRow, bool bLeft, SCCOL nDistRight) const
void UpdateInsertTabAbs(SCTAB nNewPos)
SCROW ApplySelectionCache(SfxItemPoolCache *pCache, const ScMarkData &rMark, ScEditDataArray *pDataArray, bool *const pIsChanged)
void SetPatternArea(SCROW nStartRow, SCROW nEndRow, const ScPatternAttr &)
sal_Int32 GetMaxNumberStringLen(sal_uInt16 &nPrecision, SCROW nRowStart, SCROW nRowEnd) const
void DetachFormulaCell(const sc::CellStoreType::position_type &aPos, ScFormulaCell &rCell, std::vector< SCROW > &rNewSharedRows)
Detach a formula cell that's about to be deleted, or removed from document storage (if that ever happ...
void Init(SCCOL nNewCol, SCTAB nNewTab, ScDocument &rDoc, bool bEmptyAttrArray)
void CopyCellSparklinesToDocument(SCROW nRow1, SCROW nRow2, ScColumn &rDestCol, SCROW nRowOffsetDest=0) const
SvtScriptType GetRangeScriptType(sc::CellTextAttrStoreType::iterator &itPos, SCROW nRow1, SCROW nRow2, const sc::CellStoreType::iterator &itr)
Get combined script types of the specified range.
OUString GetFormula(SCROW nRow) const
void RemoveProtected(SCROW nStartRow, SCROW nEndRow)
BroadcastMode
Broadcast mode for SetDirty(SCROW,SCROW,BroadcastMode).
@ BROADCAST_DATA_POSITIONS
broadcast existing cells with position => does AreaBroadcast
@ BROADCAST_BROADCASTERS
broadcast only existing cell broadcasters => no AreaBroadcast of range!
@ BROADCAST_NONE
no broadcasting
bool ParseString(ScCellValue &rCell, SCROW nRow, SCTAB nTab, const OUString &rString, formula::FormulaGrammar::AddressConvention eConv, const ScSetStringParam *pParam)
void DuplicateSparklines(SCROW nStartRow, size_t nDataSize, ScColumn &rDestCol, sc::ColumnBlockPosition &rDestBlockPos, SCROW nRowOffsetDest=0) const
std::unique_ptr< DeleteCellsResult > DeleteCells(sc::ColumnBlockPosition &rBlockPos, SCROW nRow1, SCROW nRow2, InsertDeleteFlags nDelFlag)
void GetFilterEntries(sc::ColumnBlockConstPosition &rBlockPos, SCROW nStartRow, SCROW nEndRow, ScFilterEntries &rFilterEntries, bool bFiltering, bool bFilteredRow)
void RemoveEditAttribs(sc::ColumnBlockPosition &rBlockPos, SCROW nStartRow, SCROW nEndRow)
bool HasStringCells(SCROW nStartRow, SCROW nEndRow) const
Return true if there is a string or editcell in the range.
sc::CellNoteStoreType maCellNotes
const ScStyleSheet * GetSelectionStyle(const ScMarkData &rMark, bool &rFound) const
std::optional< sc::ColumnIterator > GetColumnIterator(SCROW nRow1, SCROW nRow2) const
void EndListeningFormulaCells(sc::EndListeningContext &rCxt, SCROW nRow1, SCROW nRow2, SCROW *pStartRow, SCROW *pEndRow)
void AttachNewFormulaCell(const sc::CellStoreType::iterator &itPos, SCROW nRow, ScFormulaCell &rCell, const std::vector< SCROW > &rNewSharedRows, bool bJoin=true, sc::StartListeningType eListenType=sc::SingleCellListening)
SvtScriptType GetScriptType(SCROW nRow) const
void EndListening(SvtListener &rLst, SCROW nRow)
const ScFormulaCell * GetFormulaCell(SCROW nRow) const
void FindDataAreaPos(SCROW &rRow, bool bDown) const
sc::MultiDataCellState::StateType HasDataCellsInRange(SCROW nRow1, SCROW nRow2, SCROW *pRow1) const
bool UpdateReferenceOnCopy(sc::RefUpdateContext &rCxt, ScDocument *pUndoDoc=nullptr)
bool CompileErrorCells(sc::CompileFormulaContext &rCxt, FormulaError nErrCode)
void SwapNonEmpty(sc::TableValues &rValues, sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt)
void DeleteRow(SCROW nStartRow, SCSIZE nSize, std::vector< ScAddress > *pGroupPos)
void RemoveCondFormat(SCROW nStartRow, SCROW nEndRow, sal_uInt32 nIndex)
void CompileXML(sc::CompileFormulaContext &rCxt, ScProgress &rProgress)
void ResetFormulaCellPositions(SCROW nRow1, SCROW nRow2, bool bUpdateRefs)
Reset column position of formula cells within specified row range.
const EditTextObject * GetEditText(SCROW nRow) const
void MixMarked(sc::MixDocContext &rCxt, const ScMarkData &rMark, ScPasteFunc nFunction, bool bSkipEmpty, const ScColumn &rSrcCol)
bool TrimEmptyBlocks(SCROW &rRowStart, SCROW &rRowEnd) const
void StoreToCache(SvStream &rStrm) const
bool GetLastVisibleAttr(SCROW &rLastRow, bool bSkipEmpty) const
sc::MatrixEdge GetBlockMatrixEdges(SCROW nRow1, SCROW nRow2, sc::MatrixEdge nMask, bool bNoMatrixAtAll) const
void CellNotesDeleting(SCROW nRow1, SCROW nRow2, bool bForgetCaptionOwnership)
bool InterpretCellsIfNeeded(SCROW nRow1, SCROW nRow2)
void CalcAfterLoad(sc::CompileFormulaContext &rCxt, bool bStartListening)
void SetNumberFormat(SCROW nRow, sal_uInt32 nNumberFormat)
void CopyFromClip(sc::CopyFromClipContext &rCxt, SCROW nRow1, SCROW nRow2, tools::Long nDy, ScColumn &rColumn)
void AssertNoInterpretNeeded(SCROW nRow1, SCROW nRow2)
void SetTableOpDirty(const ScRange &)
void CopyScenarioTo(ScColumn &rDestCol) const
sal_Int32 GetMaxStringLen(SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet) const
void ApplyAttr(SCROW nRow, const SfxPoolItem &rAttr)
void GetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, sal_uInt16 nMinHeight, SCROW nMinStart)
void ResetChanged(SCROW nStartRow, SCROW nEndRow)
bool HasEditCells(SCROW nStartRow, SCROW nEndRow, SCROW &rFirst)
sal_uInt64 GetWeightedCount() const
void MoveTo(SCROW nStartRow, SCROW nEndRow, ScColumn &rCol)
sc::SparklineStoreType & GetSparklineStore()
void SetFormulaResults(SCROW nRow, const double *pResults, size_t nLen)
void GetDataExtrasAt(SCROW nRow, ScDataAreaExtras &rDataAreaExtras) const
void CompileDBFormula(sc::CompileFormulaContext &rCxt)
std::unique_ptr< ScPostIt > ReleaseNote(SCROW nRow)
void EndListeningIntersectedGroup(sc::EndListeningContext &rCxt, SCROW nRow, std::vector< ScAddress > *pGroupPos)
bool HasSelectionMatrixFragment(const ScMarkData &rMark, const ScRangeList &rRangeList) const
tools::Long GetNeededSize(SCROW nRow, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY, bool bWidth, const ScNeededSizeOptions &rOptions, const ScPatternAttr **pPatternChange, bool bInPrintTwips=false) const
void ApplySelectionLineStyle(const ScMarkData &rMark, const ::editeng::SvxBorderLine *pLine, bool bColorOnly)
void MixData(sc::MixDocContext &rCxt, SCROW nRow1, SCROW nRow2, ScPasteFunc nFunction, bool bSkipEmpty, const ScColumn &rSrcCol)
bool HasCellNotes() const
void CompileAll(sc::CompileFormulaContext &rCxt)
void EndListeningIntersectedGroups(sc::EndListeningContext &rCxt, SCROW nRow1, SCROW nRow2, std::vector< ScAddress > *pGroupPos)
void Swap(ScColumn &rOther, SCROW nRow1, SCROW nRow2, bool bPattern)
const sc::CellTextAttrStoreType & GetCellAttrStore() const
SCROW SearchStyle(SCROW nRow, const ScStyleSheet *pSearchStyle, bool bUp, bool bInSelection, const ScMarkData &rMark) const
May return -1 if not found.
void BroadcastNewCell(SCROW nRow)
void UpdateScriptTypes(SCROW nRow1, SCROW nRow2)
void SetNeedsListeningGroup(SCROW nRow)
SCROW GetCellNotesMaxRow() const
OUString GetInputString(SCROW nRow, bool bForceSystemLocale=false) const
void SetTabNo(SCTAB nNewTab)
bool HasSparklines() const
void CompileHybridFormula(sc::StartListeningContext &rStartListenCxt, sc::CompileFormulaContext &rCompileCxt)
bool GetDataEntries(SCROW nRow, std::set< ScTypedStrData > &rStrings) const
void CopyOneCellFromClip(sc::CopyFromClipContext &rCxt, SCROW nRow1, SCROW nRow2, size_t nColOffset)
void MergeSelectionPattern(ScMergePatternState &rState, const ScMarkData &rMark, bool bDeep) const
SCROW FindNextVisibleRow(SCROW nRow, bool bForward) const
void CalculateInThread(ScInterpreterContext &rContext, SCROW nRow, size_t nLen, size_t nOffset, unsigned nThisThread, unsigned nThreadsTotal)
void UndoToColumn(sc::CopyToDocContext &rCxt, SCROW nRow1, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, ScColumn &rColumn) const
const sc::CellStoreType & GetCellStore() const
const ScPatternAttr * SetPattern(SCROW nRow, std::unique_ptr< ScPatternAttr >)
void ApplyStyle(SCROW nRow, const ScStyleSheet *rStyle)
bool GetNextDataPos(SCROW &rRow) const
void UpdateCompile(bool bForceIfNameInUse=false)
bool HasAttribSelection(const ScMarkData &rMark, HasAttrFlags nMask) const
sc::CellStoreType maCells
ScRefCellValue GetCellValue(SCROW nRow) const
void DetachFormulaCells(const sc::CellStoreType::position_type &aPos, size_t nLength, std::vector< SCROW > *pNewSharedRows)
formula::VectorRefArray FetchVectorRefArray(SCROW nRow1, SCROW nRow2)
void CopyUpdated(const ScColumn *pPosCol, ScColumn &rDestCol) const
void SetValues(const SCROW nRow, const std::vector< double > &rVals)
bool UpdateScriptType(sc::CellTextAttr &rAttr, SCROW nRow, sc::CellStoreType::iterator &itr)
void MarkScenarioIn(ScMarkData &rDestMark) const
const sc::CellNoteStoreType & GetCellNoteStore() const
void AddCondFormat(SCROW nStartRow, SCROW nEndRow, sal_uInt32 nIndex)
bool GetFirstVisibleAttr(SCROW &rFirstRow) const
void CollectBroadcasterState(sc::BroadcasterState &rState) const
bool DeleteSparkline(SCROW nRow)
void InsertRow(SCROW nStartRow, SCSIZE nSize)
void CopyStaticToDocument(SCROW nRow1, SCROW nRow2, const SvNumberFormatterMergeMap &rMap, ScColumn &rDestCol)
void CopyScenarioFrom(const ScColumn &rSrcCol)
SCSIZE GetCellCount() const
sal_uInt16 GetOptimalColWidth(OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY, bool bFormula, sal_uInt16 nOldWidth, const ScMarkData *pMarkData, const ScColWidthParam *pParam) const
void CopyToClip(sc::CopyToClipContext &rCxt, SCROW nRow1, SCROW nRow2, ScColumn &rColumn) const
void CopyCellNotesToDocument(SCROW nRow1, SCROW nRow2, ScColumn &rDestCol, bool bCloneCaption=true, SCROW nRowOffsetDest=0) const
void FillMatrix(ScMatrix &rMat, size_t nMatCol, SCROW nRow1, SCROW nRow2, svl::SharedStringPool *pPool) const
void StartListeningUnshared(const std::vector< SCROW > &rNewSharedRows)
Re-establish listeners on unshared formula groups.
bool IsDrawObjectsEmptyBlock(SCROW nStartRow, SCROW nEndRow) const
void SetCellNote(SCROW nRow, std::unique_ptr< ScPostIt > pNote)
const sc::SparklineStoreType & GetSparklineStore() const
bool GetNextSpellingCell(SCROW &nRow, bool bInSel, const ScMarkData &rData) const
void UpdateTranspose(const ScRange &rSource, const ScAddress &rDest, ScDocument *pUndoDoc)
void ForgetNoteCaptions(SCROW nRow1, SCROW nRow2, bool bPreserveData)
sal_uInt64 GetCodeCount() const
bool IsMerged(SCROW nRow) const
void CreateAllNoteCaptions()
void StartListeningFormulaCells(sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt, SCROW nRow1, SCROW nRow2)
void PrepareBroadcastersForDestruction()
void BroadcastRows(SCROW nStartRow, SCROW nEndRow, SfxHintId nHint)
void CopyCellValuesFrom(SCROW nRow, const sc::CellValues &rSrc)
void Broadcast(SCROW nRow)
sc::CellTextAttrStoreType & GetCellAttrStore()
sc::CellNoteStoreType & GetCellNoteStore()
SCROW GetCellNotesMinRow() const
double * GetValueCell(SCROW nRow)
void DeleteEmptyBroadcasters()
bool IsStyleSheetUsed(const ScStyleSheet &rStyle) const
void UpdateGrow(const ScRange &rArea, SCCOL nGrowX, SCROW nGrowY)
const ScStyleSheet * GetAreaStyle(bool &rFound, SCROW nRow1, SCROW nRow2) const
void UpdateInsertTab(sc::RefUpdateInsertTabContext &rCxt)
void FindUsed(SCROW nStartRow, SCROW nEndRow, mdds::flat_segment_tree< SCROW, bool > &rUsed) const
void ChangeSelectionIndent(bool bIncrement, const ScMarkData &rMark)
void DeleteSparklineCells(sc::ColumnBlockPosition &rBlockPos, SCROW nRow1, SCROW nRow2)
void SwapCol(ScColumn &rCol)
void SetEditText(SCROW nRow, std::unique_ptr< EditTextObject > pEditText)
void ApplyPatternIfNumberformatIncompatible(const ScRange &rRange, const ScPatternAttr &rPattern, SvNumFormatType nNewType)
bool GetPrevDataPos(SCROW &rRow) const
void DeleteContent(SCROW nRow, bool bBroadcast=true)
sc::CellStoreType & GetCellStore()
bool SetString(SCROW nRow, SCTAB nTab, const OUString &rString, formula::FormulaGrammar::AddressConvention eConv, const ScSetStringParam *pParam=nullptr)
Returns true if the cell format was set as well.
bool HasVisibleAttrIn(SCROW nStartRow, SCROW nEndRow) const
void GetNotesInRange(SCROW nStartRow, SCROW nEndRow, std::vector< sc::NoteEntry > &rNotes) const
bool UpdateReference(sc::RefUpdateContext &rCxt, ScDocument *pUndoDoc)
Update reference addresses in formula cell in response to mass cell movement.
bool RemoveFlags(SCROW nStartRow, SCROW nEndRow, ScMF nFlags)
void DeleteArea(SCROW nStartRow, SCROW nEndRow, InsertDeleteFlags nDelFlag, bool bBroadcast=true, sc::ColumnSpanSet *pBroadcastSpans=nullptr)
sc::SparklineCell * GetSparklineCell(SCROW nRow)
void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
bool IsFormulaDirty(SCROW nRow) const
void SetDirtyFromClip(SCROW nRow1, SCROW nRow2, sc::ColumnSpanSet &rBroadcastSpans)
void CopyCellToDocument(SCROW nSrcRow, SCROW nDestRow, ScColumn &rDestCol)
double GetValue(SCROW nRow) const
size_t GetNoteCount() const
bool HandleRefArrayForParallelism(SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef &mxGroup)
formula::FormulaTokenRef ResolveStaticReference(SCROW nRow)
static void JoinNewFormulaCell(const sc::CellStoreType::position_type &aPos, ScFormulaCell &rCell)
void duplicateSparkline(sc::CopyFromClipContext &rContext, sc::ColumnBlockPosition *pBlockPos, size_t nColOffset, size_t nDestSize, ScAddress aDestPosition)
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
bool BroadcastBroadcasters(SCROW nRow1, SCROW nRow2, SfxHintId nHint)
Broadcast single broadcasters in range, without explicitly setting anything dirty,...
void SetDirtyIfPostponed()
sc::BroadcasterStoreType maBroadcasters
OUString GetString(SCROW nRow, const ScInterpreterContext *pContext=nullptr) const
void UpdateMoveTab(sc::RefUpdateMoveTabContext &rCxt, SCTAB nTabNo)
const sc::CellTextAttr * GetCellTextAttr(SCROW nRow) const
void SetRawString(SCROW nRow, const OUString &rStr)
bool ReservePatternCount(SCSIZE nReserve)
void RemoveEditTextCharAttribs(SCROW nRow, const ScPatternAttr &rAttr)
SCROW GetLastDataPos() const
CellType GetCellType(SCROW nRow) const
void FindRangeNamesInUse(SCROW nRow1, SCROW nRow2, sc::UpdatedRangeNames &rIndexes) const
const ScFormulaCell * FetchFormulaCell(SCROW nRow) const
ScColumn(ScSheetLimits const &)
void SetScriptType(SCROW nRow, SvtScriptType nType)
SCROW GetSparklinesMaxRow() const
ScDocument & GetDoc() const
void HandleStuffAfterParallelCalculation(SCROW nRow, size_t nLen, ScInterpreter *pInterpreter)
ScFormulaCell *const * GetFormulaCellBlockAddress(SCROW nRow, size_t &rBlockSize) const
SvtBroadcaster * GetBroadcaster(SCROW nRow)
sc::SparklineStoreType maSparklines
void AttachFormulaCells(sc::StartListeningContext &rCxt, SCROW nRow1, SCROW nRow2)
bool HasDataAt(SCROW nRow, ScDataAreaExtras *pDataAreaExtras=nullptr) const
bool EnsureFormulaCellResults(SCROW nRow1, SCROW nRow2, bool bSkipRunning=false)
sc::CellStoreType::iterator GetPositionToInsert(SCROW nRow, std::vector< SCROW > &rNewSharedRows, bool bInsertFormula)
SCSIZE GetPatternCount() const
void SetTextWidth(SCROW nRow, sal_uInt16 nWidth)
bool SearchStyleRange(SCROW &rRow, SCROW &rEndRow, const ScStyleSheet *pSearchStyle, bool bUp, bool bInSelection, const ScMarkData &rMark) const
void AttachNewFormulaCells(const sc::CellStoreType::position_type &aPos, size_t nLength, std::vector< SCROW > &rNewSharedRows)
bool IsSparklinesEmptyBlock(SCROW nStartRow, SCROW nEndRow) const
void StartListening(SvtListener &rLst, SCROW nRow)
sal_uInt16 GetTextWidth(SCROW nRow) const
SCSIZE GetEmptyLinesInBlock(SCROW nStartRow, SCROW nEndRow, ScDirection eDir) const
Accessor class to ScDocument.
To calculate a single subtotal function.
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Matrix data type that can store values of mixed types.
Additional class containing cell annotation data.
Think of this as a mini-ScColumn like storage that only stores cell values in a column.
Structure that stores segments of boolean flags per column, and perform custom action on those segmen...
Provides methods to allow direct shifting of document content without broadcasting or shifting of bro...
Iterate through all edit text cells in a given sheet.
Keep track of spans in a single column only.
Holder of a sparkline, that is connected to a cell specific.
Stores cell values for multiple tables.
Keep track of all named expressions that have been updated during reference update.
CAUTION! The following defines must be in the same namespace as the respective type.
mdds::mtv::soa::multi_type_vector< CellNodeTraits > CellNoteStoreType
Cell note container.
mdds::mtv::soa::multi_type_vector< SparklineTraits > SparklineStoreType
Sparkline container.
mdds::mtv::soa::multi_type_vector< CellStoreTraits > CellStoreType
Cell container.
mdds::mtv::soa::multi_type_vector< CellTextAttrTraits > CellTextAttrStoreType
Cell text attribute container.
mdds::mtv::soa::multi_type_vector< BroadcasterTraits > BroadcasterStoreType
Broadcaster storage container.
Store arbitrary cell value of any kind.
std::vector< std::pair< SCROW, SCROW > > aFormulaRanges
formula cell range that has stopped listening.
DeleteCellsResult(const ScDocument &rDoc)
sc::SingleColumnSpanSet aDeletedRows
cell ranges that have been deleted.
DeleteCellsResult(const DeleteCellsResult &)=delete
SvNumberFormatter * GetFormatTable() const
const ScPatternAttr * pPattern
This is very similar to ScCellValue, except that it references the original value instead of copying ...
Store parameters used in the ScDocument::SetString() method.
Store position data for column array storage.
Context for reference update during shifting, moving or copying of cell ranges.
::boost::intrusive_ptr< ScFormulaCellGroup > ScFormulaCellGroupRef
std::unordered_map< sal_uInt32, sal_uInt32 > SvNumberFormatterMergeMap