extensions/uiconfig/spropctrlr/ui/combobox.ui     |    8 ++++----
 extensions/uiconfig/spropctrlr/ui/listbox.ui      |    4 ++--
 extensions/uiconfig/spropctrlr/ui/numericfield.ui |    8 ++++----
 extensions/uiconfig/spropctrlr/ui/textfield.ui    |    6 +++---
 extensions/uiconfig/spropctrlr/ui/urlcontrol.ui   |    8 ++++----
 include/vcl/weld/TreeView.hxx                     |    2 +-
 vcl/inc/qt5/QtInstanceTreeView.hxx                |    1 -
 vcl/qt5/QtInstanceBuilder.cxx                     |    9 +++++++++
 vcl/qt5/QtInstanceTreeView.cxx                    |    6 ------
 vcl/source/weld/TreeView.cxx                      |   21 +++++++++++++++++++++
 10 files changed, 48 insertions(+), 25 deletions(-)

New commits:
commit 4591ca6f9ab6f0b3af7f4e196141d81db864ce26
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Jan 20 19:04:59 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Jan 22 11:15:47 2026 +0100

    tdf#130857: weld:: Add default TreeView::iter_compare impl
    
    Add a default implementation of weld::TreeView::iter_compare
    right in the base class, as weld::TreeView and weld::TreeIter
    provide the API required to implement the method.
    
    For now, use that implementation in QtInstanceTreeView,
    i.e. drop the override that would only trigger an assert.
    
    If it turns out to be necessary to have a more efficient
    implementation at some point, an override can still be added
    again later (that can then make direct use of relevant
    Qt API).
    
    Change-Id: Id098f85608f4f747c8f0bd4dd2eef01f0aba358d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197686
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/include/vcl/weld/TreeView.hxx b/include/vcl/weld/TreeView.hxx
index 847142e95221..ebc32ffbef57 100644
--- a/include/vcl/weld/TreeView.hxx
+++ b/include/vcl/weld/TreeView.hxx
@@ -342,7 +342,7 @@ public:
        If b appears before a , then 1 is returned. If the two nodes are equal,
        then 0 is returned.
     */
-    virtual int iter_compare(const TreeIter& a, const TreeIter& b) const = 0;
+    virtual int iter_compare(const TreeIter& rIterA, const TreeIter& rIterB) 
const;
     bool iter_has_child(const TreeIter& rIter) const;
     // returns the number of direct children rIter has
     virtual int iter_n_children(const TreeIter& rIter) const = 0;
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index b1606d884126..be22c9096286 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -66,7 +66,6 @@ public:
     virtual bool iter_parent(weld::TreeIter& rIter) const override;
     virtual int get_iter_depth(const weld::TreeIter& rIter) const override;
 
-    virtual int iter_compare(const weld::TreeIter& a, const weld::TreeIter& b) 
const override;
     virtual int iter_n_children(const weld::TreeIter& rIter) const override;
     virtual void set_extra_row_indent(const weld::TreeIter& rIter, int 
nIndentLevel) override;
     virtual void set_text(const weld::TreeIter& rIter, const OUString& rStr,
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index 98d765cdbc84..26372c298ccd 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -241,12 +241,6 @@ int QtInstanceTreeView::get_iter_depth(const 
weld::TreeIter& rIter) const
     return nDepth;
 }
 
-int QtInstanceTreeView::iter_compare(const weld::TreeIter&, const 
weld::TreeIter&) const
-{
-    assert(false && "Not implemented yet");
-    return 0;
-}
-
 int QtInstanceTreeView::iter_n_children(const weld::TreeIter& rIter) const
 {
     const QtInstanceTreeIter& rQtIter = static_cast<const 
QtInstanceTreeIter&>(rIter);
diff --git a/vcl/source/weld/TreeView.cxx b/vcl/source/weld/TreeView.cxx
index 944c5a97d9f0..0904abe4c4db 100644
--- a/vcl/source/weld/TreeView.cxx
+++ b/vcl/source/weld/TreeView.cxx
@@ -177,6 +177,27 @@ bool weld::TreeView::iter_children(TreeIter& rIter) const
     return do_iter_children(rIter);
 }
 
