diff options
Diffstat (limited to 'sc/source/ui/namedlg')
-rw-r--r-- | sc/source/ui/namedlg/namedlg.cxx | 17 | ||||
-rw-r--r-- | sc/source/ui/namedlg/namemgrtable.cxx | 14 |
2 files changed, 19 insertions, 12 deletions
diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx index d3718a05c270..51a5ff2a53b3 100644 --- a/sc/source/ui/namedlg/namedlg.cxx +++ b/sc/source/ui/namedlg/namedlg.cxx @@ -118,6 +118,7 @@ void ScNameDlg::Init() pCtrl->set_height_request(pCtrl->GetTextHeight()*12); m_pRangeManagerTable = new ScRangeManagerTable(*pCtrl, maRangeMap, maCursorPos); + m_pRangeManagerTable->setInitListener(this); m_pRangeManagerTable->SetSelectHdl( LINK( this, ScNameDlg, SelectionChangedHdl_Impl ) ); m_pRangeManagerTable->SetDeselectHdl( LINK( this, ScNameDlg, SelectionChangedHdl_Impl ) ); @@ -145,15 +146,7 @@ void ScNameDlg::Init() m_pLbScope->InsertEntry(aTabName); } - - - if (m_pRangeManagerTable->GetSelectionCount()) - { - SelectionChanged(); - } - CheckForEmptyTable(); - } sal_Bool ScNameDlg::IsRefInputMode() const @@ -187,6 +180,12 @@ sal_Bool ScNameDlg::Close() return DoClose( ScNameDlgWrapper::GetChildWindowId() ); } +void ScNameDlg::tableInitialized() +{ + if (m_pRangeManagerTable->GetSelectionCount()) + SelectionChanged(); +} + void ScNameDlg::CheckForEmptyTable() { if (!m_pRangeManagerTable->GetEntryCount()) @@ -418,8 +417,6 @@ void ScNameDlg::NameModified() void ScNameDlg::SelectionChanged() { - - //don't update if we have just modified due to user input if (!mbNeedUpdate) { diff --git a/sc/source/ui/namedlg/namemgrtable.cxx b/sc/source/ui/namedlg/namemgrtable.cxx index b0e308a83d2a..853b4c5bc76c 100644 --- a/sc/source/ui/namedlg/namemgrtable.cxx +++ b/sc/source/ui/namedlg/namemgrtable.cxx @@ -37,11 +37,14 @@ String createEntryString(const ScRangeNameLine& rLine) return aRet; } +ScRangeManagerTable::InitListener::~InitListener() {} + ScRangeManagerTable::ScRangeManagerTable( SvxSimpleTableContainer& rParent, boost::ptr_map<OUString, ScRangeName>& rRangeMap, const ScAddress& rPos ): SvxSimpleTable( rParent, WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ), maGlobalString( ScGlobal::GetRscString(STR_GLOBAL_SCOPE)), mrRangeMap( rRangeMap ), - maPos( rPos ) + maPos( rPos ), + mpInitListener(NULL) { static long aStaticTabs[] = {3, 0, 0, 0 }; SetTabs( &aStaticTabs[0], MAP_PIXEL ); @@ -84,6 +87,9 @@ void ScRangeManagerTable::StateChanged( StateChangedType nStateChange ) SetCurEntry(GetEntryOnPos(0)); CheckForFormulaString(); } + + if (mpInitListener) + mpInitListener->tableInitialized(); } } @@ -107,6 +113,11 @@ ScRangeManagerTable::~ScRangeManagerTable() Clear(); } +void ScRangeManagerTable::setInitListener( InitListener* pListener ) +{ + mpInitListener = pListener; +} + void ScRangeManagerTable::addEntry(const ScRangeNameLine& rLine, bool bSetCurEntry) { SvTreeListEntry* pEntry = InsertEntryToColumn( createEntryString(rLine), LIST_APPEND, 0xffff); @@ -181,7 +192,6 @@ void ScRangeManagerTable::CheckForFormulaString() SetEntryText(aFormulaString, pEntry, 1); maCalculatedFormulaEntries.insert( std::pair<SvTreeListEntry*, bool>(pEntry, true) ); } - } } |