diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-10-16 10:47:05 +0100 |
---|---|---|
committer | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-10-18 09:29:48 +0200 |
commit | 58c02b478df89dfd46f1b2a5a7c509f3a9ea4635 (patch) | |
tree | 6c44982448b145a88e122a22bfb6ea31390dcbd3 /vcl | |
parent | 8989cba47fce3763229005b1ed2fec74da7cfb72 (diff) |
check return of get_iter_abs_pos
Change-Id: Ifdabd65dc9fa5bc6d0c5c6eee1318f99bf918cd2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158034
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Attila Szűcs <attila.szucs@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/jsdialog/executor.cxx | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx index ed424912f377..6ab4f9d35d2c 100644 --- a/vcl/jsdialog/executor.cxx +++ b/vcl/jsdialog/executor.cxx @@ -471,9 +471,14 @@ bool ExecuteAction(const std::string& nWindowId, const OString& rWidget, StringM 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; @@ -484,9 +489,14 @@ bool ExecuteAction(const std::string& nWindowId, const OString& rWidget, StringM 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); @@ -496,20 +506,30 @@ bool ExecuteAction(const std::string& nWindowId, const OString& rWidget, StringM { 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") |