Commit Graph
3639 Commits
Author SHA1 Message Date
Noel Grandin 1927b51993 loplugin:stringviewparam convert methods using indexOf
.. and lastIndexOf, which convert to find and rfind

Change-Id: I6c4156cf904774c0d867f85a4c2785dba7593f62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132445
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-02 13:31:19 +02:00
VaibhavMalik4187 f433d9cf8b tdf#114441 Convert sal_uLong to other types
Change-Id: I5651788dad4386aa325e20fa8bbfc0908dbfa629
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128767
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
2022-03-18 21:06:56 +01:00
Noel Grandin 7002caa97e new loplugin:trivialdestructor
look for potentially trivial destructors that can then be elided

Change-Id: I435c251bd4291b5864c20d68f88676faac7c43fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131318
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-11 09:06:06 +01:00
Armin Le Grand (Allotropia) ec635b62af Advanced Diagram support: cleanup/consolidate with existing code
Reorganized and streamlined, use IDiagramHelper as main interface
now also for existing code.

Had to adapt oox::Shape && Diagram handling since there the
import gets handled very different. This ensures that a Diagram
is detected at export and that the same happens for now as before

Had to add a detection that resetting the GrabBag is meant to
disable the Diagam functionality. That is very indirect, but
has to stay for compaibility reasons for now

Change-Id: I620b7d61cd84b5f9dd8ae4dc890ebf70ce779cdf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130389
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2022-02-25 09:48:14 +01:00
Caolán McNamara e68faf60e5 cid#1500494 Explicit null dereferenced
Change-Id: I543cc7b12e3517e26bd57463dc20c97c5498df55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130430
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-23 13:51:20 +01:00
Caolán McNamara 9e4825beb8 cid#1500613 Dereference after null check
Change-Id: I6f02265a4e208ebb66004bd7784e2dc1a50adef0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130427
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-23 13:50:27 +01:00
Noel Grandin 01b3187e07 svx::PropertyChangeNotifier improvements
(*) rename the enum to make it's purpose more obvious

(*) remove the enum header - it belongs to this class, no need to have
it somewhere else

(*) return property name by const&, no need to copy here

(*) use a o3tl::enumarray instead of a std::unordered_map - there are
only 3 entries here, and two of them are ALWAYS used, so just flatten
the data structure.

Change-Id: Ic496bd5220d55be1209a3243c095d461df0a02ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129788
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-02-11 05:51:50 +01:00
VaibhavMalik4187 8b327cd86d tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macro
Change-Id: I4f5258ca5b37e9b1b4237c5d29e4a9e5362fa855
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129116
Reviewed-by: Arkadiy Illarionov <qarkai@gmail.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2022-02-06 21:38:32 +01:00
Caolán McNamara d5a43d2c0c use some more add toId/fromId
Change-Id: I3a21e2aa5a2c482c0bac1d4c9bf84f8b56261408
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129492
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-04 16:43:44 +01:00
Caolán McNamara e00032ba6a add toId/fromId to tidy up some ugly casting
Change-Id: I70f34ac5e9b5d2f2d6c0375e823908eaa2e540b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129487
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-04 15:02:03 +01:00
Caolán McNamara 6443c79170 move ToolBoxItemId into its own header
Change-Id: I34838bee7ad27bfd60d92c26af7eb2de508686b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128974
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-01-26 12:07:18 +01:00
Caolán McNamara c7fcd5a3bd Related: tdf#146971 remove %PRODUCTNAME from accessible-description
Change-Id: I83ff18c8b5e95fa172de950eb351cbfd855c9d5d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128919
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-01-25 13:24:23 +01:00
Caolán McNamara be7c21cc6a Related: tdf#146971 rename %PRODUCTNAME Macros to Application Macros
Change-Id: I6a11c335b28cfaeaceba93b22e7d2db30ee803db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128918
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-01-25 13:23:37 +01:00
Caolán McNamara e2ff4206d6 gtk4: adapt to window_[g|s]et_default_widget
Change-Id: I916e5db05f8ea10ecc8b319cc77a671ca7cbcb93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128859
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-01-24 15:56:59 +01:00
Armin Le Grand (Allotropia) 02140554ee WASM --enable-wasm-strip now skips lots of LO code
... resulting in a stripped-down, Writer-only build to decrease
the resulting WASM bytecode size.

