summaryrefslogtreecommitdiff
path: root/sc/source/ui/undo
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-21 05:09:10 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-23 06:25:33 +0100
commit106f128f359deb1c9553c105eff4bf829fdd9736 (patch)
tree57a563b4e8549de6c88ac5d686b17aa85c8b4361 /sc/source/ui/undo
parent26c86c78c5eb4b15e6f4fa9074045c97fcb50173 (diff)
ManageNames: make global undo work again with dialog
Diffstat (limited to 'sc/source/ui/undo')
-rw-r--r--sc/source/ui/undo/undorangename.cxx38
1 files changed, 13 insertions, 25 deletions
diff --git a/sc/source/ui/undo/undorangename.cxx b/sc/source/ui/undo/undorangename.cxx
index a3ba960fb29b..b7b1e2cc6c2a 100644
--- a/sc/source/ui/undo/undorangename.cxx
+++ b/sc/source/ui/undo/undorangename.cxx
@@ -43,31 +43,27 @@ using ::std::auto_ptr;
ScUndoAllRangeNames::ScUndoAllRangeNames(
ScDocShell* pDocSh,
- const ScRangeName* pOldGlobal, const ScRangeName* pNewGlobal,
- const ScRangeName::TabNameCopyMap &rOldLocal, const ScRangeName::TabNameCopyMap &rNewLocal) :
+ const std::map<rtl::OUString, ScRangeName*>& rOldNames,
+ const boost::ptr_map<rtl::OUString, ScRangeName>& rNewNames) :
ScSimpleUndo(pDocSh)
{
- if (pOldGlobal)
- maOldGlobalNames = *pOldGlobal;
- if (pNewGlobal)
- maNewGlobalNames = *pNewGlobal;
-
// Copy sheet-local names.
- ScRangeName::TabNameCopyMap::const_iterator itr, itrEnd;
- for (itr = rOldLocal.begin(), itrEnd = rOldLocal.end(); itr != itrEnd; ++itr)
+ std::map<rtl::OUString, ScRangeName*>::const_iterator itr, itrEnd;
+ for (itr = rOldNames.begin(), itrEnd = rOldNames.end(); itr != itrEnd; ++itr)
{
SAL_WNODEPRECATED_DECLARATIONS_PUSH
auto_ptr<ScRangeName> p(new ScRangeName(*itr->second));
SAL_WNODEPRECATED_DECLARATIONS_POP
- maOldLocalNames.insert(itr->first, p);
+ maOldNames.insert(itr->first, p);
}
- for (itr = rNewLocal.begin(), itrEnd = rNewLocal.end(); itr != itrEnd; ++itr)
+ boost::ptr_map<rtl::OUString, ScRangeName>::const_iterator it, itEnd;
+ for (it = rNewNames.begin(), itEnd = rNewNames.end(); it != itEnd; ++it)
{
SAL_WNODEPRECATED_DECLARATIONS_PUSH
- auto_ptr<ScRangeName> p(new ScRangeName(*itr->second));
+ auto_ptr<ScRangeName> p(new ScRangeName(*it->second));
SAL_WNODEPRECATED_DECLARATIONS_POP
- maNewLocalNames.insert(itr->first, p);
+ maNewNames.insert(it->first, p);
}
}
@@ -77,12 +73,12 @@ ScUndoAllRangeNames::~ScUndoAllRangeNames()
void ScUndoAllRangeNames::Undo()
{
- DoChange(maOldGlobalNames, maOldLocalNames);
+ DoChange(maOldNames);
}
void ScUndoAllRangeNames::Redo()
{
- DoChange(maNewGlobalNames, maNewLocalNames);
+ DoChange(maNewNames);
}
void ScUndoAllRangeNames::Repeat(SfxRepeatTarget& /*rTarget*/)
@@ -99,21 +95,13 @@ String ScUndoAllRangeNames::GetComment() const
return ScGlobal::GetRscString(STR_UNDO_RANGENAMES);
}
-void ScUndoAllRangeNames::DoChange(const ScRangeName& rGlobal, const ScRangeName::TabNameMap& rLocal)
+void ScUndoAllRangeNames::DoChange(const boost::ptr_map<rtl::OUString, ScRangeName*>& rNames)
{
ScDocument& rDoc = *pDocShell->GetDocument();
rDoc.CompileNameFormula(true);
- // Global names.
- if (rGlobal.empty())
- rDoc.SetRangeName(NULL);
- else
- rDoc.SetRangeName(new ScRangeName(rGlobal));
-
- ScRangeName::TabNameCopyMap aCopy;
- ScRangeName::copyLocalNames(rLocal, aCopy);
- rDoc.SetAllTabRangeNames(aCopy);
+ rDoc.SetAllRangeNames(rNames);
rDoc.CompileNameFormula(true);