summaryrefslogtreecommitdiff
path: root/sc/source/ui/undo
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-21 11:19:38 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-23 06:25:33 +0100
commitb1097c47695210f8824dcc4fc456b95897fc3972 (patch)
tree8128cb9ecd4a41136107623c6ab0e4f6ee3790f5 /sc/source/ui/undo
parent106f128f359deb1c9553c105eff4bf829fdd9736 (diff)
ManageNames: add undo to Define Names dialog
Diffstat (limited to 'sc/source/ui/undo')
-rw-r--r--sc/source/ui/undo/undorangename.cxx61
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: */