summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/accessible/qaccessiblewidget.cpp9
-rw-r--r--src/widgets/accessible/qaccessiblewidget_p.h1
-rw-r--r--src/widgets/kernel/qwidget.h2
3 files changed, 12 insertions, 0 deletions
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp
index 2b8e1a7036..dcbf276356 100644
--- a/src/widgets/accessible/qaccessiblewidget.cpp
+++ b/src/widgets/accessible/qaccessiblewidget.cpp
@@ -55,6 +55,7 @@
#include <QRubberBand>
#include <QFocusFrame>
#include <QMenu>
+#include <QtWidgets/private/qwidget_p.h>
QT_BEGIN_NAMESPACE
@@ -152,6 +153,7 @@ QString Q_WIDGETS_EXPORT qt_accHotKey(const QString &text)
return QString();
}
+// ### inherit QAccessibleObjectPrivate
class QAccessibleWidgetPrivate
{
public:
@@ -202,6 +204,13 @@ QAccessibleWidget::QAccessibleWidget(QWidget *w, QAccessible::Role role, const Q
d->name = name;
}
+bool QAccessibleWidget::isValid() const
+{
+ if (!object() || static_cast<QWidget *>(object())->d_func()->data.in_destructor)
+ return false;
+ return QAccessibleObject::isValid();
+}
+
/*! \reimp */
QWindow *QAccessibleWidget::window() const
{
diff --git a/src/widgets/accessible/qaccessiblewidget_p.h b/src/widgets/accessible/qaccessiblewidget_p.h
index 803dc71409..cb1ce37734 100644
--- a/src/widgets/accessible/qaccessiblewidget_p.h
+++ b/src/widgets/accessible/qaccessiblewidget_p.h
@@ -56,6 +56,7 @@ class Q_WIDGETS_EXPORT QAccessibleWidget : public QAccessibleObject, public QAcc
{
public:
explicit QAccessibleWidget(QWidget *o, QAccessible::Role r = QAccessible::Client, const QString& name = QString());
+ bool isValid() const;
QWindow *window() const;
int childCount() const;
diff --git a/src/widgets/kernel/qwidget.h b/src/widgets/kernel/qwidget.h
index 5c844d1566..f90f2ee5f5 100644
--- a/src/widgets/kernel/qwidget.h
+++ b/src/widgets/kernel/qwidget.h
@@ -704,6 +704,8 @@ private:
friend class QStyleSheetStyle;
friend struct QWidgetExceptionCleaner;
friend class QWidgetWindow;
+ friend class QAccessibleWidget;
+ friend class QAccessibleTable;
#ifndef QT_NO_GESTURES
friend class QGestureManager;
friend class QWinNativePanGestureRecognizer;