Commit Graph

3372 Commits

Author SHA1 Message Date
ee4554b0ac cid#1555259 COPY_INSTEAD_OF_MOVE
and

cid#1555264 COPY_INSTEAD_OF_MOVE
cid#1555280 COPY_INSTEAD_OF_MOVE
cid#1555303 COPY_INSTEAD_OF_MOVE
cid#1555313 COPY_INSTEAD_OF_MOVE
cid#1555314 COPY_INSTEAD_OF_MOVE
cid#1555323 COPY_INSTEAD_OF_MOVE
cid#1555333 COPY_INSTEAD_OF_MOVE
cid#1555338 COPY_INSTEAD_OF_MOVE
cid#1555349 COPY_INSTEAD_OF_MOVE
cid#1555364 COPY_INSTEAD_OF_MOVE
cid#1555379 COPY_INSTEAD_OF_MOVE
cid#1555398 COPY_INSTEAD_OF_MOVE
cid#1555410 COPY_INSTEAD_OF_MOVE
cid#1555411 COPY_INSTEAD_OF_MOVE
cid#1555416 COPY_INSTEAD_OF_MOVE
cid#1555429 COPY_INSTEAD_OF_MOVE
cid#1555434 COPY_INSTEAD_OF_MOVE
cid#1555441 COPY_INSTEAD_OF_MOVE
cid#1555446 COPY_INSTEAD_OF_MOVE
cid#1555480 COPY_INSTEAD_OF_MOVE
cid#1555490 COPY_INSTEAD_OF_MOVE
cid#1555524 COPY_INSTEAD_OF_MOVE
cid#1555527 COPY_INSTEAD_OF_MOVE
cid#1555531 COPY_INSTEAD_OF_MOVE
cid#1555578 COPY_INSTEAD_OF_MOVE
cid#1555581 COPY_INSTEAD_OF_MOVE
cid#1555591 COPY_INSTEAD_OF_MOVE
cid#1555614 COPY_INSTEAD_OF_MOVE
cid#1555619 COPY_INSTEAD_OF_MOVE
cid#1555633 COPY_INSTEAD_OF_MOVE
cid#1555654 COPY_INSTEAD_OF_MOVE
cid#1555707 COPY_INSTEAD_OF_MOVE
cid#1555712 COPY_INSTEAD_OF_MOVE
cid#1555746 COPY_INSTEAD_OF_MOVE
cid#1555763 COPY_INSTEAD_OF_MOVE

Change-Id: Ibcc1a3649c5663328e60474c06e51902aa74db52
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175407
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-10-22 17:53:07 +02:00
ba08d8f3a9 tdf#163486: PVS: Identical branches
Change-Id: If000f1e0bb01c6d551ef970edae8058e8020a202
V1037: Two or more case-branches perform the same actions. Check lines: 917, 945
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175152
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2024-10-19 19:49:40 +02:00
43cec3f814 tdf#163486: PVS: nullptr dereference
V595: The 'pMethod' pointer was utilized before it was verified against nullptr. Check lines: 392, 394.

Change-Id: I7c3cdcf9aacb76ca261733924dc238e836036433
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175080
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-10-17 22:23:01 +02:00
fc0cb364ae create method for doing the "dispose-on-destruct"
which is (a) a little tricky and (b) needs to be on the base class to
get the locking just right

Change-Id: I425d4747e7e0ca0741fded9a6a70f6fa9995e102
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174312
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-10-01 15:18:21 +02:00
eb227657d9 cid#1608414 Double lock
since:

commit f3e127217d8daa443b8eda52ac4810e375cc7d63
CommitDate: Wed May 10 13:28:09 2023 +0200

    use comphelper::WeakComponentImplHelper in DocumentEventNotifier::Impl

problem:

