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;
