Commit Graph
5813 Commits
Author SHA1 Message Date
Neil Roberts 4be9be2219 tdf#144560 Remove old key from command when setting new one
The accelerator cache maintains a 1:1 mapping for key→command and a
1:n mapping for command→keys. When a new command is set for a key it was
previously only updating the key→command map and then adding the key to
the command→keys map. It never removed the key from the command→keys map
for the old command. When the menus are eventually updated, it looks up
whether each item has a shortcut based on the item’s command. Because
the old command was never removed, this ended up making it display the
same key binding on multiple menu items.

Change-Id: I6d75834f4c49b1f5c105ec40cb27b8e73006152d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190928
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-09-14 21:14:06 +02:00
Caolán McNamara a91ceefcad cid#1660530 silence Data race condition
rejig this so coverity is satisfied

Change-Id: Iad58f680b6f6fe879866c0162a88a3439af2c3f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190445
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-09-01 09:17:48 +02:00
Caolán McNamara d929702e83 cid#1665188 Variable copied when it could be moved
and

cid#1665187 Variable copied when it could be moved
cid#1665186 Variable copied when it could be moved
cid#1665184 Variable copied when it could be moved

Change-Id: If36872293c53263ad2a42b06463c9b50c243068d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190441
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-31 22:23:21 +02:00
Noel Grandin d5df923644 BitmapEx->Bitmap in framework
now that Bitmap supports transparency

Change-Id: I70cac13970f657770c5b739010bae8b17f4faed0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190421
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-31 07:38:07 +02:00
Noel Grandin c0afb3514f add new Bitmap constructors
to move the logic of constructing a new Bitmap from an existing Bitmap and an AlphaMask,
into vcl, where it can later be optimised

Change-Id: I2af1c6d1a35d968abdd07546448f7e211772e70b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190366
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-29 17:53:22 +02:00
Noel Grandin 0c567fbc49 BitmapEx->Bitmap in Image
now that Bitmap supports transparency

Change-Id: Id8fa4a216d52d56560746d7e063badded72c58c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190315
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-28 10:21:22 +02:00
Noel Grandin 36a4d7daa6 BitmapEx->Bitmap in various
places where we are constructing a Graphic by first
converting to BitmapEx, which is unnecessary, rather pass a
Bitmap to Graphic.

Change-Id: I386f68e7f5bc6ef9509352187dbe9a0774defaac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190307
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-28 08:00:13 +02:00
Noel Grandin 65a99e6b33 BitmapEx->Bitmap in ImageList
now that Bitmap supports transparency

Change-Id: If30f5fbc801cd576a13ee6f969085021d3ba7d6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190304
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-28 07:59:48 +02:00
Noel Grandin e6211a4b3b BitmapEx->Bitmap in various
now that Bitmap supports transparency

Change-Id: If946687832cf30db70db9749e5aeed38ab1490c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190149
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-25 12:59:18 +02:00
Caolán McNamara d0829662d5 add a constructor to TStorageInfo
Change-Id: I74cd5c9a82976e5cfb31fe622db543e8133bfee1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189863
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-18 18:02:15 +02:00
Caolán McNamara 72e538b9bd tainted_data_return is deprecated
in favour of taint_source, lets drop them all first

Change-Id: I9c4e5c143fcbd6de9491360c993a8ea1b89a726e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189820
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-17 15:33:16 +02:00
Caolán McNamara 2d7fa2ba4e rework StorageHolder::openPath a little
convince myself that cid#1660530 Data race condition is bogus

Change-Id: I02a7ad95d7649757aa073f3a7c45144e60d177d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189412
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-12 15:42:34 +02:00
Caolán McNamara 16bd75a56c cid#1659785 Variable copied when it could be moved
and

cid#1659793 Variable copied when it could be moved
cid#1659830 Variable copied when it could be moved
cid#1659841 Variable copied when it could be moved
cid#1659856 Variable copied when it could be moved
cid#1659863 Variable copied when it could be moved
cid#1659864 Variable copied when it could be moved
cid#1659865 Variable copied when it could be moved
cid#1659903 Variable copied when it could be moved
cid#1659909 Variable copied when it could be moved
cid#1659917 Variable copied when it could be moved
cid#1659924 Variable copied when it could be moved
cid#1659929 Variable copied when it could be moved
cid#1659930 Variable copied when it could be moved
cid#1659932 Variable copied when it could be moved
cid#1660056 Variable copied when it could be moved
cid#1660112 Variable copied when it could be moved
cid#1660169 Variable copied when it could be moved