+int weld::TreeView::iter_compare(const TreeIter& rIterA, const TreeIter& 
rIterB) const
+{
+    if (rIterA.equal(rIterB))
+        return 0;
+
+    std::unique_ptr<weld::TreeIter> pIter = make_iterator();
+    bool bValid = get_iter_first(*pIter);
+    while (bValid)
+    {
+        if (pIter->equal(rIterA))
+            return -1;
+        if (pIter->equal(rIterB))
+            return 1;
+
+        bValid = iter_next(*pIter);
+    }
+
+    assert(false && "None of the entries found in the tree");
+    return 0;
+}
+
 bool weld::TreeView::iter_has_child(const TreeIter& rIter) const
 {
     std::unique_ptr<weld::TreeIter> pIter = make_iterator(&rIter);
commit 2d5f23fd8c97fa5a4a93687beb50b5af2ae31ed9
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Jan 20 18:19:13 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Jan 22 11:15:39 2026 +0100

    tdf#130857 qt weld: Support "Form Properties" dialog
    
    This means that native Qt widgets are used for that dialog
    now when using the qt5 or qt6 VCL plugin and starting LO with
    environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
    
    The dialog can be triggered like this:
    
    * start Writer
    * "Form" -> "Form Navigator"
    * right-click on "Forms" to open the context menu
    * activate menu entry "New" -> "Form" and confirm
      the default name by pressing Enter
    * right-click on "Form" to open the context menu
    * activate the "Properties" menu entry
    
    Currently, alignment of some of the widgets isn't ideal,
    most likely because they are not yet evaluated in QtBuilder
    when processing the .ui file, but the dialog seems functional
    in a quick test.
    
    Change-Id: Ibf9638088124967e06df78d44903b64c87c0c875
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197685
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/qt5/QtInstanceBuilder.cxx b/vcl/qt5/QtInstanceBuilder.cxx
index b50050bec6a7..7a1fd50e17c1 100644
--- a/vcl/qt5/QtInstanceBuilder.cxx
+++ b/vcl/qt5/QtInstanceBuilder.cxx
@@ -237,6 +237,7 @@ bool QtInstanceBuilder::IsUIFileSupported(const OUString& 
rUIFile, const weld::W
         u"svx/ui/deletefooterdialog.ui"_ustr,
         u"svx/ui/deleteheaderdialog.ui"_ustr,
         u"svx/ui/fileexporteddialog.ui"_ustr,
+        u"svx/ui/formpropertydialog.ui"_ustr,
         u"svx/ui/gotopagedialog.ui"_ustr,
         u"svx/ui/passwd.ui"_ustr,
         u"svx/ui/querydeletethemedialog.ui"_ustr,
@@ -297,6 +298,14 @@ bool QtInstanceBuilder::IsUIFileSupported(const OUString& 
rUIFile, const weld::W
         u"modules/simpress/ui/annotationtagmenu.ui"_ustr,
         u"modules/simpress/ui/impressprinteroptions.ui"_ustr,
         u"modules/smath/ui/printeroptions.ui"_ustr,
+        u"modules/spropctrlr/ui/browserline.ui"_ustr,
+        u"modules/spropctrlr/ui/browserpage.ui"_ustr,
+        u"modules/spropctrlr/ui/combobox.ui"_ustr,
+        u"modules/spropctrlr/ui/formproperties.ui"_ustr,
+        u"modules/spropctrlr/ui/listbox.ui"_ustr,
+        u"modules/spropctrlr/ui/numericfield.ui"_ustr,
+        u"modules/spropctrlr/ui/textfield.ui"_ustr,
+        u"modules/spropctrlr/ui/urlcontrol.ui"_ustr,
         u"modules/swriter/ui/bibliofragment.ui"_ustr,
         u"modules/swriter/ui/columnpage.ui"_ustr,
         u"modules/swriter/ui/flddbpage.ui"_ustr,
commit ce1a575b48e4fd8a391676d7a62a53cbf21ff019
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Jan 20 18:17:32 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Jan 22 11:15:31 2026 +0100

    propctrlr: Resave .ui files used in "Form Properties" dlg with glade 3.40
    
    These are used for the "Form Properties" dialog that
    can be triggered like this:
    
    * start Writer
    * "Form" -> "Form Navigator"
    * right-click on "Forms" to open the context menu
    * activate menu entry "New" -> "Form" and confirm
      the default name by pressing Enter
    * right-click on "Form" to open the context menu
    * activate the "Properties" menu entry
    
    Change-Id: Iefdf94e7b5c72f02a7a74b7d0c7c8bf6ae9ff5e2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197684
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/extensions/uiconfig/spropctrlr/ui/combobox.ui 
b/extensions/uiconfig/spropctrlr/ui/combobox.ui
index ff220dcdcbef..b830b6c7e6fa 100644
--- a/extensions/uiconfig/spropctrlr/ui/combobox.ui
+++ b/extensions/uiconfig/spropctrlr/ui/combobox.ui
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
 <interface domain="pcr">
   <requires lib="gtk+" version="3.24"/>
   <object class="GtkComboBoxText" id="combobox">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
+    <property name="can-focus">False</property>
     <property name="hexpand">True</property>
-    <property name="has_entry">True</property>
+    <property name="has-entry">True</property>
     <child internal-child="entry">
       <object class="GtkEntry">
+        <property name="can-focus">True</property>
         <property name="truncate-multiline">True</property>
-        <property name="can_focus">True</property>
       </object>
     </child>
   </object>
diff --git a/extensions/uiconfig/spropctrlr/ui/listbox.ui 
b/extensions/uiconfig/spropctrlr/ui/listbox.ui
index b44862a53828..f5bba201ad08 100644
--- a/extensions/uiconfig/spropctrlr/ui/listbox.ui
+++ b/extensions/uiconfig/spropctrlr/ui/listbox.ui
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
 <interface domain="pcr">
   <requires lib="gtk+" version="3.24"/>
   <object class="GtkComboBoxText" id="listbox">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
+    <property name="can-focus">False</property>
     <property name="hexpand">True</property>
   </object>
 </interface>
diff --git a/extensions/uiconfig/spropctrlr/ui/numericfield.ui 
b/extensions/uiconfig/spropctrlr/ui/numericfield.ui
index 132b05b495bc..69b3ae92a4ed 100644
--- a/extensions/uiconfig/spropctrlr/ui/numericfield.ui
+++ b/extensions/uiconfig/spropctrlr/ui/numericfield.ui
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
 <interface domain="pcr">
   <requires lib="gtk+" version="3.24"/>
   <object class="GtkAdjustment" id="adjustment1">
     <property name="upper">100</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
+    <property name="step-increment">1</property>
+    <property name="page-increment">10</property>
   </object>
   <object class="GtkSpinButton" id="numericfield">
     <property name="visible">True</property>
-    <property name="can_focus">True</property>
+    <property name="can-focus">True</property>
     <property name="hexpand">True</property>
     <property name="truncate-multiline">True</property>
     <property name="adjustment">adjustment1</property>
diff --git a/extensions/uiconfig/spropctrlr/ui/textfield.ui 
b/extensions/uiconfig/spropctrlr/ui/textfield.ui
index 358bbe2d082d..dd32f8a14da2 100644
--- a/extensions/uiconfig/spropctrlr/ui/textfield.ui
+++ b/extensions/uiconfig/spropctrlr/ui/textfield.ui
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
 <interface domain="pcr">
   <requires lib="gtk+" version="3.24"/>
   <object class="GtkEntry" id="textfield">
     <property name="visible">True</property>
-    <property name="can_focus">True</property>
-    <property name="truncate-multiline">True</property>
+    <property name="can-focus">True</property>
     <property name="hexpand">True</property>
+    <property name="truncate-multiline">True</property>
   </object>
 </interface>
diff --git a/extensions/uiconfig/spropctrlr/ui/urlcontrol.ui 
b/extensions/uiconfig/spropctrlr/ui/urlcontrol.ui
index 83bdffe58c85..05a882e7b012 100644
--- a/extensions/uiconfig/spropctrlr/ui/urlcontrol.ui
+++ b/extensions/uiconfig/spropctrlr/ui/urlcontrol.ui
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
 <interface domain="pcr">
   <requires lib="gtk+" version="3.24"/>
   <object class="GtkComboBoxText" id="urlcontrol">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
+    <property name="can-focus">False</property>
     <property name="hexpand">True</property>
-    <property name="has_entry">True</property>
+    <property name="has-entry">True</property>
     <child internal-child="entry">
       <object class="GtkEntry">
+        <property name="can-focus">True</property>
         <property name="truncate-multiline">True</property>
-        <property name="can_focus">True</property>
       </object>
     </child>
   </object>

Reply via email to