extensions/source/propctrlr/selectlabeldialog.cxx |  420 +++++++++++-----------
 extensions/source/propctrlr/selectlabeldialog.hxx |   62 +--
 extensions/uiconfig/spropctrlr/ui/multiline.ui    |   91 ++--
 solenv/clang-format/excludelist                   |    2 
 vcl/qt5/QtInstanceBuilder.cxx                     |    2 
 5 files changed, 296 insertions(+), 281 deletions(-)

New commits:
commit da604bb33002827dc38ad77240a3c7233561a7ae
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Feb 25 00:38:16 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Wed Feb 25 09:03:39 2026 +0100

    propctrlr: clang-format OSelectLabelDialog code
    
    This in particular gets rid of an extra level of
    indentation.
    
    Change-Id: Ief9a3867cc91db520b8e1d43271a76ecaacede25
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200276
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/extensions/source/propctrlr/selectlabeldialog.cxx 
b/extensions/source/propctrlr/selectlabeldialog.cxx
index e1f55befded1..c4ae151e65ed 100644
--- a/extensions/source/propctrlr/selectlabeldialog.cxx
+++ b/extensions/source/propctrlr/selectlabeldialog.cxx
@@ -37,246 +37,256 @@
 #include <tools/debug.hxx>
 #include <vcl/weld/Builder.hxx>
 
