diff --git a/vcl/inc/qt5/QtInstanceToolbar.hxx b/vcl/inc/qt5/QtInstanceToolbar.hxx index 70526fb79312..1f49ccd64c12 100644 --- a/vcl/inc/qt5/QtInstanceToolbar.hxx +++ b/vcl/inc/qt5/QtInstanceToolbar.hxx @@ -62,6 +62,9 @@ public: virtual sal_uInt16 get_modifier_state() const override; virtual int get_drop_index(const Point& rPoint) const override; + +private Q_SLOTS: + void toolButtonClicked(const QString& rId); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx index 84dc10b91073..1f550ab2888f 100644 --- a/vcl/qt5/QtBuilder.cxx +++ b/vcl/qt5/QtBuilder.cxx @@ -468,6 +468,9 @@ QObject* QtBuilder::makeObject(QObject* pParent, std::u16string_view sName, std: pParentGridLayout->addLayout(pLayout, pParentGridLayout->rowCount(), 0); } + if (pObject) + pObject->setObjectName(toQString(sID)); + if (pWidget) m_aWidgets[sID] = pWidget; diff --git a/vcl/qt5/QtInstanceToolbar.cxx b/vcl/qt5/QtInstanceToolbar.cxx index 69521771c0f7..825f1648ea05 100644 --- a/vcl/qt5/QtInstanceToolbar.cxx +++ b/vcl/qt5/QtInstanceToolbar.cxx @@ -10,11 +10,23 @@ #include #include +#include + QtInstanceToolbar::QtInstanceToolbar(QToolBar* pToolBar) : QtInstanceWidget(pToolBar) , m_pToolBar(pToolBar) { assert(m_pToolBar); + + const QList aActions = m_pToolBar->actions(); + for (QAction* pAction : aActions) + { + if (QToolButton* pButton = qobject_cast(m_pToolBar->widgetForAction(pAction))) + { + connect(pButton, &QToolButton::clicked, pButton, + [this, pButton] { toolButtonClicked(pButton->objectName()); }); + } + } } void QtInstanceToolbar::set_item_sensitive(const OUString&, bool) @@ -189,4 +201,11 @@ int QtInstanceToolbar::get_drop_index(const Point&) const return -1; } +void QtInstanceToolbar::toolButtonClicked(const QString& rId) +{ + SolarMutexGuard g; + + signal_clicked(toOUString(rId)); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */