vcl/inc/qt5/QtInstanceToolbar.hxx |    8 +
 vcl/qt5/QtInstanceToolbar.cxx     |  158 +++++++++++++++++---------------------
 2 files changed, 79 insertions(+), 87 deletions(-)

New commits:
commit ad05c593131810f24896005fb08a6ccfd08aef1a
Author:     Michael Weghorn <[email protected]>
AuthorDate: Fri Feb 6 18:34:49 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Feb 7 06:32:40 2026 +0100

    tdf#130857 qt weld: Implement QtInstanceToolbar::set_item_label
    
    Change-Id: Ie1456ae53448e1d76ff28f343cc10e20834d8ac9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198863
    Tested-by: Jenkins
    Reviewed-by: Dan Williams <[email protected]>
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/qt5/QtInstanceToolbar.cxx b/vcl/qt5/QtInstanceToolbar.cxx
index 056c57a50c88..72be74e16a42 100644
--- a/vcl/qt5/QtInstanceToolbar.cxx
+++ b/vcl/qt5/QtInstanceToolbar.cxx
@@ -110,9 +110,11 @@ bool QtInstanceToolbar::get_item_visible(const OUString& 
rIdent) const
     return bVisible;
 }
 
-void QtInstanceToolbar::set_item_label(const OUString&, const OUString&)
+void QtInstanceToolbar::set_item_label(const OUString& rIdent, const OUString& 
rLabel)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] { 
getToolButton(rIdent).setText(toQString(rLabel)); });
 }
 
 OUString QtInstanceToolbar::get_item_label(const OUString&) const
@@ -207,9 +209,11 @@ void QtInstanceToolbar::set_item_ident(int nIndex, const 
OUString& rIdent)
     GetQtInstance().RunInMainThread([&] { 
getWidget(nIndex).setObjectName(toQString(rIdent)); });
 }
 
-void QtInstanceToolbar::set_item_label(int, const OUString&)
+void QtInstanceToolbar::set_item_label(int nIndex, const OUString& rLabel)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] { 
getToolButton(nIndex).setText(toQString(rLabel)); });
 }
 
 void QtInstanceToolbar::set_item_image(int nIndex,
commit d93026f7432368260105acbf4605640ca72981a5
Author:     Michael Weghorn <[email protected]>
AuthorDate: Fri Feb 6 18:21:25 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Feb 7 06:32:32 2026 +0100

    tdf#130857 qt weld: Implement 2 more index-based 
QtInstanceToolbar::set_item_*
    
    Implement the index-based variants in an equivalent
    way to the ones taken an ID param instead.
    
    Change-Id: I68f16f519f310e7d17bc5ccc05ab0eef8ba56003
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198862
    Reviewed-by: Dan Williams <[email protected]>
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/qt5/QtInstanceToolbar.cxx b/vcl/qt5/QtInstanceToolbar.cxx
index 637dc369ae23..056c57a50c88 100644
--- a/vcl/qt5/QtInstanceToolbar.cxx
+++ b/vcl/qt5/QtInstanceToolbar.cxx
@@ -220,14 +220,18 @@ void QtInstanceToolbar::set_item_image(int nIndex,
     GetQtInstance().RunInMainThread([&] { 
getToolButton(nIndex).setIcon(toQPixmap(rIcon)); });
 }
 
-void QtInstanceToolbar::set_item_tooltip_text(int, const OUString&)
+void QtInstanceToolbar::set_item_tooltip_text(int nIndex, const OUString& rTip)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] { 
getWidget(nIndex).setToolTip(toQString(rTip)); });
 }
 
