summaryrefslogtreecommitdiff
path: root/winaccessibility/inc
AgeCommit message (Collapse)Author
2023-06-14tdf#155794 winaccessibility: no SolarMutex in getAccObjectPtr()Michael Stahl
MSAAServiceImpl::getAccObjectPtr() is called when processing WM_GETOBJECT messages, and this can happen (at least when NVDA is active) during processing SendMessages. When loading a document on a non-main thread, WinSalFrame::SetTitle() calls SetWindowTextW which is equivalent to SendMessage(WM_SETTEXT), while holding SolarMutex, and if the main thread doesn't finish processing it then that's a deadlock. Introduce a new mutex in AccObjectWinManager and use it to guard the 2 members that getAccObjectPtr() reads, while keeping the rest of winaccessibility with the SolarMutex, as the UNO services may be called on any thread. This fixes part of the problem, VCL also needs to stop using SolarMutex. Change-Id: I6df5889fd76f59146b4b0b1e5f4513232f8ab867 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152957 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit ac1099443e70eefbd8fdd7dd3705fff08a9c75b8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152985
2023-03-22tdf#154303 wina11y: Don't truncate 64-bit statesMichael Weghorn
commit 8d8e6c84e512c1a8b33aac75965b84481d1a1d13 Date: Sun Jul 3 20:29:28 2022 +0200 [API CHANGE] Drop css::accessibility::XAccessibleStateSet had introduced the use of a 64-bit integer with bit flags for the accessible states. However, `AccObjectWinManager::DecreaseState` and `AccObjectWinManager::IncreaseState` were still using unsigned short, resulting in truncation. As one result, the `AccessibleEventId::STATE_CHANGED` event with state `AccessibleStateType::VISIBLE` from `OAccessibleMenuBaseComponent::SetVisible` would no longer result in the `STATE_SYSTEM_INVISIBLE` being unset and thus the the JAWS screen reader would no longer announce the focused (but considered invisible) menu item. Fix this by switching the param for those two methods to sal_Int64 as well. Change-Id: I714573e2691e82c6287a4b83f872f87568e46495 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149255 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-11-24Drop redundant -Wnon-virtual-dtorStephan Bergmann
Inspired by <https://gcc.gnu.org/pipermail/gcc-patches/2022-November/607102.html> "[PATCH] doc: -Wdelete-non-virtual-dtor supersedes -Wnon-virtual-dtor", drop explicitly enabling -Wnon-virtual-dtor in favor of -Wdelete-non-virtual-dtor, which is already enabled by -Wall. (-Wdelete-non-virtual-dtor first appeared in Clang 3.0, <https://github.com/llvm/llvm-project/commit/8bd428574c717e68a8274739d2ba0f6dc16fd0fb> "Add new warning that warns when invoking 'delete' on a polymorphic, non-final, class without a virtual destructor", and GCC 4.7, <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=014ab419efc12a59efebd2720d79e1c055675c85> "invoke.texi: Document -Wdelete-non-virtual-dtor. [...]") Dropping the explicit setting of -Wnon-virtual-dtor (and nowhere setting it implicitly via -Weffc++) means we can get rid of lots of places that either set -Wno-non-virtual-dtor or use some pragma to ignore -Wnon-virtual-dtor. (In various places across extensions/source/activex/ and winaccessibility/, the commits f26996bd3398afa789a5491968244563ccf70908 "Silence -Werror,-Wnon-virtual-dtor in generated so_activex.h (clang-cl)" and c6086ca6535692496fbd718d174d8eb5a5dea7c7 "Silence -Werror,-Wnon-virtual-dtor in generated UAccCOM.h (clang-cl)" had singled out some includes to wrap them in pragmas. Now that those pragmas are gone again, move those includes back to where they had been prior to being singled out. And the -Wno-non-virtual-dtor in external/firebird/macos-arm64.patch.0 appeared first in ccd0e5f445d4a7d0e7aca6c23c02c61bf14510b2 "Make firebird build for macOS on arm64", which, though it doesn't state it explicitly, apparently created that patch's builds/posix/prefix.darwin_arm64 as a copy of firebird's already existing builds/posix/prefix.* files, which routinely include that warning option too, so keep it there too even if it is probably irrelevant throughout.) Change-Id: I7e4fa9f2c07e267b2ed15607905027f6b78142f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143182 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-31wina11y: Drop unused member and methods related to selectionMichael Weghorn
Those were only used by `AccObjectWinManager::UpdateAccSelection`, which has been dropped in Change-Id I49bfddb636721d9142a88b7ce1eb3ee3a2f9c695 ("wina11y: Drop unused AccObjectWinManager::UpdateAccSelection"). Change-Id: I11d1ad3f01929a68e341f910ec6382f91227e3c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139124 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-31wina11y: Drop unused AccObjectWinManager::UpdateAccSelectionMichael Weghorn
It was already unused when it was added in commit a18bdb3bc05e761704cc345a66a9d642bc4f4a0a Date: Thu Nov 14 08:18:05 2013 +0000 Integrate branch of IAccessible2 `CMAccessible::get_accSelection` already queries information on demand. The dropped method looks like another one of the methods that could be used for manual bookkeeping of information instead of querying them from the underlying UNO interfaces on demand. But retrieving them on demand seems preferable, s.a. the commit message in commit fcf4a26275d7503835f9aa23cb94938809840300 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jan 5 13:41:53 2022 +0000 tdf#146306 wina11y: Retrieve accessible desc on demand > Querying up-to-date values from the underlying > UNO interfaces on demand instead of doing extra > manual bookkeeping in the winaccessibility code > may be possible for more a11y attributes in addition > to the accessible description handled in this commit, > but each one will have to be looked at separately. Change-Id: I49bfddb636721d9142a88b7ce1eb3ee3a2f9c695 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139123 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-05wina11y: Drop extra location bookkeepingMichael Weghorn
The location is already retrieved on demand from the underlying `XAccessible` in `CMAccessible::accLocation` and the separately remembered location was just used as fallback in case `m_xAccessible` was not (no more) set. However, when there is no valid associated `XAccessible`, there is probably no value in returning any location anyway, so just return `S_FALSE` for that case, as other `CMAccessible` methods also do. Whether the separately remembered `m_sLocation` was up to date is also questionable, s.a. Change-Id I04d0230d3599466aaa92082caba54da22a3b1a28, "wina11y: Drop AccObjectManagerAgent::UpdateLocation". This is also in line with what's mentioned in commit fcf4a26275d7503835f9aa23cb94938809840300 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jan 5 13:41:53 2022 +0000 tdf#146306 wina11y: Retrieve accessible desc on demand > Querying up-to-date values from the underlying > UNO interfaces on demand instead of doing extra > manual bookkeeping in the winaccessibility code > may be possible for more a11y attributes in addition > to the accessible description handled in this commit, > but each one will have to be looked at separately. Change-Id: I2fc51939a5db1896e02efacb1cf5fbc90ce87c04 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137858 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-05wina11y: Drop AccObjectManagerAgent::UpdateLocationMichael Weghorn
That static method doesn't do anything. `_IMPL_WIN` is not defined, so the #ifdef _IMPL_WIN if( pWinManager ) pWinManager->SetLocation( pXAcc, top, left, width, height ); #endif in the method is unused. Since `CMAccessible::accLocation` already retrieves the current location from the underlying `XAccessible` on demand, I don't see a need to update the location manually in the first place, so there should be no need to enable that, code, just drop it. Also drop `AccObjectWinManager::SetLocation` which was unused since `AccObjectManagerAgent::UpdateLocation` (s. above) would have been the only call site. Change-Id: I04d0230d3599466aaa92082caba54da22a3b1a28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137857 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-07-08[API CHANGE] Drop css::accessibility::XAccessibleStateSetNoel Grandin
which is internal API, unused (as far as I can tell) by external users. This state is purely a bitset (as implemented by utl::AccessibleStateSetHelper) so we can just return it as a 64-bit value. This shaves significant time off the performance profiles of code that loads very complex shapes, because this state is frequently used, and we no longer need to allocate a return value on the heap for every call. Change-Id: Icf1b3bd367c256646ae9015f9127025f59459c2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136786 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-22wina11y: Slightly clean up WinResIDGeneratorMichael Weghorn
Changes: * drop the optional `maxNum` param for the constructor, it's never set to anything different than the default value * store negative number in member (renamed from `max` to `m_nMin`) instead of storing positive number and inverting that when returning it in `ResIDGenerator::GenerateNewResID` * Use -1 as the first resource ID instead of -2. Also, add a comment that negative child IDs are used because it's common to use such ones to indicate unique resource IDs in IAccessible2. Quoting James Teh's comment on an NVDA pull request of mine [1]: > The use of negative child ids doesn't fit well into the IAccessible > spec, but it has been done by IAccessible2 for a very long time and > should be considered standard for all intents and purposes. A negative > child id should be treated as a unique id, while a positive child id > should be treated as a child index. > > That said, as noted in #13277 (comment), IAccessible2 elements are > always full IAccessible objects, not "simple elements". Thus, anything > that returns an accessible (including accSelection) really should return > an object pointer. In the case of accSelection, this means VT_DISPATCH > for a single selection or VT_UNKNOWN and iEnumVARIANT (with VT_DISPATCH > elements) for multiple selection. > > In short, NVDA supporting negative child ids returned from accSelection > isn't necessarily "wrong", but ideally, LibreOffice would be fixed to > return full objects. The latter (returning full objects) has already been addressed in commit 00c0ee8cf0fac0c933c5ae600e99a64b1c7d4397 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Jan 31 07:41:14 2022 +0000 tdf#147083 wina11y: Return a11y object instead of child ID but a unique ID is still relevant, s. e.g. the documentation of `IAccessible2::uniqueID` [2], which also mentions potential ways to implement unique IDs: > One means of implementing this would be to create a factory with a 32 > bit number generator and a reuse pool. The number generator would emit > numbers starting at 1. Each time an object's life cycle ended, its > number would be saved into a reuse pool. The number generator would be > used whenever the reuse pool was empty. > > Another way to create a unique ID is to generate it from a pointer > value, e.g. an object's address. That would be unique because no two > active objects can use the same allocated memory space. The first approach is what the LO implementation currently does, except that negative numbers are used. [1] https://github.com/nvaccess/nvda/pull/13277#issuecomment-1024622871 [2] https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible2.html#aac1342376cf195a6a6e9ee3b7e30ae3b Change-Id: I6c0a6c4a4e3a69396205fe2d69cd66af6525a273 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131927 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-02-28wina11y: Rename IsSpecialToolboItem -> IsSpecialToolbarItemMichael Weghorn
Change-Id: I972a65783fcb481e91db68e6e58124d46f78ee66 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130698 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-02-28wina11y: Convert unomsaaevent.hxx constants to enum class UnoMSAAEventMichael Weghorn
Also drop the previous comments for the constants that add little value and are partially outdated. See the actual implementation to see how values are mapped to send out actual MSAA events, e.g. the previous comment // CARET_CHANGED --> EVENT_OBJECT_LOCATIONCHANGED was no longer correct by now, since that is by now mapped to `IA2_EVENT_TEXT_CARET_MOVED` in `AccObjectWinManager::NotifyAccEvent`. Change-Id: I38111ccb60c06f73ce53b18a6ca32e13dbd629b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130697 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-12-Werror,-Wunused-parameterStephan Bergmann
...since fcf4a26275d7503835f9aa23cb94938809840300 "tdf#146306 wina11y: Retrieve accessible desc on demand" Change-Id: I8acdca5fac481ca7b970fb9c3660470c5febdf99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128307 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-06wina11y: Drop now unused AccObject::SetRoleMichael Weghorn
Change-Id: I04db43ac49d7bc6ff42157cdd0c94087c454c981 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128009 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06wina11y: Drop unused AccObjectWinManager::SetRoleMichael Weghorn
Change-Id: Ic2d470a137e4d0c907f28e24c58ba19a937a8b4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128008 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06tdf#146306 wina11y: Retrieve accessible desc on demandMichael Weghorn
Adapt 'MAccessible::get_accDescription' to directly retrieve the accessible description on demand via the corresponding XAccessible, rather than keeping track of it in a class member. This simplifies the handling and makes it unnecessary to "manually" update the description on 'accessibility::AccessibleEventId::DESCRIPTION_CHANGED' events, since the new value will be queried next time it is needed anyway. This also fixes the problem that a significant amount of time was spent generating accessible descriptions for all newly inserted a11y objects when entering values into Calc cells with the NVDA screen reader in use, resulting in several seconds of delay. Querying up-to-date values from the underlying UNO interfaces on demand instead of doing extra manual bookkeeping in the winaccessibility code may be possible for more a11y attributes in addition to the accessible description handled in this commit, but each one will have to be looked at separately. Change-Id: I57f4c523ca8b10afad3f9c347c8ff5e9420ad968 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128006 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-10-01loplugin:nullptr (clang-cl)Stephan Bergmann
Change-Id: I47ac4ff7d82eb5732ad54e3b42c18c3665c83b82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122845 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-20wina11y: Drop bool param from CMAccessible::NotifyDestroyMichael Weghorn
... and 'AccObject::NotifyDestroy', respectively. The only calling site calls it with 'true' as parameter (and 'CMAccessible::NotifyDestroy' was calling 'm_xAccessible.clear()' regardless of what value the passed param had anyway). Change-Id: I08a24f79b50ec327ae461bd44ee6460a2d8145f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122343 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-20wina11y: Drop AccObject::m_bShouldDestroyMichael Weghorn
The getter, 'AccObject::ifShouldDestroy', was unused, so drop it. The only place where the 'm_bShouldDestroy' member was actually used was in 'AccObject::NotifyDestroy', where it was assigned a value from a method param that was then passed further right away, so there's no need to store the value at all. Change-Id: Id5688e9742892e345b143a8eebeed5099696a0f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122342 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-17wina11y: Get rid of more HWND<->sal_Int64 castingMichael Weghorn
... by changing the first param for AccObjectManagerAgent::SaveTopWindowHandle to HWND. Change-Id: Ia94bd95c49a64e63b1be332bd03e83a288707d80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122204 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-17wina11y: Avoid some casting between HWND and sal_Int64Michael Weghorn
... by changing the corresponding params for AccObjectManagerAgent::InsertAccObj and AccObjectManagerAgent::InsertChildrenAccObj to HWND. Change-Id: I598bac30d827ae9166bc21cb5e8dff88a5cc99bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122203 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-16tdf#100086 wina11y: Don't delete a11y object for removed cell right awayMichael Weghorn
When handling a SELECTION_CHANGED_REMOVE event, AccDescendantManagerEventListener previously emitted a corresponding EVENT_OBJECT_SELECTIONREMOVE MSAA event with the removed child's ID as a parameter, then deleted that child's accessibility object. This resulted in the accessibility object no longer being available if accessibility tools queried for the object just received in the EVENT_OBJECT_SELECTIONREMOVE event. As a consequence, no 'event_selectionRemove' would be triggered for any table cell object on NVDA side, so an updated selection would not be announced for that case. To keep child objects available for such cases, don't delete the corresponding object in the handler for the SELECTION_CHANGED_REMOVE handler, but remember it for deletion and only do the actual deletion once a subsequent different event is handled. With this in place, the announcement for multiple selected cells in Calc generally works with the NVDA screen reader and a pending NVDA pull request [1] by Leonard de Ruijter in place (s.a. discussion in NVDA issue [2] for more background and further information). (There are still cases where events in response to selection changes are missing, as described e.g. in tdf#118508 and tdf#118748, but those are not winaccessibility-specific and it's the same when using the gtk3 VCL plugin with the Orca screen reader on Linux.) [1] https://github.com/nvaccess/nvda/pull/12849 [2] https://github.com/nvaccess/nvda/issues/9310 Change-Id: I7a46060c501ba9b8288e7c127121a535c60ce2bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122169 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-15wina11y: Forward-declare XAccessible in AccObjectWinManager.hxxMichael Weghorn
instead of including the header, as suggested by Mike Kaganski in the Gerrit change for commit 6bf771f0a5ba7be9955f05b307c190fb157adb47 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Sep 9 11:36:57 2021 +0100 wina11y: Use XAccessible* instead of void* Change-Id: If52de3a71af63697815e4ec6a19f9139d5a6973d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122085 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (The header had actually been included previously, so the above commit had added it to the same header a second time...) Change-Id: Id6a6c5e2426bf07e41f29e1473ec1694970272c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122132 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-14wina11y: Use XAccessible* instead of void*Michael Weghorn
Change-Id: If52de3a71af63697815e4ec6a19f9139d5a6973d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122085 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-03-23tdf#124176 Use pragma once in w*Vincent LE GARREC
Change-Id: I693f6dafb743d39afd8e41e66a8066f04043f8a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112052 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2020-11-18tdf#123936 Formatting files in module winaccessibility with clang-formatPhilipp Hofer
Change-Id: I9d5b9697cb241b306d0614fb563feb5594c19887 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105729 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-09-01Fix typo in codeAndrea Gelmini
It passed "make check" on Linux Change-Id: I4733e6609ee99bef49c2771c83b450ee89d955b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101804 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-19Fix typoAndrea Gelmini
Change-Id: I20d29dd50644889b5e802229ca7cdbd7fa22bf56 Reviewed-on: https://gerrit.libreoffice.org/85497 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-19Fix typoAndrea Gelmini
Change-Id: Id092aa56218890417a79b9589a7867ab6aa49862 Reviewed-on: https://gerrit.libreoffice.org/85494 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-03-27loplugin:typedefparam (clang-cl)Stephan Bergmann
Change-Id: I07604028845c49cc084927e21db7f21c5d053bab Reviewed-on: https://gerrit.libreoffice.org/69796 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-10-24remove more rtl::OUString and OString prefixesNoel Grandin
which seem to have snuck back in since the great rounds of removals. Change-Id: I85f7f5f4801c0b48dae8b50f51f83595b286d6a1 Reviewed-on: https://gerrit.libreoffice.org/62229 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-13Fix typosAndrea Gelmini
Change-Id: Ie3baa2f843a98c1edc523050db53beaa2c803394 Reviewed-on: https://gerrit.libreoffice.org/58801 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2017-10-27loplugin:includeform: winaccessibility (Windows)Stephan Bergmann
Change-Id: I8b83e650202c2b169803c22a7f94223a180dd48a
2017-09-18Use even more WIN32_LEAN_AND_MEANMike Kaganski
Change-Id: I538fe5b41156366e0e87b3a93e58a3947afd18f5 Reviewed-on: https://gerrit.libreoffice.org/42398 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2017-08-31loplugin:constparams: winaccessibility (clang-cl)Stephan Bergmann
Change-Id: Ic668c1ee6c2dac70642480bc584f962921b428b2
2017-07-21migrate to boost::gettextCaolán McNamara
* all .ui files go from <interface> to <interface domain="MODULE"> e.g. vcl * all .src files go away and the english source strings folded into the .hrc as NC_("context", "source string") * ResMgr is dropped in favour of std::locale imbued by boost::locale::generator pointed at matching MODULE .mo files * UIConfig translations are folded into the module .mo, so e.g. UIConfig_cui goes from l10n target to normal one, so the res/lang.zips of UI files go away * translation via Translation::get(hrc-define-key, imbued-std::locale) * python can now be translated with its inbuilt gettext support (we keep the name strings.hrc there to keep finding the .hrc file uniform) so magic numbers can go away there * java and starbasic components can be translated via the pre-existing css.resource.StringResourceWithLocation mechanism * en-US res files go away, their strings are now the .hrc keys in the source code * remaining .res files are replaced by .mo files * in .res/.ui-lang-zip files, the old scheme missing translations of strings results in inserting the english original so something can be found, now the standard fallback of using the english original from the source key is used, so partial translations shrink dramatically in size * extract .hrc strings with hrcex which backs onto xgettext -C --add-comments --keyword=NC_:1c,2 --from-code=UTF-8 --no-wrap * extract .ui strings with uiex which backs onto xgettext --add-comments --no-wrap * qtz for gettext translations is generated at runtime as ascii-ified crc32 of content + "|" + msgid * [API CHANGE] remove deprecated binary .res resouce loader related uno apis com::sun::star::resource::OfficeResourceLoader com::sun::star::resource::XResourceBundleLoader com::sun::star::resource::XResourceBundle when translating strings via uno apis com.sun.star.resource.StringResourceWithLocation can continue to be used Change-Id: Ia2594a2672b7301d9c3421fdf31b6cfe7f3f8d0a
2017-06-18remove unused osl/mutex.hxx includesJochen Nitschke
Change-Id: I3b50e45fdb99e9cd8bfda07356ee3ddb4dd0f8bb Reviewed-on: https://gerrit.libreoffice.org/38905 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2017-01-26Remove dynamic exception specificationsStephan Bergmann
...(for now, from LIBO_INTERNAL_CODE only). See the mail thread starting at <https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html> "Dynamic Exception Specifications" for details. Most changes have been done automatically by the rewriting loplugin:dynexcspec (after enabling the rewriting mode, to be committed shortly). The way it only removes exception specs from declarations if it also sees a definition, it identified some dead declarations-w/o-definitions (that have been removed manually) and some cases where a definition appeared in multiple include files (which have also been cleaned up manually). There's also been cases of macro paramters (that were used to abstract over exception specs) that have become unused now (and been removed). Furthermore, some code needed to be cleaned up manually (avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no configurations available that would actually build that code. Missing @throws documentation has not been applied in such manual clean-up. Change-Id: I3408691256c9b0c12bc5332de976743626e13960 Reviewed-on: https://gerrit.libreoffice.org/33574 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-11-08typo fix: ressource -> resourceAndras Timar
Change-Id: Id8d1c01b17e711a057a9f3f20e1d0f955b2ea6c8 Reviewed-on: https://gerrit.libreoffice.org/30690 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Andras Timar <andras.timar@collabora.com>
2016-10-15clang-cl loplugin: winaccessibilityStephan Bergmann
Change-Id: I40f8a6fef9d66b28a1d72551a6873b041b38b09d Reviewed-on: https://gerrit.libreoffice.org/29840 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-03-04Silence -Werror,-Wnon-virtual-dtor in generated UAccCOM.h (clang-cl)Stephan Bergmann
Change-Id: I9466931485ed5421be589def16185d5c036bdcb8
2016-01-10Fix typosAndrea Gelmini
Change-Id: I9a5940027423ff0791fa7da0b79b617412ce6b86 Reviewed-on: https://gerrit.libreoffice.org/21209 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2015-11-28-Werror,-Wunused-private-fieldStephan Bergmann
Change-Id: I0a231c3cf0241034d9132067569130c343b98c16
2015-11-28-Werror,-Winconsistent-missing-overrideStephan Bergmann
Change-Id: I5c96e762c78aaf4ad9e2bd751f45dd1166e9d768
2015-11-24com::sun::star->css in winaccessibility/Noel Grandin
Change-Id: I644364fc6d8fc334044a3e53fcde24a6ef86c021 Reviewed-on: https://gerrit.libreoffice.org/20142 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-10-12Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY codeStephan Bergmann
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-09-29Fix typosAndrea Gelmini
Change-Id: I4525b43fa823d743b86bf4136c56af35274085e6 Reviewed-on: https://gerrit.libreoffice.org/18995 Reviewed-by: Joren De Cuyper <jorendc@libreoffice.org> Tested-by: Joren De Cuyper <jorendc@libreoffice.org>
2015-09-19boost->stdCaolán McNamara
Change-Id: I5079e03f70370ed83a1158b2e278f48642108f08 Reviewed-on: https://gerrit.libreoffice.org/18692 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-09-15Resolves: tdf#88206 replace cppu::WeakImplHelper* etc.Takeshi Abe
with the variadic variants. Change-Id: I7154f9472f02fdf47d27ba715db55bb1ec669a8a Reviewed-on: https://gerrit.libreoffice.org/18580 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-06-30Fix typosAndrea Gelmini
Change-Id: I1c5e4970d4e90bdea68a901294594104de5e189e Reviewed-on: https://gerrit.libreoffice.org/16582 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Andras Timar <andras.timar@collabora.com>
2014-08-13warning C4189: local variable is initialized but not referencedThomas Arnhold
Change-Id: I75092737f69b92bb46ea6bdd619aa54c759d8d65