108        std::unique_lock aGuard(m_aMutex);
109        if ( !impl_isDisposed_nothrow(aGuard) )
110        {
111            acquire();
CID 1608414: (#1 of 1): Double lock (LOCK)
4. double_lock: dispose locks this->m_aMutex while it is locked.[show details]
112            dispose();
    /include/comphelper/compbase.hxx
    73    virtual void SAL_CALL dispose() noexcept final override
    74    {
    1. lock: dispose locks this->m_aMutex.[show details]
    75        WeakComponentImplHelperBase::dispose();
        /comphelper/source/misc/compbase.cxx
        20    void SAL_CALL WeakComponentImplHelperBase::dispose()
        21    {
        1.        lock: unique_lock locks this->m_aMutex.
        22        std::unique_lock aGuard(m_aMutex);

Change-Id: Ibd9dc0564adf86c6409794f584a743aecd9d36e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173970
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-26 13:39:32 +02:00
f48c9d59cc use more concrete UNO in basic
Change-Id: I6606008d9b45e00295cf441a7321a677d62317f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173581
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-09-18 15:02:58 +02:00
4cbf139c63 cid#1608157 silence Overflowed constant
Change-Id: Ie19c388b983800b514ed3b309955968eccd24efb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173550
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-17 18:42:27 +02:00
de0bc0a2c3 cool#9992 lok doc sign: make SfxMedium::SignContents_Impl() async
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case
to show the signatures dialog read-only, as only that is async.

The next step to get rid of this hack is to make
SfxMedium::SignContents_Impl() async, now that
SfxObjectShell::SignDocumentContent() is async.

This requires all callers of SfxMedium::SignContents_Impl() to be async,
most notably SfxObjectShell::SignScriptingContent() has to be converted
as well.

Note that no lifecycle problem is expected here for the callback, since
the object shell and its medium is typically around for as long as the
document is loaded.

Change-Id: I57f2c747f8448b9adc0398f874ede36211fed817
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172934
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-06 12:25:48 +02:00
ac9eaf5d11 use less dynamic_cast when broadcasting SfxHint
Change-Id: If4d33cbbf36a9ad495b80a7347b39d0f4bc0405e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172857
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-09-05 08:10:26 +02:00
b7a32682f6 use less dynamic_cast when broadcasting SfxHint
Change-Id: I24c947c20afeffffebe5ac794108c4ccecb680f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172828
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-09-03 21:41:08 +02:00
e589ea5eb5 Fix Basic Macro Organizer library list after import of library
with Insert as reference (read-only) option checked

The last entry in the list always shows the link location of the just
imported library. This will only be correct if the imported library is
alphabetically the last entry in the list.

Change-Id: I03472dc75582e92b87923faf96d14615b8adecf9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172561
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2024-09-02 19:45:52 +02:00
41ad19c719 Resolves: tdf#146800 Linked libraries don't show shource path in Macro
Organizer for VCL plugins that use SalInstanceTreeView

Change-Id: Ide1ea8a14e956836573e8a3aacd2b289d76616ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172560
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Tested-by: Jenkins
2024-08-30 06:54:47 +02:00
2b4734c8a4 SbClassModuleObject never take a non-null arg
Change-Id: I1be4710a32355c104ba25005ec4f46c6f650b9c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172443
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-27 09:41:48 +02:00
c93eb54c87 cid#1557618 COPY_INSTEAD_OF_MOVE
and

cid#1557535 COPY_INSTEAD_OF_MOVE
cid#1557520 COPY_INSTEAD_OF_MOVE
cid#1557513 COPY_INSTEAD_OF_MOVE
cid#1557503 COPY_INSTEAD_OF_MOVE
cid#1557487 COPY_INSTEAD_OF_MOVE
cid#1557483 COPY_INSTEAD_OF_MOVE
cid#1557479 COPY_INSTEAD_OF_MOVE
cid#1557474 COPY_INSTEAD_OF_MOVE
cid#1557461 COPY_INSTEAD_OF_MOVE
cid#1557446 COPY_INSTEAD_OF_MOVE
cid#1557445 COPY_INSTEAD_OF_MOVE
cid#1557441 COPY_INSTEAD_OF_MOVE
cid#1557435 COPY_INSTEAD_OF_MOVE
cid#1557433 COPY_INSTEAD_OF_MOVE
cid#1557429 COPY_INSTEAD_OF_MOVE
cid#1557375 COPY_INSTEAD_OF_MOVE
cid#1557372 COPY_INSTEAD_OF_MOVE
cid#1557356 COPY_INSTEAD_OF_MOVE
cid#1557350 COPY_INSTEAD_OF_MOVE
cid#1557344 COPY_INSTEAD_OF_MOVE
cid#1557339 COPY_INSTEAD_OF_MOVE
cid#1557332 COPY_INSTEAD_OF_MOVE
cid#1557330 COPY_INSTEAD_OF_MOVE
cid#1557328 COPY_INSTEAD_OF_MOVE
cid#1557323 COPY_INSTEAD_OF_MOVE
cid#1557315 COPY_INSTEAD_OF_MOVE
cid#1557313 COPY_INSTEAD_OF_MOVE
cid#1557304 COPY_INSTEAD_OF_MOVE
cid#1557297 COPY_INSTEAD_OF_MOVE
cid#1557291 COPY_INSTEAD_OF_MOVE
cid#1557290 COPY_INSTEAD_OF_MOVE
cid#1557271 COPY_INSTEAD_OF_MOVE
cid#1557266 COPY_INSTEAD_OF_MOVE
cid#1557262 COPY_INSTEAD_OF_MOVE
cid#1557259 COPY_INSTEAD_OF_MOVE
cid#1557246 COPY_INSTEAD_OF_MOVE
cid#1557242 COPY_INSTEAD_OF_MOVE
cid#1557241 COPY_INSTEAD_OF_MOVE
cid#1557236 COPY_INSTEAD_OF_MOVE
cid#1557228 COPY_INSTEAD_OF_MOVE
cid#1557225 COPY_INSTEAD_OF_MOVE
cid#1557221 COPY_INSTEAD_OF_MOVE
cid#1557217 COPY_INSTEAD_OF_MOVE
cid#1557213 COPY_INSTEAD_OF_MOVE
cid#1557211 COPY_INSTEAD_OF_MOVE
cid#1557209 COPY_INSTEAD_OF_MOVE
cid#1557205 COPY_INSTEAD_OF_MOVE
cid#1557204 COPY_INSTEAD_OF_MOVE
cid#1557193 COPY_INSTEAD_OF_MOVE
cid#1556082 COPY_INSTEAD_OF_MOVE

Change-Id: I07f195a79a69d4bac0d14317854efc88d6fe94d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171927
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-16 09:30:37 +02:00
d7056b1456 cid#1558088 COPY_INSTEAD_OF_MOVE
and

cid#1558080 COPY_INSTEAD_OF_MOVE
cid#1558077 COPY_INSTEAD_OF_MOVE
cid#1558055 COPY_INSTEAD_OF_MOVE
cid#1558043 COPY_INSTEAD_OF_MOVE
cid#1558039 COPY_INSTEAD_OF_MOVE
cid#1558015 COPY_INSTEAD_OF_MOVE
cid#1558014 COPY_INSTEAD_OF_MOVE
cid#1558009 COPY_INSTEAD_OF_MOVE
cid#1558002 COPY_INSTEAD_OF_MOVE
cid#1557998 COPY_INSTEAD_OF_MOVE
cid#1557996 COPY_INSTEAD_OF_MOVE
cid#1557990 COPY_INSTEAD_OF_MOVE
cid#1557986 COPY_INSTEAD_OF_MOVE
cid#1557980 COPY_INSTEAD_OF_MOVE
cid#1557971 COPY_INSTEAD_OF_MOVE
cid#1557968 COPY_INSTEAD_OF_MOVE
cid#1557967 COPY_INSTEAD_OF_MOVE
cid#1557961 COPY_INSTEAD_OF_MOVE
cid#1557959 COPY_INSTEAD_OF_MOVE
cid#1557958 COPY_INSTEAD_OF_MOVE
cid#1557956 COPY_INSTEAD_OF_MOVE
cid#1557953 COPY_INSTEAD_OF_MOVE
cid#1557949 COPY_INSTEAD_OF_MOVE
cid#1557947 COPY_INSTEAD_OF_MOVE
cid#1557940 COPY_INSTEAD_OF_MOVE
cid#1557931 COPY_INSTEAD_OF_MOVE
cid#1557930 COPY_INSTEAD_OF_MOVE
cid#1557915 COPY_INSTEAD_OF_MOVE
cid#1557913 COPY_INSTEAD_OF_MOVE
cid#1557910 COPY_INSTEAD_OF_MOVE
cid#1557886 COPY_INSTEAD_OF_MOVE
cid#1557884 COPY_INSTEAD_OF_MOVE
cid#1557880 COPY_INSTEAD_OF_MOVE
cid#1557875 COPY_INSTEAD_OF_MOVE
cid#1557871 COPY_INSTEAD_OF_MOVE
cid#1557862 COPY_INSTEAD_OF_MOVE
cid#1557847 COPY_INSTEAD_OF_MOVE
cid#1557845 COPY_INSTEAD_OF_MOVE
cid#1557844 COPY_INSTEAD_OF_MOVE
cid#1557843 COPY_INSTEAD_OF_MOVE
cid#1557838 COPY_INSTEAD_OF_MOVE
cid#1557835 COPY_INSTEAD_OF_MOVE
cid#1557834 COPY_INSTEAD_OF_MOVE
cid#1557828 COPY_INSTEAD_OF_MOVE
cid#1557823 COPY_INSTEAD_OF_MOVE
cid#1557817 COPY_INSTEAD_OF_MOVE
cid#1557813 COPY_INSTEAD_OF_MOVE
cid#1557812 COPY_INSTEAD_OF_MOVE

Change-Id: I55d4a920daa2d148683419169eb828325fd3c757
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171732
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-11 20:14:54 +02:00
ac0514fb3d cid#1555415 COPY_INSTEAD_OF_MOVE
and

cid#1555430 COPY_INSTEAD_OF_MOVE
cid#1555497 COPY_INSTEAD_OF_MOVE
cid#1555542 COPY_INSTEAD_OF_MOVE
cid#1555543 COPY_INSTEAD_OF_MOVE
cid#1555564 COPY_INSTEAD_OF_MOVE
cid#1555593 COPY_INSTEAD_OF_MOVE
cid#1555602 COPY_INSTEAD_OF_MOVE
cid#1555610 COPY_INSTEAD_OF_MOVE
cid#1555667 COPY_INSTEAD_OF_MOVE
cid#1555693 COPY_INSTEAD_OF_MOVE
cid#1555719 COPY_INSTEAD_OF_MOVE
cid#1555757 COPY_INSTEAD_OF_MOVE
cid#1555795 COPY_INSTEAD_OF_MOVE
cid#1555826 COPY_INSTEAD_OF_MOVE
cid#1555847 COPY_INSTEAD_OF_MOVE
cid#1555851 COPY_INSTEAD_OF_MOVE
cid#1555863 COPY_INSTEAD_OF_MOVE
cid#1555865 COPY_INSTEAD_OF_MOVE
cid#1555867 COPY_INSTEAD_OF_MOVE
cid#1555869 COPY_INSTEAD_OF_MOVE
cid#1555879 COPY_INSTEAD_OF_MOVE
cid#1555890 COPY_INSTEAD_OF_MOVE
cid#1555893 COPY_INSTEAD_OF_MOVE
cid#1555900 COPY_INSTEAD_OF_MOVE
cid#1555922 COPY_INSTEAD_OF_MOVE
cid#1555925 COPY_INSTEAD_OF_MOVE

Change-Id: I5d362a09e80eecd282e63c745bfe26eac2631a0d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171492
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-08-06 09:13:52 +02:00
7f9f32aa11 cid#1556472 COPY_INSTEAD_OF_MOVE
and

cid#1556481 COPY_INSTEAD_OF_MOVE
cid#1556486 COPY_INSTEAD_OF_MOVE
cid#1556491 COPY_INSTEAD_OF_MOVE
cid#1556507 COPY_INSTEAD_OF_MOVE
cid#1556515 COPY_INSTEAD_OF_MOVE
cid#1556518 COPY_INSTEAD_OF_MOVE
cid#1556519 COPY_INSTEAD_OF_MOVE
cid#1556533 COPY_INSTEAD_OF_MOVE
cid#1556536 COPY_INSTEAD_OF_MOVE
cid#1556559 COPY_INSTEAD_OF_MOVE
cid#1556577 COPY_INSTEAD_OF_MOVE
cid#1556581 COPY_INSTEAD_OF_MOVE

Change-Id: I2ad2f2194e2a89c7246e8742b2fc8be7580e38c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171394
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-02 17:27:10 +02:00
329e913b0b cid#1556624 COPY_INSTEAD_OF_MOVE
and

cid#1556622 COPY_INSTEAD_OF_MOVE
cid#1556629 COPY_INSTEAD_OF_MOVE
cid#1556632 COPY_INSTEAD_OF_MOVE
cid#1556634 COPY_INSTEAD_OF_MOVE
cid#1556642 COPY_INSTEAD_OF_MOVE
cid#1556644 COPY_INSTEAD_OF_MOVE
cid#1556663 COPY_INSTEAD_OF_MOVE
cid#1556674 COPY_INSTEAD_OF_MOVE
cid#1556682 COPY_INSTEAD_OF_MOVE
cid#1556683 COPY_INSTEAD_OF_MOVE
cid#1556685 COPY_INSTEAD_OF_MOVE
cid#1556694 COPY_INSTEAD_OF_MOVE
cid#1556708 COPY_INSTEAD_OF_MOVE
cid#1556711 COPY_INSTEAD_OF_MOVE
cid#1556712 COPY_INSTEAD_OF_MOVE
cid#1556714 COPY_INSTEAD_OF_MOVE
cid#1556719 COPY_INSTEAD_OF_MOVE
cid#1556727 COPY_INSTEAD_OF_MOVE
cid#1556744 COPY_INSTEAD_OF_MOVE
cid#1556757 COPY_INSTEAD_OF_MOVE
cid#1556782 COPY_INSTEAD_OF_MOVE
cid#1556784 COPY_INSTEAD_OF_MOVE

Change-Id: I5d5bc884cd7351a81c18b35aaf4e304256242988
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171128
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-07-28 18:36:01 +02:00
7f135227a9 cid#1556131 COPY_INSTEAD_OF_MOVE
and

cid#1556135 COPY_INSTEAD_OF_MOVE
cid#1556146 COPY_INSTEAD_OF_MOVE
cid#1556164 COPY_INSTEAD_OF_MOVE
cid#1556171 COPY_INSTEAD_OF_MOVE
cid#1556177 COPY_INSTEAD_OF_MOVE
cid#1556181 COPY_INSTEAD_OF_MOVE
cid#1556182 COPY_INSTEAD_OF_MOVE
cid#1556183 COPY_INSTEAD_OF_MOVE
cid#1556192 COPY_INSTEAD_OF_MOVE
cid#1556201 COPY_INSTEAD_OF_MOVE
cid#1556208 COPY_INSTEAD_OF_MOVE
cid#1556215 COPY_INSTEAD_OF_MOVE
cid#1556224 COPY_INSTEAD_OF_MOVE
cid#1556227 COPY_INSTEAD_OF_MOVE
cid#1556228 COPY_INSTEAD_OF_MOVE
cid#1556238 COPY_INSTEAD_OF_MOVE
cid#1556246 COPY_INSTEAD_OF_MOVE
cid#1556247 COPY_INSTEAD_OF_MOVE
cid#1556288 COPY_INSTEAD_OF_MOVE
cid#1556293 COPY_INSTEAD_OF_MOVE
cid#1556305 COPY_INSTEAD_OF_MOVE
cid#1556310 COPY_INSTEAD_OF_MOVE
cid#1556317 COPY_INSTEAD_OF_MOVE
cid#1556321 COPY_INSTEAD_OF_MOVE
cid#1556322 COPY_INSTEAD_OF_MOVE
cid#1556331 COPY_INSTEAD_OF_MOVE
cid#1556339 COPY_INSTEAD_OF_MOVE
cid#1556342 COPY_INSTEAD_OF_MOVE
cid#1556351 COPY_INSTEAD_OF_MOVE
cid#1556358 COPY_INSTEAD_OF_MOVE
cid#1556370 COPY_INSTEAD_OF_MOVE
cid#1556379 COPY_INSTEAD_OF_MOVE
cid#1556390 COPY_INSTEAD_OF_MOVE
cid#1556423 COPY_INSTEAD_OF_MOVE
cid#1556532 COPY_INSTEAD_OF_MOVE
cid#1556561 COPY_INSTEAD_OF_MOVE
cid#1556662 COPY_INSTEAD_OF_MOVE
cid#1556704 COPY_INSTEAD_OF_MOVE
cid#1556730 COPY_INSTEAD_OF_MOVE
cid#1556988 COPY_INSTEAD_OF_MOVE
cid#1557071 COPY_INSTEAD_OF_MOVE
cid#1557081 COPY_INSTEAD_OF_MOVE
cid#1557177 COPY_INSTEAD_OF_MOVE

Change-Id: I2c723f0fe9a4eefa62a68f47049ed690d06eb0ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170932
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-24 22:12:32 +02:00
8a83a62410 cid#1555167 COPY_INSTEAD_OF_MOVE
and

cid#1555172 COPY_INSTEAD_OF_MOVE
cid#1555184 COPY_INSTEAD_OF_MOVE
cid#1555188 COPY_INSTEAD_OF_MOVE
cid#1555197 COPY_INSTEAD_OF_MOVE
cid#1555209 COPY_INSTEAD_OF_MOVE
cid#1555211 COPY_INSTEAD_OF_MOVE
cid#1555215 COPY_INSTEAD_OF_MOVE
cid#1555216 COPY_INSTEAD_OF_MOVE
cid#1555217 COPY_INSTEAD_OF_MOVE
cid#1555218 COPY_INSTEAD_OF_MOVE
cid#1555222 COPY_INSTEAD_OF_MOVE
cid#1556674 COPY_INSTEAD_OF_MOVE
cid#1555229 COPY_INSTEAD_OF_MOVE
cid#1555233 COPY_INSTEAD_OF_MOVE
cid#1555234 COPY_INSTEAD_OF_MOVE
cid#1555242 COPY_INSTEAD_OF_MOVE
cid#1555250 COPY_INSTEAD_OF_MOVE
cid#1555251 COPY_INSTEAD_OF_MOVE
cid#1555254 COPY_INSTEAD_OF_MOVE
cid#1555304 COPY_INSTEAD_OF_MOVE
cid#1555307 COPY_INSTEAD_OF_MOVE
cid#1555317 COPY_INSTEAD_OF_MOVE
cid#1555329 COPY_INSTEAD_OF_MOVE
cid#1555340 COPY_INSTEAD_OF_MOVE
cid#1555347 COPY_INSTEAD_OF_MOVE
cid#1555352 COPY_INSTEAD_OF_MOVE
cid#1555358 COPY_INSTEAD_OF_MOVE
cid#1555363 COPY_INSTEAD_OF_MOVE
cid#1555365 COPY_INSTEAD_OF_MOVE
cid#1555367 COPY_INSTEAD_OF_MOVE
cid#1555374 COPY_INSTEAD_OF_MOVE
cid#1555380 COPY_INSTEAD_OF_MOVE

Change-Id: I343194c10749488a1143e2517ee0638ab19da218
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170888
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-23 21:58:02 +02:00
2fdee9fd60 Unify/Port to use VCLUnoHelper for AWT <-> VCL conversions
Following

    Change-Id: Id48f81deb05aee2026509037f7d14575735e5be0
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 10 14:49:03 2024 +0200

        VCLUnoHelper: Align AWT <-> VCL helpers with convert.hxx impl

, port all uses of the helper functions defined in
`include/toolkit/helper/convert.hxx` to use the
`VCLUnoHelper` equivalents instead, to unify usage
and avoid duplication.

Drop `include/toolkit/helper/convert.hxx` now that
it's unused.

Change-Id: I22695a93e40e47bb2b14d191a2e0a4eb7c856895
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170317
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-11 06:44:48 +02:00
c39e4f6b8a Add SfxItemType to SfxPoolItem
The SfxPoolItem has a new member SfxItemType m_eItemType to
compare types based on enums instead of typeinfo() which
consumes a lot of time e.g. while AutoFormat is running

Change-Id: I033ce67bc9a28ee4790f162380314de85fb4154e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166452
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2024-06-18 01:07:42 +02:00
36b09bd809 basctl: use SAL_RET_MAYBENULL in GetBindingsPtr()...
... GetDispatcher() and FindBasicManager()

Change-Id: I6de6035f17b74313a5cbb9964ceafcbe3161ef2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168397
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-06-04 11:30:36 +02:00
606bde742e tdf#157664 Drop operator !=, where respective operator == is defined
Change-Id: Ib6f2338bf457b7a7e7b36152337bd777b9e1d293
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166192
Tested-by: Jenkins
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2024-06-03 09:02:08 +02:00
322a6ca8f9 AreObjectsMarked -> GetMarkedObjectList().GetMarkCount() != 0
In order to reduce number of calls to GetMarkedObjectList() later on

Change-Id: Ib2eb7c88338e64744f886a338acca65f782f8170
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168218
Tested-by: Jenkins
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-30 08:44:37 +02:00
740353bc31 loplugin:ostr in basctl
Change-Id: I59c25d52d8f59ff1b7ab498041c2888b8e718f64
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167056
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-05-03 18:38:56 +02:00
d7790878e3 WaE: C6011 Dereferencing NULL pointer warnings
Change-Id: I9870360076260e71c0e02375558606cbdb68fc08
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166960
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-05-01 15:29:44 +02:00
20070d12c8 Drop uses of css::uno::Sequence::getConstArray in accessibility .. basegfx
where it was obsoleted by commits 2484de6728bd11bb7949003d112f1ece2223c7a1
(Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and
fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[]
in internal code 2021-11-05).

Change-Id: I14e3634d8e8dd294b673dcda4dde13f01c3e5112
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166813
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-04-29 23:15:24 +02:00
95fab3f7dc tdf#146619 Drop unused 'using namespace' in: basctl/
Change-Id: I7df9fa0e7de3cf7ee39ce96bf9ff32c54db14763
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165687
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2024-04-08 10:06:39 +02:00
1ac5353bbb Use weak reference to SfxObjectShell in SfxEventHint to avoid use-after-free
The events may be processed after the shell has been destroyed. This is
happening reliably after commit e2bfc34d146806a8f96be0cd2323d716f12cba4e
(Reimplement OleComponentNative_Impl to use IGlobalInterfaceTable,
2024-03-11) when controlling LibreOffice from external Java scripts; but
obviously, it could happen before as well.

Now SotObject inherits from cppu::OWeakObject, instead of SvRefBase.

Change-Id: I73a3531499a3068c801c98f40de39bdf8ad90b2b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164458
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-11 04:43:28 +01:00
b7b029cd71 basctl : use OUstring literal for XServiceInfo implementation
Change-Id: Iee7585585b5e01fad4609f37a06d2aeeff492123
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164304
Tested-by: Jenkins
Reviewed-by: Arnaud Versini <arnaud.versini@pm.me>
2024-03-10 16:42:20 +01:00
c67f138ed8 tdf#114441 : sal_uLong to better integer types
Change-Id: I7c9df411775812cfea4a41e84d34782cc5a9578e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162424
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2024-02-16 10:51:13 +01:00
ca3c6d468f ITEM: ItemPool Rework (I)
Driving forward the Item reworks I now take the
ItemPool in focus: It now does not hold any items
anymore and should be renamed to something like
ItemInfoProvider/ItemHelper, since it's main purpose
is to provide the Defaults for the Item functionality.

There is that SfxItemInfo, only a struct and bundling
SlotID and ItemFlags. There are also the DefaultItems,
just handled as ptrs in an array. It is/was always
error-prone to keep these in sync. Remember that it's
also necessary for the order to not only being sorted
but being increments of one with no gaps allowed in
the WhichIDs to which the Items are bound.

I now bundled that to a new class ItemInfo that joins
WhichID, SlotID, ItemFlags and the default Item. This
is a pure virtual base class, it comes in three
derivations:

(1) ItemInfoStatic:
This is supposed to be global static and hosts the
Item in a std::unique_ptr to ensure cleanup. It is
designed to be constructed once during runtime and
being shared globally. It allows the ItemPtr to be
nullptr to mark as non-static (if initial static is
not possible for some reason) but still offers the
needed data. Most cases (95%+) are of that case.
The contained Item is owned by that instance. The
flag isStaticDefault() is set at the Item.

(2) ItemInfoDynamic:
This is supposed to be used for cases where the Item
cannot be static: Mainly for SfxSetItem (that needs
a Pool itself in the contained SfxItemSet, so lifetime
is bound to that Pool), but other cases showed up in
the transition. These instances live while the Pool
lives and get destructed when the Pool goes down.
Also uses std::unique_ptr for the Item instance for
as much automated cleanup as possible, the contained
Item is owned by that instance, the instance by the
Pool. The flag isDynamicDefault() is set at the Item.

(3) ItemInfoUser:
This is used for UserDefaults that can be set for
every ItemInfo entry to 'overshadow' the default
from the 'outside'. It uses a regular Item and
the central access methods implCreateItemEntry/
implCleanupItemEntry to manage the Item instance,
thus works like a SfxPoolItemHolder. The Item
instance can be globally shared and re-used even
when the Pool goes down. Instances belong to the
Pool and are cleaned up when the Pool goes down.
This Item does not need any further flag to be
set.

The ItemInfos are organized using a class
called ItemInfoPackage:

This bundles groups of ItemInfoStatic to
functional instances. There are derivations/
implementations of this e.g. for Writer ItemPool
bundling all the needed defaults for Writer,
similar for draw/impress, Calc and other usages.

These ItemInfoPackage can be 'registered' at an
ItemPool using it's method registerItemInfoPackage.
This does all the needed stuff to setup that
group of ItemInfos at the Pool (It even sets
internal vars First/LastWhich, that info can just
be derived from the buildup ItemInfo Ptrs).

The ItemInfoPackage has methods 'size()' and
'getItemInfo(index) to allow looping over it
and deliver the infos the Pool needs. The
(forced, pure virtual) overloads of getItemInfo
in the specific implementations check for the
ItemPtr being nullptr and create a exclusive
incarnation of ItemInfoDynamic for the Pool if
needed, returning that. The Pool owns the
ItemInfoDynamic incarnations and uses the
ItemInfoStatic directly. On shutdown it cleans
up the ItemInfoDynamic as needed.

The ItemInfoUser is used by the Pool when a
UserDefault is set/used: for SetUserDefaultItem,
GetUserDefaultItem, ResetUserDefaultItem. It
is not held in a 2nd list, but directly in the
list of ItemInfo'ptrs: To keep track of this
an unordered_map is used that helds the original
ItemInfo associated with the WhichID. That way
no two lookups (as before) are needed to get the
current Pool's default for any WhichID.

The derivations of ItemInfoPackage are
encapsulated and just allow access to an
ItemInfoPackage& with a single method as
return value. All use a static local instance
of a std::array<ItemInfoStatic, FIXED_SIZE>
which constructs all ItemInfoStatic and the
static Item instances - if already possible.
Sometimes it is necessary to overload the
constructor to set some static instances
for Items later than the lib init. These are
also just marked with nullptr as Item instance.
Some need to overload getItemInfo to complete
instances of ItemInfoStatic, if needed, or
create and deliver instances of ItemInfoDynamic.

The registerItemInfoPackage also offers a
optional lambda callback: there were two cases
where local data from the Pool was needed to
incarnate the item - just add that to the
call to registerItemInfoPackage if needed,
see examples in the adapted code.

For the re-use of Items this means that now
in SfxItemSet/SfxPoolItemHolder *true* static
Items can and will be used without RefCount
directly and globally. This is also the case
for dynamic Items, with the exception of
differing Pools for SfxSetItems which cannot
be done.

Future:
That design is already prepared to allow
solving that Pool-chaining problem: currently
there are master/sub-pools and all accesses
have to traverse that structure before even
doing anything.
For the future the idea is more to 'compose'
a Pool by registering ItemInfoPackages, e.g.
for Writer pool you may start with SfxItemPool,
register the writer-specific ItemInfoPackage,
then the one for DrawingLayer (if needed) and
the one for EditEngine.
It should also be possible to get to smaller
granularities of that packages. Ideas for
new ones will emerge. We might also think
about composing Pools which can e.g. run Writer
and Chart, so allowing to use Chart *without*
OLE stuff in Writer - just ideas...

More changes:
- Adapted all stuff, cleaned up old stuff/
  definitions
- Removed FreezeIdRanges, that can be done
  once per Pool on-demand (and cannot be
  forgotten to be called)
- Merged XOutdevItemPool with SdrItemPool
  and offered a ItemInfoPackage which joins
  both needed sets of Items
- All the cleanup hassle with Pools and
  defaults cleaned up
- Adapted all access methods of the pool
  to use that new stuff. Pool chaining
  currently stays, but I use a central
  method 'getTargetPool' instead of
  recursive calling to get the correct
  Pool for the action

Change-Id: I2b8d3d4c3cc80b1d0d0b3c0f4bd90d7656b4bab7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163157
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2024-02-12 10:35:33 +01:00
22b5007e27 tdf#140004 Toggle comment in the Basic IDE
This patch adds the "toggle comment" functionality to the Basic IDE.
The shortcut Ctrl + Alt + C is used to execute it.

It works similarly to other code editors such as Kate and VSCode.

Change-Id: Ifdae42b3729cc909baf87c729fe8c3cdf6428184
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162005
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-02-01 13:37:28 +01:00
7bcce4180d tdf#131641 Enter selected text in the search bar (Basic IDE)
This patch makes the selected text in the code editor be
automatically inserted in the search bar.

Change-Id: Ibbe64aa3375a5a47dedb762001ed4b99f4b22e46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162548
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-02-01 13:37:16 +01:00
df0c602aa6 Related tdf#158750 Fix line highlight for all modules when color scheme changes
Prior to this patch, if a library had multiple modules and the color scheme was changed (via View - Color Scheme), the line hightlight color would only update for the current module and remain unchanged for the other modules in the same library.

Change-Id: Idda78c07d02534dfedcd927c37116a2617500ebc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162818
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-01-31 22:58:22 +01:00
0fa827dbb2 Drop std::as_const from css::uno::Sequence iterations
Obsoleted by commit 2484de6728bd11bb7949003d112f1ece2223c7a1 (Remove
non-const Sequence::begin()/end() in internal code, 2021-10-15) and
commit fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const
Sequence::operator[] in internal code, 2021-11-05).

Change-Id: Idbafef5d34c0d4771cbbf75b9db9712e504164cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162640
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-27 12:43:48 +01:00
80480fb5ec tdf#153853 Line numbering and breakpoint should be on the left (RTL)
As requested by the user in the ticket, the Line Numering and Breakpoint windows should be on the left side, even on RTL locales.

Change-Id: Iad2ba8efa0a23a13cf88c2fa277c4eed45002aae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162540
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
2024-01-26 17:05:48 +01:00
3b6f04ea70 Resolves: tdf#159368 crash on tools, macros, edit
when launched from startcenter

Change-Id: I362bfe27914445c3027b6e8a125a75cc31679678
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162557
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-25 12:09:28 +01:00
d9d9ec7039 tdf#158749 Open "Go to Line" dialog from the statusbar in Basic IDE
With this change, if the user clicks the StatusGetPosition item in the status bar, the Go To Line dialog will be shown.

Change-Id: Iba75e2dbf6ba83fce24e1af237bdf9813d4ecb69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162108
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-01-23 12:11:33 +01:00
c4e5b1b934 tdf#159247 Fix crash while adding control with default properties (Dialog Editor)
Controls created using the Ctrl+toolbar (which adds a control with default properties) did not have a parent form, which causes the crash.

Change-Id: Ic2f469e6656a93bbed25d86092384f81b21aaca5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162217
Tested-by: Jenkins
Reviewed-by: Patrick Luby <plubius@libreoffice.org>
Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
2024-01-19 13:23:55 +01:00
3808ef2b27 cid#1545535 COPY_INSTEAD_OF_MOVE
and

cid#1545526 COPY_INSTEAD_OF_MOVE
cid#1545442 COPY_INSTEAD_OF_MOVE
cid#1545426 COPY_INSTEAD_OF_MOVE
cid#1545425 COPY_INSTEAD_OF_MOVE
cid#1545387 COPY_INSTEAD_OF_MOVE
cid#1545379 COPY_INSTEAD_OF_MOVE
cid#1545337 COPY_INSTEAD_OF_MOVE
cid#1545334 COPY_INSTEAD_OF_MOVE
cid#1545289 COPY_INSTEAD_OF_MOVE
cid#1545282 COPY_INSTEAD_OF_MOVE
cid#1545270 COPY_INSTEAD_OF_MOVE
cid#1545237 COPY_INSTEAD_OF_MOVE

Change-Id: Iae44a7347c85ae2e367bf672214b2013f30466f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161968
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-12 20:21:35 +01:00
bf410be450 tdf#158750 Highlight the line where the cursor is positioned (Basic IDE)
This patch implements support for highlighting the selected line in the code editor, similar to what Kate, VSCode, etc do.

If the cursor is positioned in a single line and nothing is selected, then a highlight color is applied to the line. The line number window also highlights the selected line.

Change-Id: I2047d79500cd783b122b6752bb00996de0a7c702
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161861
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-01-11 19:56:08 +01:00
c0075bf84e tdf#155381 Remember the visibility of UI components in the Basic IDE
This patch remembers the visibility of the Object Catalog, Watched Expressions and Stack Window in the Basic IDE.

Change-Id: I2fea038ffc56af45cd6570feeb14ab84307f8cef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161852
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-01-11 19:49:28 +01:00
52f920ebf7 cid#1583747 COPY_INSTEAD_OF_MOVE
and

cid#1583746 COPY_INSTEAD_OF_MOVE
cid#1583745 COPY_INSTEAD_OF_MOVE
cid#1583744 COPY_INSTEAD_OF_MOVE

Change-Id: Ib63c469844925723645f01720f8cebc60388ae29
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161875
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-10 11:18:46 +01:00
6a0dc770f8 Fix typo
Change-Id: I75bcd6459f0bb8d0dcaf4d5646e31da2b71fb78f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161804
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-01-09 18:46:46 +01:00
833b8bd3d1 Fix typo
Change-Id: Icf3d2feb84f287e3e75f1eab488ec2804cd22a40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161803
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-01-09 18:46:20 +01:00
076e21f4e3 tdf#156925 Add Color Scheme selector to the Basic IDE
This patch implements a color scheme selector for the Basic IDE. With this new feature the user can either:
1) Choose to stick with "Application Colors", meaning that the colors defined in "Tools - Options - Application Colors" are applied.
2) Use one of the available color schemes in the dialog

To access the color scheme dialog, go to View - Color Scheme.

A color schema was defined in the "BasicIDE.xcs" file and six color schemes were defined in "BasicIDE.xcu" to be shipped with LibreOffice.

This way, it is possible to install more color schemes via extensions;

Change-Id: I5d382d19f982d02ba3c0fda5d1596aed2c38f13c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155928
Tested-by: Jenkins
Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
2024-01-08 19:13:38 +01:00
fe25701ae9 cid#1545421 COPY_INSTEAD_OF_MOVE
and

cid#1545403 COPY_INSTEAD_OF_MOVE
cid#1545397 COPY_INSTEAD_OF_MOVE
cid#1545376 COPY_INSTEAD_OF_MOVE
cid#1545339 COPY_INSTEAD_OF_MOVE
cid#1545288 COPY_INSTEAD_OF_MOVE

Change-Id: I0e24a3fc7148d0b7ff8126debe3cddbb4fbdd713
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161453
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-30 22:07:47 +01:00
80b5041ea5 cid#1545970 COPY_INSTEAD_OF_MOVE
Change-Id: Ifbec5f91dd11a495fcf01ad95fcdcc867e882f70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161293
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-26 11:53:19 +01:00