102 class DisableUndoGuard
108 explicit DisableUndoGuard(
ScDocShell *pDocShell)
109 :
m_rDoc(pDocShell->GetDocument())
110 , m_bUndoEnabled(
m_rDoc.IsUndoEnabled())
117 m_rDoc.EnableUndo(m_bUndoEnabled);
189 explicit SpanBroadcaster(
ScDocument& rDoc ) : mrDoc(rDoc), mnCurTab(-1), mnCurCol(-1) {}
193 mnCurTab = pCol->
GetTab();
194 mnCurCol = pCol->
GetCol();
202 ScRange aRange(mnCurCol, nRow1, mnCurTab, mnCurCol, nRow2, mnCurTab);
212 SpanBroadcaster aBroadcaster(rDoc);
214 for (
const auto& rEntry : rSpans)
217 rSet.executeColumnAction(rDoc, aBroadcaster);
236 if ( nTab < nStart || nTab > nEnd )
244 aBlockRange( rRange ),
296 aZoomX =
rData.GetZoomX();
297 aZoomY =
rData.GetZoomY();
346 maBlockRanges(rRanges)
404 pViewShell->
MarkRange(aRange,
false,
true);
410 pRefUndoDoc(
std::move(pRefDoc) ),
411 pRefUndoData(
std::move(pRefData) )
456 aOriginalRange( rOriginal )
490 pNoNameData->
GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
498 pAutoDBRange->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
521 pNoNameData->
GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
547 pWrappedUndo(
std::move(pUndo) ),
virtual ~ScBlockUndo() override
std::unique_ptr< SdrUndoAction > pDrawUndo
ScBlockUndo(ScDocShell *pDocSh, const ScRange &rRange, ScBlockUndoMode eBlockMode)
void GetArea(SCTAB &rTab, SCCOL &rCol1, SCROW &rRow1, SCCOL &rCol2, SCROW &rRow2) const
void SetAutoFilter(bool bSet)
void SetSubTotalParam(const ScSubTotalParam &rSubTotalParam)
SC_DLLPUBLIC void SetSortParam(const ScSortParam &rSortParam)
SC_DLLPUBLIC void SetQueryParam(const ScQueryParam &rQueryParam)
void SetArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
std::unique_ptr< ScDBData > pAutoDBRange
ScDBFuncUndo(ScDocShell *pDocSh, const ScRange &rOriginal)
virtual ~ScDBFuncUndo() override
void SetDocumentModified()
const ScDocument & GetDocument() const
std::unique_ptr< ScDBData > GetOldAutoDBRange()
void SetInUndo(bool bSet)
void PostPaint(SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab, SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab, PaintPartFlags nPart, sal_uInt16 nExtFlags=0)
void DBAreaDeleted(SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2)
SCTAB GetVisibleTab() const
SC_DLLPUBLIC SCCOL MaxCol() const
SC_DLLPUBLIC bool SetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bApi)
SC_DLLPUBLIC SCROW MaxRow() const
void BroadcastCells(const ScRange &rRange, SfxHintId nHint, bool bBroadcastSingleBroadcasters=true)
SC_DLLPUBLIC bool ApplyFlagsTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, ScMF nFlags)
SC_DLLPUBLIC void SetDrawPageSize(SCTAB nTab)
SC_DLLPUBLIC ScDBData * GetAnonymousDBData(SCTAB nTab)
static SC_DLLPUBLIC double nScreenPPTX
Horizontal pixel per twips factor.
static SC_DLLPUBLIC double nScreenPPTY
Vertical pixel per twips factor.
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
std::unique_ptr< SdrUndoAction > pDrawUndo
virtual ~ScMoveUndo() override
ScDocumentUniquePtr pRefUndoDoc
std::unique_ptr< ScRefUndoData > pRefUndoData
ScMoveUndo(ScDocShell *pDocSh, ScDocumentUniquePtr pRefDoc, std::unique_ptr< ScRefUndoData > pRefData)
virtual ~ScMultiBlockUndo() override
ScMultiBlockUndo(ScDocShell *pDocSh, const ScRangeList &rRanges)
ScRangeList maBlockRanges
std::unique_ptr< SdrUndoAction > mpDrawUndo
virtual bool Merge(SfxUndoAction *pNextAction) override
ScSimpleUndo(const ScSimpleUndo &)=delete
void BroadcastChanges(const ScRange &rRange)
std::map< SCTAB, std::unique_ptr< sc::ColumnSpanSet > > DataSpansType
std::unique_ptr< SfxUndoAction > pDetectiveUndo
ViewShellId mnViewShellId
static void ShowTable(SCTAB nTab)
bool IsPaintLocked() const
bool SetViewMarkData(const ScMarkData &rMarkData)
ViewShellId GetViewShellId() const override
See SfxUndoAction::GetViewShellId().
void UpdateInputHandler(bool bForce=false, bool bStopEditing=true)
static ScTabViewShell * GetActiveViewShell()
void UpdateAutoFillMark(bool bFromPaste=false)
void MarkRange(const ScRange &rRange, bool bSetCursor=true, bool bContinue=false)
SC_DLLPUBLIC void MoveCursorAbs(SCCOL nCurX, SCROW nCurY, ScFollowMode eMode, bool bShift, bool bControl, bool bKeepOld=false, bool bKeepSel=false)
ScViewData & GetViewData()
void SetMarkData(const ScMarkData &rNew)
SC_DLLPUBLIC void SetTabNo(SCTAB nTab, bool bNew=false, bool bExtendSelection=false, bool bSameTabButMoved=false)
std::unique_ptr< SfxUndoAction > ReleaseDrawUndo()
ViewShellId mnViewShellId
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual OUString GetRepeatComment(SfxRepeatTarget &) const override
std::unique_ptr< SfxUndoAction > pWrappedUndo
virtual OUString GetComment() const override
virtual void Redo() override
ViewShellId GetViewShellId() const override
See SfxUndoAction::GetViewShellId().
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual bool Merge(SfxUndoAction *pNextAction) override
virtual void Undo() override
ScUndoWrapper(std::unique_ptr< SfxUndoAction > pUndo)
virtual ~ScUndoWrapper() override
virtual void execute(SCROW nRow1, SCROW nRow2, bool bVal)=0
virtual void startColumn(ScColumn *pCol)=0
Structure that stores segments of boolean flags per column, and perform custom action on those segmen...
std::unique_ptr< ScDocument, o3tl::default_delete< ScDocument > > ScDocumentUniquePtr
const ContentProperties & rData
std::unique_ptr< SdrUndoAction > GetSdrUndoAction(ScDocument *pDoc)
void DoSdrUndoAction(SdrUndoAction *pUndoAction, ScDocument *pDoc)
void RedoSdrUndoAction(SdrUndoAction *pUndoAction)
void EnableDrawAdjust(ScDocument *pDoc, bool bEnable)