-void QtInstanceToolbar::set_item_accessible_name(int, const OUString&)
+void QtInstanceToolbar::set_item_accessible_name(int nIndex, const OUString& 
rName)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] { 
getWidget(nIndex).setAccessibleName(toQString(rName)); });
 }
 
 void QtInstanceToolbar::set_item_accessible_name(const OUString& rIdent, const 
OUString& rName)
commit a4acbbb098d60dddcec1625affe23ad8e8fbb2f7
Author:     Michael Weghorn <[email protected]>
AuthorDate: Fri Feb 6 18:14:45 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Feb 7 06:32:25 2026 +0100

    tdf#130857 qt weld: Add helpers to get toolbar child widgets
    
    Instead of duplicating the logic to get a QWidget/QToolButton
    child for a given index or ID in each QtInstanceToolBar
    method that needs this, extract helper methods and reuse
    those.
    
    This simplifies maintenance and will  also simplify
    implementing more QtInstanceToolbar methods.
    
    Switch some cases that currently search for a
    QToolButton to using QWidget when the method
    called doesn't require the widget to be a QToolButton
    (e.g. QtInstanceToolbar::set_item_tooltip_text as
    any QWidget supports tooltips).
    
    Change-Id: I6f954ae5664c8c865db6ece24d6000ff1fb42eaf
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198861
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins
    Reviewed-by: Dan Williams <[email protected]>

diff --git a/vcl/inc/qt5/QtInstanceToolbar.hxx 
b/vcl/inc/qt5/QtInstanceToolbar.hxx
index 01752f11ce53..5487b5a07a95 100644
--- a/vcl/inc/qt5/QtInstanceToolbar.hxx
+++ b/vcl/inc/qt5/QtInstanceToolbar.hxx
@@ -14,6 +14,7 @@
 #include <vcl/weld/Toolbar.hxx>
 
 #include <QtWidgets/QToolBar>
+#include <QtWidgets/QToolButton>
 
 class QtInstanceToolbar : public QtInstanceWidget, public virtual weld::Toolbar
 {
@@ -65,6 +66,13 @@ public:
 
     virtual int get_drop_index(const Point& rPoint) const override;
 
+private:
+    QWidget& getWidget(const OUString& rIdent) const;
+    QWidget& getWidget(int nIndex) const;
+
+    QToolButton& getToolButton(const OUString& rIdent) const;
+    QToolButton& getToolButton(int nIndex) const;
+
 private Q_SLOTS:
     void toolButtonClicked(const QString& rId);
 };
diff --git a/vcl/qt5/QtInstanceToolbar.cxx b/vcl/qt5/QtInstanceToolbar.cxx
index 211a492339e5..637dc369ae23 100644
--- a/vcl/qt5/QtInstanceToolbar.cxx
+++ b/vcl/qt5/QtInstanceToolbar.cxx
@@ -10,8 +10,6 @@
 #include <QtInstanceToolbar.hxx>
 #include <QtInstanceToolbar.moc>
 
-#include <QtWidgets/QToolButton>
-
 QtInstanceToolbar::QtInstanceToolbar(QToolBar* pToolBar)
     : QtInstanceWidget(pToolBar)
     , m_pToolBar(pToolBar)
@@ -33,11 +31,7 @@ void QtInstanceToolbar::set_item_sensitive(const OUString& 
rIdent, bool bSensiti
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QWidget* pWidget = m_pToolBar->findChild<QWidget*>(toQString(rIdent));
-        assert(pWidget && "No toolbar child for the given ID found");
-        pWidget->setEnabled(bSensitive);
-    });
+    GetQtInstance().RunInMainThread([&] { 
getWidget(rIdent).setEnabled(bSensitive); });
 }
 
 bool QtInstanceToolbar::get_item_sensitive(const OUString& rIdent) const
@@ -45,11 +39,7 @@ bool QtInstanceToolbar::get_item_sensitive(const OUString& 
rIdent) const
     SolarMutexGuard g;
 
     bool bSensitive = false;
-    GetQtInstance().RunInMainThread([&] {
-        QWidget* pWidget = m_pToolBar->findChild<QWidget*>(toQString(rIdent));
-        assert(pWidget && "No toolbar child for the given ID found");
-        bSensitive = pWidget->isEnabled();
-    });
+    GetQtInstance().RunInMainThread([&] { bSensitive = 
getWidget(rIdent).isEnabled(); });
 
     return bSensitive;
 }
@@ -58,10 +48,9 @@ void QtInstanceToolbar::set_item_active(const OUString& 
rIdent, bool bActive)
     SolarMutexGuard g;
 
     GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        assert(pToolButton->isCheckable() && "Tool button is not checkable");
