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)

Reply via email to