24 #include <osl/diagnose.h>
27 #include <document.hxx>
30 #include <globstr.hrc>
33 #include <strings.hrc>
36 #include <uiitems.hxx>
42 #include <progress.hxx>
52 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
61 using ::std::unique_ptr;
68 const OUString& rNewName) :
86 return ScResId( STR_UNDO_APPEND_TAB );
88 return ScResId( STR_UNDO_INSERT_TAB );
149 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
150 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
151 Execute(FID_INS_TABLE, SfxCallMode::SLOT | SfxCallMode::RECORD);
161 std::vector<OUString>&& newNameList) :
163 aNameList(
std::move(newNameList) ),
178 return ScResId( STR_UNDO_INSERT_TAB );
193 aRange.aEnd.SetTab( sal::static_int_cast<SCTAB>(
nTab +
i ) );
243 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
244 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
245 Execute(FID_INS_TABLE, SfxCallMode::SLOT | SfxCallMode::RECORD);
268 return ScResId( STR_UNDO_DELETE_TAB );
284 aRange.aEnd.SetTab(
theTabs[i] );
295 while ( nTab > 0 && !rDoc.
IsVisible( nTab ) )
314 bool bOk = rDoc.
InsertTab(nTab, aName,
false,
true);
337 pRefUndoDoc->GetScenarioData( nTab, aComment, aColor, nScenFlags );
339 bool bActive =
pRefUndoDoc->IsActiveScenario( nTab );
344 auto pSheetEvents =
pRefUndoDoc->GetSheetEvents( nTab );
363 for(
SCTAB nTab: theTabs)
368 pSfxApp->Broadcast(
SfxHint( SfxHintId::ScTablesChanged ) );
369 pSfxApp->Broadcast(
SfxHint( SfxHintId::ScDbAreasChanged ) );
370 pSfxApp->Broadcast(
SfxHint( SfxHintId::ScAreaLinksChanged ) );
401 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
415 const OUString& rOldName,
416 const OUString& rNewName) :
430 return ScResId( STR_UNDO_RENAME_TAB );
472 ScDocShell* pNewDocShell, std::unique_ptr<vector<SCTAB>> pOldTabs, std::unique_ptr<vector<SCTAB>> pNewTabs,
473 std::unique_ptr<vector<OUString>> pOldNames, std::unique_ptr<vector<OUString>> pNewNames) :
475 mpOldTabs(
std::move(pOldTabs)), mpNewTabs(
std::move(pNewTabs)),
476 mpOldNames(
std::move(pOldNames)), mpNewNames(
std::move(pNewNames))
490 return ScResId( STR_UNDO_MOVE_TAB );
505 SCTAB nDestTab = (*mpNewTabs)[i-1];
506 SCTAB nOldTab = (*mpOldTabs)[i-1];
510 rDoc.
MoveTab( nDestTab, nOldTab, &aProgress );
512 pViewShell->
SetTabNo( nOldTab,
true );
515 const OUString& rOldName = (*mpOldNames)[i-1];
525 for (
size_t i = 0;
i < n; ++
i)
527 SCTAB nDestTab = (*mpNewTabs)[
i];
528 SCTAB nNewTab = nDestTab;
529 SCTAB nOldTab = (*mpOldTabs)[
i];
533 rDoc.
MoveTab( nOldTab, nNewTab, &aProgress );
535 pViewShell->
SetTabNo( nDestTab,
true );
538 const OUString& rNewName = (*mpNewNames)[
i];
573 std::unique_ptr<vector<SCTAB>> pOldTabs, std::unique_ptr<vector<SCTAB>> pNewTabs,
574 std::unique_ptr<vector<OUString>> pNewNames) :
576 mpOldTabs(
std::move(pOldTabs)),
577 mpNewTabs(
std::move(pNewTabs)),
578 mpNewNames(
std::move(pNewNames))
593 return ScResId( STR_UNDO_COPY_TAB );
616 vector<SCTAB>::const_reverse_iterator itr, itrEnd =
mpNewTabs->rend();
617 for (itr =
mpNewTabs->rbegin(); itr != itrEnd; ++itr)
619 SCTAB nDestTab = *itr;
631 for (itr =
mpNewTabs->rbegin(); itr != itrEnd; ++itr)
633 SCTAB nDestTab = *itr;
651 nDestTab = (*mpNewTabs)[
i];
652 SCTAB nNewTab = nDestTab;
653 SCTAB nOldTab = (*mpOldTabs)[
i];
658 rDoc.
CopyTab( nOldTab, nNewTab );
663 SCTAB nAdjSource = nOldTab;
664 if ( nNewTab <= nOldTab )
686 const OUString& rName = (*mpNewNames)[
i];
693 pViewShell->
SetTabNo( nDestTab,
true );
723 aTabColorList(
std::move(rUndoTabColorList))
734 return ScResId(STR_UNDO_SET_MULTI_TAB_BG_COLOR);
735 return ScResId(STR_UNDO_SET_TAB_BG_COLOR);
743 for (
size_t i = 0;
i < nTabColorCount; ++
i)
777 const OUString& rN,
const OUString& rC,
799 return ScResId( STR_UNDO_MAKESCENARIO );
850 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
877 return ScResId( STR_UNDO_INSERT_TAB );
920 rDoc.
GetName( nTabPos, aOldName );
921 xRedoDoc->RenameTab(nTabPos, aOldName);
926 xRedoDoc->SetScenario(nTabPos,
true);
931 xRedoDoc->SetScenarioData(nTabPos, aComment, aColor, nScenFlags);
933 xRedoDoc->SetActiveScenario(nTabPos, bActive);
935 xRedoDoc->SetVisible(nTabPos, bVisible);
949 bDrawIsInUndo =
false;
958 OSL_FAIL(
"Where is my Redo Document?");
985 xRedoDoc->GetScenarioData(nTabPos, aComment, aColor, nScenFlags );
987 bool bActive =
xRedoDoc->IsActiveScenario(nTabPos);
993 if (
xRedoDoc->IsTabProtected(nTabPos))
1004 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1005 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
1006 Execute(FID_INS_TABLE, SfxCallMode::SLOT | SfxCallMode::RECORD);
1016 aDocName( rDocName ),
1024 pTabNames.reset(
new OUString[nTabCount] );
1042 "different Filter for a Document?");
1058 return ScResId( STR_UNDO_REMOVELINK );
1094 undoTabs(
std::move(newUndoTabs) ),
1131 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1132 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
1134 SfxCallMode::SLOT | SfxCallMode::RECORD);
1147 pId =
bShow ? STR_UNDO_SHOWTABS : STR_UNDO_HIDETABS;
1151 pId =
bShow ? STR_UNDO_SHOWTAB : STR_UNDO_HIDETAB;
1159 mpProtectSettings(
std::move(pProtectSettings))
1175 pCopy->setProtected(
true);
1227 mpProtectSettings(
std::move(pProtectSettings))
1243 pCopy->setProtected(
true);
1256 pTabView->SetTabProtectionSymbol(
mnTab, bProtect);
1295 std::unique_ptr<ScPrintRangeSaver> pOld, std::unique_ptr<ScPrintRangeSaver> pNew ) :
1298 pOldRanges(
std::move(pOld) ),
1299 pNewRanges(
std::move(pNew) )
1364 return ScResId( STR_UNDO_PRINTRANGES );
1368 const OUString& rON,
const OUString& rNN,
const OUString& rOC,
const OUString& rNC,
1374 aOldComment ( rOC ),
1375 aNewComment ( rNC ),
1376 aOldColor ( rOCol ),
1377 aNewColor ( rNCol ),
1389 return ScResId( STR_UNDO_EDITSCENARIO );
1438 const OUString& rON,
const OUString& rNN ) :
1440 aPersistName( rPN ),
1453 return ScResId(SCSTR_RENAMEOBJECT);
1463 for (sal_uInt16 nTab=0; nTab<nCount; nTab++)
1466 assert(pPage &&
"Page ?");
1478 pObject = aIter.
Next();
1482 OSL_FAIL(
"Object not found");
1552 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1553 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
1554 Execute( FID_TAB_RTL, SfxCallMode::SLOT | SfxCallMode::RECORD);
1564 return ScResId( STR_UNDO_TAB_RTL );
SC_DLLPUBLIC OUString GetLinkDoc(SCTAB nTab) const
OUString GetLinkOpt(SCTAB nTab) const
void UpdateLinks() override
virtual void Undo() override
bool InsertTable(const OUString &rName, SCTAB nTabNr, bool bRecord=true)
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual void Redo() override
virtual ~ScUndoMoveTab() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
SC_DLLPUBLIC void SetScenario(SCTAB nTab, bool bFlag)
SC_DLLPUBLIC bool IsTabProtected(SCTAB nTab) const
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
SfxPrinter * GetPrinter(bool bCreateIfNotExist=true)
ScUndoShowHideTab(ScDocShell *pShell, std::vector< SCTAB > &&newUndoTabs, bool bNewShow)
SC_DLLPUBLIC ScLinkMode GetLinkMode(SCTAB nTab) const
virtual OUString GetComment() const override
OUString ScResId(TranslateId aId)
virtual void Redo() override
std::unique_ptr< SdrUndoAction > GetSdrUndoAction(ScDocument *pDoc)
virtual void Undo() override
SC_DLLPUBLIC void SetTabProtection(SCTAB nTab, const ScTableProtection *pProtect)
bool AppendTable(const OUString &rName, bool bRecord=true)
virtual OUString GetComment() const override
void SetSheetEvents(SCTAB nTab, std::unique_ptr< ScSheetEvents > pNew)
virtual void Repeat(SfxRepeatTarget &rTarget) override
void SetName(const OUString &rStr, const bool bSetChanged=true)
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual ~ScUndoTabProtect() override
ScUndoMakeScenario(ScDocShell *pNewDocShell, SCTAB nSrc, SCTAB nDest, const OUString &rN, const OUString &rC, const Color &rCol, ScScenarioFlags nF, const ScMarkData &rMark)
virtual void Redo() override
virtual OUString GetComment() const override
SC_DLLPUBLIC bool IsActiveScenario(SCTAB nTab) const
sal_uLong nStartChangeAction
sal_uInt64 GetCodeCount() const
sheet protection state container
SC_DLLPUBLIC void SetTabBgColor(SCTAB nTab, const Color &rColor)
virtual ~ScUndoShowHideTab() override
ScScenarioFlags nOldFlags
virtual void Undo() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
SC_DLLPUBLIC void SetLayoutRTL(SCTAB nTab, bool bRTL, ScObjectHandling eObjectHandling=ScObjectHandling::RecalcPosMode)
virtual OUString GetComment() const override
void DoChange(bool bLink) const
void DoProtect(bool bProtect)
ScUndoLayoutRTL(ScDocShell *pShell, SCTAB nNewTab, bool bNewRTL)
void DeleteTable(SCTAB nTabNr, bool bRecord=true)
virtual OUString GetComment() const override
void SetDocumentModified()
std::unique_ptr< SdrUndoAction > pDrawUndo
virtual ~ScUndoTabColor() override
ScUndoDeleteTab(ScDocShell *pNewDocShell, const std::vector< SCTAB > &theTabs, ScDocumentUniquePtr pUndoDocument, std::unique_ptr< ScRefUndoData > pRefData)
bool SetViewMarkData(const ScMarkData &rMarkData)
ScDocumentUniquePtr xRedoDoc
virtual void Undo() override
virtual OUString GetComment() const override
virtual SdrObjKind GetObjIdentifier() const
sal_uLong GetActionMax() const
EmbeddedObjectRef * pObject
ScUndoTabProtect(ScDocShell *pShell, SCTAB nTab, std::unique_ptr< ScTableProtection > &&pProtectSettings)
std::vector< SCTAB > undoTabs
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
std::unique_ptr< ::std::vector< OUString > > mpNewNames
SC_DLLPUBLIC void SetVisible(SCTAB nTab, bool bVisible)
sal_uLong nStartChangeAction
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual void Redo() override
virtual OUString GetComment() const override
ScScenarioFlags nNewFlags
virtual void Redo() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
void DoProtect(bool bProtect)
::std::unique_ptr< ScDocProtection > mpProtectSettings
SfxApplication * SfxGetpApp()
ScUndoRemoveLink(ScDocShell *pShell, const OUString &rDoc)
std::unique_ptr< ScPrintRangeSaver > pOldRanges
void InsertTables(std::vector< OUString > &aNames, SCTAB nTab, SCTAB nCount, bool bRecord=true)
std::unique_ptr< ::std::vector< OUString > > mpNewNames
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
SC_DLLPUBLIC bool RenameTab(SCTAB nTab, const OUString &rName, bool bExternalDocument=false)
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual ~ScUndoInsertTables() override
ScUndoPrintRange(ScDocShell *pShell, SCTAB nNewTab, std::unique_ptr< ScPrintRangeSaver > pOld, std::unique_ptr< ScPrintRangeSaver > pNew)
SC_DLLPUBLIC SCROW MaxRow() const
virtual ~ScUndoMakeScenario() override
SC_DLLPUBLIC SCTAB GetTableCount() const
virtual void Undo() override
virtual ~ScUndoCopyTab() override
virtual ~ScUndoDeleteTab() override
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)
virtual void libreOfficeKitViewCallback(int nType, const char *pPayload) const override
std::unique_ptr< ScLinkMode[]> pModes
void RedoSdrUndoAction(SdrUndoAction *pUndoAction)
std::unique_ptr< ::std::vector< SCTAB > > mpNewTabs
void UpdateInputHandler(bool bForce=false, bool bStopEditing=true)
void CopyTabProtection(SCTAB nTabSrc, SCTAB nTabDest)
virtual ~ScUndoRenameObject() override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual ~ScUndoRemoveLink() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
ScViewData & GetViewData()
ScChangeTrack * GetChangeTrack() const
SC_DLLPUBLIC void Undo(sal_uLong nStartAction, sal_uLong nEndAction, bool bMerge=false)
std::unique_ptr< OUString[]> pTabNames
virtual void Undo() override
std::vector< SCTAB > theTabs
virtual OUString GetComment() const override
ScUndoInsertTab(ScDocShell *pNewDocShell, SCTAB nTabNum, bool bApp, const OUString &rNewName)
SC_DLLPUBLIC void SetScenarioData(SCTAB nTab, const OUString &rComment, const Color &rColor, ScScenarioFlags nFlags)
SC_DLLPUBLIC ScDrawLayer * GetDrawLayer()
SC_DLLPUBLIC SCCOL MaxCol() const
virtual OUString GetComment() const override
SC_DLLPUBLIC bool CopyTab(SCTAB nOldPos, SCTAB nNewPos, const ScMarkData *pOnlyMarked=nullptr)
virtual OUString GetComment() const override
std::unique_ptr< ScPrintRangeSaver > pNewRanges
virtual void Undo() override
virtual void Undo() override
std::unique_ptr< SCTAB[]> pTabs
virtual void Repeat(SfxRepeatTarget &rTarget) override
void DoChange(bool bShow) const
SC_DLLPUBLIC void SetActiveScenario(SCTAB nTab, bool bActive)
::std::unique_ptr< ScTableProtection > mpProtectSettings
void DoChange(bool bUndo)
sal_uLong nEndChangeAction
virtual OUString GetComment() const override
ScUndoTabColorInfo::List aTabColorList
std::unique_ptr< ScDocument, o3tl::default_delete< ScDocument > > ScDocumentUniquePtr
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
void RestorePrintRanges(const ScPrintRangeSaver &rSaver)
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual void Redo() override
ScUndoDocProtect(ScDocShell *pShell,::std::unique_ptr< ScDocProtection > &&pProtectSettings)
std::unique_ptr< ScMarkData > mpMarkData
SC_DLLPUBLIC void SetTabNo(SCTAB nTab, bool bNew=false, bool bExtendSelection=false, bool bSameTabButMoved=false)
const SdrPage * GetPage(sal_uInt16 nPgNum) const
virtual void Redo() override
std::unique_ptr< SdrUndoAction > pDrawUndo
virtual void Redo() override
virtual void Redo() override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
sal_uLong nEndChangeAction
void SetLink(SCTAB nTab, ScLinkMode nMode, const OUString &rDoc, const OUString &rFilter, const OUString &rOptions, const OUString &rTabName, sal_uLong nRefreshDelay)
void DoSdrUndoAction(SdrUndoAction *pUndoAction, ScDocument *pDoc)
std::unique_ptr< ::std::vector< OUString > > mpOldNames
ScDocumentUniquePtr pRefUndoDoc
SC_DLLPUBLIC bool InsertTab(SCTAB nPos, const OUString &rName, bool bExternalDocument=false, bool bUndoDeleteTab=false)
ScUndoTabColor(ScDocShell *pNewDocShell, SCTAB nT, const Color &aOTabBgColor, const Color &aNTabBgColor)
std::unique_ptr< SdrUndoAction > pDrawUndo
OUString GetLinkFlt(SCTAB nTab) const
virtual void Redo() override
SC_DLLPUBLIC void AppendDeleteRange(const ScRange &, ScDocument *pRefDoc, SCTAB nDz, sal_uLong nRejectingInsert)
void DoChange(bool bUndo) const
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual void Redo() override
void PostPaint(SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab, SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab, PaintPartFlags nPart, sal_uInt16 nExtFlags=0)
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
virtual void Repeat(SfxRepeatTarget &rTarget) override
void MoveTab(SCTAB nSrcTab, SCTAB nDestTab)
SfxViewShell * GetViewShell() const
ScUndoInsertTables(ScDocShell *pNewDocShell, SCTAB nTabNum, std::vector< OUString > &&newNameList)
virtual void Undo() override
ScDBFunc * GetView() const
virtual OUString GetComment() const override
std::unique_ptr< ::std::vector< SCTAB > > mpOldTabs
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
SC_DLLPUBLIC void GetScenarioData(SCTAB nTab, OUString &rComment, Color &rColor, ScScenarioFlags &rFlags) const
ScUndoRenameObject(ScDocShell *pNewDocShell, const OUString &rPN, const OUString &rON, const OUString &rNN)
virtual void Undo() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
std::unique_ptr< SdrUndoAction > pDrawUndo
virtual ~ScUndoInsertTab() override
SC_DLLPUBLIC Color GetTabBgColor(SCTAB nTab) const
void SetInUndo(bool bSet)
virtual ~ScUndoLayoutRTL() override
virtual void Undo() override
virtual ~ScUndoPrintRange() override
std::unique_ptr< ::std::vector< SCTAB > > mpOldTabs
static ScTabViewShell * GetActiveViewShell()
bool MoveTab(SCTAB nOldPos, SCTAB nNewPos, ScProgress *pProgress=nullptr)
virtual OUString GetComment() const override
SC_DLLPUBLIC bool IsScenario(SCTAB nTab) const
virtual void Redo() override
virtual OUString GetComment() const override
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
SCTAB MakeScenario(SCTAB nTab, const OUString &rName, const OUString &rComment, const Color &rColor, ScScenarioFlags nFlags, ScMarkData &rMark, bool bRecord=true)
virtual void Undo() override
virtual ~ScUndoScenarioFlags() override
sal_uLong GetLinkRefreshDelay(SCTAB nTab) const
ScUndoMoveTab(ScDocShell *pNewDocShell, std::unique_ptr< std::vector< SCTAB >> pOldTabs, std::unique_ptr< std::vector< SCTAB >> pNewTabs, std::unique_ptr< std::vector< OUString >> pOldNames=nullptr, std::unique_ptr< std::vector< OUString >> pNewNames=nullptr)
virtual void Redo() override
sal_uLong nEndChangeAction
virtual void Redo() override
SC_DLLPUBLIC OUString GetLinkTab(SCTAB nTab) const
virtual void Undo() override
const ScDocument & GetDocument() const
std::unique_ptr< SdrUndoAction > pDrawUndo
void DoChange(bool bUndoType) const
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
static SCTAB lcl_GetVisibleTabBefore(const ScDocument &rDoc, SCTAB nTab)
SC_DLLPUBLIC bool DeleteTab(SCTAB nTab)
bool DeleteTables(const std::vector< SCTAB > &TheTabs, bool bRecord=true)
virtual void Repeat(SfxRepeatTarget &rTarget) override
void SetDocumentModified()
std::unique_ptr< ::std::vector< SCTAB > > mpNewTabs
ScUndoCopyTab(ScDocShell *pNewDocShell, std::unique_ptr< std::vector< SCTAB >> pOldTabs, std::unique_ptr< std::vector< SCTAB >> pNewTabs, std::unique_ptr< std::vector< OUString >> pNewNames=nullptr)
SC_DLLPUBLIC bool IsVisible(SCTAB nTab) const
SC_DLLPUBLIC void SetDocProtection(const ScDocProtection *pProtect)
virtual void Repeat(SfxRepeatTarget &rTarget) override
std::vector< OUString > aNameList
ScUndoImportTab(ScDocShell *pShell, SCTAB nNewTab, SCTAB nNewCount)
SC_DLLPUBLIC void AppendInsert(const ScRange &rRange, bool bEndOfList=false)
virtual void Redo() override
virtual OUString GetComment() const override
virtual OUString GetComment() const override
ScUndoScenarioFlags(ScDocShell *pNewDocShell, SCTAB nT, const OUString &rON, const OUString &rNN, const OUString &rOC, const OUString &rNC, const Color &rOCol, const Color &rNCol, ScScenarioFlags nOF, ScScenarioFlags nNF)
virtual void Redo() override
virtual ~ScUndoImportTab() override
std::unique_ptr< SdrUndoAction > pDrawUndo
virtual ~ScUndoDocProtect() override
virtual void Undo() override
SC_DLLPUBLIC bool GetName(SCTAB nTab, OUString &rName) const
virtual bool CanRepeat(SfxRepeatTarget &rTarget) const override
Create before modifications of the document and destroy thereafter.
::std::vector< ScUndoTabColorInfo > List
sal_uInt16 GetPageCount() const
virtual void Undo() override
virtual void Undo() override
virtual void Repeat(SfxRepeatTarget &rTarget) override
SC_DLLPUBLIC const ScTableProtection * GetTabProtection(SCTAB nTab) const