From 3e3f729cd668aa241345166f1046a8f0dd9ac83b Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Sat, 3 Dec 2011 19:58:27 +0100 Subject: correctly select new entry after returning from Define Names --- sc/source/ui/inc/namemgrtable.hxx | 1 + sc/source/ui/namedlg/namedlg.cxx | 6 ++++++ sc/source/ui/namedlg/namemgrtable.cxx | 12 ++++++++++++ 3 files changed, 19 insertions(+) diff --git a/sc/source/ui/inc/namemgrtable.hxx b/sc/source/ui/inc/namemgrtable.hxx index bbbcab60bd41..69bc102bfb1a 100644 --- a/sc/source/ui/inc/namemgrtable.hxx +++ b/sc/source/ui/inc/namemgrtable.hxx @@ -83,6 +83,7 @@ public: void addEntry( const ScRangeNameLine& rLine ); void DeleteSelectedEntries(); + void SetEntry( const ScRangeNameLine& rLine ); void GetCurrentLine(ScRangeNameLine& rLine); bool IsMultiSelection(); diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx index 93456b551433..a3a27147c17b 100644 --- a/sc/source/ui/namedlg/namedlg.cxx +++ b/sc/source/ui/namedlg/namedlg.cxx @@ -364,7 +364,13 @@ bool ScNameDlg::AddPushed() void ScNameDlg::SetEntry(const rtl::OUString& rName, const rtl::OUString& rScope) { if (!rName.isEmpty()) + { mbDataChanged = true; + ScRangeNameLine aLine; + aLine.aName = rName; + aLine.aScope = rScope; + mpRangeManagerTable->SetEntry(aLine); + } } void ScNameDlg::RemovePushed() diff --git a/sc/source/ui/namedlg/namemgrtable.cxx b/sc/source/ui/namedlg/namemgrtable.cxx index 40bd5aa459e9..99b1ea0367ba 100644 --- a/sc/source/ui/namedlg/namemgrtable.cxx +++ b/sc/source/ui/namedlg/namemgrtable.cxx @@ -209,6 +209,18 @@ std::vector ScRangeManagerTable::GetSelectedEntries() return aSelectedEntries; } +void ScRangeManagerTable::SetEntry(const ScRangeNameLine& rLine) +{ + for (SvLBoxEntry* pEntry = First(); pEntry; pEntry = Next(pEntry)) + { + if (rLine.aName == rtl::OUString(GetEntryText(pEntry, 0)) + && rLine.aScope == rtl::OUString(GetEntryText(pEntry, 2))) + { + SetCurEntry(pEntry); + } + } +} + namespace { //ensure that the minimum column size is respected -- cgit