summaryrefslogtreecommitdiff
path: root/accessibility
AgeCommit message (Collapse)Author
2023-05-04tdf#105404 [API CHANGE] add index to accessiblity change eventNoel Grandin
Which shaves 80% off the time off breaking up a vector image on Linux. Change-Id: Id8e7daad001b6120d1fb98e382357da5b55e92ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151352 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-29Use getXWeak in accessibilityMike Kaganski
Change-Id: Ifd6d57bb4087e6934075ff9f0931260cb8d09328 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150830 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-04-15a11y: Send VALUE_CHANGED event for FormattedFieldMichael Weghorn
`VCLXAccessibleEdit::ProcessWindowEvent` takes care of sending a `TEXT_CHANGED` event. In the case of `SVTXAccessibleNumericField`, numeric values are handled, so send a `VALUE_CHANGED` event in addition. This makes Orca with the qt6 VCL plugin announce the new value when e.g. changing the page width using the arrow up key in the "Format" -> "Page Style" dialog. For Accerciser, an additional fix is needed so the value gets updated there in the interface view when the a11y object is selected. Pending MR: [1] [1] https://gitlab.gnome.org/GNOME/accerciser/-/merge_requests/25 Change-Id: Id911f50664df7220bc58204bc3477c5306a1da33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150422 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-04-01use more XVclWindowPeerNoel Grandin
Rather than using it's superclass XWindowPeer and implicitly relying on it being XVclWindowPeer and casting it everywhere. Change-Id: Icfb46f3b920d00f4a167a31803a71bbb0368d05c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149894 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-03-10improve loplugin:unnecessarylockingNoel Grandin
to find more locking we can remove Change-Id: Ief7bc5ec2a1ff31f22a0ad366910b7fcc4725818 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148599 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleToolBoxItemStephan Bergmann
Change-Id: I380d8ae6dd237c0d09209c71dfdcf7b1ad995fb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146241 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleToolBoxStephan Bergmann
Change-Id: I3b37cd67d6d32001ae6ac72f01ce156aeb93ca7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146240 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleTextFieldStephan Bergmann
Change-Id: Ie6b9fd7d825940d090f76b23597c40d8cbbca7c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleTabPageStephan Bergmann
Change-Id: Ia1b4df33d426265d5eb6f0b77c531ab3b53ea3d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146238 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleTabControlStephan Bergmann
Change-Id: I9426bac6b26feaa555842142dd3ce62bbe5f4a69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146237 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleStatusBarItemStephan Bergmann
Change-Id: I7ec38650b0ef44b59b57bd64ba74fcac918f8b6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146236 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleScrollBarStephan Bergmann
Change-Id: I8702abb22d14eb88655a1a133ecce8140b0cd4e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146235 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleRadioButtonStephan Bergmann
Change-Id: If07a07cf4e6fa465d1d6d3e52abe550922edeb6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146234 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleMenuStephan Bergmann
Change-Id: Ia086713b06cd9525e5bb03e74a1908bdd6058b18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146233 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Use ImplInheritanceHelper in VCLXAccessibleMenuItemStephan Bergmann
Change-Id: I0eca36225c2a43e2ba90253c013fefe43b2f29a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146232 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in VCLXAccessibleListStephan Bergmann
Change-Id: I2412ef089b5b299b131916d21afa5c5d4fd74c39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146190 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in VCLXAccessibleHeaderBarItemStephan Bergmann
Change-Id: I18b54a3cd689aaf4870c073db8d76d41661a05c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146189 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in VCLXAccessibleCheckBoxStephan Bergmann
Change-Id: I6cb7926db61590a356db7c55eeda94053dbf189f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146188 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in VCLXAccessibleButtonStephan Bergmann
Change-Id: Ia5c384e7ae4b78e008836fafc5433accd8489f07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146187 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in VCLXAccessibleBoxStephan Bergmann
Change-Id: I8763463a2fd85a528870d140051dd9fb49aea608 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146186 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in SVTXAccessibleNumericFieldStephan Bergmann
Change-Id: I9d9b6a6d7cbd89983cbe803511b59226330ae9e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146185 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in VCLXAccessibleEditStephan Bergmann
Change-Id: Ia81117c1819b4d3b5791a0d8ca66d79a26a3c9a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146184 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in VCLXAccessibleTextComponentStephan Bergmann
Change-Id: Iad1ae727e31908949d61d32b3828a67ac74398e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146183 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in OAccessibleMenuComponentStephan Bergmann
Change-Id: I7399a7e707d4a5915925d2e1b606ed7f6a364337 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146182 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-26Use ImplInheritanceHelper in OAccessibleMenuBaseComponentStephan Bergmann
Change-Id: I9527ea68c3fbb1637ea08cea6340b49bab9eac6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146181 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-25Use ImplInheritanceHelper in AccessibleTabBarPageListStephan Bergmann
Change-Id: I1f03912046d94bd0e14f65310d93ec4f539fa304 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146115 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-25Use ImplInheritanceHelper in AccessibleTabBarPageStephan Bergmann
Change-Id: I25092aa7307d9f1d69fbb29eb9a2db74071f760f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146114 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-25Use ImplInheritanceHelper in AccessibleTabBarStephan Bergmann
Change-Id: I709b18500f417f3f7019118bc2a298e73bbedcea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146113 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-25Use ImplInheritanceHelper in AccessibleListBoxStephan Bergmann
Change-Id: I7fd3c43a991300a6180094ef9ac44e0dc3c56764 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146112 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-25Use ImplInheritanceHelper in AccessibleIconChoiceCtrlStephan Bergmann
Change-Id: Id5dec3b807509a073fcd2383ec37d2712cf24e9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146111 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-25Use ImplInheritanceHelper in OAccessibleTextHelperStephan Bergmann
(Explicitly deleting the special member functions is needed to avoid MSVC > include\cppuhelper/implbase.hxx(152): error C2280: 'comphelper::OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper(comphelper::OAccessibleExtendedComponentHelper &&)': attempting to reference a deleted function > include\comphelper/accessiblecomponenthelper.hxx(220): note: see declaration of 'comphelper::OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper' > include\comphelper/accessiblecomponenthelper.hxx(220): note: 'comphelper::OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper(comphelper::OAccessibleExtendedComponentHelper &&)': function was explicitly deleted > include\comphelper/accessibletexthelper.hxx(133): note: see reference to function template instantiation 'cppu::ImplInheritanceHelper<comphelper::OAccessibleExtendedComponentHelper,com::sun::star::accessibility::XAccessibleText>::ImplInheritanceHelper<cppu::ImplInheritanceHelper<comphelper::OAccessibleExtendedComponentHelper,com::sun::star::accessibility::XAccessibleText>>(cppu::ImplInheritanceHelper<comphelper::OAccessibleExtendedComponentHelper,com::sun::star::accessibility::XAccessibleText> &&)' being compiled > include\comphelper/accessibletexthelper.hxx(133): note: see reference to function template instantiation 'cppu::ImplInheritanceHelper<comphelper::OAccessibleExtendedComponentHelper,com::sun::star::accessibility::XAccessibleText>::ImplInheritanceHelper<cppu::ImplInheritanceHelper<comphelper::OAccessibleExtendedComponentHelper,com::sun::star::accessibility::XAccessibleText>>(cppu::ImplInheritanceHelper<comphelper::OAccessibleExtendedComponentHelper,com::sun::star::accessibility::XAccessibleText> &&)' being compiled ) Change-Id: I00377be4a5fb44b2ef2b5001823ca0d89ead026b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146109 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-25Use ImplInheritanceHelper in VCLXAccessibleComponentStephan Bergmann
Change-Id: I300f033054bddc2c0ee1973dbafc108c477bf09a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146103 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-19Base AccessibleGridControlBase on WeakComponentImplHelperStephan Bergmann
...rather than on the deprecated WeakAggComponentImplHelper4. It was found that e.g. GridControlAccessibleElement, deriving from AccessibleGridControlBase, was implementing queryInterface in a way that is incompatible with the XAggregation protocol inherited via WeakAggComponentImplHelper4. It looks like no code actually made use of the XAggregation offered by this class hierarchy, so the easiest fix for that queryInterface implementation appears to switch from WeakAggComponentImplHelper4 to WeakComponentImplHelper (thereby dropping XAggregation, and thus rendering the existing queryInterface implementation OK). Change-Id: Ia7f033d0a93e78a48573cb489dc5542603c35b8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145793 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-16XUnoTunnel->dynamic_cast in OToolBoxWindowItemNoel Grandin
Change-Id: I65e535d9f9a81a3712b14b50cc4906b534533e86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145536 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-01-14AccessibleBrowseBoxBase's XAggregation is apparently unusedStephan Bergmann
It had been using WeakAggComponentImplHelper5 ever since at least f5d6acb1aa368ce50045b949bc12deb4d4bc0c41 "INTEGRATION: CWS a11ysep (1.1.2); FILE ADDED", but e.g. AccessibleTabListBoxTable deriving from it implements queryInterface in a way that is incompatible with XAggregation (it should only have forwarded to AccessibleBrowseBoxTable::queryInterface, and rather implemented its logic in an AccessibleTabListBoxTable::queryAggregation override). Also, without this commit but instead with a local > diff --git a/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx b/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx > index d8bcd169ac2e..45797b838167 100644 > --- a/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx > +++ b/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx > @@ -63,6 +63,7 @@ class AccessibleBrowseBoxBase : > public ::cppu::BaseMutex, > public AccessibleBrowseBoxImplHelper > { > + void SAL_CALL setDelegator(css::uno::Reference<css::uno::XInterface> const &) final { assert(false); } > public: > /** Constructor sets specified name and description. If the constant of a > text is BBTEXT_NONE, the derived class has to set the text via on all of Linux, macOS, and Windows `make check` still succeeded, and running the resulting LibreOffice on macOS with the system's VoiceOver enabled, and doing "LibreOffice - Preferences... - LibreOffice - Advanced" and clicking around in the "Java runtime environments (JRE) already installed:" table (which actually uses AccessibleBrowseBoxBase via SvHeaderTabListBox::CreateAccessible in vcl/source/treelist/svtabbx.cxx) also still succeeded and produced audio, all without hitting that injected assert that should have fired if the XAggregation mechanism had been used after all. Change-Id: Ic213a03adf31bb1754443c1951b9b267f805115b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145477 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-10OAccessibleImplementationAccess was apparently effectively unused by nowStephan Bergmann
...as there were no calls to its OAccessibleImplementationAccess::getUnoTunnelId so no code apparently made use of that XUnoTunnel Change-Id: I35d392999f1c28e81f7ff4bf395f63642eb17bce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145250 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-06Merge comphelper::OAccessibleContextHelper into ↵Stephan Bergmann
comphelper::OCommonAccessibleComponent Change-Id: I586ae8fe2842fd879ae2ae506c659d06dda16843 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145160 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-05Revert all the recent loplugin:unocast changesStephan Bergmann
...as obsoleted by ef533553559fe09b4afab651fc692885d1acf4ed "Rudimentary support for dynamic_cast on UNO proxy objects". This reverts all of: 4cfcc9ac37b90ce64c8402a41eb4638adb185b5c "loplugin:unocast (framework::Desktop)" 03efbf72f4ddf7a84aa8aabef348331bd4b75e8a "loplugin:unocast (vclcanvas::TextLayout)" 80099fdd51a69eaa6c36ca88ef772810e4a777fa "loplugin:unocast (SalGtkXWindow)" cc147f576d8687fb79c77d47d41dc4ba1678a469 "loplugin:unocast (sdext::presenter::CachablePresenterView)" 40db42be1d8fd0f9c6c8c5ba3767ddb9ee2034c2 "loplugin:unocast (vclcanvas::CanvasFont)" 2d1e7995eae29e2826449eb5179f5fae181794a5 "loplugin:unocast (CairoColorSpace)" 4c0bbe4bd97636207cf71a6aa120c67698891da9 "loplugin:unocast (canvas::ParametricPolyPolygon)" 89803666621c07d1b1ac9d3bd883f0ca192a91a0 "loplugin:unocast (vclcanas::CanvasBitmap)" d5e0c2c8db71878d21c2a7255af08cf5f9a6dd04 "loplugin:unocast (sfx2::DigitalSignatures)" c0c4519e0d5b555f59bbc04cc616454edfd1f4ce "loplugin:unocast (VCLXAccessibleComponent)" feb8b833a6245d42400f42a0bc789dc84594ee6f "loplugin:unocast (VCLXDialog)" 1fa58cc6cc9c3849753342a5d9a6ddfa461b5e66 "loplugin:unocast (VCLXMultiPage)" f481f036deb1b1b46f3038074c4659f3a91b9c6c "loplugin:unocast (DocumentSettingsSerializer)" 73df933f5fa5932f94e5a1b338a3eda00a9ce354 "loplugin:unocast (css::embed::EmbeddedUpdate)" 420165ab0ef03c0467f9d17f504de2d2fc78f0e6 "loplugin:unocast (canvas::tools' StandardColorSpace, StandardNoAlphaColorSpace)" 9abe8ee067e6c00f19d8a13346d53c4641c27166 "loplugin:unocast (MutableTreeNode)" 9f3022ceb036f23b4b0994c3e2fbd1001bff225a "loplugin:unocast (VCLXTabPage)" 1be70dda02c12a60778b7607cff2520ae1aa611e "loplugin:unocast (vcl::unotools::VclCanvasBitmap)" d6a70bb641b96e8e5616448c2378131ed62658b4 "loplugin:unocast (basegfx::unotools::UnoPolyPolygon)" 5a14f009e6782c077463c8cbb8e9cea3d7950107 "loplugin:unocast (xmlsecurity::Certificate)" 99009c9535dfa3e0d838989ccc7d84bfa2320ff4 "loplugin:unocast (sd::Annotation)" 0c7585c5fa78887e5459885ed744e8044fd76137 "loplugin:unocast (sd::TextApiObject)" 24e14afd1bfcaed6c200ab081973fba7e47267ca "loplugin:unocast (SignatureVerifierImpl)" 1a7ad0c10d286ce9ae2700ceb2fd50eed1fb43a4 "loplugin:unocast (pcr::PropertyEventTranslation)" a97e2d2702d9a6f37775ccee2c08c4f3b2479c4b "loplugin:unocast (RangePageBreaks)" 19dfdf86ad1f5b08041d8b7a9f196caf881231ab "iloplugin:unocast (pcr::OFormattedNumericControl)" f9785ea595fd8e911f6370e836fa579225b9e571 "loplugin:unocast (frm::OInterfaceContainer)" 5e5f40a4a92a31b0932c690219d002fcf18598cf "loplugin:unocast (ScVbaShapes)" 27b35b2c215b4832d4378ec3a7ecbba926552d06 "loplugin:unocast (ScVbaShapeRange)" cb3108f860065928552a86cf8acc4b3a95718ecf "cid#1517812 Dereference null return value" feba0ddb1521d1142560fe54b7d7696ee910237f "loplugin:unocast (weld::TransportAsXWindow)" 4d6c23216559eb48f9943bb49d6e475a6d64ba15 "loplugin:unocast (oox::ForumlaImExportBase)" 4844c096a8ab6a9a620c410a0949d4499f12a504 "loplugin:unocast (cairocanvas::SurfaceProvider)" 9a0b523e0a84d403b9092176ccec4b3e3efe42d0 "loplugin:unocast (cairocanvas::CanvasBitmap)" 8a5648d8e59b4b007dbbf3824777c19a21efc61e "loplugin:unocast (cairocanvas::TextLayout)" 28c27a0623bc78a0590858f97d03b620985bc84c "loplugin:unocast (cairocanvas::CanvasFont)" 53bc223cb3288e32a417696ee61c29e5f01f209d "loplugin:unocast (cairocanvas::RepaintTarget)" 5f70b0b9f6bc4ab145ddbd9155590ed4a3b1b9ec "loplugin:unocast (SvXMLImport)" 068187a898cdd2e26e9b16c348ecc1ed2dee3f29 "loplugin:unocast (VCLXWindow)" 88b4f966202717cd4ad38a30a8eda22c3e69ed35 "loplugin:unocast (sfx2::sidebar::SidebarController)" f1b7a69b280aefe2f1b3b0f32193494fd765f2bd "loplugin:unocast (SvxLineStyleToolBoxControl)" ba76f0ba7e8de4d2953739c952004b7d9af47197 "loplugin:unocast (i18npool::Calendar_gregorian)" 840154daf934d8df52ead1cb7acd798c4d30f007 "loplugin:unocast (framework::AddonsToolBarWrapper)" b0e9c4c5f063cefa9557810e3349bdb9c7493091 "loplugin:unocast (GrammarCheckingIterator)" 8ee6cfc9655ce9de4617cea1a0d9cb9d7a4fbfac "loplugin:unocast (ucb::ucp::ext::Content)" 5b8cd77c112bc8c0e92b8fec215c3c8e802bbc0a "loplugin:unocast (basic::SfxScriptLibraryContainer)" 9e73ff9fce12e102bb3c3cea8d8bb96c88f2c9ad "loplugin:unocast (sdext::presenter::PresenterNotesView)" a98acca8fbc38d3fd5600ae5056a8e42b6d8a40d "loplugin:unocast (SelectionChangeHandler)" c0b59ad6e35b0cb0dea0821e95f95569739078c1 "Consistently use comphelper::getSomethingImpl<I>(aIdentifier, this)" 276e3ccbdd3259ec3daf8a1a98fa7f406b14e21c "loplugin:unocast (vclcanvas::RepaintTarget)" Change-Id: I37c73e3422a5154bf6cb647640d2d3f23db8bc34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145063 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-23loplugin:unocast (VCLXAccessibleComponent)Stephan Bergmann
(See the upcoming commit introducing that loplugin:unocast on why such dynamic_casts from UNO types are dangerous.) Change-Id: I11496cc1d37e89ce8f11991f86c7b60bb1b93106 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144748 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-11-23loplugin:unusedfields make some fields privateNoel Grandin
this is one of the secondary analyses this plugin performs Change-Id: Iaa4424c2396470c6f1df85b0290fbffdda35fa08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143177 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-27use more string_view in accessibility..configmgrNoel Grandin
Change-Id: Ie16d36faac7d06e275348ed68e6c6b2518534fd6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140636 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-25a11y: Use FontSlant for "CharPosture"Michael Weghorn
The platform a11y integration code expects a `FontSlant` in the "CharPosture" `Any` (s. e.g. `get_style_value`/`FontSlant2Style` in `vcl/unx/gtk3/a11y/atktextattributes.cxx` or `QtAccessibleWidget::attributes`) and that's also what e.g. Writer sets for that attribute for text in the document, so do the same in `CharacterAttributesHelper::CharacterAttributesHelper`. After handling for "CharPosture" was added for the Qt-based VCL plugins in commit 99841da686625428b8ad2e219dd19e5fbfb145f5 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 20 13:23:21 2021 +0200 qt a11y: Report font style text attribute (e.g. italic) , clicking through the a11y hierarchy of e.g. Writer's "Page Style" dialog in Accerciser's treeview of the LO a11y hierarchy would otherwise crash LO when used with the qt6 VCL plugin. With this in place, the style is reported correctly there. (Tested by temporarily setting "oblique" style using glade for the "Next style" label in the "Organizer" tab in that dialog's UI file.) Change-Id: Ibea42db067e0cdb3b85c80dbcca5939b3dfe5570 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140527 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-09-19OSL_ENSURE->assert where we would crash if not trueMike Kaganski
Change-Id: Ib6c2806070ae11b5542fcbba284f2640400bf984 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140131 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-09-15tdf#42982 improve UNO API error reportingPoonamShokeen
Change-Id: Ibaf4bb0a9c9a8f613fd63ccd53a0e29d840fb21a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137904 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-09-14move ErrCode to comphelper and improve debug output stringNoel Grandin
need to move it, because modules "below" vcl want to use the debug output method Change-Id: Ibcaf4089a1e0b3fcc0b5189c7ebf1aae90f50b48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139791 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-02[API CHANGE] tdf#150683 a11y: Switch a11y child index to 64 bitMichael Weghorn
With 16k column support in Calc enabled by default in commit 4c5f8ccf0a2320432b8fe91add1dcadf54d9fd58 Date: Tue Mar 8 12:44:49 2022 +0100 change default Calc number of columns to 16384 (tdf#50916) , the number of Calc cells in a spreadsheet is larger than SAL_MAX_INT32, meaning that a 32-bit a11y child index is no more enough and using it resulted in integer overflows in methods handling corresponding Calc cells in the a11y layer. This e.g. had the effect of the Orca and NVDA screen readers not announcing focused or selected cells properly when their a11y child index was out of the 32-bit integer range. Switch the internal a11y child indices to 64 bit to be able to handle this properly internally. Since the platform APIs (at least AT-SPI on Linux and IAccessible2 on Windows; from what I can see LO's macOS a11y bridge doesn't directly expose the child index) are still restricted to 32 bit, larger child indices still cannot be exposed via the platform APIs. As a consequence, use of the the IAccessible2 and AT-SPI methods that use the child index remains problematic in those cases where the child index is larger. However, as an alternative to using the AT-SPI Table interface and the IAccessibleTable/ IAccessibleTable2 interfaces with the child index to retrieve information about a specific cell, both AT-SPI and IAccessible2 also provide interfaces to retrieve that information directly from the cell object (TableCell interface for AT-SPI, IAccessibleTableCell for IAccessible2). Those interfaces are already implemented/exposed for winaccessibility (s. `CAccTable`) and the qt5/qt6/kf5 VCL plugins (s. the `QAccessibleTableCellInterface` methods implemented in `QtAccessibleInterface`). With the switch to 64-bit internal a11y child indices, these now behave correctly for cells with a child index that doesn't fit into 32 bit as well. NVDA on Windows already uses the IAccessibleTableCell interface and thus announcing focused cells works fine with this change in place. Orca on Linux currently doesn't make use of the AT-SPI TableCell interface yet, but with a suggested change to do so [1], announcement of selected cells works with the qt6 VCL plugin with a current qtbase dev branch as well - when combined with the suggested changes to implement support for the AT-SPI TableCell interface in Qt [2] [3] and the LO change based on that [4] and a fix for a nullptr dereference [5]. The gtk3 VCL plugin doesn't expose the AT-SPI TableCell interface yet, but once it does so (via `AtkTableCell`), it also works with the suggested Orca change [1] in place. (Adding that is planned for an upcoming change, works with a local WIP patch.) For handling return values that are larger than what platform APIs support, the following approach has been chosen for now: 1) When the return value is for the count of (selected) children, the maximum value N supported by the platform API is returned. (This is what `ScAccessibleTableBase::getAccessibleChildCount` did previously.) The first N elements can be accessed by their actual (selection) indices. 2) When the return value is the child/cell index, -2 is returned for objects whose index is greater than the maximum value supported by the platform API. Using a non-negative value would mean that the index would refer to *another* actually existing child. A child index of -1 on the other hand tends to be interpreted as "child is invalid" or "object isn't actually a child of its (previous) parent any more)". For the Orca case, this would result in objects with a child index of -1 not being announced, as they are considered "zombies" [6]. What's still somewhat problematic is the case where more than 2^31 children are *selected*, since access to those children still happens by the index into the selection in the platform APIs, and not all selected items are accessible this way. (Screen readers usually just retrieve the first and last element from the selection and announce those.) Orca already seems to apply different handling for the case for fully selected rows and columns, so "All cells selected" or "Columns ... to ... selected" is announced just fine even if more than 2^31 cells are selected. (Side note: While Microsoft User Interface Automation - UIA - also uses 32-bit indices, it also has specific methods in the ISelectionProvider2 interface that allow to explicitly retrieve the first and last selected item, `ISelectionProvider2::get_FirstSelectedItem` and `ISelectionProvider2::get_LastSelectedItem`, but we currently don't support UIA on Windows.) Bound checks at the beginning of the methods from the `XAccessibleContext`, `XAccessibleSelection` and `XAccessibleTable` interfaces that take a child index (or in helper methods called by those) should generally already prevent too large indices from being passed to the methods in the lower layer code that take smaller integer types. Such bound checking has been been added in various places where it wasn't present yet. If there any remaining issues of this kind that show after this commit, they can probably be solved in a similar way (s.e.g. the change to `AccessibleBrowseBox::getAccessibleChild` in this commit). A few asserts were also added at places where my understanding is that values shouldn't be larger than what is supported by a called method anyway. A test case will be added in a following change. [1] https://gitlab.gnome.org/GNOME/orca/-/merge_requests/131 [2] https://codereview.qt-project.org/c/qt/qtbase/+/428566 [3] https://codereview.qt-project.org/c/qt/qtbase/+/428567 [4] https://gerrit.libreoffice.org/c/core/+/138750 [5] https://codereview.qt-project.org/c/qt/qtbase/+/430157 [6] https://gitlab.gnome.org/GNOME/orca/-/blob/82c8542002e36e0d3d918088d583162d25136143/src/orca/script_utilities.py#L5155 Change-Id: I3af590c988b0e6754fc72545918412f39e8fea07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139258 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-25vcl: rename GetNonMnemonicString() and make it standalone functionChris Sherlock
Renamed GetNonMnemonicString() to removeMnemonicFromString() Change-Id: I272714f97bb6d9174360631c18c4fd9bb485698e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138103 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-18Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxxStephan Bergmann
...so that its TOOLS_WARN_EXCEPTION can be used in comphelper/source/misc/logging.cxx in a follow-up commit. (And while at it, rename from diangose_ex.h to the more appropriate diagnose_ex.hxx. The comphelper module is sufficiently low-level for this immediate use case, so use that at least for now; o3tl might be even more suitable but doesn't have a Library until now. Also, for the immediate use case it would have sufficed to only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION, TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of include/tools/diagnose_ex.h into an additional new include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move the complete include file as is.) Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-09move scrbar.hxx to vcl/toolkitCaolán McNamara
Change-Id: I77038cbf500976703ad41365da9a675a698863a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137979 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-07-20move wintypes.hxx from tools to vclChris Sherlock
Change-Id: Ief9949fd4252de9e33df172af07aa7ed097b5520 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136560 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>