summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
Commit message (Collapse)AuthorAgeFilesLines
* Accessibility Mac: Enable ignoring of childrenFrederik Gladhorn2013-04-161-1/+2
| | | | | | | | | | | | | The ignored children do not show up in the hierarchy, this should improve performance significantly. Previously the code would ignore the grouping property which seems to break QGroupBox. Change-Id: I4535af9c95bce76ded65f6d40fe07f17f3acffad Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-021-49/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Make qaccessible2.h internal.Frederik Gladhorn2013-03-141-1/+1
| | | | | | | | | | | This should have been done right from the start, instead we only made the documentation internal. Also remove the classes from the BIC data. Change-Id: I238a7a7cc5d26980b23931c78e7e5a4477d46920 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@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>
* More explicit QCocoaAccessibleElement memory mngmtMorten Johan Sorvig2013-01-091-4/+8
| | | | | | | | | | Don't autorelease in the elementWithInterface function, rename it to createElementWithInterface. The element can then be released immediately or autoreleased ("delete later"). Change-Id: I155a85404c34d756c1752eb7c24a7fb0f3cf2e77 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Cocoa: make accessibility hit test not crashMorten Johan Sørvig2012-12-161-0/+4
| | | | | | | | | Check if the accessibility element is valid before calling childAt. Change-Id: Id63c11f18b262c3c3a839db8ee2d11c0d7adc822 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Fix memory leak in cocoa accessibility.Morten Johan Sorvig2012-12-141-1/+1
| | | | | | | | Autorelease ("delete later") the created attribute name array. Change-Id: I2d7af9eb1fd899f04c8acb90204600a2dd43fa20 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Don't use NSAccessibilityUnignoredChildren.Morten Johan Sorvig2012-12-141-1/+1
| | | | | | | | | | The function is massively ineffective on deep hierarchies and not strictly needed. (It's supposed to filter out "Ignored" children - VoiceOver will do that anyway based on accessibilityIsIgnored()) Change-Id: I9a74b5f5e9b7880e0d46d5330f7192472eac7a36 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Cocoa: Disable accessibility.Morten Johan Sørvig2012-12-011-0/+5
| | | | | | | | | The accessibility implementation is unstable and causes application crashes. Disable until it has been stabilized. Change-Id: Ic34361a0ad599c6f92df722499d274fe0655646b Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Accessibility Mac: Return textArea as role for multi line text.Frederik Gladhorn2012-11-231-1/+1
| | | | | | Change-Id: I88eb4746463b7372c2dfe089ba74ea4cb0098396 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Implement EditableText accessibility for Mac.Morten Johan Sorvig2012-11-151-3/+18
| | | | | Change-Id: Ibe03975bafc5a6a420b3bd69dfaa93dbf65c9958 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Expose enabled state in mac accessibility.Frederik Gladhorn2012-10-051-0/+3
| | | | | Change-Id: I8b368cbdd7ce3bd402170a2bc2419d67a88a41ee Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.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>
* Cocoa: Fix memory leak in the accessibility code.Morten Johan Sorvig2012-05-211-0/+1
| | | | | | | | QCocoaAccessibleElement takes ownership of the QAccessibleinterface pointer. Delete it in dealloc(). Change-Id: I45a5540b9cf564c639bfa119ff4882008d63fd96 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Cocoa: Fix accessiiblityPerformActionMorten Johan Sorvig2012-03-121-2/+1
| | | | | | | Remove hardcoded pressAction(); Change-Id: Ie02e3f2f88a2cd311aec1b39daa160efb3b2b617 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Move QString <-> NSString conversion to QtCoreMorten Johan Sorvig2012-02-021-2/+2
| | | | | | | | | | | | | | | | Add (private) API to QCFString: static QString toQString(NSString *) static NSString *toNSString(const QString &) Add implementation to qcore_mac_objc.mm. Keep the mac_cpp since it's used for building qmake as well as bootstrapping. Replace usage of NSString conversion functions in the cocoa and corewlan plugin with QCFString. Change-Id: I9f34edd5231255aef9d8d6e9a60306174bb279b3 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Avoid non-standard indentation of license headers.Jason McDonald2012-01-301-39/+39
| | | | | | | | The strange indentation has made maintenance of license headers difficult on several occasions. Change-Id: Ib29a7e5275e2c7a2c13a3f32fd2479f34d3353ca Reviewed-by: Rohan McGovern <rohan.mcgovern@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>
* Use QObject pointer as QCocoaAccessibleElement id.Morten Johan Sorvig2012-01-231-15/+9
| | | | | | | | | | | | | | | Each QCocoaAccessibleElement needs to provide a unique stable id through the -(NSUnterger)hash method. The previous approach of basing the hash on the parent hash plus the child index is unpractical now that childAt() can return distant descendants instead of immediate children only. Use the QObject pointer, which is set for all accessible interfaces today. Change-Id: I5868e3a81c1b4da7233504f30003ab8060e9fa3f Reviewed-by: Morten Johan Sørvig <morten.sorvig@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>
* Improve accessibility actions descriptions on MacMorten Johan Sorvig2012-01-171-4/+5
| | | | | | | Use built-in descriptions for built-in actions Change-Id: Ic5581e89e4568abcc6c3add126d492345d26d87d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Ignore uninteresting accessibile interfaces.Morten Johan Sorvig2012-01-121-1/+1
| | | | | | | | | Certain interface roles should be ignored and not be a part of the user-visible accessibility interface tree. Change-Id: I264fef909052c528ee505875e3a211a33114d881 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Make QAccessibleInterface::indexOfChild() 0-based.Frederik Gladhorn2012-01-111-1/+1
| | | | | | | 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>
* Add support for accessibility actions.Morten Johan Sorvig2012-01-111-5/+28
| | | | | | | | Match Cocoa and Qt actions manually. Some have no corresponding action on the other side. Change-Id: I775cb8987ab843bd88d57d856ef7c0403290db00 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@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-9/+7
| | | | | | | | | | | | | | | | | | 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>
* Cocoa: Handle accessible interface children.Morten Johan Sorvig2011-12-021-2/+27
| | | | | | | | Implement AccessIbleChildrenAttribute and accessiblityHitTest. Change-Id: Ia9fa80e3015edbb969d173a2587cb53b9c69852e Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Cocoa: Add initial accessibility implementation.Morten Sorvig2011-10-191-0/+197
See qcocoaaccessiblity.h for details. For now only the first level of the hierarchy is made accessible. Also add tools/accessibilityinspector which is an utility for inspecting and debugging the Qt accessibility tree. Change-Id: Iff520bec26b3761feb0c2e00471feb379daaa735 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>