vcl/qt5/QtBuilder.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
New commits: commit 68b9b16ad28f41f1e5f67abcf4f6a99202ca3b33 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Mon Aug 4 09:58:28 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Mon Aug 4 12:21:12 2025 +0200 tdf#130857 qt weld: Ignore GtkCellRenderer without tree view parent No more assert that all GtkCellRenderers have a GtkTreeView ancestor (i.e. are children of a GtkTreeViewColumn that is a child of a GtkTreeView). That assert was introduced in commit 8e33908b538c7700be6f766c472f069d7f4dd15b Author: Michael Weghorn <m.wegh...@posteo.de> Date: Sun Aug 3 22:17:34 2025 +0200 tdf#130857 qt weld: Evaluate GtkCellRenderers to know supported types However, GtkCellRenderers can also be used as children for GtkComboboxText as is the case e.g. in the Spelling Dialog (UI file: cui/uiconfig/ui/spellingdialog.ui) for the text language combobox that displays an icon in addition to the text. QtInstanceComboBox doesn't need the model/cell renderer information for that one, so simply return early again instead of triggering an assert, as used to be the case before the above-mentioned commit. Also return from QtBuilder::makeObject after running QtBuilder::enableTreeViewColumnDataRole as there is nothing else to do in case of the cell renderers. (Assert seen getting triggered in a WIP branch for declaring support for the spelling dialog.) Change-Id: Id35a4d1f6c9a9728b547a5c0103502a89e4a8b9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188911 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx index 17050ddf48a3..eb2cb6ded0ba 100644 --- a/vcl/qt5/QtBuilder.cxx +++ b/vcl/qt5/QtBuilder.cxx @@ -204,15 +204,15 @@ QObject* QtBuilder::makeObject(QObject* pParent, std::u16string_view sName, std: } else if (sName == u"GtkCellRendererPixbuf") { - enableTreeViewColumnDataRole(pParentWidget, Qt::DecorationRole); + return enableTreeViewColumnDataRole(pParentWidget, Qt::DecorationRole); } else if (sName == u"GtkCellRendererText") { - enableTreeViewColumnDataRole(pParentWidget, Qt::DisplayRole); + return enableTreeViewColumnDataRole(pParentWidget, Qt::DisplayRole); } else if (sName == u"GtkCellRendererToggle") { - enableTreeViewColumnDataRole(pParentWidget, Qt::CheckStateRole); + return enableTreeViewColumnDataRole(pParentWidget, Qt::CheckStateRole); } else if (sName == u"GtkCheckButton") { @@ -847,7 +847,8 @@ QTreeView* QtBuilder::enableTreeViewColumnDataRole(QWidget* pParentWidget, Qt::ItemDataRole eDataRole) { QTreeView* pTreeView = qobject_cast<QTreeView*>(pParentWidget); - assert(pTreeView && "No tree view for cell renderer"); + if (!pTreeView) + return nullptr; // Mark support for the new role for the tree view's last inserted column // (the GtkCellRenderer is a child object of the GtkTreeViewColumn)