Change-Id: I623009beb8e4a61b2253a17f356576bd3ac3f06c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189402
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-12 15:37:59 +02:00
Caolán McNamara d02fde021c cid#1659748 Variable copied when it could be moved
and

cid#1659754 Variable copied when it could be moved
cid#1659755 Variable copied when it could be moved
cid#1659756 Variable copied when it could be moved
cid#1659766 Variable copied when it could be moved
cid#1659767 Variable copied when it could be moved
cid#1659769 Variable copied when it could be moved
cid#1659770 Variable copied when it could be moved
cid#1659777 Variable copied when it could be moved
cid#1659787 Variable copied when it could be moved
cid#1659790 Variable copied when it could be moved
cid#1659793 Variable copied when it could be moved
cid#1659802 Variable copied when it could be moved
cid#1659818 Variable copied when it could be moved
cid#1659822 Variable copied when it could be moved
cid#1659824 Variable copied when it could be moved
cid#1659825 Variable copied when it could be moved
cid#1659826 Variable copied when it could be moved
cid#1659842 Variable copied when it could be moved
cid#1659849 Variable copied when it could be moved
cid#1659850 Variable copied when it could be moved

Change-Id: I70729aaf6e229518a9a50ac18311286ab5b05b53
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189348
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-11 13:16:28 +02:00
Noel Grandin 8126025906 BitmapEx->Bitmap in various icons
now that Bitmap can handle transparency

Change-Id: I00ea1e086af3266b1ebfd7e668c49a3abd97a131
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189272
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-08-10 08:51:20 +02:00
Caolán McNamara 5568801a46 cid#1556634 Variable copied when it could be moved
cid#1659641 Variable copied when it could be moved
cid#1659647 Variable copied when it could be moved
cid#1659650 Variable copied when it could be moved
cid#1659663 Variable copied when it could be moved
cid#1659685 Variable copied when it could be moved
cid#1659698 Variable copied when it could be moved
cid#1659703 Variable copied when it could be moved
cid#1659705 Variable copied when it could be moved

Change-Id: If0d399dcce73d47be105ac4b1c342bcc010c56c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189181
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-09 00:45:51 +02:00
Caolán McNamara fc6d103827 cid#1662042 Variable copied when it could be moved
and

cid#1662041 Variable copied when it could be moved
cid#1662040 Variable copied when it could be moved
cid#1662038 Variable copied when it could be moved
cid#1660211 Variable copied when it could be moved
cid#1660147 Variable copied when it could be moved
cid#1660117 Variable copied when it could be moved
cid#1660071 Variable copied when it could be moved
cid#1660046 Variable copied when it could be moved
cid#1660046 Variable copied when it could be moved
cid#1659985 Variable copied when it could be moved

Change-Id: I34627585e593f9de6bfa195ee0617848d9ed6135
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189157
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-08 12:35:37 +02:00
Caolán McNamara b1ec05b4b1 cid#1662031 Variable copied when it could be moved
and

