summaryrefslogtreecommitdiffstats
path: root/src/plugins/accessible/widgets/itemviews.h
Commit message (Collapse)AuthorAgeFilesLines
* Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-021-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Accessibility: Fix crash when updating in dtorFrederik Gladhorn2013-03-231-0/+1
| | | | | | | | | | | | | | This happens for example when running several tests. Widgets in destructor should be treated as invalid since their window pointer and other properties are no longer valid. When deleting a window containing only a table view there would be a table model reset update comming from the window being destroyed. Change-Id: Ia387c814333ce373fe132b189fc180787e36cdd5 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Make qaccessible2.h internal.Frederik Gladhorn2013-03-141-2/+2
| | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-221-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qsavefile_p.h src/corelib/tools/qregularexpression.cpp src/gui/util/qvalidator.cpp src/gui/util/qvalidator.h Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
| * Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | | | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Implement QAccessibleActionInterface in QAccessibleTableCellJosé Millán Soto2013-01-111-1/+9
|/ | | | | | | | | | | | Implemented QAccessibleActionInterface in QAccessibleTableCell to allow selecting and unselecting table cells, as there was no way of selecting or deselecting a simple cell using accessible tools. tst_qaccessibility.cpp was modified to test the new methods. Change-Id: I7bdfe0b363a9813d4a7c62e96b6c924b163f2121 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@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>
* Use QPointer to store accessible object.Frederik Gladhorn2012-04-131-5/+7
| | | | | | | | | | | | | | | | | Itemview were not following the established pattern of keeping the referenced object in a QPointer. This made them a lot more crash prone. Port of Qt 4 change. Conflicts: src/plugins/accessible/widgets/itemviews.cpp src/plugins/accessible/widgets/itemviews.h Change-Id: I210b112b9c3647b246fde2d6c69aba9ce8d25bd3 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> (cherry picked from commit f420ab2870d3c96e9678c24c64b4e26ec8a771bd)
* Remove QAccessible2::TableModelChange.Frederik Gladhorn2012-03-121-11/+0
| | | | | | | | | | | | | | This was never a good idea since it has issues: It doesn't really work with more than one update without the client fetching the data. The same is unlikely to work reliable since it involves two ipc roundtrips. Instead we should have an extended QAccessibleEvent that contains the data so that the bridges can decide how to pass on the data if needed. Change-Id: Iaf6b74f49586f7155909a6fe1a17137b71b31175 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove QAccessible::FocusChild, add focusChild()Jan-Arve Saether2012-02-061-10/+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-9/+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>
* Remove invokeMethod in favor of the recommended virtual_hook()Jan-Arve Saether2012-01-121-1/+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>
* Accessiblity State as bit field.Frederik Gladhorn2012-01-101-1/+1
| | | | | | | | | | | 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-6/+5
| | | | | | | | | | | 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>
* 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-5/+5
| | | | | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | 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-28/+26
| | | | | | | | 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>
* Accessibility: table2 -> tableFrederik Gladhorn2011-12-021-18/+18
| | | | | | | | Rename the new interface after the old one has been removed. This interface is very close to the IAccessible2 Table2 interface. Change-Id: I8659232189fe0e8307151c743727de425c30ac9a Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Make cell a proper QAccessible2Interface.Frederik Gladhorn2011-12-011-6/+7
| | | | | Change-Id: I9b245037e8448f39ed2cb80d1ef5fb0714173518 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Fix casting. Casting is now done through the virtual interface_cast.Jan-Arve Saether2011-11-301-1/+1
| | | | | | | | | 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-45/+23
| | | | | | | | | | | | | | 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>
* Refactor accessibility for Qt5Jan-Arve Saether2011-09-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | * Moved most stuff to gui\accessible * Moved widget-specific stuff to widgets\accessible * Moved platform-specific code to either the bridge plugin (this was already the case) or to the platform plugin. * Added several classes and functions. These have not yet gone through an API review. The plan is to do that in a later commit. Classes: - QPlatformAccessibility - QWindowsAccessibility Functions: - QWindow *QAccessibleInterface::window(); - QPlatformAccessibility *QPlatformIntegration::accessibility() * The bridge code can now either be a plugin or integrated into the platform plugin * Mac accessibility is left out for now. Unix "should still work" (tm). These platforms should be fixed soon. Change-Id: Ib49ffa73b647ee0af90864544c2769440157f562 Reviewed-on: http://codereview.qt-project.org/5330 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Add parent and child functions to QAccessibleInterface.Frederik Gladhorn2011-09-191-4/+16
| | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | 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-5/+5
| | | | | | | | | | | | | | | 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
* Add IAccessible2 table2 implementation.Frederik Gladhorn2011-08-221-0/+319
Implement the IAccessible table2 interface for itemviews. This is simpler than what we have in complexwidgets. For now it is only used on Linux. The new table2 interface is ifdef'ed to only be used on X11. Improve handling of accessible events and clean up. There are two xfails for the Table and Tree where sibling navigation is not implemented yet. Reviewed-by: Gabi (cherry picked from commit e797ba558dddd45522b5a317316e497e9efc44a8) (cherry picked from commit eff5ecc5d8f65fa25d6cfd6ed96a9d2a00d0c663) (cherry picked from commit d29876008fad400bca8d6b37e5d5f61dd1bcb39d) (cherry picked from commit 2a326fdc8f8bf2bd2c5764394616100906d9db2d) (cherry picked from commit 9b72e79e20d0d3560e0b064b8b0d75e35feb720e) (cherry picked from commit 075b0f744363842ed4179c644d933d461389544f) Change-Id: I654f74991830ae1fc7df7cc91d930390fb88b2a4 Reviewed-on: http://codereview.qt.nokia.com/3274 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>