From 586fabb3b5681e06378a0b31737a0e306e36717b Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 18 Jan 2013 16:36:42 +0100 Subject: [PATCH] Disable only accessibility bridge without dbus on linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keeping accessibility and only disabling the bridge will enable more builds to work. Warning about disabling accessibility disabled is needed because in QStyle it is used to discover semantics about widgets (if a toolbutton is in a toolbar). Change-Id: Iae4e6ab63479743bdd70cba4b1954ec7cf3f88e9 Reviewed-by: Jan Arve Sæther --- configure | 30 +++++++++++-------- .../linuxaccessibility/linuxaccessibility.pri | 2 +- src/plugins/platforms/xcb/qxcbintegration.cpp | 4 ++- tests/auto/other/other.pro | 2 +- tools/configure/configureapp.cpp | 8 +++-- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/configure b/configure index 699d98e883f..38daeed3c3a 100755 --- a/configure +++ b/configure @@ -831,6 +831,7 @@ CFG_AVX=auto CFG_AVX2=auto CFG_REDUCE_RELOCATIONS=auto CFG_ACCESSIBILITY=auto +CFG_ACCESSIBILITY_ATSPI_BRIDGE=no # will be enabled depending on dbus and accessibility being enabled CFG_IWMMXT=no CFG_NEON=auto CFG_MIPS_DSP=auto @@ -3093,6 +3094,10 @@ Configure options: + -largefile ......... Enables Qt to access files larger than 4 GB. -no-accessibility .. Do not compile Accessibility support. + Disabling accessibility is not recommended, as it will break QStyle + and may break other internal parts of Qt. + With this switch you create a source incompatible version of Qt, + which is unsupported. + -accessibility ..... Compile Accessibility support. -no-sql- ... Disable SQL entirely. @@ -4949,20 +4954,19 @@ if [ "$CFG_KMS" = "yes" ]; then fi # Detect accessibility support -if [ "$CFG_ACCESSIBILITY" != "no" ]; then - if [ "$CFG_XCB" = "no" ]; then - CFG_ACCESSIBILITY=yes - else - # linux/xcb accessibility needs dbus - if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then - CFG_ACCESSIBILITY=yes +if [ "$CFG_ACCESSIBILITY" = "no" ]; then + echo >&2 "Warning: Disabling Accessibility. This version of Qt is unsupported." +else + CFG_ACCESSIBILITY=yes + + # linux/xcb accessibility bridge needs dbus + if [ "$CFG_XCB" != "no" ]; then + if [ "$CFG_DBUS" != "no" ]; then + CFG_ACCESSIBILITY_ATSPI_BRIDGE=yes + QT_CONFIG="$QT_CONFIG accessibility-atspi-bridge" else - if [ "$CFG_ACCESSIBILITY" = "auto" ]; then - CFG_ACCESSIBILITY=no - else - echo "Accessibility support needs DBus." - exit 101 - fi + echo >&2 "Warning: Disabling Linux Accessibility Bridge: DBus is missing." + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY_ATSPI_BRIDGE" fi fi fi diff --git a/src/platformsupport/linuxaccessibility/linuxaccessibility.pri b/src/platformsupport/linuxaccessibility/linuxaccessibility.pri index 09d437678ff..2721002ea5c 100644 --- a/src/platformsupport/linuxaccessibility/linuxaccessibility.pri +++ b/src/platformsupport/linuxaccessibility/linuxaccessibility.pri @@ -1,4 +1,4 @@ -qtHaveModule(dbus):contains(QT_CONFIG, xcb):contains(QT_CONFIG, accessibility) { +contains(QT_CONFIG, accessibility-atspi-bridge) { QT += dbus include(../../3rdparty/atspi2/atspi2.pri) diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index 9af1f0404f9..9fe6e4253b9 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -84,8 +84,10 @@ #include #ifndef QT_NO_ACCESSIBILITY #include +#ifndef QT_NO_ACCESSIBILITY_ATSPI_BRIDGE #include "../../../platformsupport/linuxaccessibility/bridge_p.h" #endif +#endif QT_BEGIN_NAMESPACE @@ -112,7 +114,7 @@ QXcbIntegration::QXcbIntegration(const QStringList ¶meters) m_fontDatabase.reset(new QGenericUnixFontDatabase()); m_inputContext.reset(QPlatformInputContextFactory::create()); -#ifndef QT_NO_ACCESSIBILITY +#ifndef QT_NO_ACCESSIBILITY_ATSPI_BRIDGE m_accessibility.reset(new QSpiAccessibleBridge()); #endif } diff --git a/tests/auto/other/other.pro b/tests/auto/other/other.pro index ea6290db428..35aaf4d48ff 100644 --- a/tests/auto/other/other.pro +++ b/tests/auto/other/other.pro @@ -50,7 +50,7 @@ cross_compile: SUBDIRS -= \ wince*|!contains(QT_CONFIG, accessibility): SUBDIRS -= qaccessibility -!contains(QT_CONFIG, accessibility)|!contains(QT_CONFIG, xcb): SUBDIRS -= qaccessibilitylinux +!contains(QT_CONFIG, accessibility-atspi-bridge): SUBDIRS -= qaccessibilitylinux !mac: SUBDIRS -= \ macgui \ diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 81f575335f7..5b8039c109b 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1650,8 +1650,12 @@ bool Configure::displayHelp() desc("WIDGETS", "no", "-no-widgets", "Disable QtWidgets module.\n"); - desc("ACCESSIBILITY", "no", "-no-accessibility", "Do not compile Windows Active Accessibility support."); - desc("ACCESSIBILITY", "yes", "-accessibility", "Compile Windows Active Accessibility support.\n"); + desc("ACCESSIBILITY", "no", "-no-accessibility", "Disable accessibility support.\n"); + desc( "", "Disabling accessibility is not recommended, as it will break QStyle\n" + "and may break other internal parts of Qt.\n" + "With this switch you create a source incompatible version of Qt,\n" + "which is unsupported.\n"); + desc("ACCESSIBILITY", "yes", "-accessibility", "Enable accessibility support.\n"); desc( "-no-sql-", "Disable SQL entirely, by default none are turned on."); desc( "-qt-sql-", "Enable a SQL in the Qt Library.");