[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - vcl/inc vcl/qt5
Michael Weghorn (via logerrit)
logerrit at kemper.freedesktop.org
Tue Sep 8 08:06:03 UTC 2020
vcl/inc/qt5/Qt5AccessibleWidget.hxx | 4 +++-
vcl/qt5/Qt5AccessibleWidget.cxx | 9 +++++----
2 files changed, 8 insertions(+), 5 deletions(-)
New commits:
commit 72549d97c220d63d5fd5f6f38ae14f13c3e3d919
Author: Michael Weghorn <m.weghorn at posteo.de>
AuthorDate: Mon Sep 7 20:08:57 2020 +0200
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Sep 8 10:05:27 2020 +0200
tdf#136323 qt5: Remember accessible object
'QAccessibleCache::insert' from the Qt library has a
'Q_ASSERT' checking that the corresponding 'QObject' for
which the 'QAccessibleInterface' provides information
is actually the same as the object passed as a parameter:
QAccessible::Id QAccessibleCache::insert(QObject *object, QAccessibleInterface *iface) const
{
// ...
QObject *obj = iface->object();
-> Q_ASSERT(object == obj);
However, 'Qt5AccessibleWidget::object' so far was always returning
'nullptr', triggering this assert when using a Qt version
not built with 'QT_NO_DEBUG'.
To fix this, remember and return the object as needed.
Change-Id: I4015b4c37aa8a073b02465df580a7235884e6cf3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102196
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn at posteo.de>
(cherry picked from commit 4461d49c6cfce22c2c96185b0a1d07bfe9709268)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102125
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/inc/qt5/Qt5AccessibleWidget.hxx b/vcl/inc/qt5/Qt5AccessibleWidget.hxx
index 2cd4840c6dfa..aacaba9a80c8 100644
--- a/vcl/inc/qt5/Qt5AccessibleWidget.hxx
+++ b/vcl/inc/qt5/Qt5AccessibleWidget.hxx
@@ -41,7 +41,8 @@ class Qt5AccessibleWidget final : public QObject,
Q_OBJECT
public:
- Qt5AccessibleWidget(const css::uno::Reference<css::accessibility::XAccessible> xAccessible);
+ Qt5AccessibleWidget(const css::uno::Reference<css::accessibility::XAccessible> xAccessible,
+ QObject* pObject);
QWindow* window() const override;
int childCount() const override;
int indexOfChild(const QAccessibleInterface* child) const override;
@@ -137,6 +138,7 @@ public:
private:
css::uno::Reference<css::accessibility::XAccessible> m_xAccessible;
css::uno::Reference<css::accessibility::XAccessibleContext> getAccessibleContextImpl() const;
+ QObject* m_pObject;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt5/Qt5AccessibleWidget.cxx b/vcl/qt5/Qt5AccessibleWidget.cxx
index 829e7e3a818d..15ebdf36b11d 100644
--- a/vcl/qt5/Qt5AccessibleWidget.cxx
+++ b/vcl/qt5/Qt5AccessibleWidget.cxx
@@ -60,8 +60,9 @@ using namespace css::accessibility;
using namespace css::beans;
using namespace css::uno;
-Qt5AccessibleWidget::Qt5AccessibleWidget(const Reference<XAccessible> xAccessible)
+Qt5AccessibleWidget::Qt5AccessibleWidget(const Reference<XAccessible> xAccessible, QObject* pObject)
: m_xAccessible(xAccessible)
+ , m_pObject(pObject)
{
Reference<XAccessibleContext> xContext = xAccessible->getAccessibleContext();
Reference<XAccessibleEventBroadcaster> xBroadcaster(xContext, UNO_QUERY);
@@ -700,7 +701,7 @@ bool Qt5AccessibleWidget::isValid() const
return xAc.is();
}
-QObject* Qt5AccessibleWidget::object() const { return nullptr; }
+QObject* Qt5AccessibleWidget::object() const { return m_pObject; }
void Qt5AccessibleWidget::setText(QAccessible::Text /* t */, const QString& /* text */) {}
@@ -723,13 +724,13 @@ QAccessibleInterface* Qt5AccessibleWidget::customFactory(const QString& classnam
vcl::Window* pWindow = pWidget->frame().GetWindow();
if (pWindow)
- return new Qt5AccessibleWidget(pWindow->GetAccessible());
+ return new Qt5AccessibleWidget(pWindow->GetAccessible(), object);
}
if (classname == QLatin1String("Qt5XAccessible") && object)
{
Qt5XAccessible* pXAccessible = dynamic_cast<Qt5XAccessible*>(object);
if (pXAccessible && pXAccessible->m_xAccessible.is())
- return new Qt5AccessibleWidget(pXAccessible->m_xAccessible);
+ return new Qt5AccessibleWidget(pXAccessible->m_xAccessible, object);
}
return nullptr;
More information about the Libreoffice-commits
mailing list