-
 namespace pcr
 {
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::lang;
+
+// OSelectLabelDialog
+OSelectLabelDialog::OSelectLabelDialog(weld::Window* pParent,
+                                       Reference<XPropertySet> const& 
_xControlModel)
+    : GenericDialogController(pParent, 
u"modules/spropctrlr/ui/labelselectiondialog.ui"_ustr,
+                              u"LabelSelectionDialog"_ustr)
+    , m_xControlModel(_xControlModel)
+    , m_bLastSelected(false)
+    , m_bHaveAssignableControl(false)
+    , m_xMainDesc(m_xBuilder->weld_label(u"label"_ustr))
+    , m_xControlTree(m_xBuilder->weld_tree_view(u"control"_ustr))
+    , m_xScratchIter(m_xControlTree->make_iterator())
+    , m_xNoAssignment(m_xBuilder->weld_check_button(u"noassignment"_ustr))
+{
+    m_xControlTree->connect_selection_changed(LINK(this, OSelectLabelDialog, 
OnEntrySelected));
+    m_xControlTree->set_size_request(-1, m_xControlTree->get_height_rows(8));
+
+    // fill the description
+    OUString sDescription = m_xMainDesc->get_label();
+    sal_Int16 nClassID = FormComponentType::CONTROL;
+    if (::comphelper::hasProperty(PROPERTY_CLASSID, m_xControlModel))
+        nClassID = 
::comphelper::getINT16(m_xControlModel->getPropertyValue(PROPERTY_CLASSID));
+
+    sDescription = sDescription.replaceAll("$controlclass$",
+                                           GetUIHeadlineName(nClassID, 
Any(m_xControlModel)));
+    OUString sName = 
::comphelper::getString(m_xControlModel->getPropertyValue(PROPERTY_NAME));
+    sDescription = sDescription.replaceAll("$controlname$", sName);
+    m_xMainDesc->set_label(sDescription);
+
+    // search for the root of the form hierarchy
+    Reference<XChild> xCont(m_xControlModel, UNO_QUERY);
+    Reference<XInterface> xSearch(xCont.is() ? xCont->getParent() : 
Reference<XInterface>());
+    Reference<XResultSet> xParentAsResultSet(xSearch, UNO_QUERY);
+    while (xParentAsResultSet.is())
+    {
+        xCont.set(xSearch, UNO_QUERY);
+        xSearch = xCont.is() ? xCont->getParent() : Reference<XInterface>();
+        xParentAsResultSet.set(xSearch, UNO_QUERY);
+    }
 
-
-    using namespace ::com::sun::star::uno;
-    using namespace ::com::sun::star::container;
-    using namespace ::com::sun::star::beans;
-    using namespace ::com::sun::star::form;
-    using namespace ::com::sun::star::sdbc;
-    using namespace ::com::sun::star::lang;
-
-
-    // OSelectLabelDialog
-    OSelectLabelDialog::OSelectLabelDialog(weld::Window* pParent, Reference< 
XPropertySet > const & _xControlModel)
-        : GenericDialogController(pParent, 
u"modules/spropctrlr/ui/labelselectiondialog.ui"_ustr, 
u"LabelSelectionDialog"_ustr)
-        , m_xControlModel(_xControlModel)
-        , m_bLastSelected(false)
-        , m_bHaveAssignableControl(false)
-        , m_xMainDesc(m_xBuilder->weld_label(u"label"_ustr))
-        , m_xControlTree(m_xBuilder->weld_tree_view(u"control"_ustr))
-        , m_xScratchIter(m_xControlTree->make_iterator())
-        , m_xNoAssignment(m_xBuilder->weld_check_button(u"noassignment"_ustr))
+    // and insert all entries below this root into the listbox
+    if (xSearch.is())
     {
-        m_xControlTree->connect_selection_changed(LINK(this, 
OSelectLabelDialog, OnEntrySelected));
-        m_xControlTree->set_size_request(-1, 
m_xControlTree->get_height_rows(8));
-
-        // fill the description
-        OUString sDescription = m_xMainDesc->get_label();
-        sal_Int16 nClassID = FormComponentType::CONTROL;
-        if (::comphelper::hasProperty(PROPERTY_CLASSID, m_xControlModel))
-            nClassID = 
::comphelper::getINT16(m_xControlModel->getPropertyValue(PROPERTY_CLASSID));
-
-        sDescription = sDescription.replaceAll("$controlclass$",
-            GetUIHeadlineName(nClassID, Any(m_xControlModel)));
-        OUString sName = 
::comphelper::getString(m_xControlModel->getPropertyValue(PROPERTY_NAME));
-        sDescription = sDescription.replaceAll("$controlname$", sName);
-        m_xMainDesc->set_label(sDescription);
-
-        // search for the root of the form hierarchy
-        Reference< XChild >  xCont(m_xControlModel, UNO_QUERY);
-        Reference< XInterface >  xSearch( xCont.is() ? xCont->getParent() : 
Reference< XInterface > ());
-        Reference< XResultSet >  xParentAsResultSet(xSearch, UNO_QUERY);
-        while (xParentAsResultSet.is())
+        // check which service the allowed components must support
+        sal_Int16 nClassId = 0;
+        try
         {
-            xCont.set(xSearch, UNO_QUERY);
-            xSearch = xCont.is() ? xCont->getParent() : Reference< XInterface 
> ();
-            xParentAsResultSet.set(xSearch, UNO_QUERY);
+            nClassId = 
::comphelper::getINT16(m_xControlModel->getPropertyValue(PROPERTY_CLASSID));
         }
-
-        // and insert all entries below this root into the listbox
-        if (xSearch.is())
+        catch (...)
         {
-            // check which service the allowed components must support
-            sal_Int16 nClassId = 0;
-            try { nClassId = 
::comphelper::getINT16(m_xControlModel->getPropertyValue(PROPERTY_CLASSID)); } 
catch(...) { }
-            m_sRequiredService = (FormComponentType::RADIOBUTTON == nClassId) 
? SERVICE_COMPONENT_GROUPBOX : SERVICE_COMPONENT_FIXEDTEXT;
-            m_aRequiredControlImage = (FormComponentType::RADIOBUTTON == 
nClassId) ? RID_EXTBMP_GROUPBOX : RID_EXTBMP_FIXEDTEXT;
-
-            // calc the currently set label control (so InsertEntries can calc 
m_xInitialSelection)
-            Any aCurrentLabelControl( 
m_xControlModel->getPropertyValue(PROPERTY_CONTROLLABEL) );
-            DBG_ASSERT((aCurrentLabelControl.getValueTypeClass() == 
TypeClass_INTERFACE) || !aCurrentLabelControl.hasValue(),
-
-                "OSelectLabelDialog::OSelectLabelDialog : invalid ControlLabel 
property !");
-            if (aCurrentLabelControl.hasValue())
-                aCurrentLabelControl >>= m_xInitialLabelControl;
-
-            // insert the root
-            OUString sRootName(PcrRes(RID_STR_FORMS));
-            m_xControlTree->insert(nullptr, -1, &sRootName, nullptr,
-                                   nullptr, nullptr, false, 
m_xScratchIter.get());
-            m_xControlTree->set_image(*m_xScratchIter, RID_EXTBMP_FORMS);
-
-            // build the tree
-            m_xInitialSelection.reset();
-            m_bHaveAssignableControl = false;
-            std::unique_ptr<weld::TreeIter> xRoot = 
m_xControlTree->make_iterator();
-            m_xControlTree->get_iter_first(*xRoot);
-            InsertEntries(xSearch, *xRoot);
-            m_xControlTree->expand_row(*xRoot);
         }
+        m_sRequiredService = (FormComponentType::RADIOBUTTON == nClassId)
+                                 ? SERVICE_COMPONENT_GROUPBOX
+                                 : SERVICE_COMPONENT_FIXEDTEXT;
+        m_aRequiredControlImage = (FormComponentType::RADIOBUTTON == nClassId)
+                                      ? RID_EXTBMP_GROUPBOX
+                                      : RID_EXTBMP_FIXEDTEXT;
+
+        // calc the currently set label control (so InsertEntries can calc 
m_xInitialSelection)
+        Any 
aCurrentLabelControl(m_xControlModel->getPropertyValue(PROPERTY_CONTROLLABEL));
+        DBG_ASSERT((aCurrentLabelControl.getValueTypeClass() == 
TypeClass_INTERFACE)
+                       || !aCurrentLabelControl.hasValue(),
+
+                   "OSelectLabelDialog::OSelectLabelDialog : invalid 
ControlLabel property !");
+        if (aCurrentLabelControl.hasValue())
+            aCurrentLabelControl >>= m_xInitialLabelControl;
+
+        // insert the root
+        OUString sRootName(PcrRes(RID_STR_FORMS));
+        m_xControlTree->insert(nullptr, -1, &sRootName, nullptr, nullptr, 
nullptr, false,
+                               m_xScratchIter.get());
+        m_xControlTree->set_image(*m_xScratchIter, RID_EXTBMP_FORMS);
+
+        // build the tree
+        m_xInitialSelection.reset();
+        m_bHaveAssignableControl = false;
+        std::unique_ptr<weld::TreeIter> xRoot = 
m_xControlTree->make_iterator();
+        m_xControlTree->get_iter_first(*xRoot);
+        InsertEntries(xSearch, *xRoot);
+        m_xControlTree->expand_row(*xRoot);
+    }
 
-        if (m_xInitialSelection)
-        {
-            m_xControlTree->scroll_to_row(*m_xInitialSelection);
-            m_xControlTree->select(*m_xInitialSelection);
-        }
-        else
-        {
-            m_xControlTree->scroll_to_row(0);
-            m_xControlTree->unselect_all();
-            m_xNoAssignment->set_active(true);
-        }
+    if (m_xInitialSelection)
+    {
+        m_xControlTree->scroll_to_row(*m_xInitialSelection);
+        m_xControlTree->select(*m_xInitialSelection);
+    }
+    else
+    {
+        m_xControlTree->scroll_to_row(0);
+        m_xControlTree->unselect_all();
+        m_xNoAssignment->set_active(true);
+    }
 
-        if (!m_bHaveAssignableControl)
-        {   // no controls which can be assigned
-            m_xNoAssignment->set_active(true);
-            m_xNoAssignment->set_sensitive(false);
-        }
+    if (!m_bHaveAssignableControl)
+    { // no controls which can be assigned
+        m_xNoAssignment->set_active(true);
+        m_xNoAssignment->set_sensitive(false);
+    }
 
-        m_xLastSelected = m_xControlTree->make_iterator(nullptr);
+    m_xLastSelected = m_xControlTree->make_iterator(nullptr);
 
-        m_xNoAssignment->connect_toggled(LINK(this, OSelectLabelDialog, 
OnNoAssignmentClicked));
-        OnNoAssignmentClicked(*m_xNoAssignment);
-    }
+    m_xNoAssignment->connect_toggled(LINK(this, OSelectLabelDialog, 
OnNoAssignmentClicked));
+    OnNoAssignmentClicked(*m_xNoAssignment);
+}
 
