Commit Graph

33 Commits (4b7be050581bfef8a064ba867489b7dd7ee7ae47)

Author SHA1 Message Date
José Millán Soto 4b7be05058 Change behaviour of selectRow, selectColumn, unselectRow, unselectColumn
According to the comments of selectRow and selectColumn, the expected
behaviour of this method was to select a row or a column and unselect
any cell that were previously selected. However the actual behavior
was to select only one cell and not deselect any cell.

Moreover, according to the specification there's no simple way of
selecting multiple rows or columns as when one of the methods is
called for selecting one row or column the others should be
unselected.

The specification was changed not to require the rest of the cells
to be deselected, although they might be deselected if the
selectionMode requires that in order for the new row/column to be
selected.

The implementation of these methods was changed in QAccessibleTable
and QAccessibleTree to select the whole row/column and take into
acount selectionMode and selectionBehavior.

tst_qaccessibility.cpp was modified to test the new behaviour of
the methods.

Change-Id: I29635d014792169302435e81704e02c16f951238
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-12-18 14:06:23 +01:00
Frederik Gladhorn 596f23554a Clean up index handling in itemviews accessibility.
Change-Id: Icc017c7df9cb0dc4bf17e5168c1e3acda6af7523
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-27 14:22:52 +02:00
Frederik Gladhorn 9fa2e5a14d Accessibility: itemviews check for valid model.
The problem is that isValid() should return true as
soon as we have a view widget.
That sadly means we need to verify that the model is still
valid whenever accessing it.

Change-Id: I9237528abf2f5c75a73382525103307e9ca15f05
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-19 02:44:40 +02:00
José Millán Soto dc57295a7b Check that row and column are not less than 0 in indexFromLogical
Change-Id: Icf6dbb234513de12c772618a046461b8674b01ce
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-13 05:51:19 +02:00
Frederik Gladhorn 642867d2dd Return if header is 0.
QT-BUG: 184868

Change-Id: Iff041c66fdfb2267e0349bdd47fec0fe63b1799d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-04 11:58:48 +02:00
Frederik Gladhorn 26022a4eee Check for valid model and view in isValid for TableCells.
Change-Id: Iadca5503ed2a1d6411d46ed6fe9d5b9a56461a3a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-03 17:34:38 +02:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
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>
2012-09-22 19:20:11 +02:00
Frederik Gladhorn 05815679d8 Accessibility: fix updates for models with rootIndex set.
The accessible table/list implementation would ignore
when a root index is set, resulting in trying to use row/column
for the top level index, leading to accessing invalid indexes.

(cherry picked from commit def2ee829435c705055733a0f99c0ca44a012c50)

Conflicts:

	src/plugins/accessible/widgets/itemviews.cpp

Change-Id: Ic2745ab3e262ccee2d43e0d532e165d2958f519e
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-07-31 11:53:35 +02:00
Frederik Gladhorn c65a558e00 Accessibility: Check for valid range of tree items.
This might lead to crashes otherwise.

Change-Id: Ib28ac03b7d200571a0e759467eb692cfee3b05f3
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-04-17 20:58:49 +02:00
Frederik Gladhorn 76f536d661 Use QPointer to store accessible object.
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)
2012-04-13 18:15:26 +02:00
Frederik Gladhorn 61692bfefe Remove QAccessible2::TableModelChange.
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>
2012-03-12 13:14:05 +01:00
Jan-Arve Saether 1d18fd0164 Remove QAccessible::FocusChild, add focusChild()
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>
2012-02-06 10:15:09 +01:00
Jason McDonald 5635823e17 Remove "All rights reserved" line from license headers.
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>
2012-01-30 03:54:59 +01:00
Jason McDonald 629d6eda5c Update contact information in license headers.
Replace Nokia contact email address with Qt Project website.

Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:04:33 +01:00
Jan-Arve Saether 56c80382c6 Remove all reimplementations of relationTo() returning Unrelated.
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>
2012-01-16 15:27:50 +01:00
Frederik Gladhorn 30ad53a0a6 Make QAccessibleInterface::indexOfChild() 0-based.
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>
2012-01-11 11:18:51 +01:00
Frederik Gladhorn 39a052c664 Accessiblity State as bit field.
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>
2012-01-10 07:14:34 +01:00
Jan-Arve Saether 7dca461620 Remove all references to QAccessible:: {Child|Ancestor|Sibling}
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>
2012-01-06 19:24:23 +01:00
Jason McDonald 1fdfc2abfe Update copyright year in license headers.
Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-05 06:36:56 +01:00
Frederik Gladhorn 74c9f9d83f Accessibility: childAt returns interface
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>
2011-12-19 12:27:45 +01:00
Bradley T. Hughes d308797d00 Finish removing virtual child integers
Finish the work started by commit
beb72b2fbf. This silences warnings found
by -Woverloaded-virtual.

Change-Id: Ic6f5e77e324463ade8349f23f272b41b509d87e4
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-12-13 14:54:09 +01:00
Frederik Gladhorn 6651e4fae3 Do not assert on invalid model index.
No need to crash here, just warn.
This will happen when asking a table for out of range indexes.

Change-Id: Ida83604bd587390a3b54fbed68f98dab8038c757
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2011-12-09 10:17:55 +01:00
Frederik Gladhorn 1e37a053ed Create a class to contain accessibilty enums.
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>
2011-12-08 08:51:35 +01:00
Frederik Gladhorn 04c65c2454 Accessibility: table2 -> table
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>
2011-12-02 08:16:44 +01:00
Frederik Gladhorn dd02fcd711 Make cell a proper QAccessible2Interface.
Change-Id: I9b245037e8448f39ed2cb80d1ef5fb0714173518
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2011-12-01 19:18:34 +01:00
Jan-Arve Saether 84e66f69ae Fix casting. Casting is now done through the virtual interface_cast.
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>
2011-11-30 12:12:08 +01:00
Frederik Gladhorn beb72b2fbf Remove virtual child integers.
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>
2011-11-23 14:54:01 +01:00
Friedemann Kleint e739ca0071 Accessible widgets: Fix warning.
Change-Id: Iaf9b112db86a4238ef24f3c6341c83ab0f9ba217
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-11-23 11:08:51 +01:00
Frederik Gladhorn 6e7f08182e Accessibility: Clean up usage of navigate.
Prefer to use parent/child functions instead.

Change-Id: Ic92165b9439eb750c9d762ddf5dcd2a5ccf0277d
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2011-11-21 15:53:16 +01:00
Frederik Gladhorn d8784cd393 Accessible ComboBox: remove virt children, add actions.
Simplify the combobox implementation by removing child logic.
Instead have an option to open the combobox.

Change-Id: I1bb517d0d064aefa28594b8fa957b8b2c9d48e88
Reviewed-on: http://codereview.qt-project.org/5032
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2011-09-23 11:15:36 +02:00
Frederik Gladhorn 76d0d19264 Add parent and child functions to QAccessibleInterface.
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>
2011-09-19 12:06:13 +02:00
Frederik Gladhorn 204108d37b Remove AccessibleEx classes.
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>
2011-09-15 09:11:35 +02:00
Frederik Gladhorn 1b7b337797 Add IAccessible2 table2 implementation.
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>
2011-08-22 15:24:32 +02:00