-        pToolButton->setChecked(bActive);
+        QToolButton& rToolButton = getToolButton(rIdent);
+        assert(rToolButton.isCheckable() && "Tool button is not checkable");
+        rToolButton.setChecked(bActive);
     });
 }
 
@@ -71,10 +60,9 @@ bool QtInstanceToolbar::get_item_active(const OUString& 
rIdent) const
 
     bool bActive = false;
     GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        assert(pToolButton->isCheckable() && "Tool button is not checkable");
-        bActive = pToolButton->isChecked();
+        QToolButton& rToolButton = getToolButton(rIdent);
+        assert(rToolButton.isCheckable() && "Tool button is not checkable");
+        bActive = rToolButton.isChecked();
     });
 
     return bActive;
@@ -104,11 +92,7 @@ void QtInstanceToolbar::set_item_visible(const OUString& 
rIdent, bool bVisible)
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        pToolButton->setVisible(bVisible);
-    });
+    GetQtInstance().RunInMainThread([&] { 
getWidget(rIdent).setVisible(bVisible); });
 }
 
 void QtInstanceToolbar::set_item_help_id(const OUString&, const OUString&)
@@ -121,11 +105,7 @@ bool QtInstanceToolbar::get_item_visible(const OUString& 
rIdent) const
     SolarMutexGuard g;
 
     bool bVisible = false;
-    GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        bVisible = pToolButton->isVisible();
-    });
+    GetQtInstance().RunInMainThread([&] { bVisible = 
getWidget(rIdent).isVisible(); });
 
     return bVisible;
 }
@@ -145,11 +125,7 @@ void QtInstanceToolbar::set_item_tooltip_text(const 
OUString& rIdent, const OUSt
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        pToolButton->setToolTip(toQString(rTip));
-    });
+    GetQtInstance().RunInMainThread([&] { 
getWidget(rIdent).setToolTip(toQString(rTip)); });
 }
 
 OUString QtInstanceToolbar::get_item_tooltip_text(const OUString& rIdent) const
@@ -157,11 +133,8 @@ OUString QtInstanceToolbar::get_item_tooltip_text(const 
OUString& rIdent) const
     SolarMutexGuard g;
 
     OUString sToolTip;
-    GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        sToolTip = toOUString(pToolButton->toolTip());
-    });
+    GetQtInstance().RunInMainThread(
+        [&] { sToolTip = toOUString(getToolButton(rIdent).toolTip()); });
 
     return sToolTip;
 }
@@ -170,11 +143,8 @@ void QtInstanceToolbar::set_item_icon_name(const OUString& 
rIdent, const OUStrin
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        pToolButton->setIcon(loadQPixmapIcon(rIconName));
-    });
+    GetQtInstance().RunInMainThread(
+        [&] { getToolButton(rIdent).setIcon(loadQPixmapIcon(rIconName)); });
 }
 
 void QtInstanceToolbar::set_item_image_mirrored(const OUString&, bool)
@@ -187,11 +157,7 @@ void QtInstanceToolbar::set_item_image(const OUString& 
rIdent,
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        pToolButton->setIcon(toQPixmap(rIcon));
-    });
+    GetQtInstance().RunInMainThread([&] { 
getToolButton(rIdent).setIcon(toQPixmap(rIcon)); });
 }
 
 void QtInstanceToolbar::set_item_image(const OUString& rIdent, VirtualDevice* 
pDevice)
@@ -199,10 +165,8 @@ void QtInstanceToolbar::set_item_image(const OUString& 
rIdent, VirtualDevice* pD
     SolarMutexGuard g;
 
     GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
         const QPixmap aIconPixmap = pDevice ? toQPixmap(*pDevice) : QPixmap();
-        pToolButton->setIcon(aIconPixmap);
+        getToolButton(rIdent).setIcon(aIconPixmap);
     });
 }
 
@@ -231,13 +195,7 @@ OUString QtInstanceToolbar::get_item_ident(int nIndex) 
const
     SolarMutexGuard g;
 
     OUString sIdent;
-    GetQtInstance().RunInMainThread([&] {
-        QAction* pAction = m_pToolBar->actions().at(nIndex);
-        assert(pAction);
-        QWidget* pWidget = m_pToolBar->widgetForAction(pAction);
-        assert(pWidget);
-        sIdent = toOUString(pWidget->objectName());
-    });
+    GetQtInstance().RunInMainThread([&] { sIdent = 
toOUString(getWidget(nIndex).objectName()); });
 
     return sIdent;
 }
@@ -246,13 +204,7 @@ void QtInstanceToolbar::set_item_ident(int nIndex, const 
OUString& rIdent)
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QAction* pAction = m_pToolBar->actions().at(nIndex);
-        assert(pAction);
-        QWidget* pWidget = m_pToolBar->widgetForAction(pAction);
-        assert(pWidget);
-        pWidget->setObjectName(toQString(rIdent));
-    });
+    GetQtInstance().RunInMainThread([&] { 
getWidget(nIndex).setObjectName(toQString(rIdent)); });
 }
 
 void QtInstanceToolbar::set_item_label(int, const OUString&)
@@ -265,13 +217,7 @@ void QtInstanceToolbar::set_item_image(int nIndex,
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QAction* pAction = m_pToolBar->actions().at(nIndex);
-        assert(pAction);
-        QToolButton* pToolButton = 
qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(pAction));
-        assert(pToolButton && "No tool button at the given index");
-        pToolButton->setIcon(toQPixmap(rIcon));
-    });
+    GetQtInstance().RunInMainThread([&] { 
getToolButton(nIndex).setIcon(toQPixmap(rIcon)); });
 }
 
 void QtInstanceToolbar::set_item_tooltip_text(int, const OUString&)
@@ -288,11 +234,7 @@ void QtInstanceToolbar::set_item_accessible_name(const 
OUString& rIdent, const O
 {
     SolarMutexGuard g;
 
-    GetQtInstance().RunInMainThread([&] {
-        QToolButton* pToolButton = 
m_pToolBar->findChild<QToolButton*>(toQString(rIdent));
-        assert(pToolButton && "No tool button with the given ID found");
-        pToolButton->setAccessibleName(toQString(rName));
-    });
+    GetQtInstance().RunInMainThread([&] { 
getWidget(rIdent).setAccessibleName(toQString(rName)); });
 }
 
 vcl::ImageType QtInstanceToolbar::get_icon_size() const
@@ -315,6 +257,40 @@ int QtInstanceToolbar::get_drop_index(const Point&) const
     return -1;
 }
 
+QWidget& QtInstanceToolbar::getWidget(const OUString& rIdent) const
+{
+    assert(GetQtInstance().IsMainThread());
+
+    QWidget* pWidget = m_pToolBar->findChild<QWidget*>(toQString(rIdent));
+    assert(pWidget && "No widget with the given ID found");
+    return *pWidget;
+}
+
+QWidget& QtInstanceToolbar::getWidget(int nIndex) const
+{
+    assert(GetQtInstance().IsMainThread());
+
+    QAction* pAction = m_pToolBar->actions().at(nIndex);
+    assert(pAction);
+    QWidget* pWidget = m_pToolBar->widgetForAction(pAction);
+    assert(pWidget);
+    return *pWidget;
+}
+
+QToolButton& QtInstanceToolbar::getToolButton(const OUString& rIdent) const
+{
+    QToolButton* pToolButton = qobject_cast<QToolButton*>(&getWidget(rIdent));
+    assert(pToolButton && "Not a tool button");
+    return *pToolButton;
+}
+
+QToolButton& QtInstanceToolbar::getToolButton(int nIndex) const
+{
+    QToolButton* pToolButton = qobject_cast<QToolButton*>(&getWidget(nIndex));
+    assert(pToolButton && "Not a tool button");
+    return *pToolButton;
+}
+
 void QtInstanceToolbar::toolButtonClicked(const QString& rId)
 {
     SolarMutexGuard g;

Reply via email to