-    OSelectLabelDialog::~OSelectLabelDialog()
-    {
-    }
+OSelectLabelDialog::~OSelectLabelDialog() {}
 
-    sal_Int32 OSelectLabelDialog::InsertEntries(const Reference< XInterface > 
& _xContainer, const weld::TreeIter& rContainerEntry)
+sal_Int32 OSelectLabelDialog::InsertEntries(const Reference<XInterface>& 
_xContainer,
+                                            const weld::TreeIter& 
rContainerEntry)
+{
+    Reference<XIndexAccess> xContainer(_xContainer, UNO_QUERY);
+    if (!xContainer.is())
+        return 0;
+
+    sal_Int32 nChildren = 0;
+    OUString sName;
+    Reference<XPropertySet> xAsSet;
+    for (sal_Int32 i = 0; i < xContainer->getCount(); ++i)
     {
-        Reference< XIndexAccess >  xContainer(_xContainer, UNO_QUERY);
-        if (!xContainer.is())
-            return 0;
-
-        sal_Int32 nChildren = 0;
-        OUString sName;
-        Reference< XPropertySet >  xAsSet;
-        for (sal_Int32 i=0; i<xContainer->getCount(); ++i)
+        xContainer->getByIndex(i) >>= xAsSet;
+        if (!xAsSet.is())
         {
-            xContainer->getByIndex(i) >>= xAsSet;
-            if (!xAsSet.is())
-            {
-                SAL_INFO("extensions.propctrlr", 
"OSelectLabelDialog::InsertEntries : strange : a form component which isn't a 
property set !");
-                continue;
-            }
+            SAL_INFO("extensions.propctrlr", 
"OSelectLabelDialog::InsertEntries : strange : a form "
+                                             "component which isn't a property 
set !");
+            continue;
+        }
 
-            if (!::comphelper::hasProperty(PROPERTY_NAME, xAsSet))
-                // we need at least a name for displaying ...
-                continue;
-            sName = 
::comphelper::getString(xAsSet->getPropertyValue(PROPERTY_NAME));
-
-            // we need to check if the control model supports the required 
service
-            Reference< XServiceInfo >  xInfo(xAsSet, UNO_QUERY);
-            if (!xInfo.is())
-                continue;
-
-            if (!xInfo->supportsService(m_sRequiredService))
-            {   // perhaps it is a container
-                Reference< XIndexAccess >  xCont(xAsSet, UNO_QUERY);
-                if (xCont.is() && xCont->getCount())
-                {   // yes -> step down
-                    m_xControlTree->insert(&rContainerEntry, -1, &sName, 
nullptr,
-                                           nullptr, nullptr, false, 
m_xScratchIter.get());
-                    m_xControlTree->set_image(*m_xScratchIter, 
RID_EXTBMP_FORM);
-                    auto xIter = 
m_xControlTree->make_iterator(&rContainerEntry);
-                    m_xControlTree->iter_nth_child(*xIter, nChildren);
-                    sal_Int32 nContChildren = InsertEntries(xCont, *xIter);
-                    if (nContChildren)
-                    {
-                        m_xControlTree->expand_row(*xIter);
-                        ++nChildren;
-                    }
-                    else
-                    {   // oops, no valid children -> remove the entry
-                        m_xControlTree->remove(*xIter);
-                    }
+        if (!::comphelper::hasProperty(PROPERTY_NAME, xAsSet))
+            // we need at least a name for displaying ...
+            continue;
+        sName = 
::comphelper::getString(xAsSet->getPropertyValue(PROPERTY_NAME));
+
+        // we need to check if the control model supports the required service
+        Reference<XServiceInfo> xInfo(xAsSet, UNO_QUERY);
+        if (!xInfo.is())
+            continue;
+
+        if (!xInfo->supportsService(m_sRequiredService))
+        { // perhaps it is a container
+            Reference<XIndexAccess> xCont(xAsSet, UNO_QUERY);
+            if (xCont.is() && xCont->getCount())
+            { // yes -> step down
+                m_xControlTree->insert(&rContainerEntry, -1, &sName, nullptr, 
nullptr, nullptr,
+                                       false, m_xScratchIter.get());
+                m_xControlTree->set_image(*m_xScratchIter, RID_EXTBMP_FORM);
+                auto xIter = m_xControlTree->make_iterator(&rContainerEntry);
+                m_xControlTree->iter_nth_child(*xIter, nChildren);
+                sal_Int32 nContChildren = InsertEntries(xCont, *xIter);
+                if (nContChildren)
+                {
+                    m_xControlTree->expand_row(*xIter);
+                    ++nChildren;
+                }
+                else
+                { // oops, no valid children -> remove the entry
+                    m_xControlTree->remove(*xIter);
                 }
-                continue;
             }
+            continue;
+        }
 
-            // get the label
-            if (!::comphelper::hasProperty(PROPERTY_LABEL, xAsSet))
-                continue;
-
-            OUString sDisplayName =
-                
::comphelper::getString(xAsSet->getPropertyValue(PROPERTY_LABEL)) +
-                " (" + sName + ")";
+        // get the label
+        if (!::comphelper::hasProperty(PROPERTY_LABEL, xAsSet))
+            continue;
 
-            // all requirements met -> insert
-            m_xUserData.emplace_back(new Reference<XPropertySet>(xAsSet));
-            OUString sId(weld::toId(m_xUserData.back().get()));
-            m_xControlTree->insert(&rContainerEntry, -1, &sDisplayName, &sId, 
nullptr, nullptr, false, m_xScratchIter.get());
-            m_xControlTree->set_image(*m_xScratchIter, 
m_aRequiredControlImage);
+        OUString sDisplayName = 
::comphelper::getString(xAsSet->getPropertyValue(PROPERTY_LABEL))
+                                + " (" + sName + ")";
 
-            if (m_xInitialLabelControl == xAsSet)
-            {
-                m_xInitialSelection = 
m_xControlTree->make_iterator(&rContainerEntry);
-                m_xControlTree->iter_nth_child(*m_xInitialSelection, 
nChildren);
-            }
+        // all requirements met -> insert
+        m_xUserData.emplace_back(new Reference<XPropertySet>(xAsSet));
+        OUString sId(weld::toId(m_xUserData.back().get()));
+        m_xControlTree->insert(&rContainerEntry, -1, &sDisplayName, &sId, 
nullptr, nullptr, false,
+                               m_xScratchIter.get());
+        m_xControlTree->set_image(*m_xScratchIter, m_aRequiredControlImage);
 
-            ++nChildren;
-            m_bHaveAssignableControl = true;
+        if (m_xInitialLabelControl == xAsSet)
+        {
+            m_xInitialSelection = 
m_xControlTree->make_iterator(&rContainerEntry);
+            m_xControlTree->iter_nth_child(*m_xInitialSelection, nChildren);
         }
 
-        return nChildren;
+        ++nChildren;
+        m_bHaveAssignableControl = true;
     }
 
-    IMPL_LINK(OSelectLabelDialog, OnEntrySelected, weld::TreeView&, rLB, void)
+    return nChildren;
+}
+
+IMPL_LINK(OSelectLabelDialog, OnEntrySelected, weld::TreeView&, rLB, void)
+{
+    DBG_ASSERT(&rLB == m_xControlTree.get(),
+               "OSelectLabelDialog::OnEntrySelected : where did this come from 
?");
+    std::unique_ptr<weld::TreeIter> xIter = m_xControlTree->get_selected();
+    OUString sData = xIter ? m_xControlTree->get_id(*xIter) : OUString();
+    if (!sData.isEmpty())
+        m_xSelectedControl.set(*weld::fromId<Reference<XPropertySet>*>(sData));
+    m_xNoAssignment->set_active(sData.isEmpty());
+}
+
+IMPL_LINK(OSelectLabelDialog, OnNoAssignmentClicked, weld::Toggleable&, 
rButton, void)
+{
+    DBG_ASSERT(&rButton == m_xNoAssignment.get(),
+               "OSelectLabelDialog::OnNoAssignmentClicked : where did this 
come from ?");
+
+    if (m_xNoAssignment->get_active())
     {
-        DBG_ASSERT(&rLB == m_xControlTree.get(), 
"OSelectLabelDialog::OnEntrySelected : where did this come from ?");
-        std::unique_ptr<weld::TreeIter> xIter = m_xControlTree->get_selected();
-        OUString sData = xIter ? m_xControlTree->get_id(*xIter) : OUString();
-        if (!sData.isEmpty())
-            
m_xSelectedControl.set(*weld::fromId<Reference<XPropertySet>*>(sData));
-        m_xNoAssignment->set_active(sData.isEmpty());
+        std::unique_ptr<weld::TreeIter> pSelected = 
m_xControlTree->get_selected();
+        m_bLastSelected = bool(pSelected);
+        if (pSelected)
+            m_xLastSelected = std::move(pSelected);
     }
-
-    IMPL_LINK(OSelectLabelDialog, OnNoAssignmentClicked, weld::Toggleable&, 
rButton, void)
+    else
     {
-        DBG_ASSERT(&rButton == m_xNoAssignment.get(), 
"OSelectLabelDialog::OnNoAssignmentClicked : where did this come from ?");
-
-        if (m_xNoAssignment->get_active())
+        DBG_ASSERT(m_bHaveAssignableControl, 
"OSelectLabelDialog::OnNoAssignmentClicked");
+        // search the first assignable entry
+        auto xSearch = m_xControlTree->make_iterator(nullptr);
+        bool bSearch = m_xControlTree->get_iter_first(*xSearch);
+        while (bSearch)
         {
-            std::unique_ptr<weld::TreeIter> pSelected = 
m_xControlTree->get_selected();
-            m_bLastSelected = bool(pSelected);
-            if (pSelected)
-                m_xLastSelected = std::move(pSelected);
+            if (m_xControlTree->get_id(*xSearch).toInt64())
+                break;
+            bSearch = m_xControlTree->iter_next(*xSearch);
         }
-        else
+        // and select it
+        if (bSearch)
         {
-            DBG_ASSERT(m_bHaveAssignableControl, 
"OSelectLabelDialog::OnNoAssignmentClicked");
-            // search the first assignable entry
-            auto xSearch = m_xControlTree->make_iterator(nullptr);
-            bool bSearch = m_xControlTree->get_iter_first(*xSearch);
-            while (bSearch)
-            {
-                if (m_xControlTree->get_id(*xSearch).toInt64())
-                    break;
-                bSearch = m_xControlTree->iter_next(*xSearch);
-            }
-            // and select it
-            if (bSearch)
-            {
-                m_xControlTree->copy_iterator(*xSearch, *m_xLastSelected);
-                m_xControlTree->select(*m_xLastSelected);
-                m_bLastSelected = true;
-            }
-        }
-
-        if (m_bLastSelected)
-        {
-            if (!m_xNoAssignment->get_active())
-                m_xControlTree->select(*m_xLastSelected);
-            else
-                m_xControlTree->unselect(*m_xLastSelected);
+            m_xControlTree->copy_iterator(*xSearch, *m_xLastSelected);
+            m_xControlTree->select(*m_xLastSelected);
+            m_bLastSelected = true;
         }
     }
-}   // namespace pcr
 
+    if (m_bLastSelected)
+    {
+        if (!m_xNoAssignment->get_active())
+            m_xControlTree->select(*m_xLastSelected);
+        else
+            m_xControlTree->unselect(*m_xLastSelected);
+    }
+}
+} // namespace pcr
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/propctrlr/selectlabeldialog.hxx 
b/extensions/source/propctrlr/selectlabeldialog.hxx
index 3aa693a6cf02..6a61fb9d0171 100644
--- a/extensions/source/propctrlr/selectlabeldialog.hxx
+++ b/extensions/source/propctrlr/selectlabeldialog.hxx
@@ -26,39 +26,45 @@
 
 namespace pcr
 {
-    // OSelectLabelDialog
-    class OSelectLabelDialog final : public weld::GenericDialogController
-    {
-        css::uno::Reference< css::beans::XPropertySet >   m_xControlModel;
-        OUString m_sRequiredService;
-        OUString m_aRequiredControlImage;
-        std::unique_ptr<weld::TreeIter> m_xInitialSelection;
-        // the entry data of the listbox entries
-        
std::vector<std::unique_ptr<css::uno::Reference<css::beans::XPropertySet>>> 
m_xUserData;
-        css::uno::Reference< css::beans::XPropertySet >   
m_xInitialLabelControl;
+// OSelectLabelDialog
+class OSelectLabelDialog final : public weld::GenericDialogController
+{
+    css::uno::Reference<css::beans::XPropertySet> m_xControlModel;
+    OUString m_sRequiredService;
+    OUString m_aRequiredControlImage;
+    std::unique_ptr<weld::TreeIter> m_xInitialSelection;
+    // the entry data of the listbox entries
+    
std::vector<std::unique_ptr<css::uno::Reference<css::beans::XPropertySet>>> 
m_xUserData;
+    css::uno::Reference<css::beans::XPropertySet> m_xInitialLabelControl;
 
-        css::uno::Reference< css::beans::XPropertySet >   m_xSelectedControl;
-        std::unique_ptr<weld::TreeIter> m_xLastSelected;
-        bool m_bLastSelected;
-        bool m_bHaveAssignableControl;
+    css::uno::Reference<css::beans::XPropertySet> m_xSelectedControl;
+    std::unique_ptr<weld::TreeIter> m_xLastSelected;
+    bool m_bLastSelected;
+    bool m_bHaveAssignableControl;
 
-        std::unique_ptr<weld::Label> m_xMainDesc;
-        std::unique_ptr<weld::TreeView> m_xControlTree;
-        std::unique_ptr<weld::TreeIter> m_xScratchIter;
-        std::unique_ptr<weld::CheckButton> m_xNoAssignment;
+    std::unique_ptr<weld::Label> m_xMainDesc;
+    std::unique_ptr<weld::TreeView> m_xControlTree;
+    std::unique_ptr<weld::TreeIter> m_xScratchIter;
+    std::unique_ptr<weld::CheckButton> m_xNoAssignment;
 
-    public:
-        OSelectLabelDialog(weld::Window* pParent, css::uno::Reference< 
css::beans::XPropertySet > const & _xControlModel);
-        virtual ~OSelectLabelDialog() override;
+public:
+    OSelectLabelDialog(weld::Window* pParent,
+                       css::uno::Reference<css::beans::XPropertySet> const& 
_xControlModel);
+    virtual ~OSelectLabelDialog() override;
 
-        css::uno::Reference< css::beans::XPropertySet >  GetSelected() const { 
return m_xNoAssignment->get_active() ? css::uno::Reference< 
css::beans::XPropertySet > () : m_xSelectedControl; }
+    css::uno::Reference<css::beans::XPropertySet> GetSelected() const
+    {
+        return m_xNoAssignment->get_active() ? 
css::uno::Reference<css::beans::XPropertySet>()
+                                             : m_xSelectedControl;
+    }
 
-    private:
-        sal_Int32 InsertEntries(const css::uno::Reference< 
css::uno::XInterface >& _xContainer, const weld::TreeIter& rContainerEntry);
+private:
+    sal_Int32 InsertEntries(const css::uno::Reference<css::uno::XInterface>& 
_xContainer,
+                            const weld::TreeIter& rContainerEntry);
 
-        DECL_LINK(OnEntrySelected, weld::TreeView&, void);
-        DECL_LINK(OnNoAssignmentClicked, weld::Toggleable&, void);
-    };
-}   // namespace pcr
+    DECL_LINK(OnEntrySelected, weld::TreeView&, void);
+    DECL_LINK(OnNoAssignmentClicked, weld::Toggleable&, void);
+};
+} // namespace pcr
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index 6a4c3b928f4f..237644e85865 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -3552,8 +3552,6 @@ extensions/source/propctrlr/propeventtranslation.hxx
 extensions/source/propctrlr/proplinelistener.hxx
 extensions/source/propctrlr/pushbuttonnavigation.cxx
 extensions/source/propctrlr/pushbuttonnavigation.hxx
-extensions/source/propctrlr/selectlabeldialog.cxx
-extensions/source/propctrlr/selectlabeldialog.hxx
 extensions/source/propctrlr/sqlcommanddesign.cxx
 extensions/source/propctrlr/sqlcommanddesign.hxx
 extensions/source/propctrlr/standardcontrol.cxx
commit 0e40ffbaebce231d432cdbbb6cb9e9fb867fb022
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Feb 25 00:32:29 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Wed Feb 25 09:03:32 2026 +0100

    tdf#130857 qt weld: Support .ui files used in "Properties: Text Box" dlg
    
    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" -> "Text Box"
    * click and drag mouse in the document to insert the
      text box
    * double-click on the inserted text box to open the
      properties dialog
    
    Previously, the top-level dialog was declared as supported
    but those 2 UI files used were not, resulting in an assert
    getting triggered:
    
        soffice.bin: 
/home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtInstanceContainer.cxx:27:
 auto QtInstanceContainer::move(weld::Widget *, weld::Container *)::(anonymous 
class)::operator()() const: Assertion `pQtInstanceWidget' failed.
    
    Change-Id: I2c58100fd86a6a8875c6e2004fd49bc05ba918ce
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200275
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/qt5/QtInstanceBuilder.cxx b/vcl/qt5/QtInstanceBuilder.cxx
index 4670c7f1327d..a247c1128ecc 100644
--- a/vcl/qt5/QtInstanceBuilder.cxx
+++ b/vcl/qt5/QtInstanceBuilder.cxx
@@ -353,9 +353,11 @@ constexpr auto SUPPORTED_WITH_QT_PARENT = 
frozen::make_unordered_set<std::u16str
     u"modules/smath/ui/printeroptions.ui",
     u"modules/spropctrlr/ui/browserline.ui",
     u"modules/spropctrlr/ui/browserpage.ui",
+    u"modules/spropctrlr/ui/colorlistbox.ui",
     u"modules/spropctrlr/ui/combobox.ui",
     u"modules/spropctrlr/ui/formproperties.ui",
     u"modules/spropctrlr/ui/listbox.ui",
+    u"modules/spropctrlr/ui/multiline.ui",
     u"modules/spropctrlr/ui/numericfield.ui",
     u"modules/spropctrlr/ui/textfield.ui",
     u"modules/spropctrlr/ui/urlcontrol.ui",
commit 2dbed928c771dd8a8280164e8c21b476c66bded1
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Feb 25 00:18:15 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Wed Feb 25 09:03:24 2026 +0100

    spropctrlr: Resave multiline.ui with glade 3.40
    
    This .ui file gets used in the dialog that can
    be triggered like this:
    
    * start Writer
    * "Form" -> "Text Box"
    * click and drag mouse in the document to insert the
      text box
    * double-click on the inserted text box to open the
      properties dialog
    
    Change-Id: I1a66e5479f06faa855d1c174c13968a424b89c17
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200274
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/extensions/uiconfig/spropctrlr/ui/multiline.ui 
b/extensions/uiconfig/spropctrlr/ui/multiline.ui
index 9304d21cc4a6..dbe860a0bcd1 100644
--- a/extensions/uiconfig/spropctrlr/ui/multiline.ui
+++ b/extensions/uiconfig/spropctrlr/ui/multiline.ui
@@ -1,27 +1,62 @@
 <?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="GtkBox" id="multiline">
+    <property name="visible">True</property>
+    <property name="can-focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="spacing">6</property>
+    <child>
+      <object class="GtkEntry" id="entry">
+        <property name="visible">True</property>
+        <property name="can-focus">True</property>
+        <property name="hexpand">True</property>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkMenuButton" id="button">
+        <property name="visible">True</property>
+        <property name="can-focus">True</property>
+        <property name="receives-default">True</property>
+        <property name="tooltip-text" translatable="yes" 
context="multiline|tooltip">Multiline Editing</property>
+        <property name="draw-indicator">True</property>
+        <child>
+          <placeholder/>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">1</property>
+      </packing>
+    </child>
+  </object>
   <object class="GtkPopover" id="popover">
-    <property name="can_focus">False</property>
-    <property name="no_show_all">True</property>
+    <property name="can-focus">False</property>
+    <property name="no-show-all">True</property>
     <property name="constrain-to">none</property>
     <child>
       <object class="GtkBox" id="container">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can-focus">False</property>
         <property name="orientation">vertical</property>
         <property name="spacing">6</property>
         <child>
           <object class="GtkScrolledWindow" id="textviewscroll">
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="shadow_type">in</property>
+            <property name="can-focus">True</property>
+            <property name="shadow-type">in</property>
             <child>
               <object class="GtkTextView" id="textview">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="wrap_mode">word</property>
+                <property name="can-focus">True</property>
+                <property name="wrap-mode">word</property>
               </object>
             </child>
           </object>
@@ -35,8 +70,8 @@
           <object class="GtkButton" id="ok">
             <property name="label" translatable="yes" 
context="stock">_OK</property>
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">True</property>
             <property name="use-underline">True</property>
           </object>
           <packing>
@@ -48,40 +83,4 @@
       </object>
     </child>
   </object>
-  <object class="GtkBox" id="multiline">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="hexpand">True</property>
-    <property name="spacing">6</property>
-    <child>
-      <object class="GtkEntry" id="entry">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="hexpand">True</property>
-      </object>
-      <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="position">0</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkMenuButton" id="button">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
-        <property name="tooltip_text" translatable="yes" 
context="multiline|tooltip">Multiline Editing</property>
-        <property name="draw_indicator">True</property>
-        <property name="label" translatable="no"></property>
-        <child>
-          <placeholder/>
-        </child>
-      </object>
-      <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="position">1</property>
-      </packing>
-    </child>
-  </object>
 </interface>

Reply via email to