It removes the following code from the build:
* All other major modules: Base, Calc, Chart, Draw, Impress and
  Math and related writerperfect filters
* The premultiply tables
* The (auto-)recovery functionality
* All accessibility (but not the accessibility document checker)
* The LanguageGuess component
* EPUB support
* The start center / BackingWindow
* The TipOfTheDay functionality
* The splash screen communication

Currently crashs with anything different then soffice --writer.
Closing the document also still crashes.

FYI: many of these features are now behind ENABLE_WASM_STRIP_*
defines, but they normally don't work on their own, globally!
That's because we started with stripping the main components.

Change-Id: Ib9c0f9452815910c0a2aceaf142ba1ad4a9cb0d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126182
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-20 12:28:54 +01:00
VaibhavMalik4187 40bab1e31c tdf#145614 Convert #define to enum or constexpr
Change-Id: Ib6694ec77c275c9a604abfa7d87df6ab262449b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128250
Tested-by: Hossein <hossein@libreoffice.org>
Reviewed-by: Hossein <hossein@libreoffice.org>
2022-01-19 06:55:12 +01:00
Gabor Kelemen 840b4eb2f3 Recheck modules [a-c]* with IWYU
See tdf#42949 for motivation

Change-Id: I74a3c3a67c3639376e2251c3eb917fa4139dfbd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127808
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-01-13 08:26:15 +01:00
Noel Grandin 8295a33447 remove E3D_INVENTOR_FLAG and convert SdrObjKind to scoped enum
We don't need E3D_INVENTOR_FLAG, we can just check if the SdrObjKind is
in the right range.

Which exposes some dodgy code in DrawViewShell::GetMenuStateSel
    SfxItemState::DEFAULT == rSet.GetItemState( OBJ_TITLETEXT ) ||
    SfxItemState::DEFAULT == rSet.GetItemState( OBJ_OUTLINETEXT ) ||
which has been there ever since
    commit f47a9d9db3
    Date:   Mon Sep 18 16:07:07 2000 +0000
    initial import
just remove that.

In SwFEShell::ImpEndCreate() move some logic around to avoid
using an out-of-range SdrObjKind value

Change-Id: I4620bfe61aca8f7415503debe3c84bfe5f4368a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127763
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-07 14:22:07 +01:00
Mike Kaganski a23a7eea5c Avoid OUStringBuffer::toString where possible
Change-Id: I99abbe97a48b2077e28d6221fb70036e5e412657
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127479
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-26 20:36:26 +01:00
Noel Grandin 26f46b861d loplugin:flatten in accessibility..basic
Change-Id: If2cc282c2b135d634daf393a082c29049b10a677
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127223
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-21 13:43:06 +01:00
Olivier Hallot 681d8b9ec4 Fix English in extended tips
Change-Id: I4125a68930d5debb17902aed58c0d6cb896fbe5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127172
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-12-21 04:30:57 +01:00
Noel Grandin a5e270ba99 osl::Mutex->std::mutex in EditorWindow
Change-Id: I58c5416239760f4a50a138bbe4a97c85f15126b3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127071
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-19 12:53:48 +01:00
Stephan Bergmann db3a61cd95 Generally determine Rdb content from gb_*_set_componentfile calls
...instead of by listing the content somewhat redundantly in the Rdb_*.mk
files, to avoid duplication of logic for components that are only built
conditionally (and thus should only be included conditionally in the
corresponding Rdb).  To achieve that, add an "rdb" parameter to
gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros
that internally call gb_ComponentTarget_ComponentTarget), which is used to make
the appropriate gb_Rdb_add_component call internally from within
gb_ComponentTarget_ComponentTarget.  (As a special case,
gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that
has already been done by the corresponding gb_Library_set_componentfile call, so
allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to
support that special case.)

Most Rdb_*.mk files are thus mostly empty now.  One exception is
i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as
needed during the build in CustomTarget_i18npool/localedata.

1c9a40299d "gbuild: create services.rdb from built
components" had already tried to do something similar (in addition to other
things) under a new --enable-services-rdb-from-build option.  However, that
approach had four drawbacks that this approach here addresses (and which thus
partly reverts 1c9a40299d):

1  Rdb_services shall not contain the component files of all libraries that are
built.  While that commit filtered out the component files that go into
Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files
that go into others like Rdb_postgresql-sdbc
(connectivity/Rdb_postgresql-sdbc.mk).

2  The code added by that commit to Makefile.gbuild codified the knowledge that
there is an Rdb_services, which is brittle.

3  The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge
(for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle.

4  Introducing an --enable-services-rdb-from-build option needlessly provided
two different ways how the content of Rdb_services is assembled.

The changes done here would leave --enable-services-rdb-from-build as a
misnomer, as it no longer controls how Rdb_services is assembled.  I thus
renamed it to --enable-customtarget-components, as that is apparently what it
still does now.

Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-12-10 08:14:24 +01:00
Stephan Bergmann 0a710c5c44 cid#1494595,1494597: Silence UNCAUGHT_EXCEPT
...after aa5ee0085c "Stop swallowing exceptions in
~ScopeGuard" had dropped the catch blocks from ~ScopeGuard to make it usable in
Library_salhelper in 0c1c300ed7 "Rather use
ScopeGuard to prevent catch and rethrow".  But using the original
suppress_fun_call_w_exception, which used css::uno::Exception, would have caused
the same circular-dependency issue again that
aa5ee0085c had solved, so drop the use of
css::uno::Exception (and SAL_WARN, which triggered a number of missing #include
<sal/log.hxx>) also from suppress_fun_call_w_exception.  After all, that was
__COVERITY__-only code that wasn't meant to be actually run, so it shouldn't
matter if we just catch everything and silently terminate.

Change-Id: If28a214709e4636e1c23a49f2d95d87c91492f14
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126404
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-12-06 14:25:41 +01:00
Noel Grandin ec1c4c4930 O[U]String::replaceAt overloads that take string_view
which results in lots of nice string_view improvements picked up by the
plugins

Change-Id: Ib0ec3887816b3d4436d003b739d9814f83e244b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125657
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-23 14:00:08 +01:00
Noel Grandin 0011ed2534 loplugin:stringliteraldefine in basctl
Change-Id: Id9f1d2932b5f602602d0229b8dc9794c01f5cbb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125277
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-18 19:46:19 +01:00
Heiko Tietze f0334d62da Resolves tdf#143462 - Fixes black row number on dark backgroud in Basic IDE
Using WindowColor for background and WindowTextColor for font color now

Change-Id: Ie7bcb66d43673722ac882ac3cd59c7d9106f3020
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125403
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2021-11-18 07:02:26 +01:00
Noel Grandin b64efd7b29 Revert "loplugin:finalclasses"
This reverts commit 9ce9011230.

Reason for revert: see comments in https://gerrit.libreoffice.org/c/core/+/124632

Change-Id: Ibc8b7a8c190e7a8afec793c1202dba97ac6909bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124483
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-03 20:06:23 +01:00
Noel Grandin 9ce9011230 loplugin:finalclasses
Change-Id: I72ffe7dbeb1558820ac4368ef551611096da0104
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124632
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-03 11:05:15 +01:00
Natalia Gavrilova 0a059912ba tdf#114441 Convert use of sal_uLong to sal_uInt32, int
* Changed moduldlg.hxx, moduldl2.cxx
* Changed res_DataLabel.hxx, res_DataLabel.cxx

Change-Id: I845c9fb7b60b5a8f898aaac433c0b5e520c58678
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123360
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-11-03 10:07:48 +01:00
Caolán McNamara b424e32afe use freeze/thaw around a potentially long sequence of insertions
Change-Id: I151d172d65d4a74b57a64c4b5d904ef18145aede
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124543
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-01 12:45:14 +01:00
Caolán McNamara 2ed921b0a5 Resolves: tdf#145391 insertion code assumes unsorted treeview
so assumed row index doesn't match real insertion point

presumably a problem since...

commit e8b3df5b9b
Date:   Fri Aug 2 14:57:49 2019 +0200

    tdf#93476 Sort Macro library list after creating/importing a macro

    Only set the widget as sorted in the ctor, it remains sorted

Change-Id: I6cefc43357f3215a49b33ff18befdc679c1749bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124542
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-01 12:44:59 +01:00
Mike Kaganski dd97bfce99 Prepare for removal of non-const operator[] from Sequence in basctl
Change-Id: Icc6ea4eea08a1cd3fffbfb211f420ab91602e8de
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124336
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-28 20:09:27 +02:00
Andreas Heinisch 7d27e4b025 tdf#57308 - Basic IDE: Watching of a variable does not work
Watching a variable which returns a value from a function always shows
"out of scope" in the watch window of the Basic IDE. In order to resolve
this issue, the name of the variable being watched will be searched also
in the current method instance.

Change-Id: I5ff6ce22067e11d74275eeb82da814da1eebe3db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124239
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-27 09:29:34 +02:00
Andreas Heinisch 514e83a0a5 Revert "tdf#57308 - Basic IDE: Watching of a variable does not work"
This reverts commit f9ce4b2d04.

Reason for revert: Cast to SbxVsriable instead of SbxMethod causes the code to start over

Change-Id: I8f00f8f13faef8cb8c6db4e8c2a096a921f8714b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124187
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-26 08:05:27 +02:00
Andreas Heinisch f9ce4b2d04 tdf#57308 - Basic IDE: Watching of a variable does not work
Watching a variable which returns a value from a function always shows
"out of scope" in the watch window of the Basic IDE. In order to resolve
this issue, the name of the variable being watched will be searched also
in the current method instance.

Change-Id: Id383e03925956056931d199fe86d1b352cf8e4eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124075
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-25 13:22:09 +02:00
Noel Grandin 426be29029 return weld::Builder by unique_ptr
Change-Id: Ifa4f5951d200eaad6c8aebd3f29eed053c927ff0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124051
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-22 12:05:19 +02:00
Stephan Bergmann df42cb6552 Optimize assignment from OUStringLiteral to OUString
...by making the OUString's pData point to the OUStringLiteral, instead of
copying the contained characters.  This is one of the improvements that had not
been done as part of e6dfaf9f44 "Turn
OUStringLiteral into a consteval'ed, static-refcound rtl_uString":  "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."  (Simply
dropping the OUStringLiteral overload was not possible in this case, though, as
that would have lead to ambiguities among the various OUString and
std::u16string_view overloads.)

The now-deleted OUStringLiteral rvalue reference overload means that some
existing assignments from ternary-operator OUStringLiteral<N> to OUString no
longer compile and had to be replaced with uses of std::u16string_view.  Those
had not already been replaced in e6dfaf9f44
because they happened to use OUStringLiteral instances of identical length N in
both arms of the ternary operator, so did not already start to fail to compile
back then.

Change-Id: I328e25b8324d045774e811d20a639f40d6a9a960
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124040
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-22 09:24:54 +02:00
Noel Grandin 283a9790bf loplugin:indentation check for indent inside block
look for places where the statements inside a block are
not indented

Change-Id: I0cbfa7e0b6fb194b2aff6fa7e070fb907d70ca2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123885
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-20 15:39:38 +02:00
Julien Nabet cf3971a941 Simplify Sequence in b*
Change-Id: I0817d9a35a9c3fc43badb6cc60727de69849b063
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123720
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-17 14:13:10 +02:00
Mike Kaganski 2484de6728 Remove non-const Sequence::begin()/end() in internal code
... to avoid hidden cost of multiple COW checks, because they
call getArray() internally.
This obsoletes [loplugin:sequenceloop].

Also rename toNonConstRange to asNonConstRange, to reflect that
the result is a view of the sequence, not an independent object.

TODO: also drop non-const operator[], but introduce operator[]
in SequenceRange.

Change-Id: Idd5fd7a3400fe65274d2a6343025e2ef8911635d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123518
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-15 10:36:36 +02:00
Noel Grandin 1f9468fc29 use std::vector::insert instead of push_back
because it will pre-allocate space and often is optimised to memcpy

Change-Id: I03ed7915f2762d3d27e378638052a47a28bbf096
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123588
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-14 21:28:40 +02:00
Mike Kaganski 8a017d25a6 Avoid COW overhead using css::uno::Sequence
The scenarios are:

1. Calling sequence's begin() and end() in pairs to pass to algorithms
   (both calls use getArray(), which does the COW checks)
2. In addition to #1, calling end() again when checking result of find
   algorithms, and/or begin() to calculate result's distance
3. Using non-const sequences in range-based for loops, which internally
   do #1
4. Assigning sequence to another sequence variable, and then modifying
   one of them

In many cases, the sequences could be made const, or treated as const
for the purposes of the algorithms (using std::as_const, std::cbegin,
and std::cend). Where algorithm modifies the sequence, it was changed
to only call getArray() once. For that, css::uno::toNonConstRange was
introduced, which returns a struct (sublclass of std::pair) with two
iterators [begin, end], that are calculated using one call to begin()
and one call to getLength().

To handle #4, css::uno::Sequence::swap was introduced, that swaps the
internal pointer to uno_Sequence. So when a local Sequence variable
should be assigned to another variable, and the latter will be modified
further, it's now possible to use swap instead, so the two sequences
are kept independent.

The modified places were found by temporarily removing non-const end().

Change-Id: I8fe2787f200eecb70744e8b77fbdf7a49653f628
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123542
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-14 06:00:49 +02:00
Noel Grandin be5858089f use more SfxItemSetFixed
Change-Id: I18784bac5f7ad1d109f8a81e96084cd6e9548231
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123240
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-08 17:10:46 +02:00
Noel Grandin 3b8e53f66f loplugin:constparams improve handling of pointer params
Change-Id: I4c0002e72703eded435bfe4985f5b0121bf8524b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122843
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-30 11:24:33 +02:00
Noel Grandin d72511eda9 gives names to all the Idles and Tasks
enforce it by making the constructor parameter non-default.

Change-Id: I321543e4dcf15ea0a43ad8cce91d2f8dc22df6ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122766
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-28 19:35:13 +02:00
Chris Sherlock 4dd6af856d vcl: rename OutDevState to Stack
I have moved the header file to include/vcl/rendercontext as this will
eventually be part of the RenderContext split from OutputDevice.

State and associated enums have also been moved to the vcl namespace. I
have also moved ComplexTextLayoutFlags into the vcl::text namespace.

Change-Id: I0abbf560e75b45a272854b267e948c240cd69091
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121524
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-09-28 08:20:32 +02:00
Luboš Luňák b22d478531 clean up ambiguous confusing rectangle APIs like IsInside()
Reading 'rectA.IsInside( rectB )' kind of suggests that the code
checks whether 'rectA is inside rectB', but it's actually the other
way around. Rename IsInside() -> Contains(), IsOver() -> Overlaps(),
which should make it clear which way the logic goes.

Change-Id: I9347450fe7dc34c96df6d636a4e3e660de1801ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122271
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins
2021-09-20 12:10:44 +02:00
Noel Grandin 3a1a448ac4 loplugin:constvars
Change-Id: I9b35d6333afa6b305bf73fc55a7e60c8365674e9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122134
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-15 12:43:21 +02:00
Mike Kaganski 05bc93db2d Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 1
The header got some changes:
1. Move UnoTunnelIdInit and isUnoTunnelId into 'comphelper' namespace
2. Rename UnoTunnelIdInit to UnoIdInit, as a precondition to replace
   of uses of OImplementationId with it, including in XTypeProvider
3. Introduce convenience functions 'getSomething_cast' to cast between
   sal_Int64 and object pointers uniformly.
4. Rename getUnoTunnelImplementation to getFromUnoTunnel, both to make
   it a bit shorter, and to reflect its function better. Templatize it
   to take also css::uno::Any for convenience.
5. Introduce getSomethingImpl, inspired by sw::UnoTunnelImpl; allow it
   handle cases both with and without fallback to parent.
6. Adjust UNO3_GETIMPLEMENTATION_* macros

TODO (in separate commits):
- Drop sw::UnoTunnelImpl and sw::UnoTunnelGetImplementation
- Replace all uses of OImplementationId in core with UnoIdInit
- Deprecate OImplementationId in <cppuhelper/typeprovider.hxx>
- Change implementations of getSomething to use getSomethingImpl
- Revise uses of getSomething to use getFromUnoTunnel

Change-Id: If4a3cb024130f1f552f988f0479589da1cd066e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122022
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-15 06:07:36 +02:00