cid#1660225 Variable copied when it could be moved
cid#1660211 Variable copied when it could be moved
cid#1660185 Variable copied when it could be moved
cid#1660173 Variable copied when it could be moved
cid#1660168 Variable copied when it could be moved
cid#1660166 Variable copied when it could be moved
cid#1660165 Variable copied when it could be moved
cid#1660163 Variable copied when it could be moved
cid#1660152 Variable copied when it could be moved
cid#1660149 Variable copied when it could be moved
cid#1660147 Variable copied when it could be moved
cid#1660145 Variable copied when it could be moved
cid#1660142 Variable copied when it could be moved
cid#1660140 Variable copied when it could be moved
cid#1660137 Variable copied when it could be moved
cid#1660136 Variable copied when it could be moved
cid#1660135 Variable copied when it could be moved
cid#1660128 Variable copied when it could be moved
cid#1660124 Variable copied when it could be moved
cid#1660122 Variable copied when it could be moved
cid#1660117 Variable copied when it could be moved
cid#1660114 Variable copied when it could be moved
cid#1660110 Variable copied when it could be moved
cid#1660109 Variable copied when it could be moved
cid#1660105 Variable copied when it could be moved
cid#1660104 Variable copied when it could be moved
cid#1660102 Variable copied when it could be moved
cid#1660100 Variable copied when it could be moved
cid#1660098 Variable copied when it could be moved
cid#1660080 Variable copied when it could be moved
cid#1660079 Variable copied when it could be moved
cid#1660078 Variable copied when it could be moved
cid#1660075 Variable copied when it could be moved
cid#1660071 Variable copied when it could be moved
cid#1660070 Variable copied when it could be moved
cid#1660064 Variable copied when it could be moved
cid#1660063 Variable copied when it could be moved
cid#1660060 Variable copied when it could be moved
cid#1660058 Variable copied when it could be moved
cid#1660053 Variable copied when it could be moved
cid#1660050 Variable copied when it could be moved
cid#1660049 Variable copied when it could be moved
cid#1660046 Variable copied when it could be moved
cid#1660042 Variable copied when it could be moved
cid#1660028 Variable copied when it could be moved
cid#1660023 Variable copied when it could be moved
cid#1660022 Variable copied when it could be moved
cid#1660021 Variable copied when it could be moved
cid#1660020 Variable copied when it could be moved
cid#1660017 Variable copied when it could be moved
cid#1660013 Variable copied when it could be moved
cid#1660005 Variable copied when it could be moved
cid#1660003 Variable copied when it could be moved
cid#1659999 Variable copied when it could be moved
cid#1659998 Variable copied when it could be moved
cid#1659995 Variable copied when it could be moved
cid#1659993 Variable copied when it could be moved
cid#1659989 Variable copied when it could be moved
cid#1659988 Variable copied when it could be moved

Change-Id: I2a30c8a2ac8785050d49b98635b0b406535b185a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189056
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-07 20:51:26 +02:00
Caolán McNamara d356341535 cid#1660220 Variable copied when it could be moved
and

cid#1660211 Variable copied when it could be moved
cid#1660204 Variable copied when it could be moved
cid#1660195 Variable copied when it could be moved
cid#1660194 Variable copied when it could be moved
cid#1660193 Variable copied when it could be moved
cid#1660191 Variable copied when it could be moved
cid#1660188 Variable copied when it could be moved
cid#1660187 Variable copied when it could be moved

Change-Id: Ifcb179f73723e2d43144e242fa9c1b5ac332cd4f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188965
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-05 22:12:32 +02:00
Caolán McNamara c2e99a2502 cid#1555615 Variable copied when it could be moved
and

cid#1555637 Variable copied when it could be moved
cid#1555640 Variable copied when it could be moved
cid#1555863 Variable copied when it could be moved
cid#1556471 Variable copied when it could be moved
cid#1556634 Variable copied when it could be moved
cid#1556731 Variable copied when it could be moved
cid#1556751 Variable copied when it could be moved
cid#1556807 Variable copied when it could be moved
cid#1557366 Variable copied when it could be moved
cid#1558026 Variable copied when it could be moved

Change-Id: I187cb364877d35acd843d8391e5b376437ec96f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188935
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-05 12:05:04 +02:00
Noel Grandin 62d1a50659 BitmapEx->Bitmap in Image
Now that Bitmap can handle transparency

Change-Id: Ic97b5fea315edfb8a5c9c5adb306a8b4f1c97f5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188822
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-02 18:34:08 +02:00
Caolán McNamara 8f73de67cf cid#1660488 Variable copied when it could be moved
and

cid#1660483 Variable copied when it could be moved
cid#1660480 Variable copied when it could be moved
cid#1660473 Variable copied when it could be moved
cid#1660472 Variable copied when it could be moved
cid#1660471 Variable copied when it could be moved
cid#1660468 Variable copied when it could be moved
cid#1660464 Variable copied when it could be moved
cid#1660463 Variable copied when it could be moved
cid#1660462 Variable copied when it could be moved

Change-Id: I6380e6a6c2a63a5d6f2052264c54f250703e77fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188825
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-02 17:39:55 +02:00
Caolán McNamara 004f16ca45 cid#1660859 Variable copied when it could be moved
and

cid#1660535 Variable copied when it could be moved
cid#1660533 Variable copied when it could be moved
cid#1660519 Variable copied when it could be moved
cid#1660518 Variable copied when it could be moved
cid#1660516 Variable copied when it could be moved
cid#1660504 Variable copied when it could be moved
cid#1660497 Variable copied when it could be moved
cid#1660493 Variable copied when it could be moved
cid#1660490 Variable copied when it could be moved
cid#1660489 Variable copied when it could be moved

Change-Id: I44be3d401c56fd6d5183dcd1ee6f8efef52b305e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188821
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-02 16:20:00 +02:00
Noel Grandin e2b2eec732 BitmapEx->Bitmap in AddonsOptions
now that Bitmap can handle transparency

Change-Id: Iaa82c9596c27409b1361bd430f2d6b7eaf4eefd3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188817
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-08-02 13:33:13 +02:00
Caolán McNamara 4725db2575 cid#1659599 Variable copied when it could be moved
and

cid#1659624 Variable copied when it could be moved
cid#1659632 Variable copied when it could be moved
cid#1659637 Variable copied when it could be moved
cid#1659656 Variable copied when it could be moved
cid#1659662 Variable copied when it could be moved

Change-Id: I20179a4ff699af546694b8a4796ab2f0cfae1903
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188708
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-01 17:29:00 +02:00
Caolán McNamara c959f426ce cid#1659610 Variable copied when it could be moved
Change-Id: I7d8369d837065fd442c31dba80707d29024aae8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188497
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-07-29 00:22:06 +02:00
Mike Kaganski 367b9151d3 Simplify AutoRecovery::implts_copyFile a bit
Remove unneeded variables; use normal ctor - it is not too expensive
here in the try block.

Change-Id: Ie88f39c11d6ab3c87fa7b95e98d2290e04853b83
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188199
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-07-23 11:23:10 +02:00
Noel Grandin 9b79ae1161 loplugin:blockblock
found with a modified copy of this plugin

Change-Id: Ib2ca97c7479abdf1a375e2700f9c947e1101f0e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188065
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-07-19 19:11:16 +02:00
Mike Kaganski 3a4961af43 Use o3tl::{get,set}Environment instead of resp. osl_* functions
Simplifies the code, and avoids OUString internals access.
Also replace some getenv calls.

Change-Id: I5f7dc492fe87ea1fbaad6a61bc54e21f0f0c5aef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187974
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-07-17 07:03:19 +02:00
Noel Grandin 874b659981 fix deadlock opening file on android
reported by Michael Weghorn

regression from
    commit 9d1e76f7da
    Author: Noel Grandin <noel.grandin@collabora.co.uk>
    Date:   Tue Jul 1 11:55:03 2025 +0200
    convert PathSettings to comphelper::WeakComponentImplHelper

thread #28, name = 'Thread-2'
frame #0: 0x00007eb9bc494808 libc.so`syscall + 24
frame #1: 0x00007eb9bc47191c libc.so`__futex_wait_ex(void volatile*, bool, int, bool, timespec const*) + 156
frame #2: 0x00007eb9bc480fb1 libc.so`NonPI::MutexLockWithTimeout(pthread_mutex_internal_t*, bool, timespec const*) + 289
frame #3: 0x00007eb6a6d79569 liblo-native-code.so`std::__ndk1::mutex::lock() [inlined] std::__ndk1::__libcpp_mutex_lock[abi:ne200000](__m=<unavailable>) at pthread.h:95:10
frame #4: 0x00007eb6a6d79564 liblo-native-code.so`std::__ndk1::mutex::lock(this=<unavailable>) at mutex.cpp:29:12
frame #5: 0x00007eb69bab18d7 liblo-native-code.so`std::__ndk1::unique_lock<std::__ndk1::mutex>::unique_lock[abi:ne200000](this=0x00007eb71c087c58, __m=0x00007eb8ebf31f00) at unique_lock.h:40:11
frame #6: 0x00007eb69d69faed liblo-native-code.so`(anonymous namespace)::PathSettings::changesOccurred(this=0x00007eb8ebf31d90, aEvent=0x00007eb7bc605918) at pathsettings.cxx:486:22
frame #7: 0x00007eb69d53e2fb liblo-native-code.so`framework::WeakChangesListener::changesOccurred(this=0x00007eb8dc0717d0, rEvent=0x00007eb7bc605918) at mischelper.hxx:204:25
frame #8: 0x00007eb69c2eae41 liblo-native-code.so`configmgr::Broadcaster::send(this=0x00007eb71c0881b8) at broadcaster.cxx:175:41
frame #9: 0x00007eb69c2b8188 liblo-native-code.so`configmgr::Access::setPropertyValue(this=0x00007eb87bf240d0, aPropertyName=0x00007eb6a6f1a328, aValue=0x00007eb71c088478) at access.cxx:776:8
frame #10: 0x00007eb69d55f469 liblo-native-code.so`comphelper::ConfigurationHelper::writeRelativeKey(xCFG=0x00007eb71c0884b8, sRelPath=0x00007eb71c0884c0, sKey=0x00007eb6a6f1a328, aValue=0x00007eb71c088478) at configurationhelper.cxx:106:13
frame #11: 0x00007eb69d6ad622 liblo-native-code.so`(anonymous namespace)::PathSettings::impl_storePath(this=0x00007eb8ebf31d90, g=0x00007eb71c088a18, aPath=0x00007eb71c0887b0) at pathsettings.cxx:660:5
frame #12: 0x00007eb69d6ac994 liblo-native-code.so`(anonymous namespace)::PathSettings::impl_setPathValue(this=0x00007eb8ebf31d90, g=0x00007eb71c088a18, nID=64, aVal=0x00007eb71c088940) at pathsettings.cxx:1231:5
frame #13: 0x00007eb69d6a259b liblo-native-code.so`(anonymous namespace)::PathSettings::setFastPropertyValue_NoBroadcast(this=0x00007eb8ebf31d90, g=0x00007eb71c088a18, nHandle=64, aValue=0x00007eb71c088940) at pathsettings.cxx:1326:5
frame #14: 0x00007eb69c26e5e6 liblo-native-code.so`comphelper::OPropertySetHelper::setFastPropertyValueImpl(this=0x00007eb8ebf31de8, rGuard=0x00007eb71c088a18, nHandle=64, rValue=0x00007eb71c088ae8) at propshlp.cxx:430:9
frame #15: 0x00007eb69c26e1ec liblo-native-code.so`comphelper::OPropertySetHelper::setFastPropertyValue(this=0x00007eb8ebf31de8, nHandle=64, rValue=0x00007eb71c088ae8) at propshlp.cxx:392:5
frame #16: 0x00007eb6a4179629 liblo-native-code.so`SvtPathOptions_Impl::SetPath(this=0x00007eb8ebf308a8, ePath=Temp, rNewPath=0x00007eb71c089268) at pathoptions.cxx:273:26
frame #17: 0x00007eb6a417b872 liblo-native-code.so`SvtPathOptions_Impl::SetTempPath(this=0x00007eb8ebf308a8, rPath=0x00007eb71c089268) at pathoptions.cxx:118:64
frame #18: 0x00007eb6a417b849 liblo-native-code.so`SvtPathOptions::SetTempPath(this=0x00007eb71c089270, rPath=0x00007eb71c089268) at pathoptions.cxx:590:12
frame #19: 0x00007eb6a625d582 liblo-native-code.so`lo_initialize(pThis=0x00007eb77bf1e000, pAppPath="/data/user/0/org.libreoffice/program", pUserProfileUrl=0x0000000000000000) at init.cxx:8520:22
frame #20: 0x00007eb6a625bb00 liblo-native-code.so`libreofficekit_hook_2(install_path="/data/user/0/org.libreoffice/program", user_profile_url=0x0000000000000000) at init.cxx:8627:14
frame #21: 0x00007eb6a625e329 liblo-native-code.so`libreofficekit_hook(install_path="/data/user/0/org.libreoffice/program") at init.cxx:8638:12
frame #22: 0x00007eb6a622e3fc liblo-native-code.so`Java_org_libreoffice_kit_LibreOfficeKit_initializeNative(env=0x00007eb76bef00f0, clazz=0x00007eb64017e380, dataDir=0x00007eb71c089968, cacheDir=0x00007eb71c08996c, apkFile=0x00007eb71c089970, assetManager=0x00007eb71c089974) at libreofficekit-jni.c:177:10
frame #23: 0x00007eb728e2c8cc libart.so`art_quick_generic_jni_trampoline - 18446604748579485491
frame #24: 0x00007eb728e121f7 libart.so`art_quick_invoke_static_stub - 18446604748579593736

Change-Id: Idf5f57bc3e8058a22559a37d84470a8b09e5d151
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187859
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-07-14 18:14:25 +02:00
Caolán McNamara b80cd12449 const up some more pieces
Change-Id: Ib85b8b4b3a2d00e7ef0ecb354fba0b862d60abdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187749
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-07-12 01:16:21 +02:00
Mike Kaganski 5cd1a72743 LOK: Don't enable paste unconditionally
The special case for .uno:Paste*, even if still needed (?), is for
system clipboard deficiency, which is not relevant for LOK.

Change-Id: I85a78ad6ce6be7413c405e3dfa7a42589d4eafaa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187614
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-07-11 08:36:49 +02:00
Noel Grandin 9d1e76f7da convert PathSettings to comphelper::WeakComponentImplHelper
and make the locking more principled, fixing a TSAN reported mutex ordering issue

Change-Id: If99d4cb3d1ec5a730f473ea3748c196fc6d65694
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187233
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-07-01 16:28:30 +02:00
Noel Grandin 03caa7db14 tdf#167073 Extension MRI does not start
revert
    commit 39f2c62847
    simplify TaskCreatorService
and
    commit 96b6d13c9a.
    [API CHANGE] no need for TaskCreatorService to be exposed via UNO

I missed that this service is in use.

Change-Id: I97b01668f7ba313335f9fbd8cf0e398dfc1b5ca0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186643
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-18 15:26:32 +02:00
Noel Grandin 30fb4d7809 use more concrete UNO
Change-Id: Ie2717859365a1f7c4830fe46094f64016c31a6a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186496
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-06-14 20:23:22 +02:00
Noel Grandin 39f2c62847 simplify TaskCreatorService
now that it is no longer an UNO service, we can simplify it,
and returning a more explicit type.

Change-Id: Ibd0f56e04ac26f09b57dc295febcf26202f16a2a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186495
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-06-14 19:34:10 +02:00
Noel Grandin 96b6d13c9a [API CHANGE] no need for TaskCreatorService to be exposed via UNO
This is a purely internal usage thing.

Change-Id: I8d13d21c791bc88a2fc288fb97f7877eecab3e73
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186494
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-14 19:34:01 +02:00
Noel Grandin 536b947123 use more concrete UNO
Change-Id: Ib306444628f145ee35d0a019e8589c374fe2016a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186493
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-14 15:11:43 +02:00
Noel Grandin 7b9bce25a6 use more concrete UNO
Change-Id: Ib3cded8314cecf837579af234d47e8377cb942a1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186492
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-14 14:45:18 +02:00
Mike Kaganski e931c4e939 tdf#166996: handle menu commands asynchronously
Instead of doing that command by command, this change tries to do it
globally, posting user event with the command data; it will run when
event loop gets to it; the menu gets closed by that time.

Change-Id: Ifdea666be8557a576dd6cd934898343631a3a95e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186470
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-06-14 08:41:13 +02:00
Andreas Heinisch 08142e65f7 tdf#166764 - Show list of recent documents in Base subdialogs
Change-Id: I6ec809a739e07053872d1a4050bbcfea4b142e53
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186004
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2025-05-30 10:44:51 +02:00
David Hashe 79e63a2d07 tdf#60700 stop creating empty Configurations2/accelerator in ODFs
This change stops the creation of empty Configurations2/accelerator
dirs on new documents that do not have anything that needs to be stored
there. Previously, LibreOffice would always create this directory.

Whenever an XStorage is opened readwrite on a path, it will immediately
create that path. LibreOffice was opening all of these paths readwrite.
So, the solution is to always open these paths as readonly, and then
when we need to write data to them we close them and re-open them as
readwrite. If we never need to write data to a path, then it won't be
created.

This patch specifically stops the creation of subdirectories that were
being created by DocumentAcceleratorConfiguration.

Other patches in the relation chain handle paths created by
UIConfigurationManager and ImageManager.

Test coverage was added in b9054fed37

$ CPPUNIT_TEST_NAME="Test testTdf60700_accelerators" make CppunitTest_sw_odfexport

As far as I can tell, there is no way to actually attach custom
accelerators to a document at this time using the UI, so I did not do
any manual testing for this change.

(The closest thing to storing accelerators in the document is the work
from 65d2c9ca4d, but the macros don't
yet continue to work when you save the document in ODF)

With this change, a fresh document looks like this:

$ unzip -l Untitled\ 1.odt
Archive:  Untitled 1.odt
  Length      Date    Time    Name
---------  ---------- -----   ----
       39  2025-05-17 15:57   mimetype
        0  2025-05-17 15:57   Configurations2/
    12645  2025-05-17 15:57   styles.xml
      899  2025-05-17 15:57   manifest.rdf
     3563  2025-05-17 15:57   content.xml
      866  2025-05-17 15:57   meta.xml
    14745  2025-05-17 15:57   settings.xml
      318  2025-05-17 15:57   Thumbnails/thumbnail.png
     1061  2025-05-17 15:57   META-INF/manifest.xml
---------                     -------
    34136                     9 files

Change-Id: I5e032d55e94114333ea7778afcc3df0fefe0a30f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185451
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-05-27 13:51:44 +02:00
David Hashe 0e5981487a tdf#60700 stop creating empty Configurations2/images in ODFs
This change stops the creation of empty Configurations2/images dirs
on new documents that do not have anything that needs to be stored
there. Previously, LibreOffice would always create this directory.

Whenever an XStorage is opened readwrite on a path, it will immediately
create that path. LibreOffice was opening all of these paths readwrite.
So, the solution is to always open these paths as readonly, and then
when we need to write data to them we close them and re-open them as
readwrite. If we never need to write data to a path, then it won't be
created.

This patch specifically stops the creation of subdirectories that were
being created by ImageManager.

Other patches in the relation chain handle paths created by
UIConfigurationManager and DocumentAcceleratorConfiguration.

Test coverage was added in b9054fed37

$ CPPUNIT_TEST_NAME="Test testTdf60700_images" make CppunitTest_sw_odfexport

I also manually tested with the following procedure:

1. Open a new document in writer.
2. Tools > Customize > Toolbars.
3. Set scope to "Untitled 1".
4. Add a new toolbar "New Toolbar 1".
5. Add any command from Available Commands to the new toolbar.
6. Add any icon
7. OK.
8. Visually verify that the toolbar is present with the custom icon.
9. Save the document.
10. Verify that the custom icon is saved correctly inside the file.

$ unzip -l Untitled\ 1.odt

Archive:  Untitled 1.odt
  Length      Date    Time    Name
---------  ---------- -----   ----
       39  2025-05-17 16:01   mimetype
      353  2025-05-17 16:01   Configurations2/toolbar/custom_toolbar_cba48a4e.xml
      444  2025-05-17 16:01   Configurations2/images/lc_imagelist.xml
      469  2025-05-17 16:01   Configurations2/images/Bitmaps/lc_userimages.png
        0  2025-05-17 16:01   Configurations2/accelerator/
    13358  2025-05-17 16:01   styles.xml
      899  2025-05-17 16:01   manifest.rdf
     3771  2025-05-17 16:01   content.xml
     1011  2025-05-17 16:01   meta.xml
    14746  2025-05-17 16:01   settings.xml
      318  2025-05-17 16:01   Thumbnails/thumbnail.png
     1406  2025-05-17 16:01   META-INF/manifest.xml
---------                     -------
    36814                     12 files

10. Close and reopen the document.
11. Visually verify that the toolbar with the custom icon is present.

Change-Id: I48b2b8f540f7640ae25da6f27065e7b07f955c7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185450
Tested-by: Jenkins
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-05-27 13:49:27 +02:00
Mike Kaganski 374dd9fbd6 Unify on VclPtr::reset
We used to have two duplicating sets: smart pointer-like VclPtr::reset,
and Reference-style VclPtr::set / VclPtr::clear. There is no need in
this duplication. Further, in ScopedVclPtr, reset is hidden / removed
to avoid skipping disposeAndClear; but the twin functions are kept
accessible, possibly as an overlook.

This change drops Reference-style VclPtr::set / VclPtr::clear, and
unifies on VclPtr::reset, which looks more consistent with the class
nature (it is closer to shared_ptr, than to uno::Reference). Doing
that uncovered one place, where a ScopedVclPtr was used incorrectly:
clear() was used for NotebookbarPopup::m_pParent in NotebookbarPopup
dtor. I assume then, that the correct class needed here is VclPtr.

Change-Id: I0746075c58d793fabdce1bc357afea8ee455cd8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185553
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-05-25 11:23:18 +02:00
David Hashe 5c74b979ea tdf#60700 stop creating empty UIConfiguration subdirs in ODFs
This change stops the creation of various subdirectories of the
Configurations2/ directory on new documents that do not have anything
that needs to be stored in those subdirectories. Previously, LibreOffice
would always create a bunch of empty subdirectories that were not
necessary.

Whenever an XStorage is opened readwrite on a path, it will immediately
create that path. LibreOffice was opening all of these paths readwrite.
So, the solution is to always open these paths as readonly, and then
when we need to write data to them we close them and re-open them as
readwrite. If we never need to write data to a path, then it won't be
created.

This patch specifically stops the creation of subdirectories that were
being created directly by UIConfigurationManager. There are other paths
that were being created by ImageManager and
DocumentAcceleratorConfiguration, and those paths will be handled by
other patches.

Test coverage was added in aaed16eef8

$ CPPUNIT_TEST_NAME="Test testTdf69500" make CppunitTest_sw_odfexport

I also manually tested with the following procedure:

1. Open a new document in writer.
2. Tools > Customize > Toolbars.
3. Set scope to "Untitled 1".
4. Add a new toolbar "New Toolbar 1".
5. Add any command from Available Commands to the new toolbar.
6. OK.
7. Visually verify that the toolbar is present.
8. Save the document.
9. Verify that the toolbar is saved correctly inside the file.

$ unzip -l Untitled\ 1.odt
Archive:  Untitled 1.odt
  Length      Date    Time    Name
---------  ---------- -----   ----
       39  2025-04-25 23:35   mimetype
      353  2025-04-25 23:35   Configurations2/toolbar/custom_toolbar_2a773c3.xml
        0  2025-04-25 23:35   Configurations2/accelerator/
        0  2025-04-25 23:35   Configurations2/images/Bitmaps/
    12645  2025-04-25 23:35   styles.xml
      899  2025-04-25 23:35   manifest.rdf
     3563  2025-04-25 23:35   content.xml
     1012  2025-04-25 23:35   meta.xml
    14748  2025-04-25 23:35   settings.xml
      318  2025-04-25 23:35   Thumbnails/thumbnail.png
     1180  2025-04-25 23:35   META-INF/manifest.xml
---------                     -------
    34757                     11 files

10. Close and reopen the document.
11. Visually verify that the toolbar is present.

Change-Id: If0a93675204576b3b6f7fe9113cada398e4da2ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184655
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2025-05-21 09:20:33 +02:00
Andreas Heinisch c47278ba06 tdf#164794 - Show complete list of recent documents in the macro window
Change-Id: I7da0d13f4680bee0df50c57264e0263d0ab5c923
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185580
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2025-05-21 08:02:39 +02:00
Noel Grandin 68ba1c02ac no need to subclass std::unordered_map here
Change-Id: Ib7be7dac8f394a35eed7212c6fbad3cefa39eaa0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185399
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-05-16 13:38:01 +02:00
Ilmari Lauhakangas 2f2f00c07c framework: improve language in comments for better readability
Change-Id: I7a1801f1848869a84ebe3569159175b2ac767567
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183249
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2025-04-30 21:18:48 +02:00
Patrick Luby 159be5c951 Related: tdf#161623 don't set the menubar to null on macOS
When a window enters LibreOffice's internal full screen mode,
the vcl code will hide the macOS menubar. However, if the
window is also in native full screen mode, macOS will force
the menubar to be visible.

While the vcl code already partially handles this case by
disabling all menu items when in LibreOffice's internal full
screen mode, the problem is that any submenus that were not
displayed before setting the menubar to null will show all
menu items with no title.

A simple way to reproduce this bug is to open a new Writer
or Calc document and do the following:
- Switch the window to LibreOffice's internal full screen
  mode by manually selecting the View > Full Screen menu
  item (the bug does not occur if its key shortcut is
  pressed)
- Switch the window to native full screen mode
- Click on the menubar and note that many of the submenus
  are displayed with menu items, but none of the menu items
  have a title

So, we need to keep the menubar visible and rely on the vcl
code to disable all menu items.

Change-Id: I97fc63a8cd028c029a71899090185bc09d4aa492
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183508
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
Tested-by: Jenkins
2025-03-30 17:05:52 +02:00
Mike Kaganski 0166610b95 Use osl_getEnvironment instead of getenv
Avoids conversion to OUString; and is Unicode-safe on Windows.

Change-Id: If4f76f867f988d43ec4dae0a8e09f1390fee42e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183503
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-03-30 13:49:46 +02:00