26 #include <document.hxx>
29 #include <globstr.hrc>
32 #include <strings.hrc>
35 #include <uiitems.hxx>
41 #include <progress.hxx>
57 using ::std::unique_ptr;
64 const OUString& rNewName) :
82 return ScResId( STR_UNDO_APPEND_TAB );
84 return ScResId( STR_UNDO_INSERT_TAB );
145 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
146 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
147 Execute(FID_INS_TABLE, SfxCallMode::SLOT | SfxCallMode::RECORD);
157 const std::vector<OUString>& newNameList) :
159 aNameList( newNameList ),
174 return ScResId( STR_UNDO_INSERT_TAB );
189 aRange.aEnd.SetTab( sal::static_int_cast<SCTAB>(
nTab +
i ) );
239 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
240 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
241 Execute(FID_INS_TABLE, SfxCallMode::SLOT | SfxCallMode::RECORD);
264 return ScResId( STR_UNDO_DELETE_TAB );
280 aRange.aEnd.SetTab(
theTabs[i] );
291 while ( nTab > 0 && !rDoc.
IsVisible( nTab ) )
310 bool bOk = rDoc.
InsertTab(nTab, aName,
false,
true);
333 pRefUndoDoc->GetScenarioData( nTab, aComment, aColor, nScenFlags );
335 bool bActive =
pRefUndoDoc->IsActiveScenario( nTab );
340 auto pSheetEvents =
pRefUndoDoc->GetSheetEvents( nTab );
359 for(
SCTAB nTab: theTabs)
364 pSfxApp->Broadcast(
SfxHint( SfxHintId::ScTablesChanged ) );
365 pSfxApp->Broadcast(
SfxHint( SfxHintId::ScDbAreasChanged ) );
366 pSfxApp->Broadcast(
SfxHint( SfxHintId::ScAreaLinksChanged ) );
397 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
411 const OUString& rOldName,
412 const OUString& rNewName) :
426 return ScResId( STR_UNDO_RENAME_TAB );
467 ScDocShell* pNewDocShell, std::unique_ptr<vector<SCTAB>> pOldTabs, std::unique_ptr<vector<SCTAB>> pNewTabs,
468 std::unique_ptr<vector<OUString>> pOldNames, std::unique_ptr<vector<OUString>> pNewNames) :
470 mpOldTabs(
std::move(pOldTabs)), mpNewTabs(
std::move(pNewTabs)),
471 mpOldNames(
std::move(pOldNames)), mpNewNames(
std::move(pNewNames))
485 return ScResId( STR_UNDO_MOVE_TAB );
500 SCTAB nDestTab = (*mpNewTabs)[i-1];
501 SCTAB nOldTab = (*mpOldTabs)[i-1];
505 rDoc.
MoveTab( nDestTab, nOldTab, pProgress.get() );
507 pViewShell->
SetTabNo( nOldTab,
true );
510 const OUString& rOldName = (*mpOldNames)[i-1];
520 for (
size_t i = 0;
i < n; ++
i)
522 SCTAB nDestTab = (*mpNewTabs)[
i];
523 SCTAB nNewTab = nDestTab;
524 SCTAB nOldTab = (*mpOldTabs)[
i];
528 rDoc.
MoveTab( nOldTab, nNewTab, pProgress.get() );
530 pViewShell->
SetTabNo( nDestTab,
true );
533 const OUString& rNewName = (*mpNewNames)[
i];
568 std::unique_ptr<vector<SCTAB>> pOldTabs, std::unique_ptr<vector<SCTAB>> pNewTabs,
569 std::unique_ptr<vector<OUString>> pNewNames) :
571 mpOldTabs(
std::move(pOldTabs)),
572 mpNewTabs(
std::move(pNewTabs)),
573 mpNewNames(
std::move(pNewNames))
588 return ScResId( STR_UNDO_COPY_TAB );
611 vector<SCTAB>::const_reverse_iterator itr, itrEnd =
mpNewTabs->rend();
612 for (itr =
mpNewTabs->rbegin(); itr != itrEnd; ++itr)
614 SCTAB nDestTab = *itr;
626 for (itr =
mpNewTabs->rbegin(); itr != itrEnd; ++itr)
628 SCTAB nDestTab = *itr;
646 nDestTab = (*mpNewTabs)[
i];
647 SCTAB nNewTab = nDestTab;
648 SCTAB nOldTab = (*mpOldTabs)[
i];
653 rDoc.
CopyTab( nOldTab, nNewTab );
658 SCTAB nAdjSource = nOldTab;
659 if ( nNewTab <= nOldTab )
681 const OUString& rName = (*mpNewNames)[
i];
688 pViewShell->
SetTabNo( nDestTab,
true );
718 aTabColorList(rUndoTabColorList)
729 return ScResId(STR_UNDO_SET_MULTI_TAB_BG_COLOR);
730 return ScResId(STR_UNDO_SET_TAB_BG_COLOR);
738 for (
size_t i = 0;
i < nTabColorCount; ++
i)
772 const OUString& rN,
const OUString& rC,
794 return ScResId( STR_UNDO_MAKESCENARIO );
845 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
872 return ScResId( STR_UNDO_INSERT_TAB );
915 rDoc.
GetName( nTabPos, aOldName );
916 xRedoDoc->RenameTab(nTabPos, aOldName);
921 xRedoDoc->SetScenario(nTabPos,
true);
926 xRedoDoc->SetScenarioData(nTabPos, aComment, aColor, nScenFlags);
928 xRedoDoc->SetActiveScenario(nTabPos, bActive);
930 xRedoDoc->SetVisible(nTabPos, bVisible);
944 bDrawIsInUndo =
false;
953 OSL_FAIL(
"Where is my Redo Document?");
980 xRedoDoc->GetScenarioData(nTabPos, aComment, aColor, nScenFlags );
982 bool bActive =
xRedoDoc->IsActiveScenario(nTabPos);
988 if (
xRedoDoc->IsTabProtected(nTabPos))
999 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1000 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
1001 Execute(FID_INS_TABLE, SfxCallMode::SLOT | SfxCallMode::RECORD);
1011 aDocName( rDocName ),
1019 pTabNames.reset(
new OUString[nTabCount] );
1037 "different Filter for a Document?");
1053 return ScResId( STR_UNDO_REMOVELINK );
1089 undoTabs( newUndoTabs ),
1126 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1127 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
1129 SfxCallMode::SLOT | SfxCallMode::RECORD);
1142 pId =
bShow ? STR_UNDO_SHOWTABS : STR_UNDO_HIDETABS;
1146 pId =
bShow ? STR_UNDO_SHOWTAB : STR_UNDO_HIDETAB;
1154 mpProtectSettings(
std::move(pProtectSettings))
1170 pCopy->setProtected(
true);
1215 const char* pId =
mpProtectSettings->isProtected() ? STR_UNDO_PROTECT_DOC : STR_UNDO_UNPROTECT_DOC;
1222 mpProtectSettings(
std::move(pProtectSettings))
1238 pCopy->setProtected(
true);
1251 pTabView->SetTabProtectionSymbol(
mnTab, bProtect);
1285 const char* pId =
mpProtectSettings->isProtected() ? STR_UNDO_PROTECT_TAB : STR_UNDO_UNPROTECT_TAB;
1290 std::unique_ptr<ScPrintRangeSaver> pOld, std::unique_ptr<ScPrintRangeSaver> pNew ) :
1293 pOldRanges(
std::move(pOld) ),
1294 pNewRanges(
std::move(pNew) )
1347 return ScResId( STR_UNDO_PRINTRANGES );
1351 const OUString& rON,
const OUString& rNN,
const OUString& rOC,
const OUString& rNC,
1357 aOldComment ( rOC ),
1358 aNewComment ( rNC ),
1359 aOldColor ( rOCol ),
1360 aNewColor ( rNCol ),
1372 return ScResId( STR_UNDO_EDITSCENARIO );
1421 const OUString& rON,
const OUString& rNN ) :
1423 aPersistName( rPN ),
1436 return ScResId(SCSTR_RENAMEOBJECT);
1446 for (sal_uInt16 nTab=0; nTab<nCount; nTab++)
1449 assert(pPage &&
"Page ?");
1461 pObject = aIter.
Next();
1465 OSL_FAIL(
"Object not found");
1535 if (
auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
1536 pViewTarget->GetViewShell()->GetViewData().GetDispatcher().
1537 Execute( FID_TAB_RTL, SfxCallMode::SLOT | SfxCallMode::RECORD);
1547 return ScResId( STR_UNDO_TAB_RTL );
SC_DLLPUBLIC OUString GetLinkDoc(SCTAB nTab) const
OUString GetLinkOpt(SCTAB nTab) const
ScUndoShowHideTab(ScDocShell *pShell, const std::vector< SCTAB > &newUndoTabs, bool bNewShow)
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)
SC_DLLPUBLIC ScLinkMode GetLinkMode(SCTAB nTab) const
virtual OUString GetComment() const override
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
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
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
sal_uLong GetCodeCount() const
void SetDocumentModified()
std::unique_ptr< SdrUndoAction > pDrawUndo
virtual ~ScUndoTabColor() override
SC_DLLPUBLIC void SetLayoutRTL(SCTAB nTab, bool bRTL)
ScUndoDeleteTab(ScDocShell *pNewDocShell, const std::vector< SCTAB > &theTabs, ScDocumentUniquePtr pUndoDocument, std::unique_ptr< ScRefUndoData > pRefData)
bool SetViewMarkData(const ScMarkData &rMarkData)
ScUndoInsertTables(ScDocShell *pNewDocShell, SCTAB nTabNum, const std::vector< OUString > &newNameList)
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
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
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)
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
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
OUString ScResId(const char *pId)
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
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