diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-11-21 11:19:38 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-11-23 06:25:33 +0100 |
commit | b1097c47695210f8824dcc4fc456b95897fc3972 (patch) | |
tree | 8128cb9ecd4a41136107623c6ab0e4f6ee3790f5 /sc/source/ui/undo | |
parent | 106f128f359deb1c9553c105eff4bf829fdd9736 (diff) |
ManageNames: add undo to Define Names dialog
Diffstat (limited to 'sc/source/ui/undo')
-rw-r--r-- | sc/source/ui/undo/undorangename.cxx | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/sc/source/ui/undo/undorangename.cxx b/sc/source/ui/undo/undorangename.cxx index b7b1e2cc6c2a..28d60437475c 100644 --- a/sc/source/ui/undo/undorangename.cxx +++ b/sc/source/ui/undo/undorangename.cxx @@ -47,7 +47,6 @@ ScUndoAllRangeNames::ScUndoAllRangeNames( const boost::ptr_map<rtl::OUString, ScRangeName>& rNewNames) : ScSimpleUndo(pDocSh) { - // Copy sheet-local names. std::map<rtl::OUString, ScRangeName*>::const_iterator itr, itrEnd; for (itr = rOldNames.begin(), itrEnd = rOldNames.end(); itr != itrEnd; ++itr) { @@ -108,4 +107,64 @@ void ScUndoAllRangeNames::DoChange(const boost::ptr_map<rtl::OUString, ScRangeNa SFX_APP()->Broadcast(SfxSimpleHint(SC_HINT_AREAS_CHANGED)); } +ScUndoAddRangeData::ScUndoAddRangeData(ScDocShell* pDocSh, ScRangeData* pRangeData, SCTAB nTab) : + ScSimpleUndo(pDocSh), + mpRangeData(new ScRangeData(*pRangeData)), + mnTab(nTab) +{ + +} + +ScUndoAddRangeData::~ScUndoAddRangeData() +{ + delete mpRangeData; +} + +void ScUndoAddRangeData::Undo() +{ + ScDocument* pDoc = pDocShell->GetDocument(); + ScRangeName* pRangeName = NULL; + if (mnTab == -1) + { + pRangeName = pDoc->GetRangeName(); + } + else + { + pRangeName = pDoc->GetRangeName( mnTab ); + } + pRangeName->erase(*mpRangeData); + SFX_APP()->Broadcast( SfxSimpleHint( SC_HINT_AREAS_CHANGED ) ); + +} + +void ScUndoAddRangeData::Redo() +{ + ScDocument* pDoc = pDocShell->GetDocument(); + ScRangeName* pRangeName = NULL; + if (mnTab == -1) + { + pRangeName = pDoc->GetRangeName(); + } + else + { + pRangeName = pDoc->GetRangeName( mnTab ); + } + pRangeName->insert(new ScRangeData(*mpRangeData)); + SFX_APP()->Broadcast( SfxSimpleHint( SC_HINT_AREAS_CHANGED ) ); +} + +void ScUndoAddRangeData::Repeat(SfxRepeatTarget& /*rTarget*/) +{ +} + +sal_Bool ScUndoAddRangeData::CanRepeat(SfxRepeatTarget& /*rTarget*/) const +{ + return sal_False; +} + +String ScUndoAddRangeData::GetComment() const +{ + return ScGlobal::GetRscString(STR_UNDO_RANGENAMES); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |