aboutsummaryrefslogtreecommitdiff
path: root/source/my/uui/messages.po
AgeCommit message (Expand)Author
2022-10-10update translations for masterChristian Lohmaier
2022-04-26update translations for masterChristian Lohmaier
2022-04-04update translations for masterChristian Lohmaier
2021-11-24update translations for master/7.3.0 beta1Christian Lohmaier
2021-05-31update translations for masterChristian Lohmaier
2021-03-23update translations for masterChristian Lohmaier
2021-01-25update translations for masterChristian Lohmaier
2020-11-16update translations for masterChristian Lohmaier
2020-10-27update translations for master / 7.1.0.0 alpha1Christian Lohmaier
2020-10-23update translations for master/7.1.0 alpha1Christian Lohmaier
2020-10-12update translations for masterChristian Lohmaier
2020-08-27update translations for masterChristian Lohmaier
2020-08-21update translations for masterChristian Lohmaier
2020-02-11update translations for masterChristian Lohmaier
2019-04-25update translations for masterChristian Lohmaier
2018-11-13update translations for masterChristian Lohmaier
2018-05-24update translations for master/6.1 beta1libreoffice-6-1-branch-pointChristian Lohmaier
2018-04-25update translatiosn for 6.1.0 alpha1Christian Lohmaier
2018-01-15update translations after first de-fuzzying roundChristian Lohmaier
2017-12-18update translations for 6.0/masterChristian Lohmaier
2017-12-12resurrect some translated strings via compendiumChristian Lohmaier
2017-11-22update translations for 6.0 beta1Christian Lohmaier
2017-10-19update templates for 6.0.0 alpha1Christian Lohmaier
2017-09-14convert to gettext formatCaolán McNamara
on> LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/vcl/qt5/QtAccessibleRegistry.cxx
AgeCommit message (Collapse)Author
2022-08-24qt a11y: Remember associated QObject also for non-QtXAcccessible caseMichael Weghorn
This is similar to what Change-Id Ic890a387ff016e889f25dba70c82d0d81ae7a9e3 ("qt a11y: Remember and reuse existing QObject for XAccessible") does to avoid creating another `QtXAccessible` for an `XAccessible` if one has been created earlier. However, there is an additional case that needs to be covered to avoid creating multiple `QObjects` for a single `XAccessible`: `QtAccessibleWidget::customFactory` not only gets called by explicitly calling `QAccessible::queryAccessibleInterface` from within LibreOffice code, but the Qt library itself also calls this method, in which case no entry associating the `XAccessible` with its `QObject` had been inserted into the map handled by our `QtAccessibleRegistry` previously. This would result in a "new" `QtXAccessible` object being created later when a `QObject` would be needed for that `XAccessible`, rather than using the `QtWidget` that is the actual `QObject` associated with the object. Prevent that from happening by inserting an entry into the map for this case as well. With this and two Accerciser fixes [1] [2] in place, jumping to bookmarks in Accerciser's treeview of the LO a11y hierarchy now generally works with the qt6 VCL plugin. It previously failed due to the fact that a new object was created and navigating the tree up to the root application object from the bookmarked object would then fail. The fact that there were two objects could be seen e.g. by using the following commands in Accerciser's IPython console with the root "soffice.bin" application a11y object selected in the treeview after starting Calc: In [25]: acc[1][0][0].get_parent().path Out[25]: '/org/a11y/atspi/accessible/2147483672' In [26]: acc[1][0].path Out[26]: '/org/a11y/atspi/accessible/2147483648' -> Two different IDs/paths for what should be the same object. (The parent of the first child of the object at tree path 1,0 should be the object itself, but here it wasn't.) With this change in place, this now works as expected: In [28]: acc[1][0][0].get_parent().path Out[28]: '/org/a11y/atspi/accessible/2147483648' In [29]: acc[1][0].path Out[29]: '/org/a11y/atspi/accessible/2147483648' Together with Change-Id Ic890a387ff016e889f25dba70c82d0d81ae7a9e3 ("qt a11y: Remember and reuse existing QObject for XAccessible"), this also addresses the remaining issue mentioned in commit 99640693d28ca11b31a1d3855e104d2d8c5122d7 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Aug 3 16:49:48 2022 +0200 > Note however that this change alone is not yet sufficient > for a window to actually be returned for any arbitrary a11y > object deeper down the hierarchy. This is because > walking up the a11y hierarchy currently results in new > Qt a11y objects being created for the parents instead of > using existing ones, and the newly created ones lack > the association to the widgets. > (This works in a WIP branch that remembers/caches > a11y objects, but that needs some additional work before > it can be merged.) Note that there are still cases where navigation to bookmarks in Accerciser's tree view doesn't work (reliably), but those would need to be looked at separately and might not be specific to the qt6 VCL plugin. (At least I have come across such cases with gtk3 as well.) [1] https://gitlab.gnome.org/GNOME/accerciser/-/commit/c2a3e9f1eb1fcd6eb059f1f2fe6e629b86521335 [2] https://gitlab.gnome.org/GNOME/accerciser/-/commit/a092dc933985fafd5b1e2cc3374c7bbc0fb2d12e Change-Id: I02262014a45a4b024cdc1bbd385da8a35a2c304a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138764 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-24qt a11y: Remember and reuse existing QObject for XAccessibleMichael Weghorn
Previously, a new `QtXAccessible` object was created for an `XAccessible` each time before `QAccessible::queryAccessibleInterface` was called, which is not only unnecessary but also causes various issues, e.g. it breaks walking the a11y hierarchy upwards (i.e. from children to parents), since a new object is created for the parent. This introduces `QtAccessibleRegistry` that keeps a mapping between the `XAccessible` and the associated `QObject`. That mapping is used to reuse already created objects instead of creating new ones for the same `XAccessible`. The entry for an `XAccessible` is removed again from the map in `QtAccessibleWidget::invalidate`, which gets called when the `XAccessible` gets disposed, s. `QtAccessibleEventListener::disposing`. With this in place, Orca now also nicely announces only the text of the push buttons themselves in the "Save Document?" dialog when switching between the buttons using the Tab key, rather than announcing the whole widget hierarchy every time (probably because creating a new object every time prevented Orca from recognizing that the previously selected pushbutton and the newly selected one are siblings, i.e. have the same parent object.) Change-Id: Ic890a387ff016e889f25dba70c82d0d81ae7a9e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138757 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>