diff options
Diffstat (limited to 'dbaccess/source/ui/control/dbtreelistbox.cxx')
-rw-r--r-- | dbaccess/source/ui/control/dbtreelistbox.cxx | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/dbaccess/source/ui/control/dbtreelistbox.cxx b/dbaccess/source/ui/control/dbtreelistbox.cxx index 55db602c5ea9..be900d650f63 100644 --- a/dbaccess/source/ui/control/dbtreelistbox.cxx +++ b/dbaccess/source/ui/control/dbtreelistbox.cxx @@ -36,6 +36,7 @@ #include <toolkit/awt/vclxmenu.hxx> #include <toolkit/helper/vclunohelper.hxx> #include <svx/dbaobjectex.hxx> +#include <utility> #include <vcl/commandevent.hxx> #include <vcl/event.hxx> #include <vcl/svapp.hxx> @@ -186,20 +187,28 @@ TreeListBox::~TreeListBox() std::unique_ptr<weld::TreeIter> TreeListBox::GetEntryPosByName(std::u16string_view aName, const weld::TreeIter* pStart, const IEntryFilter* _pFilter) const { auto xEntry(m_xTreeView->make_iterator(pStart)); - if (!pStart && !m_xTreeView->get_iter_first(*xEntry)) - return nullptr; + if (pStart) + { + if (!m_xTreeView->iter_children(*xEntry)) + return nullptr; + } + else + { + if (!m_xTreeView->get_iter_first(*xEntry)) + return nullptr; + } do { if (m_xTreeView->get_text(*xEntry) == aName) { - if (!_pFilter || _pFilter->includeEntry(reinterpret_cast<void*>(m_xTreeView->get_id(*xEntry).toUInt64()))) + if (!_pFilter || _pFilter->includeEntry(weld::fromId<void*>(m_xTreeView->get_id(*xEntry)))) { // found return xEntry; } } - } while (m_xTreeView->iter_next(*xEntry)); + } while (m_xTreeView->iter_next_sibling(*xEntry)); return nullptr; } @@ -285,7 +294,7 @@ IMPL_LINK(TreeListBox, QueryTooltipHdl, const weld::TreeIter&, rIter, OUString) { OUString sQuickHelpText; if (m_pActionListener && - m_pActionListener->requestQuickHelp(reinterpret_cast<void*>(m_xTreeView->get_id(rIter).toUInt64()), sQuickHelpText)) + m_pActionListener->requestQuickHelp(weld::fromId<void*>(m_xTreeView->get_id(rIter)), sQuickHelpText)) { return sQuickHelpText; } @@ -300,8 +309,8 @@ namespace class SelectionSupplier : public SelectionSupplier_Base { public: - explicit SelectionSupplier( const Any& _rSelection ) - :m_aSelection( _rSelection ) + explicit SelectionSupplier( Any _aSelection ) + :m_aSelection(std::move( _aSelection )) { } |