summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2023-10-16 10:47:05 +0100
committerCaolán McNamara <caolan.mcnamara@collabora.com>2023-10-18 09:29:48 +0200
commit58c02b478df89dfd46f1b2a5a7c509f3a9ea4635 (patch)
tree6c44982448b145a88e122a22bfb6ea31390dcbd3 /vcl
parent8989cba47fce3763229005b1ed2fec74da7cfb72 (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.cxx48
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")