25 #include <osl/diagnose.h>
29 #include <document.hxx>
35 #include <stlpool.hxx>
36 #include <stlsheet.hxx>
37 #include <globstr.hrc>
42 #include <docfunc.hxx>
66 SCTAB nNewCount, std::unique_ptr<
SCTAB[]> pNewTabs, std::unique_ptr<
SCTAB[]> pNewScenarios,
68 bool bNewPartOfPaste ) :
72 pTabs(
std::move(pNewTabs) ),
73 pScenarios(
std::move(pNewScenarios) ),
75 bPartOfPaste( bNewPartOfPaste )
109 if (
auto pWrapper = dynamic_cast<ScUndoWrapper*>( pNextAction) )
112 if ( dynamic_cast<const ScUndoPaste*>( pWrappedAction) )
118 pWrapper->ForgetWrappedUndo();
288 bColsAffected, bRowsAffected,
325 if (dynamic_cast<const ScTabViewTarget*>( &rTarget) !=
nullptr)
346 SCTAB nNewCount, std::unique_ptr<
SCTAB[]> pNewTabs, std::unique_ptr<
SCTAB[]> pNewScenarios,
351 pTabs(
std::move(pNewTabs) ),
352 pScenarios(
std::move(pNewScenarios) ),
377 return ScResId( STR_UNDO_DELETECELLS );
451 for( i=0; i<
nCount && bUndo; i++ )
481 aMarkData, aPattern );
559 bColsAffected, bRowsAffected,
628 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget) )
629 pViewTarget->GetViewShell()->DeleteCells(
eCmd );
640 bool bNewRows,
bool bNeedsRefresh,
SCTAB nNewTab,
641 std::vector<sc::ColRowSpan>&& rSpans,
645 mbRefresh(bNeedsRefresh),
647 maSpans(
std::move(rSpans))
658 return ScResId( STR_UNDO_DELETECELLS );
685 rDoc.
ExtendMerge( nStartCol, nStartRow, nEndCol, nEndRow,
nTab,
true );
710 std::vector<sc::ColRowSpan>::const_reverse_iterator ri =
maSpans.rbegin(), riEnd =
maSpans.rend();
711 for (; ri != riEnd; ++ri)
723 aRange.
aEnd.
SetCol( static_cast<SCCOL>(nEnd) );
742 for (
const auto& rSpan :
maSpans)
752 for (
const auto& rSpan : maSpans)
759 pRefUndoDoc->CopyToDocument(static_cast<SCCOL>(nStart),0,nTab,
784 std::vector<sc::ColRowSpan>::const_reverse_iterator ri =
maSpans.rbegin(), riEnd =
maSpans.rend();
785 for (; ri != riEnd; ++ri)
806 if (
auto pTabViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
819 , pUndoDoc(
std::move(pNewUndoDoc))
820 , aExtendedRange(aRange)
831 return ScResId( STR_UNDO_CUT );
847 sal_uInt16 nExtFlags = 0;
859 pUndoDoc->CopyToDocument(aCopyRange, nUndoFlags,
false, rDoc);
905 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
906 pViewTarget->GetViewShell()->CutToClip();
918 std::unique_ptr<ScRefUndoData> pRefData,
922 pUndoDoc(
std::move(pNewUndoDoc) ),
923 pRedoDoc(
std::move(pNewRedoDoc) ),
925 pRefUndoData(
std::move(pRefData) ),
926 bRedoFilled( bRedoIsFilled )
947 return ScResId( STR_UNDO_PASTE );
972 if ( bCreateRedoData )
988 bool bPaintAll =
false;
997 bool bColInfo =
true;
998 bool bRowInfo =
true;
1004 if (!bColInfo && !bRowInfo)
1023 sal_uInt16 nExtFlags = 0;
1043 pRedoDoc->UndoToDocument(aRange, nUndoFlags,
false, rDoc);
1046 if (rTab >= nTabCount)
1049 if (rTab == nFirstSelected)
1054 pRedoDoc->CopyToDocument(aRange, nUndoFlags,
false, rDoc);
1061 pWorkRefData->
DoUndo( &rDoc,
true );
1077 if (rTab >= nTabCount)
1081 pUndoDoc->UndoToDocument(aRange, nUndoFlags,
false, rDoc);
1099 bool bColsAffected =
false;
1100 bool bRowsAffected =
false;
1102 for (
size_t i = 0, n = aDrawRanges.
size(); i < n; ++i)
1104 ScRange& rDrawRange = aDrawRanges[i];
1124 bColsAffected =
true;
1130 bRowsAffected =
true;
1153 if (bColsAffected || bRowsAffected)
1156 bColsAffected, bRowsAffected,
1157 true ,
true ,
true ,
1158 true , aDrawRanges[0].aStart.Tab());
1208 ScMoveUndo( pNewDocShell,
std::move(pUndoDocument), nullptr ),
1209 mnPaintExtFlags( 0 ),
1210 aSrcRange( rRange ),
1212 bKeepScenarioFlags( bScenario )
1219 bool bIncludeFiltered =
bCut;
1220 if ( !bIncludeFiltered )
1226 if ( nPastedCount == 0 )
1228 aDestEnd.
SetRow( aNewDestPos.
Row() + nPastedCount - 1 );
1342 pRefUndoDoc->CopyToDocument(aRange, nUndoFlags,
false, rDoc);
1383 for (
SCTAB nTab = 0; nTab < nTabCount; ++nTab)
1455 sal_uInt16 nExtFlags = 0;
1465 bool bIncludeFiltered =
bCut;
1475 if ( !bIncludeFiltered && pClipDoc->HasClipFilteredRows() )
1483 nEndCol, nEndRow, nTab, true );
1485 nEndCol, nEndRow, nTab ), 0 );
1514 , xUndoDoc(
std::move(pNewUndoDoc))
1515 , xRedoDoc(
std::move(pNewRedoDoc))
1521 return ScResId( STR_UNDO_LISTNAMES );
1553 if (
auto pTabViewTarget = dynamic_cast<ScTabViewTarget*>(&rTarget))
1554 pTabViewTarget->GetViewShell()->InsertNameList();
1565 mpUndoDoc(
std::move(pUndoDoc)),
1566 mpRedoDoc(
std::move(pRedoDoc)),
1577 return ScResId( STR_UNDO_CONDFORMAT );
1615 mpUndoDoc(
std::move(pUndoDoc)),
1616 mpRedoDoc(
std::move(pRedoDoc)),
1627 return ScResId( STR_UNDO_CONDFORMAT_LIST );
1676 const OUString& rNewName ) :
1678 pUndoDoc(
std::move(pNewUndoDoc) ),
1696 return ScResId( STR_UNDO_USESCENARIO );
1715 bool bFrame =
false;
1717 SCTAB nEndTab = nTab;
1720 for (
SCTAB i = nTab+1;
i<=nEndTab;
i++)
1726 pUndoDoc->GetScenarioData(
i, aComment, aColor, nScenFlags );
1728 bool bActive =
pUndoDoc->IsActiveScenario(
i );
1774 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1776 OUString aTemp =
aName;
1777 pViewTarget->GetViewShell()->UseScenario(aTemp);
1783 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1794 const OUString& rName,
1798 pUndoDoc(
std::move(pNewUndoDoc) ),
1799 aStyleName( rName ),
1811 return ScResId( STR_UNDO_APPLYCELLSTYLE );
1824 sal_uInt16 nExtFlags = 0;
1830 ScRange aCopyRange = aWorkRange;
1842 OSL_FAIL(
"StyleSheet not found");
1873 if (dynamic_cast<const ScTabViewTarget*>( &rTarget) ==
nullptr)
1882 OSL_FAIL(
"StyleSheet not found");
1898 pUndoDoc(
std::move(pNewUndoDoc) ),
1910 return ScResId( STR_UNDO_ENTERMATRIX );
1966 if (
auto pTabViewTarget = dynamic_cast<ScTabViewTarget*>(&rTarget))
1970 pTabViewTarget->GetViewShell()->EnterMatrix(aTemp, rDoc.
GetGrammar());
1989 pUndoDoc(
std::move(pNewUndoDoc) ),
1990 bIsIncrement( bIncrement )
2032 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
2033 pViewTarget->GetViewShell()->ChangeIndent(
bIsIncrement );
2045 pUndoDoc(
std::move(pNewUndoDoc) ),
2046 nTransliterationType( nType )
2056 return ScResId( STR_UNDO_TRANSLITERATE );
2087 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
2100 pUndoDoc(
std::move(pNewUndoDoc) )
2102 OSL_ENSURE( pW,
"ScUndoClearItems: Which-Pointer is Null" );
2105 while ( pW[nCount] )
2107 pWhich.reset(
new sal_uInt16[nCount+1] );
2108 for (sal_uInt16
i=0;
i<=nCount;
i++)
2118 return ScResId( STR_UNDO_DELETECONTENTS );
2145 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
2162 pUndoDoc(
std::move(pNewUndoDoc) )
2172 return ScResId( STR_UNDO_REMOVEBREAKS );
2208 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
2223 pUndoDoc(
std::move(pNewUndoDoc) )
2231 pUndoDoc(
std::move(pNewUndoDoc) )
2241 return ScResId( STR_UNDO_REMERGE );
2266 for (
const auto& rTab : rOption.maTabs)
2268 OSL_ENSURE(
pUndoDoc,
"NULL pUndoDoc!");
2272 ScRange aRange = rOption.getSingleRange(rTab);
2276 bool bDidPaint =
false;
2280 bDidPaint = pViewShell->
AdjustRowHeight(rOption.mnStartRow, rOption.mnEndRow,
true);
2302 for (
const SCTAB nTab : rOption.maTabs)
2305 ScRange aRange = rOption.getSingleRange(nTab);
2311 rOption.mnEndCol, rOption.mnEndRow, nTab,
2315 rOption.mnEndCol, rOption.mnEndRow, nTab,
2322 bool bDidPaint =
false;
2326 bDidPaint = pViewShell->
AdjustRowHeight(rOption.mnStartRow, rOption.mnEndRow,
true);
2338 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
2339 pViewTarget->GetViewShell()->RemoveMerge();
2358 if ( !rRanges.
empty() )
2360 aTotal = rRanges[ 0 ];
2363 ScRange const & rRange = rRanges[
i ];
2379 , xUndoDoc(
std::move(pNewUndoDoc))
2388 return ScResId( STR_UNDO_SELATTRLINES );
2410 for (
size_t i = 0;
i < nCount; ++
i )
2412 ScRange const & rRange = (*xRanges)[
i];
2417 aMark.SelectTable( nTab,
true );
2421 for (
size_t i = 0;
i < nCount; ++
i)
ScMarkData & GetMarkData()
std::unique_ptr< SdrUndoAction > pDrawUndo
ScUndoIndent(ScDocShell *pNewDocShell, const ScMarkData &rMark, ScDocumentUniquePtr pNewUndoDoc, bool bIncrement)
virtual void Undo() override
ScDocumentUniquePtr pUndoDoc
virtual void Repeat(SfxRepeatTarget &rTarget) override
void DeleteCol(SCROW nStartRow, SCTAB nStartTab, SCROW nEndRow, SCTAB nEndTab, SCCOL nStartCol, SCSIZE nSize, ScDocument *pRefUndoDoc=nullptr, bool *pUndoOutline=nullptr, const ScMarkData *pTabMark=nullptr)
void UpdatePageBreaks(SCTAB nTab, const ScRange *pUserArea=nullptr)
SCROW mnRowDelta
Amount and direction of movement in the row direction.
sal_uLong nEndChangeAction
SC_DLLPUBLIC void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
virtual ~ScUndoRemoveBreaks() override
sal_uLong nStartChangeAction
void ClearItems(const ScMarkData &rMark, const sal_uInt16 *pWhich, bool bApi)
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
void DeleteRow(SCCOL nStartCol, SCTAB nStartTab, SCCOL nEndCol, SCTAB nEndTab, SCROW nStartRow, SCSIZE nSize, ScDocument *pRefUndoDoc=nullptr, bool *pUndoOutline=nullptr, const ScMarkData *pTabMark=nullptr)
bool RefreshAutoFilter(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab)
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
virtual void Repeat(SfxRepeatTarget &rTarget) override
bool AdjustBlockHeight(bool bPaint=true, ScMarkData *pMarkData=nullptr)
void RemoveManualBreaks()
virtual void Repeat(SfxRepeatTarget &rTarget) override
ScUndoPaste(ScDocShell *pNewDocShell, const ScRangeList &rRanges, const ScMarkData &rMark, ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc, InsertDeleteFlags nNewFlags, std::unique_ptr< ScRefUndoData > pRefData, bool bRedoIsFilled=true, const ScUndoPasteOptions *pOptions=nullptr)
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
OUString ScResId(TranslateId aId)
ScUndoTransliterate(ScDocShell *pNewDocShell, const ScMarkData &rMark, ScDocumentUniquePtr pNewUndoDoc, TransliterationFlags nType)
void InitOwnBlockMode(const ScRange &rMarkRange)
void IncTab(SCTAB nDelta=1)
virtual void Redo() override
virtual void Redo() override
bool AdjustRowHeight(SCROW nStartRow, SCROW nEndRow, SCTAB nTab)
merge with docfunc
ScRangeList maPaintRanges
virtual ~ScUndoEnterMatrix() override
virtual void Undo() override
static weld::Window * GetActiveDialogParent()
const Fraction & GetZoomX() const
static ScRange lcl_GetMultiMarkRange(const ScMarkData &rMark)
virtual void Undo() override
std::unique_ptr< SCTAB[]> pScenarios
virtual void Repeat(SfxRepeatTarget &rTarget) override
void MarkRange(const ScRange &rRange, bool bSetCursor=true, bool bContinue=false)
virtual void Undo() override
SC_DLLPUBLIC void SetDrawPageSize(SCTAB nTab)
virtual OUString GetComment() const override
void DoChange(const bool bUndo)
virtual void Undo() override
void AddCellMergeOption(const ScCellMergeOption &rOption)
Context for reference update during shifting, moving or copying of cell ranges.
ScUndoRemoveMerge(ScDocShell *pNewDocShell, const ScCellMergeOption &rOption, ScDocumentUniquePtr pNewUndoDoc)
SC_DLLPUBLIC ScRangeName * GetRangeName(SCTAB nTab) const
virtual void Repeat(SfxRepeatTarget &rTarget) override
ScDocFunc & GetDocFunc() const
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual ~ScUndoDeleteCells() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
std::unique_ptr< ScRangeList > xRanges
virtual ~ScUndoSelectionStyle() override
virtual bool Merge(SfxUndoAction *pNextAction) override
virtual OUString GetComment() const override
virtual bool Merge(SfxUndoAction *pNextAction) override
std::unique_ptr< SdrUndoAction > pDrawUndo
ScDocument & GetDocument() const
bool InsertCol(SCROW nStartRow, SCTAB nStartTab, SCROW nEndRow, SCTAB nEndTab, SCCOL nStartCol, SCSIZE nSize, ScDocument *pRefUndoDoc=nullptr, const ScMarkData *pTabMark=nullptr)
virtual void Redo() override
void OnLOKInsertDeleteRow(SCROW nStartRow, tools::Long nOffset)
static css::uno::Reference< css::datatransfer::XTransferable2 > GetClipData(vcl::Window *pWin)
virtual OUString GetComment() const override
bool SetViewMarkData(const ScMarkData &rMarkData)
sal_uLong nStartChangeAction
virtual ~ScUndoRemoveMerge() override
SC_DLLPUBLIC formula::FormulaGrammar::Grammar GetGrammar() const
virtual ~ScUndoPaste() override
ScUndoSelectionStyle(ScDocShell *pNewDocShell, const ScMarkData &rMark, const ScRange &rRange, const OUString &rName, ScDocumentUniquePtr pNewUndoDoc)
virtual OUString GetComment() const override
sal_uLong GetActionMax() const
virtual void Redo() override
sal_uLong nStartChangeAction
virtual OUString GetComment() const override
void DoUndo(ScRange aRange)
SC_DLLPUBLIC bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, HasAttrFlags nMask) const
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
static void notifyAllViewsSheetGeomInvalidation(const SfxViewShell *pForViewShell, bool bColumns, bool bRows, bool bSizes, bool bHidden, bool bFiltered, bool bGroups, SCTAB nCurrentTabIndex)
Emits a LOK_CALLBACK_INVALIDATE_SHEET_GEOMETRY for all views whose current tab is equal to nCurrentTa...
static void ShowTable(SCTAB nTab)
void MarkFromRangeList(const ScRangeList &rList, bool bReset)
constexpr TypedWhichId< ScMergeAttr > ATTR_MERGE(144)
virtual OUString GetComment() const override
ScDocumentUniquePtr pUndoDoc
virtual ~ScUndoInsertCells() override
SfxApplication * SfxGetpApp()
Internal use only (d&d undo): do not delete caption objects of cell notes.
SC_DLLPUBLIC ScDocumentPool * GetPool()
void TransliterateText(const ScMarkData &rMultiMark, TransliterationFlags nType)
virtual void Undo() override
SC_DLLPUBLIC void CopyFromClip(const ScRange &rDestRange, const ScMarkData &rMark, InsertDeleteFlags nInsFlag, ScDocument *pRefUndoDoc, ScDocument *pClipDoc, bool bResetCut=true, bool bAsLink=false, bool bIncludeFiltered=true, bool bSkipEmptyCells=false, const ScRangeList *pDestRanges=nullptr)
Paste data from a clipboard document into this document.
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
SC_DLLPUBLIC ScConditionalFormatList * GetCondFormList(SCTAB nTab) const
ScDocumentUniquePtr pUndoDoc
void UpdatePaintExt(sal_uInt16 &rExtFlags, SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab, SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab)
SC_DLLPUBLIC SCROW MaxRow() const
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 ...
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
SC_DLLPUBLIC SCTAB GetTableCount() const
sal_uLong nStartChangeAction
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
bool IsMultiMarked() const
const ScValidationDataList * GetValidationList() const
SC_DLLPUBLIC void AppendMove(const ScRange &rFromRange, const ScRange &rToRange, ScDocument *pRefDoc)
ScDocumentUniquePtr pUndoDoc
ScUndoDeleteMulti(ScDocShell *pNewDocShell, bool bNewRows, bool bNeedsRefresh, SCTAB nNewTab, std::vector< sc::ColRowSpan > &&rSpans, ScDocumentUniquePtr pUndoDocument, std::unique_ptr< ScRefUndoData > pRefData)
std::unique_ptr< SvxBoxItem > xOuter
void CopyToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, InsertDeleteFlags nFlags, bool bMarked, ScDocument &rDestDoc, const ScMarkData *pMarks=nullptr, bool bColRowFlags=true)
ScDocument * GetUndoDoc()
ScDocumentUniquePtr pUndoDoc
void RedoSdrUndoAction(SdrUndoAction *pUndoAction)
ScUndoListNames(ScDocShell *pNewDocShell, const ScRange &rRange, ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc)
ScDocumentUniquePtr xRedoDoc
virtual void Undo() override
void DoneBlockMode(bool bContinue=false)
virtual void Undo() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
ScDocument * GetDocument() const
SC_DLLPUBLIC void ApplyPatternArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScMarkData &rMark, const ScPatternAttr &rAttr, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
const Fraction & GetZoomY() const
void UpdateReference(sc::RefUpdateContext &rCxt, SCTAB nLocalTab=-1)
std::unique_ptr< SfxUndoAction > pPasteUndo
ScUndoPasteOptions aPasteOptions
ScViewData & GetViewData()
ScChangeTrack * GetChangeTrack() const
static void PaintMore(ScDocShell *pDocShell, const ScRange &rRange)
virtual void Repeat(SfxRepeatTarget &rTarget) override
SC_DLLPUBLIC void Undo(sal_uLong nStartAction, sal_uLong nEndAction, bool bMerge=false)
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual void Undo() override
constexpr OUStringLiteral aData
sal_uLong nEndChangeAction
virtual ~ScUndoCut() override
ScTabViewShell * GetViewShell() const
virtual void Undo() override
SC_DLLPUBLIC void InsertMatrixFormula(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, const OUString &rFormula, const ScTokenArray *p=nullptr, const formula::FormulaGrammar::Grammar=formula::FormulaGrammar::GRAM_DEFAULT)
ScUndoDeleteCells(ScDocShell *pNewDocShell, const ScRange &rRange, SCTAB nNewCount, std::unique_ptr< SCTAB[]> pNewTabs, std::unique_ptr< SCTAB[]> pNewScenarios, DelCellCmd eNewCmd, ScDocumentUniquePtr pUndoDocument, std::unique_ptr< ScRefUndoData > pRefData)
ScUndoClearItems(ScDocShell *pNewDocShell, const ScMarkData &rMark, ScDocumentUniquePtr pNewUndoDoc, const sal_uInt16 *pW)
void SetMarkArea(const ScRange &rRange)
virtual void Undo() override
virtual void Redo() override
SC_DLLPUBLIC void SetScenarioData(SCTAB nTab, const OUString &rComment, const Color &rColor, ScScenarioFlags nFlags)
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
SC_DLLPUBLIC SCCOL MaxCol() const
virtual void Redo() override
virtual void Undo() override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
ScUndoInsertCells(ScDocShell *pNewDocShell, const ScRange &rRange, SCTAB nNewCount, std::unique_ptr< SCTAB[]> pNewTabs, std::unique_ptr< SCTAB[]> pNewScenarios, InsCellCmd eNewCmd, ScDocumentUniquePtr pUndoDocument, std::unique_ptr< ScRefUndoData > pRefData, bool bNewPartOfPaste)
SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
void UpdateReference(sc::RefUpdateContext &rCxt)
virtual void Redo() override
sal_uLong nEndChangeAction
std::vector< ScCellMergeOption > maOptions
sal_uLong nStartChangeAction
ScDocumentUniquePtr xUndoDoc
UpdateRefMode meMode
update mode - insert/delete, copy, or move.
SC_DLLPUBLIC void SetActiveScenario(SCTAB nTab, bool bActive)
virtual void Redo() override
void IncCol(SCCOL nDelta=1)
void SelectTable(SCTAB nTab, bool bNew)
std::unique_ptr< ScDocument, o3tl::default_delete< ScDocument > > ScDocumentUniquePtr
SC_DLLPUBLIC void DeleteSelection(InsertDeleteFlags nDelFlag, const ScMarkData &rMark, bool bBroadcast=true)
std::unique_ptr< SvxBoxInfoItem > xInner
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
ScSheetLimits & GetSheetLimits() const
bool InsertRow(SCCOL nStartCol, SCTAB nStartTab, SCCOL nEndCol, SCTAB nEndTab, SCROW nStartRow, SCSIZE nSize, ScDocument *pRefUndoDoc=nullptr, const ScMarkData *pTabMark=nullptr)
SC_DLLPUBLIC void SetTabNo(SCTAB nTab, bool bNew=false, bool bExtendSelection=false, bool bSameTabButMoved=false)
ScUndoRemoveBreaks(ScDocShell *pNewDocShell, SCTAB nNewTab, ScDocumentUniquePtr pNewUndoDoc)
virtual OUString GetComment() const override
std::unique_ptr< ScRefUndoData > pRefRedoData
virtual void Repeat(SfxRepeatTarget &rTarget) override
ScUndoUseScenario(ScDocShell *pNewDocShell, const ScMarkData &rMark, const ScArea &rDestArea, ScDocumentUniquePtr pNewUndoDoc, const OUString &rNewName)
ScUndoBorder(ScDocShell *pNewDocShell, const ScRangeList &rRangeList, ScDocumentUniquePtr pNewUndoDoc, const SvxBoxItem &rNewOuter, const SvxBoxInfoItem &rNewInner)
void IncRow(SCROW nDelta=1)
void DoChange(const bool bUndo)
void SelectOneTable(SCTAB nTab)
SfxItemSet & GetItemSet()
ScDocumentUniquePtr pRefUndoDoc
virtual ~ScUndoUseScenario() override
ScGridWindow * GetActiveWin()
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
SC_DLLPUBLIC void ApplyPatternAreaTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, const ScPatternAttr &rAttr)
ScUndoCut(ScDocShell *pNewDocShell, const ScRange &aRange, const ScAddress &aOldEnd, const ScMarkData &rMark, ScDocumentUniquePtr pNewUndoDoc)
virtual OUString GetComment() const override
SC_DLLPUBLIC bool PasteFromClip(InsertDeleteFlags nFlags, ScDocument *pClipDoc, ScPasteFunc nFunction=ScPasteFunc::NONE, bool bSkipEmptyCells=false, bool bTranspose=false, bool bAsLink=false, InsCellCmd eMoveMode=INS_NONE, InsertDeleteFlags nUndoExtraFlags=InsertDeleteFlags::NONE, bool bAllowDialogs=false)
ScDocumentUniquePtr pUndoDoc
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
void UseScenario(SCTAB nTab, const OUString &rName, bool bRecord=true)
SC_DLLPUBLIC void AppendDeleteRange(const ScRange &, ScDocument *pRefDoc, SCTAB nDz, sal_uLong nRejectingInsert)
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual void Repeat(SfxRepeatTarget &rTarget) override
ScDocumentUniquePtr pUndoDoc
void RemoveManualBreaks(SCTAB nTab)
static void notifyAllViewsHeaderInvalidation(const SfxViewShell *pForViewShell, HeaderType eHeaderType, SCTAB nCurrentTabIndex)
Emits a LOK_CALLBACK_INVALIDATE_HEADER for all views whose current tab is equal to nCurrentTabIndex...
const SfxPoolItem & GetDefaultItem(sal_uInt16 nWhich) const
std::unique_ptr< sal_uInt16[]> pWhich
void AppendContentRange(const ScRange &rRange, ScDocument *pRefDoc, sal_uLong &nStartAction, sal_uLong &nEndAction, ScChangeActionClipMode eMode=SC_CACM_NONE)
void PostPaint(SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab, SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab, PaintPartFlags nPart, sal_uInt16 nExtFlags=0)
void PaintArea(ScRange aRange, sal_uInt16 nExtFlags) const
SC_DLLPUBLIC bool ExtendMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, SCTAB nTab, bool bRefresh=false)
void ForgetNoteCaptions(const ScRangeList &rRanges, bool bPreserveData)
ScRange maRange
Range of cells that are about to be moved for insert/delete/move modes.
SfxViewShell * GetViewShell() const
sal_uInt16 mnPaintExtFlags
void DoChange(const bool bUndo)
void BroadcastCells(const ScRange &rRange, SfxHintId nHint, bool bBroadcastSingleBroadcasters=true)
ScDocumentUniquePtr xUndoDoc
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual void Undo() override
sal_uLong nStartChangeAction
virtual void Redo() override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual ~ScUndoDeleteMulti() override
virtual void Undo() override
bool UnmergeCells(const ScRange &rRange, bool bRecord, ScUndoRemoveMerge *pUndoRemoveMerge)
void DoChange(bool bUndo)
SC_DLLPUBLIC bool SetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bApi)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
static ScRange lcl_TotalRange(const ScRangeList &rRanges)
set only border, for ScRangeList (StarOne)
virtual OUString GetComment() const override
static ScTabViewShell * GetActiveViewShell()
ScDocumentUniquePtr pUndoDoc
virtual void Redo() override
SC_DLLPUBLIC bool IsScenario(SCTAB nTab) const
void Join(const ScRange &, bool bIsInList=false)
sal_uLong nEndChangeAction
virtual void Redo() override
ScDocumentUniquePtr pUndoDoc
virtual OUString GetComment() const override
void DoUndo(ScDocument *pDoc, bool bUndoRefFirst)
std::unique_ptr< SCTAB[]> pTabs
SCTAB mnTabDelta
Amount and direction of movement in the sheet direction.
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
SC_DLLPUBLIC void DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, InsertDeleteFlags nDelFlag, bool bBroadcast=true, sc::ColumnSpanSet *pBroadcastSpans=nullptr)
virtual ~ScUndoDragDrop() override
virtual OUString GetComment() const override
SCTAB GetFirstSelected() const
ScRangeList maBlockRanges
SC_DLLPUBLIC bool RemoveFlagsTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, ScMF nFlags)
virtual void Redo() override
virtual void Undo() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
ScUndoDragDrop(ScDocShell *pNewDocShell, const ScRange &rRange, const ScAddress &aNewDestPos, bool bNewCut, ScDocumentUniquePtr pUndoDocument, bool bScenario)
static SC_DLLPUBLIC ScTransferObj * GetOwnClipboard(const css::uno::Reference< css::datatransfer::XTransferable2 > &)
void SetStyleSheetToMarked(const SfxStyleSheet *pStyleSheet)
void OnLOKInsertDeleteColumn(SCCOL nStartCol, tools::Long nOffset)
std::unique_ptr< SdrUndoAction > mpDrawUndo
sal_uLong nEndChangeAction
ScUndoEnterMatrix(ScDocShell *pNewDocShell, const ScRange &rArea, ScDocumentUniquePtr pNewUndoDoc, const OUString &rForm)
virtual OUString GetComment() const override
virtual void Repeat(SfxRepeatTarget &rTarget) override
const ScDocument & GetDocument() const
virtual OUString GetComment() const override
virtual OUString GetComment() const override
void DoChange(ScDocument *pSrcDoc) const
virtual void Redo() override
SC_DLLPUBLIC ScStyleSheetPool * GetStyleSheetPool() const
virtual void Redo() override
ScDocumentUniquePtr pRedoDoc
std::unique_ptr< SCTAB[]> pScenarios
virtual void Repeat(SfxRepeatTarget &rTarget) override
TransliterationFlags nTransliterationType
virtual ~ScUndoClearItems() override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
void BroadcastChanges(const ScRange &rRange)
virtual void Undo() override
void ChangeSelectionIndent(bool bIncrement, const ScMarkData &rMark)
SC_DLLPUBLIC void AppendInsert(const ScRange &rRange, bool bEndOfList=false)
bool AdjustRowHeight(SCROW nStartRow, SCROW nEndRow, bool bApi)
virtual ~ScUndoIndent() override
void ApplySelectionFrame(const ScMarkData &rMark, const SvxBoxItem &rLineOuter, const SvxBoxInfoItem *pLineInner)
This struct stores general clipboard parameters associated with a ScDocument instance created in clip...
SC_DLLPUBLIC void DeleteAreaTab(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCTAB nTab, InsertDeleteFlags nDelFlag)
virtual void Repeat(SfxRepeatTarget &rTarget) override
SCCOL mnColDelta
Amount and direction of movement in the column direction.
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
virtual void Redo() override
std::unique_ptr< SCTAB[]> pTabs
sal_uLong nEndChangeAction
sal_uLong nEndChangeAction
virtual OUString GetComment() const override
void DoChange(const bool bUndo)
SC_DLLPUBLIC void CellContentChanged()
const ScRange & GetMultiMarkArea() const
void UpdatePageBreakData(bool bForcePaint=false)
std::vector< sc::ColRowSpan > maSpans
Strings (and string results if InsertDeleteFlags::FORMULA is not set).
void SetCondFormList(ScConditionalFormatList *pList, SCTAB nTab)
virtual void Redo() override
void EnableDrawAdjust(ScDocument *pDoc, bool bEnable)
std::unique_ptr< ScRefUndoData > pRefUndoData
virtual OUString GetComment() const override
SC_DLLPUBLIC void CopyToClip(const ScClipParam &rClipParam, ScDocument *pClipDoc, const ScMarkData *pMarks, bool bKeepScenarioFlags, bool bIncludeObjects)
virtual ~ScUndoTransliterate() override
bool m_bDetectedRangeSegmentation false
ScDocumentUniquePtr pUndoDoc