summaryrefslogtreecommitdiff
path: root/sfx2/source
AgeCommit message (Collapse)Author
2023-11-20Revert "WASM: headless conversion without QT5 and with unique html"feature/wasmThorsten Behrens
Breaks due to double use of LD_FLAGS (and duplicated embind symbols). Lets back this out for the moment, needs some gbuild debonging. This reverts commit a09b1b9e68c2285289fbf36c7f5fb6a1677e8c39. Change-Id: Idb1348a0b4a55894bb12a2c101d9460bb5e40222
2023-11-19WASM: headless conversion without QT5 and with unique htmlBalazs Varga
Building and using soffice.html generated by emscripten and modified for headless conversion. Change-Id: Ic3800bc0632d241dce382f244f355f56f79ffec4
2023-11-19Revert "WASM pdf conversion through emscripten and qt5"Thorsten Behrens
This reverts commit f814cc609f37d94075c32bddea97d7ba5b4fea32.
2023-11-19WASM pdf conversion through emscripten and qt5Balazs Varga
Exporting files to pdf and downloading it from the emscripten virtual memory file system to the local file system with qt5 and emscripten. What is working: 1. Uploading a file from the local file system to the emscripten memory with 'Open file dialoge' and then opening it. In the same time export it to pdf. 2. Load an uploaded document with the LibreOffice Kit command: - lodoc = _libreofficekit_hook(0) - _doc_postUnoCommand(lodoc, allocateUTF8(".uno:Open"), allocateUTF8( "{ \"URL\" : { \"type\":\"string\", \"value\":\"file:///android/default-document/{UPLOADED_FILE_NAME}\" }}"), 0) 3. Export the loaded document to pdf with the ExportDirectlyToPDF UI or with the LibreOffice Kit command: - lodoc = _libreofficekit_hook(0) - _doc_postUnoCommand(lodoc, allocateUTF8(".uno:ExportDirectToPDF"), allocateUTF8(""), 0) 4. alternatively, you can plant a file in the virtual filesystem prior to LibreOffice bootstrap, and export headless, via soffice cmdline args Change-Id: I8f03b0a057155afaa5f1ca0e3e451bb362a99769
2023-11-19WIP: async popup menusJan-Marek Glogowski
A first patch to get some feedback. Asnyc LO popup menus are still buggy, as I'm not sure where to call the PopupMenu::Finish for them. Also the XDialogClosedListener is currently just for convenience and might want some separate notifier. Fun fact, that ImplExecute / ImplPopup is called for submenu, but then doesn't execute. And generally the naming of some variables is IMHO wrong; I might also prefix Menu members with "m_" for easier readability. Change-Id: Id8b413aa6b4699201e58db0113649c6b224d33b6
2023-11-19c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 10)Julien Nabet
Change-Id: I7681a3ed5af058cf4356509d54a2195e6d4833e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159641 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-16tdf#146386 deprecate, remove usage of Inet::Settings::ooInetFTPProxyNameMichael Stahl
* officecfg: deprecate Inet::Settings::ooInetFTPProxyName/Port * ucbhelper: stop handling these settings * sfx2: remove SID_INET_FTP_PROXY_NAME and SID_INET_FTP_PROXY_PORT and usage from SfxApplication::GetOptions() * shell: remove proxy config code from backends * stoc: the JavaVM would have its "ftp.proxyHost" properties set based on officecfg values; remove that * sysui,vcl: remove protocol from KDE desktop files and file picker Change-Id: Iba02676cf6e519e2fa60ba925209436d38e75f49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159500 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-11-16reorg calc hyperlink check to reuse elsewhereCaolán McNamara
Change-Id: I20ae3c5df15502c3a0a366fb4a2924c06ffac3d0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159487 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-15tdf#157518: enforce password policy on sfx2/ui/password.uiSarper Akdemir
Change-Id: I115b5b05ed82f2f900bcd70ec4f52c7f749544e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159443 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2023-11-15tdf#157518: add password strength bar to sfx2/ui/password.uiSarper Akdemir
Change-Id: I181b71c6072a61651b33835f76e8deebb5f8d58a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159371 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2023-11-14Resolves tdf#158084 - Start Center hover colorHeiko Tietze
Selected colors removed since hovering leads to selection (or execution) and does not need a special color Transparency for reccent documents and templates in start center increased to make the difference to selected more clear Change-Id: Iab52150cd5a93e2f6ff716921b2aa7d093018b3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159407 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2023-11-13Resolves tdf#158084 - Use system colors in start centerHeiko Tietze
StartCenterThumbnailsHighlightColor and StartCenterThumbnailsHighlightTextColor removed in favor of StyleSettings.GetHighlightColor and .GetActiveColor Change-Id: I7005b17f6c48525c791f23ea99b7b68e7a67531b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159286 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2023-11-12Get the current view with SfxViewFrame::Current().Gökay Şatır
It was getting a null ptr for some reason. Signed-off-by: Gökay Şatır <gokaysatir@collabora.com> Change-Id: Ib3e285dc86cd3918b631b6993e9afb221994bfab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158727 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 6c7fd1dc50cbc3f8e61c741367223a4b4aefc98b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159337 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-12lok: a11y: corelog: removing LOK_INFO in attachRecursive (3)Marco Cecchetti
Change-Id: Ic2967d9fa24674ed61ab7a251bd2a584a74e4cea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158959 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com> (cherry picked from commit 4e6848628cbff418896b7653eadac80c57ceaf25) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159336 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-12lok: a11y: corelog: re-introducing LOK_INFO in attachRecursiveMarco Cecchetti
Change-Id: I5866e9990a4758fad4b1c2a5e26072c31658db89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158955 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com> (cherry picked from commit fd08e16e96cfd2d84b9eb4200f35fa6b4b4e3bd5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159335 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-12lok: a11y: corelog: re-introducing LOK_WARN in viewshMarco Cecchetti
Change-Id: Ia76e079da1f532b0a4ce9ba24de1b058deef5a12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158953 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com> (cherry picked from commit 6a9c4306c9c8173ff99184199b18f24f05b35b51) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159334 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-12lok: a11y: corelog: enable log in afterCallbackRegisteredMarco Cecchetti
Change-Id: I4706fc04ee651e46fb12fe0fa18dbf2762cf95aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158949 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com> (cherry picked from commit 0e2df8c3f229e8807c7a6713ca3ea519411537bd) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159333 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-12lok: a11y: corelog: removing log from LOKDocumentFocusListenerMarco Cecchetti
Change-Id: I0194cd4548dbb44f9efce4c53c790c3eec938524 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158940 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com> (cherry picked from commit e6caece707a7d6f3a3e397e6213be9af6054f148) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159332 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-11lok: a11y: implemented support for notifying core log to clientMarco Cecchetti
In this way core log can be printed to the browser console. This may help in understanding if some core event occurs earlier or later wrt a client event. Change-Id: I720ef9b149e98ddbc252aa069649019e79ef6cb8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158780 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com> (cherry picked from commit d8dc138be7e69750d1a346b3b49cecc1201e8d46) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159331 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-10ofz#64065 Abrt on configCaolán McNamara
Change-Id: Idb76d58ab6036c9f38b0b76a3a240dcfb07d52a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159310 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-09Fix USE_CONFIG_APPROVE_CONFIRMATION and USE_CONFIG_REJECT_CONFIRMATIONMike Kaganski
They still showed UI in case of signed macros. Two decisions were made, to improve security of USE_CONFIG_APPROVE_CONFIRMATION: 1. In case of High macro security mode, valid but untrusted certificate will be automatically rejected (because it is not safe to automatically add trusted certificates) - so in this mode, USE_CONFIG_APPROVE_CONFIRMATION is the same as USE_CONFIG_REJECT_CONFIRMATION; 2. In case of Medium macro security mode, valid but untrusted certificate will not automatically allow macros execution, but will proceed to the following checks - which on Windows will try to check the source's Security Zone, and may disallow macros based on that. Only after Security Zone check the macros will be automatically allowed. Change-Id: I1a9c92c6b940b689599c5d106798ecfc691dad46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159214 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-09default to ignoring libreoffice special-purpose protocols in calc hyperlinkCaolán McNamara
Change-Id: Ib9f62be3acc05f24ca234dec0fec21e24579e9de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158911 Tested-by: Jenkins Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-09loplugin:fieldcast in ExoticFileLoadExceptionNoel Grandin
Change-Id: Ia4fac9b3313adc22e0f371cbff6828add474d097 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159174 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-09lok: fix crash on DDE Link modifySzymon Kłos
1. Open document with editable DDE Link section in 2 views 2. View A selects content containing section and copies that 3. View A is closed 4. View B tries to modify section Result: crash Avoid destroying SwTransferDdeLink in SwTransferable::~SwTransferable() what happens while calling RemoveDDELinkFormat in SwTransferDdeLink::DataChanged by keeping reference to it while iterating in SvLinkSource::NotifyDataChanged() Change-Id: Iba53a4c139f9d508d2f64bcc94b479761b84bf2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159040 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-09lok: notebookbar: fix unit-copy-paste in onlineSzymon Kłos
we can't remove hack in SfxDispatcher::Update_Impl yet because this made unit-copy-paste test in online broken reverts part of: commit 1a6d16cb14342f9a66f99960e96027af6e5369ef lok: notebookbar: query SID_NOTEBOOKBAR only when requested to switch UI Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I8cd801bbc912f2ab3f710f5c7133445f07c4e5de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159039 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-11-09Simplify a bitMike Kaganski
Additionally, get rid of a variable that was for system path, but used "URL" in its name :-) Change-Id: I77db0ae42677e2fef1431d45b1736d2e54ff26d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159156 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-09Do not throw on IZoneIdentifier COM errorMike Kaganski
Not being able to obtain Security Zone info from OS is not a fatal error here; just handle it accordingly. Change-Id: Ifb19c88f2c08e99c313aecc54044252bac50f88e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159155 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-09Only create xSigner when necessaryMike Kaganski
Change-Id: I4136c2ced3be445b6e763aa20856fec3792cdcb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159154 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-09tdf#158090: Do not auto-reject SignatureState::BROKEN in ALWAYS_EXECUTE caseMike Kaganski
It doesn't make sense to silently reject it here, but e.g., allow the confirmation dialog for SignatureState::INVALID case; also, it was only possible to get a silent execution of BROKEN-signature macros (in Low security mode) vs. silent reject (in all higher modes) - which was not good security-wise. Now it will result in the usual confirmation dialog in Medium security mode. Both BROKEN and INVALID signature states are made sure to not allow automatically depending on the Windows Security Zone. Change-Id: I41b0fc96b6bd00e960ae612e79fa1f0f1e06a069 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159153 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-09Simplify a bitMike Kaganski
Change-Id: Ibf5a0800d7b9410a6191e3be7deef1edd4725640 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159152 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-09Early shortcut for cases requiring both macro and document signaturesMike Kaganski
This avoids a possible problem in High security mode, introduced in commit 1dc71daf7fa7204a98c75dac680af664ab9c8edb (Improve macro checks, 2021-01-28), where a valid but untrusted macro certificate initiates a UI asking to always allow this certificate; but no matter what user chose, macros will be disallowed when the document itself is unsigned. Now it will check the document signature state early. Change-Id: If2255be5da19f3de0090154f0b891ed9496e7bc6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159105 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-09loplugin:fieldcast in SfxObjectShell_ImplNoel Grandin
Change-Id: Iae953c39abd66bf1a484590d322974382f25d278 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159173 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-08Simplify a bitMike Kaganski
Change-Id: I05ef5346f5aab25b208aa058658353cf71e68e87 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159103 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-08FROM_LIST_NO_WARN was handled aboveMike Kaganski
Change-Id: I88da25f5f2819edd78fb95573c619cd8e3187469 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159102 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-08tdf#158090: Limit signed document requirement to High security levelMike Kaganski
Commit 1dc71daf7fa7204a98c75dac680af664ab9c8edb (Improve macro checks, 2021-01-28) introduced a new requirement, that trusted macro signature must be accompanied by valid document signature when the document has events calling macros, otherwise macros are not allowed. But this breaks multiple workflows, where security level is set to limit users' ability to run unsigned macros, where documents aren't signed. As the first step, limit the security hardening introduced in the said commit to High security level; in Medium security level, restore the previous behavior. The plan is to fix more inconsistencies later, and then introduce a new separate configuration to require document signature to allow trusted macros (enabled by default), so that the combination of its default value and the High default security level keep the hardened default security implemented currently, while allowing users to opt to the previous documented behavior. Change-Id: I71ff0e531f3a42fbee7828982e4fd39f0e9d6ea3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159101 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-11-08Add comments for the magic constantsMike Kaganski
Change-Id: Ic35758357c18c9d172532819a3e8968fd66b26ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159100 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-08Set document's current macro exec mode consistently in adjustMacroModeMike Kaganski
Change-Id: Id69d4d043d824b1a9e558bfc9395c4ff64da7c38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159099 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-07ITEM: Get away from classic 'poolable' Item flagArmin Le Grand (allotropia)
To understand this, some look back in history will be needed to see why it is as it is today. In some (reworked) comments 'poolable' is described as flag to hold Items in the ItemPool, also always having only one incarnation of each possible Item. This is not the original intention, but a side-effect. The reason is what the binary format in the office did: To save a document, the Objects & the Pool were saved, *not* individual Items *together* with the objects. The Pool was completely (binary) saved (and loaded) in one run. Temporary IDs were used to represent at the objects in file which Items were referenced. This *required* to have only one incarnation per item to have a minimal binary file size, thus this high effort was put into this. At doc load, the pool was loaded, all Items were set to RefCount 5000, the references from the objects were restored and then for each Item the RefCount was lowered by 5000 again and - if being zero - deleted. Items for UI were marked 'non-poolable' to *not* safe them with the document, so poolable was a flag to decide if that Info/Item was to be saved with the document - or more direct: if it is Model Data. Items are small, so if we prefer runtime it is okay to no longer being strict with this, anyways does not happen often and has only marginal memory effects - compared to runtime effects/savings. Other problems which this caused: One example is that objects in the UNDO stack were still in the pool, so e.g. deleted pictures were saved with the document despite no longer being used (!). That is the reason we have an UndoItemPool and a method MigrateItemPool to move stuff to that Pool when objects go to the UNDO stack - all of this is also no longer needed. Cleaning this up means to ideally have all items in the SfxItemSet, no longer at the Pool. The Pool should be reduced to a 'Default-Item- Holder' and a 'Slot-to-whichId-mapper'. This needs thorough cleanups/removals, but will be worth it because that massive simplification(s) will increase safety an runtime and make migrating to the goal of completely type-based ItemSet stuff easier for the future. Hopefully only view code in the office working with items will have to be changed for this. In this 1st step I already found that some 'compromizes' will be needed: - There are still Items that have to be at the pool to make the Surrogate-stuff working. This gives back all Items in a Pool of a type and is used in ca. 80 cases. Each one looks at these Items *without* context (e.g. a SfxItemSet at an Object would be a context), so if e.g. a dialog is open that temporarily uses Items of that type you would also get these - without knowing about it... To make that work there is still a mechanism to have Items at the Pool, but now just *registering* (and un-reg) them without any sort/search/ remove needs. Also only for Items that need that, so I evaluated the GetItemSurrogates calls and added some asserts when GetItemSurrogates tries to access an unregistered item type which needs to be added. - Another caveat is that there are about 250 places that directly put Items to the Pool (not all remove these, that is done at pool deletion, so some kind of silent 'garbage-collection' is in place). To have an overview I renamed the accessing methods to separate them from the same functionality at the SfxItemSet, which had the same names. An implementation does still add these directly to the pool, there is no way to cleanup those usages for now. In principle all these should be changed to hold the data at an SfxItemSet. I am still hunting problems. But you can build the office, all apps work (including chart) and you can do speed comparisons already. There are test throwing errors, so I hunt these now. It is hard to give an estimation about how much more changes/corrections will be needed. Completed adaptions to new registered Items at Pool, that reduces the failing tests. Still many that I need to hunt. Added stuff to work around that 'compromize' in ScDocumentPool: It overloads ::PutImpl of the pool to implement special handling for a single Item in SC, the ScPatternAttr. In former code that method was used from SfxItemSet and ::PutImpl at the pool directly, so it was only used in one place. I am not sure if it was used from the SfxItemSet functionality, but better offer it for now. To not waste too much runtime the callbacks depend on the boolean 'NewItemCallback' at the SfxPoolItem, it gets set for that single Item in SC and only then the callbacks trigger. I hope to get rid of those again, e.g. newItem_UseDirect is only needed since we have no 'real' StaticPoolDefaults currently - another thing that needs to be cleaned up in a next step. Since usages of impl(Create|Cleanup)ItemEntry and Direct(Put|Remove)ItemInPoolImpl got more and more similar I decided to unify that: move impl(Create|Cleanup)ItemEntry to tooling, make it globally available in svl and use it also directly for Direct(Put|Remove)ItemInPoolImpl. This slightly increases the failing tests again, but only since in Direct(Put|Remove)ItemInPoolImpl that fallback (e.g. tryToGetEqualItem) was used before, thus this is the same class of errors (SfxPoolItem ptr-compare) as the others which I will need to find anyways. Also fixed some missing stuff. Have now idenified and redirected all SfxPoolItem ptr-compares to be able to debug these - one cause for the remaining errors is probably that before with bPoolable those often were sufficient, but are no longer. Used the [loplugin:itemcompare] and a local clang build to do so, see https://gerrit.libreoffice.org/c/core/+/157172 Stabilized Direct(Put|Remove)ItemInPoolImpl forwards, added parameter to implCreateItemEntry to signal that it gets called from DirectPool stuff - currently needed. Hopefully when getting rid of that DirectPool stuff we can remove that again Added two more debug functionalities: - Added a SerialNumber to allow targeted debugging for deterministic cases - Added registering & listing of still-allocated SfxPoolItems at office shutdown Found PtrComp error in thints.cxx - POC, thanks to areSfxPoolItemPtrsEqual. Will hopefully help more with other tests Found some wrong asserts/warnings where I was too careful and not finding something/succeeding is OK, fixes some UnitTests for SC For SC I now just tried to replace all areSfxPoolItemPtrsEqual with the full-ptr-content compare SfxPoolItem::areSame. I also needed to experiment/adapt the newItem_Callback solution but got it working. Did that replacement now for SW too, found some places where the direct ptr compare is OK. Continued for the rest of occurrences, now all 160 places evaluated. Also done some cleanups. Massive cleanups of stuff no longer needed with this paradigm change. Also decided to keep tryToGetEqualItem/ITEM_CLASSIC_MODE for now. It is used for *one* Item (ScPatternAttr/ATTR_PATTERN) in SC that already needs many exceptions. Also useful for testing if errors come up on this change to test if it is related to this. Added forwarding of target Pool for ::Clone in SvxSetItem and SvxSetItem, simplified SfxStateCache::SetState_Impl and returned to simple ptr compares in SfxPoolItem::areSame to not do the test in areSfxPoolItemPtrsEqual. Debugged through UITest_calc_tests9 and found that in tdf133629 where BoxStyle is applied to fully selected empty calc the Item- reuse fallback has to be used not only for ATTR_PATTERN, see comment @implCreateItemEntry. Maybe more... Problem with test_tdf156611_insert_hyperlink_like_excel. Found that in ScEditShell::GetFirstURLFieldFromCell the correct SvxURLField is found and returned as ptr, but it's usage crashes. That is due to the SfxItemSet aEditSet used there gets destroyed at function return what again deletes the SvxFieldItem that is holding the SvxURLField that gets returned. This shows a more general problem: There is no 'SfxPoolItemHolder' that safely holds a single SfxPoolItem - like a SfxItemSet for a single Item (if Items would be shared_ptrs, that would be a safe return value). That will be needed in the future, but for now use another solution: Since I see no reason why EE_FEATURE_FIELD should not be shareable I wil change this for ow in the SfxItemInfo for EditCharAttribField. That way the Item returned will be shared (RefCnt > 1) and thus not be deleted. I changed the return value for GetURLField() and GetFirstURLFieldFromCell() in ScEditShell: At least for GetFirstURLFieldFromCell the return type/value was not safe: The SvxFieldItem accessed there and held in the local temporary SfxItemSet may be deleted with it, so return value can be corrupted/deleted. To avoid that, return a Clone of SvxFieldData as a unique_ptr. With all that UnitTest debugging and hunting and to get the paradigm change working to no longer rely on shared/pooled items I lost a little bit focus on speed, so I made an optimization round for the two central methods implCreateItemEntry/implCleanupItemEntry to get back to the speed improvements that I detected when starting this change. It was mainly lost due to that 'strange' chained pool stuff we have, so I added to detect the target pool (the one at which the WhichID is registered) directly and only once. Next thing to cleanup will/should be the pool and it's concept, all this is not needed and really costs runtime. Since implCreateItemEntry/implCleanupItemEntry are executed millions of times, each cycle counts here. Had an error in the last changes: pool::*_Impl methods use index instead of WhichID - most of them. Another bad trap, I really need to cleanup pool stuff next. Change-Id: I6295f332325b33268ec396ed46f8d0a1026e2d69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157559 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-11-07Pass XInteractionHandler to hasTrustedScriptingSignature instead of a boolMike Kaganski
This allows to use the same interaction handler there, as used in DocumentMacroMode::adjustMacroMode. hasTrustedScriptingSignature used to find its own interaction handler; and that would conflict with e.g. ODatabaseModelImpl::adjustMacroMode_AutoReject, which passes nullptr to adjustMacroMode, with intention to not show any UI; but with signed macros (see tdf#97694), the UI would still appear. Change-Id: Ia209f96bef67dccfe1da23c4d172ac47497f8eb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159070 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-07Add a description commentMike Kaganski
Basically describing commit 71c6f438cecc3ce5e8060efe1df840652885701c (tdf#129311 don't allow temporary trusted certs, 2019-12-17). Change-Id: I4d947014b09412638560e9249f242cf6ff222cc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159069 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-07make this a more straight forward yes/no questionCaolán McNamara
instead of an ok/cancel, and default to no Change-Id: If86ca1b29d0dd91018fdc8edd6482a6d9ef5c0e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159068 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-07Rename variable: The UI is not only to "add" author (i.e., modify config)Mike Kaganski
It is mainly to allow macro execution for this unknown certificate once. The UI will even disable the option to add, when the config is read-only. Change-Id: Iebc526c23572dc7c0e94fac79fafc8b402d451c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159051 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-07getCurrentMacroExecMode returns sal_Int16Mike Kaganski
And that conforms the IDL definition of css::document::MacroExecMode Change-Id: I78ebfa94eb50552e7f4ecf3d64a0ac0556c56867 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159029 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-07Simplify a bitMike Kaganski
XDocumentDigitalSignatures::isLocationTrusted would remove segments itself, as needed; this change not only simplifies this code, but also potentially allows to define not only trusted directories, but also individuals trusted files (if the UI would be adjusted). Change-Id: I0b0d60946d84a52479fcce5ce49d368cf53283fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159009 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-06lok: notebookbar: reduce calls to SfxNotebookBar::IsActiveSzymon Kłos
- in LOK case toolbars in core doesn't make any difference - SfxNotebookBar::IsActive which reads config makes doc_setView slower, avoid it in LOK case then - it was used for hiding contextual toolbars - introduced in commit 9bc1ffa2153d2474b023e0860d3c9c68ee18727b tdf#125040 Make single mode toolbar context aware Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I63de48faf2f7e7f30f8b509455061ac20a788f8a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158939 Tested-by: Jenkins
2023-11-06lok: notebookbar: query SID_NOTEBOOKBAR only when requested to switch UISzymon Kłos
commit 5bd2931b57a6cb4ac1f39d7ddae874ac693cfab0 tdf#102063 Notebookbar wont appear on launch introduced some Query hack to SfxDispatcher::Update_Impl what causes many updates on lots of different actions. It breaks multi-view state of notebookbar in LOK case, so don't do that. It should be reviewed for regular case too. Change-Id: I8f26bddc6cff991c56a1172893d83b90fb225acd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158937 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-11-06lok: notebookbar: handle multiple sessionsSzymon Kłos
This fixes regression from commit db5a78c8ab1eae30e442151f07b0dc4dcd017550 lok: notebookbar: don't recreate toolbars too often When we had 2 sessions with notebookbar and one of them switched to compact mode - other session's notebookbar didn't work. Before previous change we recreated notebookbar and its welded wrapper on every StateMethod call for LOK case. So when it become destroyed we made it working again. But now we need to introduce better management and not rely on single instence we get from SystemWindow. Also it's bad idea to rely 100% on SfxNotebookBar::IsActive in LOK case as when other view will turn notebookbar off, but QueryState will be trigerred in our session - we will think that it should be destroyed (it reads config state which is shared between views). So trust only "true" value (it happens after calling SID_TOOLBAR_MODE), but destroy notebookbar only after explicit call of SfxNotebookBar::CloseMethod. It seems to have good result when tested with multiple views in Online. Maybe we can track Notebookbar state per view later to make things simpler in LOK case. Change-Id: Ie739c6441ca05884b0ef20bff23751467706b562 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158936 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-11-03add some protocols that don't make sense as floating frame targetsCaolán McNamara
Change-Id: Id900a5eef248731d1184c1df501a2cf7a2de7eb9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158910 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-03lok: notebookbar: don't recreate toolbars too oftenSzymon Kłos
commit 004512d87ab70587d95a708116a5c2f4b870565c notebookbar: allow to create multiple instances for online Changed SfxNotebookBar::StateMethod so in LOK case it always enter to the code block which is meant to be used for creating or reloading notebookbar. Change that so we check if notebookbar was initialized for given view already. Change-Id: Icfa1e572769043509479b7b98d055120ac3d1f74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158872 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-11-03tdf#140314:Use hub.libreoffice.org URL with params in ExtensionsVenetia Furtado
Change-Id: Iccf76581de8dc44fe80aa818e9fb81c2cdf0967b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155571 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>