summaryrefslogtreecommitdiffstats
path: root/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Accessibility: Use factory function instead of pluginFrederik Gladhorn2014-03-131-1020/+0
| | | | | | | | | | | | | | This simplifies deployment and makes instantiating accessible interfaces faster since no plugin needs to be loaded. [ChangeLog][QtWidgets] Accessibility for widgets is now included in the widget library instead of being a separate plugin. For static builds this means that libqtaccessiblewidgets is no longer required. Task-number: QTBUG-32888 Change-Id: Ie7347898868fd67c1fc568f0d251cbd2ef71e041 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Accessibility: Fix reporting the same name/value twiceFrederik Gladhorn2014-02-101-1/+1
| | | | | | | | | | | | | | NVDA for example reads name and value, so that most of our accessibles would lead to the same text being read twice in a row. Instead use Name as that's best supported on all platforms. [ChangedLog][QtWidgets] Fixed accessibility issues that would lead to screen readers reading the same text twice. Task-number: QTBUG-36678 Change-Id: I6c5c9cdcf5392c7135a65bd30f87a590c3c07fb4 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Accessibility: simplify dockwidget accessibleFrederik Gladhorn2013-10-141-193/+35
| | | | | | | | | | | | | This patch merges the two classes that were used to make dock widgets accessible into one. The title bar does not need to be represented by its own accessible object. In addition the buttons on the toolbar are now labelled. Task-number: QTBUG-33946 Change-Id: Id90d8c09f15ed683e64dbe3f6ac55bca7a0b300f Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Accessibility: Fix crash in tst_qmdisubwindow.Friedemann Kleint2013-06-261-2/+3
| | | | | Change-Id: Ia8279e4cfa7bfe4617511c8a96961760174f7266 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Accessibility: Ignore negative child indices in main windowFrederik Gladhorn2013-04-231-1/+1
| | | | | Change-Id: I6b3d0b066bf20a09b43d6d80255fb8d428d38df1 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Make QTextCursor accessibility boundary finder availableFrederik Gladhorn2013-04-081-78/+16
| | | | | | | | | This allows re-using the function in QtQuick. In addition TextBoundaryType is moved to QAccessible and QAccessible2 as namespace ceases to exist. Change-Id: I184bc2c181a22ca51ac4db4e5a080dc26d4acfe0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-021-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since there already is a one-to-one relationship between QObject and QAccessibleInterface it makes little sense to create and destroy the interfaces on each call to queryAccessibleInterface. Add a cache and keep created interfaces around for the lifetime of the corresponding QObject. This changes the memory management rules: accessible interfaces must no longer be deleted. If you get an QAccessibleIntrface pointer that pointer will stay valid as long as the corresponding QObject is not deleted. This also re-enables accessibility for Mac. We limit the range of the IDs so that they are useable for Windows directly. That means we can get rid of the event cache there. This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Compile with QT_NO_CURSOR.Volker Krause2012-12-071-4/+4
| | | | | | | | | | | | | Mostly straightforward, the a11y changes might look a bit drastic, but the base class QAccessibleTextWidget was already disabled in this case, so we have to obviously take out its sub-classes as well. Change-Id: I682ace20d6938688ddb1da23c3463f3c025fab8e Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
* Accessibility: set multiline state for text edits.Frederik Gladhorn2012-11-231-2/+9
| | | | | | Change-Id: I22d3baac8fc57db0c89d8543019a93263b2023ca Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Accessibility: remove redundant role functionFrederik Gladhorn2012-10-271-5/+0
| | | | | | | | The role is already set through the ctor, no need to explicitly do it again. Change-Id: I0027068c66b5771b628a9fe10fbfe929e7bf1554 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Bring back accessibility for plain text edit.Frederik Gladhorn2012-10-221-6/+90
| | | | | | | | | | This ports 282951bc6c7ddb607fb7ebf61eb8de9acf3da77f aka Change-Id: If0269a49b9fcd1b3e9fcfd32fac912560df28f21 to Qt 5. Change-Id: I46f1d4947d90688b598993f76330e2e10aeca950 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Update/fix QTextBoundaryFinder simple usage cases in qtbaseKonstantin Ritt2012-10-131-1/+1
| | | | | | Change-Id: I4d3000558bce86e2de3c32247915868ba18fc8b7 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make accessibility debug output optional.Frederik Gladhorn2012-10-031-1/+1
| | | | | | | | | On linux with the new plugin debug output was a bit too generous. Instead use environment var: If QT_DEBUG_ACCESSIBILITY is set, give the full a11y output. Change-Id: I1c9e2078e38799f91468cfc2d9ddcaa36ba4fa03 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Implemented QAccessibleTextWidgetJan-Arve Saether2012-08-141-328/+412
| | | | | | | | | | | | | | | | | | A new class called QAccessibleTextWidget was added. This class should implement all methods of QAccessibleTextInterface and QAccessibleEditableTextInterface which only need a QTextCursor, and it defines two pure virtual methods, to obtain and set the text cursor, so accessible implementations of widgets which use a text cursor can implement these two methods. QAccessibleTextEdit is now a subclass of QAccessibleTextWidget and most of its methods were moved to QAccessibleTextWidget. This is a forward port of ba5d7d608cc31fc63354fd74d85a1bad7780fc45 from Qt 4.8, and is a prerequisite for forward-porting QPlainTextEdit Change-Id: I6093c4fa7e0a77b84de779479c6074db006efec1 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove clipboard operations from QAccessibleEditableTextInterfaceJan-Arve Saether2012-07-111-52/+10
| | | | | | | | | | | | | | | | | | Also, remove its subclass QAccessibleSimpleEditableTextInterface Instead of having the subclass that implements this conveniently, we move this behaviour over to the bridge. The bridge should check if role() == EditableText is set, and then it should try to support the IAccessibleEditableText interface (i.e. it should accept the calls to replaceText(), deleteText() and insertText()) and change the text with the following operations: 1. Query the text using QAccessibleTextInterface::text() or by using QAccessibleInterface::text(QAccessible::Value) as a fallback 2. Do the requested delete/insert/replace manipulation 3. Update the text with setText(QAccessible::Value, newText); Change-Id: Iee5e41faf14351951e2bfca8c9eac970a113e878 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Merge master into api_changesKent Hansen2012-03-271-13/+4
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qisenum.h src/dbus/qdbusconnection_p.h src/widgets/kernel/qwidget.cpp tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: I85102515d5fec835832cc20ffdc5c1ba578bd01d
| * API cleanup: remove CoordinateType enumJan-Arve Saether2012-03-241-13/+4
| | | | | | | | | | | | | | | | The bridge can do the mapping to and from screen position. This is now done in the windows bridge. Change-Id: I5ca5df0fbeeb58202539f55a0f62717fb1685092 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* | Remove QWorkspace.Debao Zhang2012-03-231-39/+0
|/ | | | | | | | | | QWorkspace had been called Q3Workspace before Qt4.0 finally released. In a sense, it is a Qt3 support Widget. And QWorkspace has been deprecated and replaced by QMdiArea at Qt4.3. Change-Id: Iea1bf831c9960c23c2b21d51fdc7c13b303642ea Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Make copy and cut methods work in QAccessibleTextEditJosé Millán Soto2012-02-081-4/+11
| | | | | | | | | | Correct the implementation of cutText and copyText in QAccessibleTextEdit so they use cut() and copy() methods of QTextEdit Cherry picked from Qt 4 - 36202cf8fca822492615d418bd563a40bee4af08 Change-Id: I86a531ed7059b1a928cb8515c2743d4d8b596b36 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix compiler warnings in accessible code.Friedemann Kleint2012-02-071-24/+0
| | | | | | | | - Add missing return value. - Remove unused static functions. Change-Id: I0271cacc2a01b33209c4d9d2d958ad89924f8951 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove QAccessible::FocusChild, add focusChild()Jan-Arve Saether2012-02-061-28/+0
| | | | | | | | Also cleanup (reduce) all implementations of navigate() in order to make the final removal of navigate smoother. Change-Id: I2c216db8f5b2e40afcce8f859fc775053adc2fe3 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove all reimplementations of relationTo() returning Unrelated.Jan-Arve Saether2012-01-161-5/+0
| | | | | | | | QAccessibleInterface::relationTo() already return QAccessible::Unrelated by default. No need to duplicate that code. Change-Id: I40e6758b946c43ca8773cdb2d28407edf99aad49 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Clean up and extend QAccessible::State.Frederik Gladhorn2012-01-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | The state should contain useful and clear information. Some of the old enum/bitfield members were not really clear. Make them follow Qt terminology and shift the burden of interpreting them to the bridge. Apart from the previous commit changing from enum to bitfield, these flags have changed names: unavailable -> disabled mixed -> checkStateMixed protected -> passwordEdit (in the last commit) floating is completely removed, even MSAA documentation states it is unsupported. Some new states have been added. Documentation added. Change-Id: I152256e77a061f28ee5780f527524c80a2c7e333 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove invokeMethod in favor of the recommended virtual_hook()Jan-Arve Saether2012-01-121-21/+0
| | | | | | | | | | We don't remove the Method enum (yet), since there are functions in dependent modules that still refer to it. Unfortunately there is no way we can commit to several repos "atomically". Change-Id: Ia1923dc4bf0751a9ba67727d14da5a2e60bd4e74 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove all references to QAccessible::(Up|Down|Left|Right)Jan-Arve Saether2012-01-121-211/+0
| | | | | | | | | | | | It is now the resonsibility of the bridge to support this (by querying for QAccessibleInterface::rect()) The windows bridge (currently the only bridge in need of this) has already been updated to reflect this in commit 7dca461620ee6d8cce3a74acf2e1530d4497bff9 Change-Id: Ief1339ab6edc118e2d47e3875e09fa885db65c2f Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Make QAccessibleInterface::indexOfChild() 0-based.Frederik Gladhorn2012-01-111-17/+9
| | | | | | | Makes the code nicer and more consistent with the rest of the world. Change-Id: I5ba0ee39f5b0afd1a079a3cea9990d123955ed3f Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessiblity State as bit field.Frederik Gladhorn2012-01-101-12/+15
| | | | | | | | | | | We would like to add more flags that will be over the 32 bit boundary. On Windows enums don't seem to digest values >32 bit. This patch changes the state flags to be a bit field instead. The windows part of the patch was written by Jan-Arve Sæther. Change-Id: I2d1d87807f920ce4d4a5c7bfea8b1122ed44eb08 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove all references to QAccessible:: {Child|Ancestor|Sibling}Jan-Arve Saether2012-01-061-37/+29
| | | | | | | | | | | These are deprecated in favor of QAccessibleInterface::child() and QAccessibleInterface::parent() QAccessible::Sibling can be done with a combination of those two. This is handled by the bridges, if required. Change-Id: I2e2a6eb2a982e7c9001a393d69f0c5f1ae9c0970 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Constify more accessibility interface functions.Frederik Gladhorn2012-01-061-12/+12
| | | | | Change-Id: Iff8da09eef5288de92ccea753a8a5fda03e214b0 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove Cursor functions from invokeMethod.Frederik Gladhorn2012-01-061-20/+0
| | | | | | | | Cursor position is handled by the text interface. This was a binary compatibility hack in Qt 4. Change-Id: I45520e6942a490834f6e9346a4c173300a9bf7a9 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Accessibility: childAt returns interfaceFrederik Gladhorn2011-12-191-34/+14
| | | | | | | | | | | | | | | | | | childAt used to return an integer. Return an interface instead. Not requiring a direct child to be returned allows optimizing by bypassing iterating through the hierarchy of accessibles. For QtQuick this is the only sensible way of implementing this. The bridges are still responsible for finding the top-most element. The default implementation in QAccessibleObject is sufficient to return direct children. The implementation in QAccessibleApplication is therfore no longer needed. Change-Id: Id7100dd5bcc3a98de516a7f4a12eaaa41cb46d26 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Finish removing virtual child integersBradley T. Hughes2011-12-131-4/+4
| | | | | | | | | Finish the work started by commit beb72b2fbf17a20b4a9d51d75d79f9c3c69bb357. This silences warnings found by -Woverloaded-virtual. Change-Id: Ic6f5e77e324463ade8349f23f272b41b509d87e4 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Create a class to contain accessibilty enums.Frederik Gladhorn2011-12-081-62/+62
| | | | | | | | This is needed in order to expose the enums to qml. Do not inherit QAccessible. Change-Id: I220a0ea3add2d790e4fa6e93ce3deda762859e1a Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix casting. Casting is now done through the virtual interface_cast.Jan-Arve Saether2011-11-301-0/+9
| | | | | | | | | Change interface_cast to return void* to avoid using virtual inheritance. Get rid of the magic Q_ACCESSIBLE_OBJECT macro. Change-Id: I94b824aef53f2ba657d39d406b387c8681d47ee4 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove virtual child integers.Frederik Gladhorn2011-11-231-313/+114
| | | | | | | | | | | | | | This makes the accessibility apis much simpler and less error prone. Disable the itemviews implementation that is in complex widgets. The itemviews will use the new code from itemviews.h/cpp everywhere now. QToolBox was broken before, now at least it simply exposes all its children. The children are the buttons (tabs of the toolbox) and their contents. Change-Id: I45e218f49f02aebbd678ddfe29f94c2a112a2125 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessibility: Clean up usage of navigate.Frederik Gladhorn2011-11-211-3/+0
| | | | | | | Prefer to use parent/child functions instead. Change-Id: Ic92165b9439eb750c9d762ddf5dcd2a5ccf0277d Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Implement child instead of navigate in QAccessibleMainWindow.Frederik Gladhorn2011-10-261-12/+9
| | | | | Change-Id: I321ce4f8bb6e724db87a0419f890174b32cc1fe2 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove stale documentation and fix qdoc errors.Casper van Donderen2011-10-111-2/+0
| | | | | | | Change-Id: I51bb0c52eb32d9d672d115f31b16d414f81708e2 Reviewed-on: http://codereview.qt-project.org/6433 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Use child/parent function in QAccessibleWidget and test.Frederik Gladhorn2011-10-061-15/+8
| | | | | | | | | This also uncovered a missing implementation of child for dock widgets. Change-Id: Iac4c5a51d4626769af11b277a9a345e1e31dc490 Reviewed-on: http://codereview.qt-project.org/5987 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Simplify QAccessibleAbstractScrollArea and Calendar.Frederik Gladhorn2011-10-031-36/+14
| | | | | | | Change-Id: Iea1df37fd9fd486295458ec7627f5b6908053cdf Reviewed-on: http://codereview.qt-project.org/5727 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Simplify QAccessibleTextEdit.Frederik Gladhorn2011-09-281-468/+400
| | | | | | | | | | Before the text edit tried to represent each line of text as a child of itself. With the editable text interface this is no longer needed. Change-Id: If9927e522f955e863e91fd0a529a1ce6fafaddc3 Reviewed-on: http://codereview.qt-project.org/5624 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Add parent and child functions to QAccessibleInterface.Frederik Gladhorn2011-09-191-25/+37
| | | | | | | | | | | | | | | | | | | | | | Stop the mis-use of navigate to find the parent. In order to make navigation straight forward parent and child functions are now part of QAccessibleInterface. This allows navigating the hierarchy of accessible objects without the 1-based indexes in the navigate function which lead to confusion. Eventually the support for Ancestor in navigate can be completely removed and forwarded in the windows bridge if needed. In addition default parameters for virtual children. This will make the transition smooth since it allows to remove the integer already. Change-Id: I278287ce17161f9fa46797ac244676778c859576 Reviewed-on: http://codereview.qt-project.org/5024 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove AccessibleEx classes.Frederik Gladhorn2011-09-151-52/+52
| | | | | | | | | | | This was a binary compatibility hack to extend the accessibility framework towards IAccessible2. Start fixing it properly. Change-Id: I82bb0daa6469930c5bf6e440c919159603d56a83 Reviewed-on: http://codereview.qt-project.org/4750 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Merge branch 'master' into refactorGunnar Sletta2011-08-251-13/+119
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication_qpa.cpp src/gui/kernel/qcursor_qpa.cpp src/gui/kernel/qwindowsysteminterface_qpa.cpp src/gui/kernel/qwindowsysteminterface_qpa.h src/gui/kernel/qwindowsysteminterface_qpa_p.h src/gui/text/qtextcontrol.cpp src/plugins/platforms/wayland/wayland.pro src/widgets/accessible/qaccessible2.h src/widgets/widgets/qwidgetlinecontrol_p.h Change-Id: I5e6f4eb184159dccc67e8f13673edb884d179c74
| * Implemented QAccessibleTextEdit::attributes()Frederik Gladhorn2011-08-231-5/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Handling font properties and colors Created test: tst_QAccessibility::textAttributes Merge-request: 2626 Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com> (cherry picked from commit f1a6766432f66220275aa7902e4c2414a3069cd1) Change-Id: I388bc660af20149934110d7894840eccecf81f2a Reviewed-on: http://codereview.qt.nokia.com/3036 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>