vcl/jsdialog/executor.cxx | 48 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-)
New commits: commit 2b1aaa84e28d0def9f845deb4c105ea4c7b252c6 Author: Caolán McNamara <[email protected]> AuthorDate: Mon Oct 16 10:47:05 2023 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Mon Oct 16 16:13:30 2023 +0200 check return of get_iter_abs_pos Change-Id: Ifdabd65dc9fa5bc6d0c5c6eee1318f99bf918cd2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158025 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx index 46d5fb675366..7c36eb3bdc1e 100644 --- a/vcl/jsdialog/executor.cxx +++ b/vcl/jsdialog/executor.cxx @@ -467,9 +467,14 @@ bool ExecuteAction(const OUString& nWindowId, const OUString& rWidget, StringMap pTreeView->unselect_all(); std::unique_ptr<weld::TreeIter> itEntry(pTreeView->make_iterator()); - pTreeView->get_iter_abs_pos(*itEntry, nAbsPos); - pTreeView->select(*itEntry); - pTreeView->set_cursor_without_notify(*itEntry); + if (pTreeView->get_iter_abs_pos(*itEntry, nAbsPos)) + { + pTreeView->select(*itEntry); + pTreeView->set_cursor_without_notify(*itEntry); + } + else + SAL_WARN("vcl", + "No absolute position found for " << nAbsPos << " in treeview"); pTreeView->grab_focus(); LOKTrigger::trigger_changed(*pTreeView); return true; @@ -480,9 +485,14 @@ bool ExecuteAction(const OUString& nWindowId, const OUString& rWidget, StringMap pTreeView->unselect_all(); std::unique_ptr<weld::TreeIter> itEntry(pTreeView->make_iterator()); - pTreeView->get_iter_abs_pos(*itEntry, nRow); - pTreeView->select(nRow); - pTreeView->set_cursor_without_notify(*itEntry); + if (pTreeView->get_iter_abs_pos(*itEntry, nRow)) + { + pTreeView->select(nRow); + pTreeView->set_cursor_without_notify(*itEntry); + } + else + SAL_WARN("vcl", + "No absolute position found for " << nRow << " in treeview"); pTreeView->grab_focus(); LOKTrigger::trigger_changed(*pTreeView); LOKTrigger::trigger_row_activated(*pTreeView); @@ -492,20 +502,30 @@ bool ExecuteAction(const OUString& nWindowId, const OUString& rWidget, StringMap { sal_Int32 nAbsPos = o3tl::toInt32(rData["data"]); std::unique_ptr<weld::TreeIter> itEntry(pTreeView->make_iterator()); - pTreeView->get_iter_abs_pos(*itEntry, nAbsPos); - pTreeView->set_cursor_without_notify(*itEntry); - pTreeView->grab_focus(); - pTreeView->expand_row(*itEntry); + if (pTreeView->get_iter_abs_pos(*itEntry, nAbsPos)) + { + pTreeView->set_cursor_without_notify(*itEntry); + pTreeView->grab_focus(); + pTreeView->expand_row(*itEntry); + } + else + SAL_WARN("vcl", + "No absolute position found for " << nAbsPos << " in treeview"); return true; } else if (sAction == "collapse") { sal_Int32 nAbsPos = o3tl::toInt32(rData["data"]); std::unique_ptr<weld::TreeIter> itEntry(pTreeView->make_iterator()); - pTreeView->get_iter_abs_pos(*itEntry, nAbsPos); - pTreeView->set_cursor_without_notify(*itEntry); - pTreeView->grab_focus(); - pTreeView->collapse_row(*itEntry); + if (pTreeView->get_iter_abs_pos(*itEntry, nAbsPos)) + { + pTreeView->set_cursor_without_notify(*itEntry); + pTreeView->grab_focus(); + pTreeView->collapse_row(*itEntry); + } + else + SAL_WARN("vcl", + "No absolute position found for " << nAbsPos << " in treeview"); return true; } else if (sAction == "dragstart")
