summaryrefslogtreecommitdiff
path: root/desktop/source
AgeCommit message (Collapse)Author
2021-01-03Removed duplicated includesAndrea Gelmini
Change-Id: I8d6999d085cdf7eef570d7274f0230b400872c7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108474 Tested-by: Jenkins Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2021-01-01Use Unicode paths on Windows for minidumpsMike Kaganski
Change-Id: I6c409a297116ffaefb8d1c1fb82286964d85e8cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108479 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-12-29loplugin:stringviewparam: operator +Stephan Bergmann
Change-Id: I044dd21b63d7eb03224675584fa143009c6b6008 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108418 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-26New loplugin:stringliteralvarStephan Bergmann
See the comment at the top of compilerplugins/clang/stringliteralvar.cxx for details. (Turned some affected variables in included files into inline variables, to avoid GCC warnings about unused variables.) Change-Id: Ie77219e6adfdaaceaa8b4e590b08971f2f04c83a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-18lok: add parameter "MacroExecMode"Henry Castro
It is required to execute VBA scripts. Change-Id: Ibaafc62ecedcefcd0596c701728039783b5a0de7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107891 Tested-by: Jenkins Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-12-18lok: initialize to dispatch ".uno:RunMacro" commandHenry Castro
The ".uno:RunMacro" command it is needed for client side to show the Macro Selector Dialog. Change-Id: I8f01b9f5cc985119c9215734a6484ed7a0e30080 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107886 Tested-by: Jenkins Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-12-11Adapt the remaining OUString functions to std string_viewStephan Bergmann
...for LIBO_INTERNAL_ONLY. These had been missed by 1b43cceaea2084a0489db68cd0113508f34b6643 "Make many OUString functions take std::u16string_view parameters" because they did not match the multi-overload pattern that was addressed there, but they nevertheless benefit from being changed just as well (witness e.g. the various resulting changes from copy() to subView()). This showed a conversion from OStringChar to std::string_view to be missing (while the corresponding conversion form OUStringChar to std::u16string_view was already present). The improvement to loplugin:stringadd became necessary to fix > [CPT] compilerplugins/clang/test/stringadd.cxx > error: 'error' diagnostics expected but not seen: > File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 43 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:42): simplify by merging with the preceding assignment [loplugin:stringadd] > File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 61 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:60): simplify by merging with the preceding assignment [loplugin:stringadd] > 2 errors generated. Change-Id: Ie40de0616a66e60e289c1af0ca60aed6f9ecc279 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107602 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-08jsdialog: don't skip commandsSzymon Kłos
api was extended and now we send no only the latest state of a current window (may be skipped), but also commands like: close window <ID>. Make sure commands will not be skipped when new dialog appears. Change-Id: I17fa0f09d7ef78cbbcbf8786182dfeb92e6021ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107165 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107350 Tested-by: Jenkins
2020-12-08reap glxtest process early in soffice_main unconditionallyLuboš Luňák
With the VCL OpenGL backend code removal also isVCLOpenGLEnabled() will be removed, so there won't be anything to call this. And reaching this point in soffice_main takes long enough for the call to be non-blocking, so there's no good reason to delay it anyway. Change-Id: I8f7fee3d8d53bd632672afd8e8941ee7f922f8e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107361 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-12-06Clean up CrashReporter::IsDumpEnableStephan Bergmann
...avoiding construction of an OString from a potentially null pointer, which relied on undocumented behavior of the OString ctor Change-Id: I8f65375ba29cf345b35409019a39de1bac397625 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107278 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-01OSL_FAIL.*exception -> TOOLS_WARN_EXCEPTIONNoel
Change-Id: I6800e23ead2767d245d5da71d2d40e0f8a6d7e1f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106859 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-30loplugin:stringviewparam include comparisons with string literalsNoel
Change-Id: I8ba1214500dddaf413c506a4b82f43d63cda804b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106559 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-29Fix unmodified pdf does forced-saveMert Tumer
This is a problem when dealing with the large pdfs which take long amount of time to save. Adding or removing annotations do change the state of IsModified() Change-Id: I872cb3aec5188986cc13c6659e1bb741a6870409 Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106778 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 455cd8fe00d1c756da1bb50a50bac68a1ad645ef) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106741 Tested-by: Jenkins
2020-11-29LOK: send state of SheetRightToLeftPranam Lashkari
Change-Id: I4b58ab74003065a63e4274293b868c909f4f583f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105428 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> (cherry picked from commit cc7bf1755c31fcd4c388f25e642c37d0e2fd758a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106810 Tested-by: Jenkins Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
2020-11-25jsdialog: implement TreeViewSzymon Kłos
Change-Id: I7c1cc683e8c5d5bdc00c1e3d3d0a2c85846bbda0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106560 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-24loplugin:stringviewparam extend to comparison operatorsNoel
which means that some call sites have to change to use unicode string literals i.e. u"foo" instead of "foo" Change-Id: Ie51c3adf56d343dd1d1710777f9d2a43ee66221c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106125 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-21Must now call the lovely SfxViewShell::SetCurrentDocId()Tor Lillqvist
Fixes fallout from 4fd2679a7a2b0494da84f344ab97b835edf73377. Otherwise the SfxViewShell doesn't know the id of its document, and counting the number of views of a document in SfxLokHelper::getViewsCount() fails. Change-Id: I16ba209463281aae4ab9fdfd4ee1cd6b98205774 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102025 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106254 Tested-by: Jenkins
2020-11-21sfx2: lok: reliably support multi-documentsAshod Nakashian
Instead of using the current view to set the DocId, we instead make sure that the ShellView object has the DocId set at construction time. This turned out to be necessary in at least one case (which has a unit-test that failed), which is when events fired during the creation of a new view. The cursor position is notified before we have a chance to set the DocId and because of that we miss the notifications (or worse, we end up sending them to all other documents' views in an effort to fix this bug). This approach is clean and always guarantees that all views have the correct DocId set as soon as possible and that all notifications are sent as expected. A unit-test is added to exercise mult-document usage, which exposed a number of bugs and issues that have been addressed in this patch. Change-Id: Icf5145fb1dabd0d029368310c2b9bf73ae927ccc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99975 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Ashod Nakashian <ash@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106252 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-11-20sfx2: lok: refactor notifications and const correctnessAshod Nakashian
This reduces the stringification and reuses the notificaiton helpers to reduce code duplication. Change-Id: Icf9f9c50f3eeee61a0ded741d39fed37cfcc8da1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99972 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Ashod Nakashian <ash@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106221 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-11-18loplugin:stringviewparam: No good reason to exclude operator functionsStephan Bergmann
(at least not in general) Change-Id: I71337b53dc9735e90a37ee532d0a8a08797b518c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106043 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-17loplugin:stringviewparam check methods tooNoel
not just functions Change-Id: Icca295dd159002b428b73f2c95d40725434f04d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105789 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-15Remove Bottom DrawTextFlag on renderFont for WatermarkMert Tumer
Alignment should be done for watermark in online side this breaks the positioning. Change-Id: I202f671269aaacd266f6443a5e336d987f680a72 Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105853 Tested-by: Jenkins
2020-11-13tdf#123936 Formatting files in module desktop with clang-formatPhilipp Hofer
Change-Id: I39856d77a2ef506612b68fccfd0ba9c9d6b1debc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105661 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-11-13lok: Simplify the check for command in sendDialogEvent.Jan Holesovsky
Change-Id: I1d2c967b68113d2528b80e91c32170f749ed9335 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104434 Tested-by: Andras Timar <andras.timar@collabora.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105738 Tested-by: Jenkins Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2020-11-11loplugin:stringviewNoel
Add new methods "subView" to O(U)String to return substring views of the underlying data. Add a clang plugin to warn when replacing existing calls to copy() would be better to use subView(). Change-Id: I03a5732431ce60808946f2ce2c923b22845689ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105420 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-11make tools::Long 64-bit on Windows platformNoel Grandin
This is only for the 64-bit windows platform. I don't see the point in messing with the 32-bit platforms, they are (a) become more and more rare (b) unlikely to even have enough available process memory to load extremely large calc spreadsheets The primary problem we are addressing here is bringing Windows-64bit up to same capability as Linux-64bit when it comes to handling very large spreadsheets, which is caused by things like tools::Rectangle using "long", which means that all the work done to make Libreoffice on 64-bit Linux capable of loading large spreadsheets is useless on Windows, where long is 32-bit. The operator<< for tools::Rectangle needs to be inside the tools namespace because of an interaction with the cppunit printing template stuff that I don't understand. SalPoint changed to use sal_Int32, since it needs to be the same definition as the Windows POINT structure. Change-Id: Iab6f1af88847b6c8d46995e8ceda3f82b6722ff7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104913 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-09tdf#42949 Fix new IWYU warnings in directories d*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I8f3cd05dbd86bd22fd84d767adc44fc2b0c89404 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105468 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-01use officecfg for UseSystemFileDialogNoel Grandin
Change-Id: I1419af229a67d6ebb1cf2c63757656beb3f512db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105142 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-23Missing call to curl_easy_cleanup (--enable-online-update=mar)Stephan Bergmann
<https://curl.haxx.se/libcurl/c/curl_easy_init.html> states that each call to curl_easy_init "MUST have a corresponding call to curl_easy_cleanup". (And <https://curl.haxx.se/libcurl/c/curl_easy_cleanup.html> states: "Passing in a NULL pointer in handle will make this function return immediately with no action.") The call to curl_easy_cleanup appears to be missing ever since the code calling curl_easy_init was introduced with 9c3b05f2d571b58ee2322a942162ecec654544dc "improve update checker and update downloader code". Change-Id: I5757efe131f73783c6f66a77d07676b8ce440f9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104711 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-10-23Prevent crash with invalid lang tag.Gülşah Köse
Change-Id: I778b5b007d4edce946e8b4c26e5a07f12103a968 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104707 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com>
2020-10-22Add gbuild/platform/FREEBSD_POWERPC[64]_GCC.mk files.Gleb Popov
Add "freebsd_powerpc64" case to the checkOSandCPU switch in dp_platform.cxx. Change-Id: Iedee32ecb5b49ee99cd5cf7f8d7e0e33aef1c312 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104616 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-10-22long->tools::Long in dbaccess..drawinglayerNoel
Change-Id: I15760da167e7d0b4c410acccd1c8c90210e28b2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104623 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-21new tools::Degree10 strong typedefNoel Grandin
partly to flush some use of "long" out the codebase, but also to make it obvious which units are being used for angle values. Change-Id: I1dc22494ca42c4677a63f685d5903f2b89886dc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104548 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-20ensure solarmutex is locked when closing splashscreen (tdf#137177)Luboš Luňák
AFAICT all drawing is done with solarmutex held, at least Skia asserts that and this case is the only problem I've found. Here the solarmutex is not held because of c5cf78e1529970c04e1999e1 that unlocks it for DeInit(), but that call leads to closing the splashscreen. Change-Id: I453f71cc53fe229e539a862927a58fd4161c40d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104423 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-10-20remove unnecessary `if (!true) return;` statement from Desktop::Init()Platon Pronko
Seems that this specific piece of code was introduced in commit bc66bf4608557d757555aef1f46abf8a15c3538b by Noel Grandin, where `if (true)` wrapper was removed and `if (!true) return;` seems to have been left over. But the original `if (true)` statement was introduced in commit 4d258787559426e1e2a0279888eb669622889899 by Michael Meeks, where `if ( m_aBootstrapError == BE_OK )` before starting IPC thread was replaced with `if (true)`. I asked on IRC and they were not sure for the reason of this change, so I will add Michael Meeks as a reviewer of this patch, just in case. Change-Id: I1ffb781464fa2fde152eb21bc61e4b244e8812d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104530 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins
2020-10-12desktop: fix misleading commentMiklos Vajna
REQUEST_START is triggered with --show. Change-Id: I83fec4f0ae4df15ed7974f484b3001e886f82a65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104217 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-10-06loplugin:const* make some params and methods constNoel
Change-Id: I97c5bbb929a2a4a029af4e6cb0fd571bbc2b698b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104030 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-06move set_user_managed_scrolling to an initial weld argumentCaolán McNamara
gtk is creating a11y objects on widgets changing parents so manage when that can happen to avoid premature creation of custom widget a11y objects Change-Id: I4879a93a897b2e4084cf6af0c9c0b0f0c1062254 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104025 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-10-06Allow to save file if chart editing is activeSzymon Kłos
This helps in online where autosave after user closed view with chart editing active caused document to be broken and not allowing to open again. Change-Id: Iab6a9bfe2c5f67c155ee97726e752c83fc47af5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103091 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104011 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-10-03use more TOOLS_WARN_EXCEPTIONNoel
Change-Id: I8b5cde993c13e0b7c8c830b1ff698933a6b7cfd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103863 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-02Use the new single-instance="true" attribute in desktopStephan Bergmann
Change-Id: I8ac760a1215dbaaa76923dc07c21cc971f735412 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103856 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-10-02loplugin:reducevarscope in desktop..emfioNoel
Change-Id: I25ca760ae15114ada621d928997a7117401c75d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103811 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-09-24speed-up: preload JVM when PreloadJVM is setSerge Krot
Change-Id: I57f77f127f7cb45fb181b755b40873d47015e5b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91059 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-09-23Fix typo in codeAndrea Gelmini
It passed "make check" on Linux Change-Id: I4d3ce4571881fd75bcdf3b70f3b34fd71e573099 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103246 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-09-22Added new command to resolve the comment threadPranam Lashkari
Change-Id: I8a4e5f63ee6ea5e560fae8a5d3602178f2b58b36 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102827 Tested-by: Jenkins Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
2020-09-22OUStringLiteral/OStringLiteral coverity PARSE_ERROR workaroundCaolán McNamara
do more like commit 121771e37f7e2de41cd5643475861062bf25627b Date: Mon Sep 21 09:17:54 2020 +0200 Make some OUStringLiteral vars constexpr cause coverity can live with that Change-Id: I9efd7f848289c4865997a44c6780373068422227 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103147 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-21lok: remove .uno:ModifiedStatus message from deduplication mechanismGabriel Masei
This fixes the following issue in Online: When a save is performed while a cell is still edited the save icon does not reflect the correct state of the document: it shows that the document is dirty although it is not. This is generated by two facts: 1. The status cache is avoided when sending the -dirty- status right after the cell editing is finished. Because the cache has an old value of -false- for ModifiedStatus, the notification that is sent after saving, with -false- value, is ignored. We should not avoid the status cache. 2. Because there is a mechanism that keeps only the last notification value for a status change in the queue that keeps messages that were not sent yet (deduplication), the .uno:ModifiedStatus message with a value of -true- that is enqueued right after the cell edit is finished is replaced by the same message with a value of -false- that is enqueued after the save is finished. This happens if the flush mechanism doesn't occur between them. Change-Id: I3348bf230ba53a154c29e7d8ab064df7694adeae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101948 Tested-by: Jenkins Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2020-09-18jsdialog: use window only if visibleSzymon Kłos
When there is a name conflict we should take currently visible window. Change-Id: Iaccf03a78b083ecaca0ee6aa538674a6de093a4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102903 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102983 Tested-by: Jenkins
2020-09-17Remove some unused includesMiklos Vajna
Change-Id: I4a357ee2c542884149d7460bf2be66e5863fbaed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102882 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-09-16Turn OUStringLiteral into a consteval'ed, static-refcound rtl_uStringStephan Bergmann
...from which an OUString can cheaply be instantiated. This is the OUString equivalent of 4b9e440c51be3e40326bc90c33ae69885bfb51e4 "Turn OStringLiteral into a consteval'ed, static-refcound rtl_String". Most remarks about that commit apply here too (this commit is just substantially bigger and a bit more complicated because there were so much more uses of OUStringLiteral than of OStringLiteral): The one downside is that OUStringLiteral now needs to be a template abstracting over the string length. But any uses for which that is a problem (e.g., as the element type of a container that would no longer be homogeneous, or in the signature of a function that shall not be turned into a template for one reason or another) can be replaced with std::u16string_view, without loss of efficiency compared to the original OUStringLiteral, and without loss of expressivity. The new OUStringLiteral ctor code would probably not be very efficient if it were ever executed at runtime, but it is intended to be only executed at compile time. Where available, C++20 "consteval" is used to statically ensure that. The intended use of the new OUStringLiteral is in all cases where an object that shall itself not be an OUString (e.g., because it shall be a global static variable for which the OUString ctor/dtor would be detrimental at library load/unload) must be converted to an OUString instance in at least one place. Other string literal abstractions could use std::u16string_view (or just plain char16_t const[N]), but interestingly OUStringLiteral might be more efficient than constexpr std::u16string_view even for such cases, as it should not need any relocations at library load time. For now, no existing uses of OUStringLiteral have been changed to some other abstraction (unless technically necessary as discussed above), and no additional places that would benefit from OUStringLiteral have been changed to use it. Global constexpr OUStringLiteral variables defined in an included file would be somewhat suboptimal, as each translation unit that uses them would create its own, unshared instance. The envisioned solution is to turn them into static data members of some class (and there may be a loplugin coming to find and fix affected places). Another approach that has been taken here in a few cases where such variables were only used in one .cxx anyway is to move their definitions from the .hxx into that one .cxx (in turn causing some files to become empty and get removed completely)---which also silenced some GCC -Werror=unused-variable if a variable from a .hxx was not used in some .cxx including it. To keep individual commits reasonably manageable, some consumers of OUStringLiteral in rtl/ustrbuf.hxx and rtl/ustring.hxx are left in a somewhat odd state for now, where they don't take advantage of OUStringLiteral's equivalence to rtl_uString, but just keep extracting its contents and copy it elsewhere. In follow-up commits, those consumers should be changed appropriately, making them treat OUStringLiteral like an rtl_uString or dropping the OUStringLiteral overload in favor of an existing (and cheap to use now) OUString overload, etc. In a similar vein, comparison operators between OUString and std::u16string_view have been added to the existing plethora of comparison operator overloads. It would be nice to eventually consolidate them, esp. with the overloads taking OUStringLiteral and/or char16_t const[N] string literals, but that appears tricky to get right without introducing new ambiguities. Also, a handful of places across the code base use comparisons between OUString and OUStringNumber, which are now ambiguous (converting the OUStringNumber to either OUString or std::u16string_view). For simplicity, those few places have manually been fixed for now by adding explicit conversion to std::u16string_view. Also some compilerplugins code needed to be adapted, and some of the compilerplugins/test cases have become irrelevant (and have been removed), as the tested code would no longer compile in the first place. sal/qa/rtl/strings/test_oustring_concat.cxx documents a workaround for GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96878> "Failed class template argument deduction in unevaluated, parenthesized context". That place, as well as uses of OUStringLiteral in extensions/source/abpilot/fieldmappingimpl.cxx and i18npool/source/localedata/localedata.cxx, which have been replaced with OUString::Concat (and which is arguably a better choice, anyway), also caused failures with at least Clang 5.0.2 (but would not have caused failures with at least recent Clang 12 trunk, so appear to be bugs in Clang that have meanwhile been fixed). Change-Id: I34174462a28f2000cfeb2d219ffd533a767920b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102222 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>