From 087d6c21b853f0802df882c3e1545a7b97e0c898 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 14 Mar 2012 12:17:11 +0100 Subject: Fix compilation of the Windows accessibility code for MinGW. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Temporarily disable the code for MinGW. Change-Id: I435305167e06af05b9a78901e6e3a35347c5c3f5 Reviewed-by: Jan-Arve Sæther --- .../platforms/windows/accessible/accessible.pri | 24 +++++++++------- .../platforms/windows/accessible/iaccessible2.h | 4 +++ .../windows/accessible/qwindowsaccessibility.cpp | 32 +++++++++++++++++----- .../windows/accessible/qwindowsaccessibility.h | 1 + .../windows/accessible/qwindowsmsaaaccessible.cpp | 17 +----------- .../windows/accessible/qwindowsmsaaaccessible.h | 3 +- 6 files changed, 47 insertions(+), 34 deletions(-) (limited to 'src/plugins/platforms/windows/accessible') diff --git a/src/plugins/platforms/windows/accessible/accessible.pri b/src/plugins/platforms/windows/accessible/accessible.pri index bf25ad870c..1671c67d17 100644 --- a/src/plugins/platforms/windows/accessible/accessible.pri +++ b/src/plugins/platforms/windows/accessible/accessible.pri @@ -1,15 +1,19 @@ - SOURCES += \ - $$PWD/qwindowsmsaaaccessible.cpp \ - $$PWD/qwindowsaccessibility.cpp \ - $$PWD/iaccessible2.cpp \ - $$PWD/comutils.cpp + $$PWD/qwindowsaccessibility.cpp HEADERS += \ - $$PWD/qwindowsmsaaaccessible.h \ - $$PWD/qwindowsaccessibility.h \ - $$PWD/iaccessible2.h \ - $$PWD/comutils.h + $$PWD/qwindowsaccessibility.h + +!*g++* { + SOURCES += \ + $$PWD/qwindowsmsaaaccessible.cpp \ + $$PWD/iaccessible2.cpp \ + $$PWD/comutils.cpp + HEADERS += \ + $$PWD/qwindowsmsaaaccessible.h \ + $$PWD/iaccessible2.h \ + $$PWD/comutils.h -include(../../../../3rdparty/iaccessible2/iaccessible2.pri) + include(../../../../3rdparty/iaccessible2/iaccessible2.pri) +} # !g++ diff --git a/src/plugins/platforms/windows/accessible/iaccessible2.h b/src/plugins/platforms/windows/accessible/iaccessible2.h index 11889df9ec..a59263fba1 100644 --- a/src/plugins/platforms/windows/accessible/iaccessible2.h +++ b/src/plugins/platforms/windows/accessible/iaccessible2.h @@ -66,6 +66,10 @@ #include "AccessibleRole.h" #include "AccessibleStates.h" +#ifdef Q_CC_MINGW +# include +#endif + QT_BEGIN_NAMESPACE class QWindowsIA2Accessible : public QWindowsMsaaAccessible, diff --git a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp index f409730600..4f92b910b2 100644 --- a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp +++ b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp @@ -54,13 +54,13 @@ #include #include #include -#include -#include -#include -#include #include "qwindowsaccessibility.h" -#include "iaccessible2.h" + +#ifndef Q_CC_MINGW +# include "iaccessible2.h" +#endif // !Q_CC_MINGW + #include "comutils.h" #include @@ -185,7 +185,7 @@ void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &ev // An event has to be associated with a window, // so find the first parent that is a widget and that has a WId QAccessibleInterface *iface = event.accessibleInterface(); - QWindow *window = iface ? window_helper(iface) : 0; + QWindow *window = iface ? QWindowsAccessibility::windowHelper(iface) : 0; delete iface; if (!window) { @@ -211,6 +211,20 @@ void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &ev #endif // Q_OS_WINCE } +QWindow *QWindowsAccessibility::windowHelper(const QAccessibleInterface *iface) +{ + QWindow *window = iface->window(); + if (!window) { + QAccessibleInterface *acc = iface->parent(); + while (acc && !window) { + window = acc->window(); + QAccessibleInterface *par = acc->parent(); + delete acc; + acc = par; + } + } + return window; +} /*! \internal @@ -218,12 +232,16 @@ void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &ev */ IAccessible *QWindowsAccessibility::wrap(QAccessibleInterface *acc) { +#ifdef Q_CC_MINGW + return 0; +#else if (!acc) return 0; QWindowsIA2Accessible *wacc = new QWindowsIA2Accessible(acc); IAccessible *iacc = 0; wacc->QueryInterface(IID_IAccessible, (void**)&iacc); return iacc; +#endif } /*! @@ -260,7 +278,7 @@ bool QWindowsAccessibility::handleAccessibleObjectFromWindowRequest(HWND hwnd, W #if 1 // Ignoring all requests while starting up // ### Maybe QPA takes care of this??? - if (QApplication::startingUp() || QApplication::closingDown()) + if (QCoreApplication::startingUp() || QCoreApplication::closingDown()) return false; #endif diff --git a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h index 3b7069570b..0c3aca0a03 100644 --- a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h +++ b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h @@ -63,6 +63,7 @@ public: virtual void cleanup(); */ static IAccessible *wrap(QAccessibleInterface *acc); + static QWindow *windowHelper(const QAccessibleInterface *iface); static QPair getCachedObject(int entryId); }; diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp index ca3ce0a614..8791bbdcfb 100644 --- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp +++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp @@ -1180,21 +1180,6 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accSelection(VARIANT *pvar return S_OK; } -QWindow *window_helper(const QAccessibleInterface *iface) -{ - QWindow *window = iface->window(); - if (!window) { - QAccessibleInterface *acc = iface->parent(); - while (acc && !window) { - window = acc->window(); - QAccessibleInterface *par = acc->parent(); - delete acc; - acc = par; - } - } - return window; -} - /**************************************************************\ * IOleWindow * **************************************************************/ @@ -1207,7 +1192,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::GetWindow(HWND *phwnd) if (!accessible->isValid()) return E_UNEXPECTED; - QWindow *window = window_helper(accessible); + QWindow *window = QWindowsAccessibility::windowHelper(accessible); if (!window) return E_FAIL; diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h index 609f57b398..9cb56c954c 100644 --- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h +++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h @@ -44,6 +44,7 @@ #include #ifndef QT_NO_ACCESSIBILITY +#include "../qtwindows_additional.h" #include #include "Accessible2.h" #include @@ -55,7 +56,7 @@ QT_BEGIN_NAMESPACE bool debug_accessibility(); # define accessibleDebug !debug_accessibility() ? (void)0 : qDebug #else -# define accessibleDebug() +# define accessibleDebug #endif #define DEBUG_SHOW_ATCLIENT_COMMANDS -- cgit v1.2.3