summaryrefslogtreecommitdiff
path: root/winaccessibility
AgeCommit message (Collapse)Author
2021-09-01tdf#135588 wina11y: Map AccessibleRole::STATIC to ROLE_SYSTEM_STATICTEXTMichael Weghorn
This looks like a better match to me than the previously used 'IA2_ROLE_TEXT_FRAME' and the NVDA screen reader reads the text of child objects of 'ROLE_SYSTEM_STATICTEXT' when announcing their parent objects if they have a specific role (e.g. 'ROLE_SYSTEM_PANE' or 'ROLE_SYSTEM_GROUPING'). Description for 'ROLE_SYSTEM_STATICTEXT' from [1]: > The object represents read-only text, such as labels for other controls > or instructions in a dialog box. Static text cannot be modified or > selected. Description for 'IA2_ROLE_TEXT_FRAME' from [2]: > Collection of objects that constitute a logical text entity. With this and an additional change to make the NVDA screen reader speak the children of a VclBox, NVDA reads the complete text of MessageDialogs as they are shown, rather than just the dialog title. ('AccessibleRole::STATIC' is used for the readonly VCLMultiLineEdits in a MessageDialog, s. 'VCLXAccessibleEdit::implGetAccessibleRole'.) The additional change needed to fix tdf#135588 when using NVDA on Windows is to make sure that 'AccessibleRole::PANEL' (used for a VclBox on Windows, s. commit 685ec1899435037205d98a102a32ca8b6a4836d0 Date: Mon Feb 17 16:57:44 2014 +0000 Related: fdo#74284 try AccessibleRole::PANEL for VclBoxes under windows Change-Id: Ic8c743c2646c8610b3d90425024413b40dfdab13 and additional information in fdo#74284) is mapped to something for which NVDA descends into the children. Testing this by just changing the LibreOffice side can be done by adapting the mapping for 'AccessibleRole::PANEL' to 'ROLE_SYSTEM_PANE' like this: diff --git a/winaccessibility/source/service/AccObject.cxx b/winaccessibility/source/service/AccObject.cxx index 9e3f7d063b3b..e0ae1e2dc03e 100644 --- a/winaccessibility/source/service/AccObject.cxx +++ b/winaccessibility/source/service/AccObject.cxx @@ -98,7 +98,7 @@ const short ROLE_TABLE[][2] = {OPTION_PANE , IA2_ROLE_OPTION_PANE}, {PAGE_TAB, ROLE_SYSTEM_PAGETAB}, {PAGE_TAB_LIST, ROLE_SYSTEM_PAGETABLIST}, - {PANEL, IA2_ROLE_OPTION_PANE}, + {PANEL, ROLE_SYSTEM_PANE}, {PARAGRAPH, IA2_ROLE_PARAGRAPH}, {PASSWORD_TEXT, ROLE_SYSTEM_TEXT}, {POPUP_MENU, ROLE_SYSTEM_MENUPOPUP}, Adapting NVDA as follows to handle 'controlTypes.ROLE_OPTIONPANE' accordingly might be a better approach, though: diff --git a/source/NVDAObjects/behaviors.py b/source/NVDAObjects/behaviors.py index e51f9e4a3..47389186e 100755 --- a/source/NVDAObjects/behaviors.py +++ b/source/NVDAObjects/behaviors.py @@ -89,6 +89,7 @@ class Dialog(NVDAObject): continue #For particular objects, we want to descend in to them and get their children's message text if childRole in ( + controlTypes.ROLE_OPTIONPANE,^M controlTypes.ROLE_PROPERTYPAGE, controlTypes.ROLE_PANE, controlTypes.ROLE_PANEL, I'll discuss that in the corresponding NVDA issue on GitHub: [3] [1] https://docs.microsoft.com/en-us/windows/win32/winauto/object-roles [2] https://accessibility.linuxfoundation.org/a11yspecs/ia2/archive/ia2-1.0.2/docs/html/_accessible_role_8idl.html#e37ff81431ee3762a5d41a2cb909108d73becd811853026681d0000b17da7862 [3] https://github.com/nvaccess/nvda/issues/11687 Change-Id: Ic49d49cfc2d5f01646086931f9f8a522c6f0d5fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121476 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-07-21wina11y: Deduplicate mapping for IA2TextBoundaryTypeMichael Weghorn
Add a local function 'lcl_matchIA2TextBoundaryType' that returns the UNO equivalent for the boundary type and use it from all 3 places that previously did the same mapping. Also, use the constants defined in the 'AccessibleTextType.hpp' header rather than hard-coding the values here again. It is unclear to me what the // In New UNO IAccessibleText.idl these constant values are defined as follows: comment refers to, which has been there since commit commit a18bdb3bc05e761704cc345a66a9d642bc4f4a0a Date: Thu Nov 14 08:18:05 2013 +0000 Integrate branch of IAccessible2 Just the winaccessibility directory initially. Change-Id: Ia21abb8d7088646ad6c1f83b3a03e7add716b0c0 (I don't see any IAccessibleText.idl anywhere. Maybe that was meant for some follow-up change that never took place in the end?) Change-Id: I6b8af2215948e8d0241e6f438c0f8cc00adc800f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119316 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-07-09loplugin:indentation (clang-cl)Stephan Bergmann
Change-Id: Iae559ca8bee9650c01167a4d1b918e18cbf03c28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118660 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-06-28wina11y: enum XInterfaceIndex -> enum class XInterfaceTypeMichael Weghorn
Convert enum 'XInterfaceIndex' to an enum class 'XInterfaceType'. Also, drop the explicitly assigned but unused numerical values (indexes?) and the unused 'XI_NULL' value from the enum. Change-Id: Ice6d33e6523b3885836f54bc486bbe90de4c3b95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118018 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-06-28wina11y: Convert QUERYXINTERFACE macro to template functionMichael Weghorn
Change-Id: Ia4ecab7ada4df83b773505561569cededef35612 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118005 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-06-28wina11y: Use range-based for loopMichael Weghorn
Use a const reference instead of a pointer for the iteration. Drop the extra 'g_CMAccessible_AggMap' entry at the end that was only used to indicate the end of the array in the iteration previously. Change-Id: I411e9274d56ce0ed2658dfbe3d03670e485c4b4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118004 Tested-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-04-07Updated README.md files to represent current code / use Markdown formatHossein
Previously, all of the README files have been renamed to README.md and now, the contents of these files were changed to use Markdown format. Other than format inconsistency, some README.md files lacked information about modules, or were out of date. By using LibreOffice / OpenOffice wiki and other documentation websites, these files were updated. Now every README.md file has a title, and some description. The top-level README.md file is changed to add links to the modules. The result of processing the Markdown format README.md files can be seen at: https://docs.libreoffice.org/ Change-Id: Ic3b0c3c064a2498d6a435253b041df010cd7797a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113424 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-03-24Using .md extension/Markdown syntax for modules READMEHossein
Renaming all README files for all top level modules to README.md, applying no content change at this stage to be able to track history of the files. These files should be edited to use correct Markdown syntax later. Change-Id: I542fa3f3d32072156f16eaad2211a397cc212665 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112977 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
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>
2021-03-12drop unneeded includeCaolán McNamara
Change-Id: I2f75748d5601d699471d050558885c0efb977223 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112349 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-03loplugin:referencecasting (clang-cl)Stephan Bergmann
Change-Id: If32c6f6d3618c134cfb2ac89e827491525c34687 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111811 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-10Remove unneeded breaksAndrea Gelmini
Extending this: https://gerrit.libreoffice.org/c/core/+/110512 Change-Id: If7e6f9c4079c2e0b48e642aa0b140fb4e03996bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110520 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-15Silence warning C4189: local variable is initialized but not referencedStephan Bergmann
Change-Id: I6157c6e92877738366c142025a3bc8f3e38eb0a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107737 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-07loplugin:stringviewparam (clang-cl)Stephan Bergmann
Change-Id: Ie29f1a5a66dd53d1e1fc9332ca4b817fa4eb43de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107332 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-25Strength-reduce ReplaceOneChar parameter from string to single characterStephan Bergmann
Change-Id: I890d101ba671e91870ab18e82553c8ed8aa75f86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106572 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-25UNOIDL long vs. C++ sal_Int32 confustionStephan Bergmann
Change-Id: I55ed2fd4646a78ac4211ce54bed36c39710408f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106579 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-18Fix mis-clang-format'ed commentStephan Bergmann
...making it more obvious again what it appertains to Change-Id: If96b748b0eeac46364b17e716abcb7a4ac782b72 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106056 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
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-10-19clang-cl: Adapt Windows-specific code to extended loplugin:cstylecastStephan Bergmann
...after 1ebeacb20ad0165e399629fcfd7795ad0da3edf8 "Extend loplugin:cstylecast to certain function-style casts" Change-Id: I99bd383f5b3bee861d442d2e1be6ecd356b78315 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104523 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-09-12Replace remaining uses of sal_CharJulien Nabet
+ remove sal_Char check on compilerplugins Change-Id: I0f7da14e620f0c3d031d038aa8345ba4080fb3e9 Change-Id: Ia6dba4f27b47bc9e0c89159182ad80a5aee17166 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102499 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-09-01Fix typoAndrea Gelmini
Change-Id: I62a851c4b3355ac63fa3586df72251122c5de99b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101793 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
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>
2020-08-31Fix typo in codeAndrea Gelmini
It passed "make check" on Linux Change-Id: Ic7796a79ebe7d600598f9c2964976cbc9408d299 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101618 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-29Fix typo in codeAndrea Gelmini
Change-Id: I6e351cfbb76e0b4e9602462d25fea2142d3089ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101518 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net> Tested-by: Jenkins
2020-08-21Fix typoAndrea Gelmini
Change-Id: I7c4723fbcb9fac2871321c4cde8a969eb1f48bf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101103 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-08-04loplugin:simplifypointertobool (clang-cl)Stephan Bergmann
Change-Id: I6512e6e4217ef9084c74e46e3b4f1e8defbd1bec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100108 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-14winaccessibility: create instances with uno constructorsNoel Grandin
See tdf#74608 for motivation. Change-Id: I8b3465ddec68b99c78cb6cc8193f4944ed5ba190 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98727 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-06-03tdf#133633 winaccessibility: Add null checkMichael Weghorn
The call to 'AccObjectManagerAgent::GetIAccessibleFromResID' may set 'pImAcc' to nullptr here (s. 'AccObjectWinManager::GetIAccessibleFromResID', which is called from there), so handle that case gracefully. Change-Id: I0dbd48974fd012ff086835b147cd9b9cfc8a052b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95430 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2020-05-09tdf#118418 implement scrollSubstringTo() for Qt & windowsSamuel Thibault
Use new accessibility scroll type compatible with IAccessible2. Change-Id: I0967d1c56425e1e860db34f4b9c17427e531fe02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93636 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-04-17Drop unused includes and usingsMike Kaganski
Change-Id: I58ac4add2bb53d0c36cd54ff48964e392d13f6a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92400 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-04-16VCLXAccessibleComponent* may be passed to HandleWindowOpenedMike Kaganski
my_sc_impl::AccessBridgeHandleExistingWindow may do that for combobox floating window; then using the pointer statically cast to VCLXWindow* will crash. Change-Id: Ib4c47715a5fa059aa81f33137cc3d10851a728e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92387 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-02-16GBUILD_TRACE, support for finding out where the build time is spentLuboš Luňák
See instructions in solenv/gbuild/Trace.mk . This generates a file than can be viewed e.g. in the Chromium tracing view. Change-Id: I5f90647c58ca729375525b6daed2d4918adc8188 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88754 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-02-06Fix typoAndrea Gelmini
Change-Id: Ie8e7e01d2f89c9d2f7f1cbb081ba368c926260b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88071 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2020-02-03loplugin:redundantpointerops (clang-cl)Stephan Bergmann
Change-Id: I5ce235a72aedc507dbb925db4927f291916716d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87893 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-02-03loplugin:unsignedcompare (clang-cl)Stephan Bergmann
Change-Id: I69cc1b352221ca053ccd0c5b78e926480a8c9ccd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87884 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
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-12-05loplugin:external (clang-cl)Stephan Bergmann
...plus loplugin:consttobool and loplugin:fakebool fallout Change-Id: Ie3d8121815c080b13bea6d9deca1eb138ca56138 Reviewed-on: https://gerrit.libreoffice.org/84515 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-26loplugin:external (clang-cl)Stephan Bergmann
Change-Id: Iab2231e90e55c7e583a2fafd08469ee01b02ce82 Reviewed-on: https://gerrit.libreoffice.org/83767 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-26loplugin:consttobool (clang-cl)Stephan Bergmann
Change-Id: I81fea38cd737a8be74e6ece333ca37cc434a1c33 Reviewed-on: https://gerrit.libreoffice.org/83765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-19loplugin:fakebool (clang-cl)Stephan Bergmann
...plus follow-up loplugin:implicitboolconversion and loplugin:redundantcast Change-Id: I9fc9c5cb46fbb50da87ff80af64cb0dfda3e5f90 Reviewed-on: https://gerrit.libreoffice.org/83207 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-17Rename OUStringLiteral1 to OUStringCharStephan Bergmann
It started out as a wrapper around character literals, but has by now become a wrapper around arbitrary single characters. Besides updating the documentation, this change is a mechanical for i in $(git grep -Fl OUStringLiteral1); do sed -i -e s/OUStringLiteral1/OUStringChar/g "$i"; done Change-Id: I1b9eaa4b3fbc9025ce4a4bffea3db1c16188b76f Reviewed-on: https://gerrit.libreoffice.org/80892 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-14use common PCH for more librariesLuboš Luňák
Change-Id: I53164be413426691025a63cfba731cf5f9d1b7f8 Reviewed-on: https://gerrit.libreoffice.org/80790 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-10-02-Werror,-Wmicrosoft-exception-spec (clang-cl)Stephan Bergmann
No idea why that started to show up now, but C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/um/combaseapi.h contains > #define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method while C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/um/winnt.h contains > #define STDMETHODIMP HRESULT STDMETHODCALLTYPE which caused failures like > [build CXX] embedserv/source/inprocserv/dllentry.cxx > embedserv/source/inprocserv/dllentry.cxx(261,40): error: 'QueryInterface' is missing exception specification '__attribute__((nothrow))' [-Werror,-Wmicrosoft-exception-spec] > STDMETHODIMP InprocEmbedProvider_Impl::QueryInterface( REFIID riid, void ** ppv ) > ^ > embedserv/source/inprocserv/dllentry.cxx(143,15): note: previous declaration is here > STDMETHOD(QueryInterface)(REFIID riid, void ** ppvObj) override; > ^ Change-Id: I0fe3554c2da4089bf0f883e1132d6f2ee95ae2c3 Reviewed-on: https://gerrit.libreoffice.org/79970 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:referencecasting (clang-cl)Stephan Bergmann
Change-Id: Ie534212b09b92a02b377d0bb348e11c96bf61786 Reviewed-on: https://gerrit.libreoffice.org/79934 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:redundantcast (clang-cl)Stephan Bergmann
Change-Id: I0682989cdc9528d26925c7770b78fd455c0be396 Reviewed-on: https://gerrit.libreoffice.org/79931 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:stringconstant (clang-cl)Stephan Bergmann
Change-Id: Id1a82cea4444255fdb693e126b7571a406094624 Reviewed-on: https://gerrit.libreoffice.org/79916 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:simplifyconstruct (clang-cl)Stephan Bergmann
Change-Id: I08da288a88c2bce1d4250ec77f17bd483e6bc09c Reviewed-on: https://gerrit.libreoffice.org/79911 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-09-27Deduplicate O(U)StringNumber definitions; add toAsciiUpperCaseMike Kaganski
Change-Id: I00e7ce62940907b5f4efc2b7f23f355c3e43ed6b Reviewed-on: https://gerrit.libreoffice.org/79686 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-09-24support O(U)String::number() for fast string concatenationLuboš Luňák
When I did the fast string concatenation, I didn't add any support for number(), which simply returned a O(U)String, and so it did the extra allocation/deallocation, although that could be avoided. In order to support this, number() now returns a special temporary return type, similarly to O(U)StringConcat, which allows delaying the concatenation the same way. Also similarly, the change of the return type in some cases requires explicit cast to the actual string type. Usage of OString::getStr() is so extensive in the codebase that I actually added it to the helper class, after that it's only relatively few cases. Change-Id: Iba6e158010e1e458089698c426803052b6f46031 Reviewed-on: https://gerrit.libreoffice.org/78873 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>