summaryrefslogtreecommitdiff
path: root/sc
AgeCommit message (Collapse)Author
2024-01-02cid#1545989 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545432 COPY_INSTEAD_OF_MOVE cid#1545622 COPY_INSTEAD_OF_MOVE Change-Id: Ib6858cf284bf5c3e185830fcd51361d1db3fc747 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161527 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-01Replace "size() == 0 with empty()" (sc/part2)Julien Nabet
Change-Id: I0c87b39bd89825eba5f3c90477ba41eb7e5178ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161517 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-12-31cid#1546464 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546346 COPY_INSTEAD_OF_MOVE cid#1546342 COPY_INSTEAD_OF_MOVE cid#1546320 COPY_INSTEAD_OF_MOVE cid#1546305 COPY_INSTEAD_OF_MOVE cid#1546241 COPY_INSTEAD_OF_MOVE cid#1546162 COPY_INSTEAD_OF_MOVE cid#1546118 COPY_INSTEAD_OF_MOVE cid#1546048 COPY_INSTEAD_OF_MOVE cid#1545989 COPY_INSTEAD_OF_MOVE cid#1545936 COPY_INSTEAD_OF_MOVE Change-Id: I63bc43378b36f7c49e66231152138ad7038971e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161507 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-31cid#1559949 silence Uncaught exceptionCaolán McNamara
and cid#1559958 silence Uncaught exception Change-Id: Ic7093b3c9eef55157b7bca481841db0ef4b8c8fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161506 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-30cid#1545421 COPY_INSTEAD_OF_MOVECaolán McNamara
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-30tdf#158254: don't shrink to data area when applying to entire sheetMike Kaganski
Commit ac859a4c6a7fce4efee9cdd45821a0c9e40e9e9a (tdf#147842 shrink selection to data area when applying to entire sheet, 2022-10-18) tried to workaround the problem of applying to the massive amount of columns. This caused regressions, where it was impossible to pre- format entire rows. This change removes the call to ShrinkToDataArea from ScViewFunc::ApplySelectionPattern (it is used elsewhere, so the commit is not reverted completely). Instead, it addresses the bottleneck in the bugdoc in tdf#147842, which is ScAttrArray::RemoveCellCharAttribs: since the document had hidden rows, selecting all made multi-selection split into separate stripes, and the fulction was called repeatedly, and itself called ScEditUtil::RemoveCharAttribs for every cell in ~ 1000 columns * 1000000 rows, even though most of the cells in that range were empty - so no char attribs could exist. Asking for the last used row (the same as done in ShrinkToDataArea) makes the operation fast again, and keeps assigning the format to the entire range. Change-Id: I9635ea1a392b3a1e048c0888f4786a3628675fc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161442 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-12-30tdf#158254: generalize and use algorithm to apply with allocationMike Kaganski
Commit 17bcf1073bf21088b9845e36fe735622d8f88fd7 (introduce ScColumnData for ScColumn/ScTable code sharing, 2022-05-05) implemented an algorithm to only allocate needed amount of columns, and/or apply to default data when needed. It was done for ApplySelectionCache, ChangeSelectionIndent, ClearSelectionItems. Yet, many other functions need the same approach. This change introduces ScTable::ApplyWithAllocation template, which allows to use this algorithm uniformly to any operation on a selection, which ultimately applies to ScColumnData. The code in the functions mentioned above is replaced with its use; and ApplySelectionStyle is fixed using it. Change-Id: Ic8890d9980fcb01b61bb111183b355c623f866a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161441 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-12-30move IsFuzzing to comphelperCaolán McNamara
and try something a bit more generic Change-Id: I1d8256576cd02f0a589df350ba7b53059dd586a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161250 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-29Avoid one more expensive ScPatternAttr compareArmin Le Grand (allotropia)
Change-Id: I2dc3f81ea3e44a335eea2a85df30390236d53299 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161402 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-12-29WaE: some --disable-scripting warningsCaolán McNamara
Change-Id: I697293adb151e3f1ed57971ec203698383d2a237 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161398 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-29Fix typoAndrea Gelmini
Change-Id: I917bf16ef48eb2c513d54e19ff6ba482323ebf2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161399 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-12-28Fix tooltipsTaichi Haradaguchi
* Correct some path names. * Change some context names. * Replace "&gt;" with "-". * Replace "▸" with "-". Change-Id: I0d2ff04f45fd1985e7e579e57add2a468d13e731 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161267 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-28kit: update formulas in frozen areaCaolán McNamara
when the main pane has scrolled sufficiently that those areas are off screen from the main pane perspective. In kit mode while there can be (up to) 4 panes, each pane is considered to be at cell 0, 0 and of the same size as the window. Unlike desktop mode the information as to what ranges are shown when there are frozen rows/cols is instead available via LOKSheetFreezeIndex commit daaf101ffe683eb691418ec2df4adc260d7e6a15 Date: Mon May 7 12:49:22 2018 +0200 lok: sc: formulas were not updated correctly this patch fixes several issues: commit 0ef7bc8a1d2f00715d6849f1bbceb26e32382d41 Date: Fri Mar 29 09:01:05 2019 -0400 sc lok: avoid save incorrect data, whether the pane has ... horizontal / vertical splits commit 7b4802070ac6fb930255536bf3ed2c52428b4181 Date: Wed Jul 15 15:55:45 2020 +0530 lok-freezepanes: Generalize FreezePanes* uno-commands... commit 818b7e508bcabae48cb1c96c987a9f83d83ff6e0 Date: Wed Apr 21 18:28:13 2021 +0200 lok: calc: formula breaking to multiple lines partly shown in edit mode Change-Id: I1e55f7bbc0df5c6fd09a10e261d25c1ce00a243a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160995 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161270 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-28Decouple ScPatternAttr from SfxItemPoolArmin Le Grand (allotropia)
ScPatternAttr is traditionally derived from SfxPoolItem (or better: SfxSetItem) and held in the ScDocumentPool as Item. This is only because of 'using' the 'poolable' functionality of the Item/ItemSet/ItemPool mechanism. Lots of hacks were added to sc and Item/ItemSet/ ItemPool to make that 'work' which shows already that this relationship is not optimal. It uses DirectPutItemInPool/DirectRemoveItemFromPool to do so, also with massive overhead to do that (and with not much success). The RefCnt in the SfxPoolItem that is used for this never worked reliably, so the SfxItemPool was (ab)used as garbage collector (all Items added and never removed get deleted at last for good when the Pool goes down). For this reasons and to be able to further get ItemSets modernized I changed this. I did two big changes here: (1) No longer derive ScPatternAttr from SfxItemSet/ SfxSetItem, no longer hold as SfxPoolItem (2) Add tooling to reliably control the lifetime of ScPatternAttr instances and ther uniqueness/ reusage for memory reasons It is now a regular non-derived class. The SfxItemSet formally derived from SfxSetItem is now a member. The RefCnt is now also a member (so independent from size/data type of SfxPoolItem). All in all it's pretty much the same size as before. To support handling it I created a CellAttributeHelper that is at/owned by ScDocument and takes over tooling to handle the ScPatternAttr. It supports to guarantee the uniqueness of incarnated ScPatternAttr instances for a ScDocument by providing helpers like registerAndCheck and doUnregister. It hosts the default CellAttribute/ ScPatternAttr. That default handling was anyways not using the standard default-handling of Items/Pools. I adapted whole SC to use that mainly by replacing calls to DirectPutItemInPool with registerAndCheck and DirectRemoveItemFromPool with doUnregister, BUT: This was not sufficient, the RefCnt kept to be broken. For that reason I decided to also do (2) in this change: I added a CellAttributeHolder that owns/regulates the lifetime of a single ScPatternAttr. Originally it also contained the CellAttributeHolder, but after some thoughts I decided that this is not needed - if there is no ScPatternAttr set, no CellAttributeHolder is needed for safe cleanup at destruction of the helper. So I moved/added the CellAttributeHolder to ScPatternAttr where it belongs more naturally anyways. The big plus is that CellAttributeHolder is just one ptr, so not bigger than having a simple ScPatternAttr*. That way, e.g. ScAttrEntry in ScAttrArray did not 'grow' at all. In principle all places where a ScPatternAttr* is used can now be replaced by using a CellAttributeHolder, except for construction. It is capable to be initialized with either ScPatternAttr instances from the heap (it creates a copy that then gets RefCounted) or allocated (it supports ownership change at construction time). Note that ScAttrEntry started to get more a C++ class in that change, it has a constructor. I did not change the SCROW member, but that should also be done. Also made registerAndCheck/doUnregister private in CellAttributeHelper and exclusively used by CellAttributeHolder. That way the RefCnt works, and a lot of code gets much simpler (check ScItemPoolCache, it's now straightforward) and safer and ~ScPatternAttr() uses now a hard assert(!isRegistered()); which shows that RefCnt works now (the 1st time?). There can be done more (see ToDo section below) but I myself will concentrate on getting ItemSets forward. This decoupling makes both involved mechanisms more safe, less complex and more stable. It also opens up possibilities to further optimize ScPatternAttr in SC without further hacking Item/ItemSet/ItemPool stuff. NOTE: ScPatternAttr *should* be renamed to 'CellAttribute' which describes what it is. The experiencd devs may know what it does, but it is a hindrance for understanding for attacting new devs. I already used now names like CellAttributeHelper/CellAttributeHolder etc., but abstained from renaming ScPatternAttr, see ToDo list below. SfxItemSet discussion: ScPatternAttr still contains a SfxItemSet, or better, a SfxSetItem. For that reason it still depends on access to an SfxItemPool (so there is acces in CellAttributeHelper). This is in principle not needed - no Item (in the range [ATTR_PATTERN_START .. ATTR_PATTERN_END]) needs that. In principle ScPatternAttr could now do it's own handling of those needed Items, however this might be done (linear array, hash-by-WhichID, ...). The Items get translated to and from this to the rest of the office anyways. Note that *merging* of SfxItemSets is *still* needed what means to have WhichID slots in SfxItemState::DONTCARE, see note in ScPatternAttr::ScPatternAttr about that. And there is also the Surrogates stuff which would have to be checked. The other extreme is to use SfxItemSet *more*, e.g. directly derive from SfxItemSet what would make stuff easier, maybe even get back to using the 'regular' Items like all office, I doubt that that would be much slower, so why...? Also possible is to remove that range of Items exclusively used by ScPatternAttr from ScDocumentPool *completely* and create an own Pool for them, owned by CellAttributeHelper. That Pool might even be static global, so all SC Docs could share all those Items - maybe even the ScPatternAttr themselves (except the default per document). That would remove the dependency of ScPatternAttr from a Pool completely. ToDo-List: - rename ScPatternAttr to CellAttribute or similar - use SfxItemSetFixed with range [ATTR_PATTERN_START .. ATTR_PATTERN_END] instead of regular SfxItemSet (if the copy-construtor works now...?) - maybe create own/separate Pool for exclusive Items - make ScAttrEntry more a C++ class by moving SCROW to the private section, add get/set methods and adapt SC Had to add some more usages of CellAttributeHolder to the SC Sort mechanism, there were situations where the sorted ScPatternAttr were replaced in the Table, but the 'sorted' ones were just ScPatternAttr*, thus deleting the valid ones in the Table already. Using CellAttributeHolder makes this safe, too. Added a small, one-entry cache to CellAttributeHelper to buffer the last found buffered ScPattrnAttr. It has a HitRate of ca. 5-6% and brings the UnitTest testSheetCellRangeProperties from 0m48,710s to 0m37,556s. Not too massive, but erery bit counts :-) Also shows that after that change optimizations in the now split functionality is possible and easy. Change-Id: I268a7b2a943ce5ddfe3c75b5e648c0f6b0cedb85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161244 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-12-28Added boolean op's to SfxPoolItemHolderArmin Le Grand (allotropia)
...and adapted code to make use of it. This makes checking if the SfxPoolItemHolder instance contains an Item or not simpler and thus more readable, no need to access the Item* every time using getItem() - is okay, but not intuitive. Change-Id: I8042267cce670aca2641a91cd36285058f17ffbb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161380 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-12-28In readonly mode, we restrict many events like click.Gökay Şatır
In readonly mode, Online users need to be able to click on a hyperlink and get the related info. For this purpose, this PR adds a new function template that sends the hyperlink info if there is any at the clicked position. I will send the implementation with the next commit. Signed-off-by: Gökay Şatır <gokaysatir@collabora.com> Change-Id: I886ea22a7097aac73ade0da78a88ddfc95ad819c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160022 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161372 Tested-by: Jenkins
2023-12-27tdf#158803 Fix issues detected by pyflakesChenxiong Qi
Change-Id: Iaa329dff61db894e7d5fecd840e785a53a48b26f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160889 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2023-12-26tdf#135478 Reduce sensitivity of horizontal scrollwheelPatrick Luby
Problem: at least on macOS, swipe events are very precise. So, when swiping at a slight angle off of vertical, swipe events will include a small amount of horizontal movement. Since horizontal swipe units are measured in cell widths, these small amounts of horizontal movement results in shifting many columns to the right or left while swiping almost vertically. So my hacky fix is to reduce the amount of horizontal swipe events to roughly match the "visual distance" of vertical swipe events. The reduction factor is arbitrary but is set to roughly the ratio of default cell width divided by default cell height. This hacky fix isn't a perfect fix, but hopefully it reduces the amount of unexpected horizontal shifting while swiping vertically to a tolerable amount for most users. Note: the potential downside of doing this is that some users might find horizontal swiping to be slower than they are used to. If that becomes an issue for enough users, the reduction factor may need to be lowered to find a good balance point. Lastly, fix the unbalanced rounding of delta X and Y values due to using floor() for macOS native swipe and scroll wheel events. Change-Id: I8c0c9a3aa688e411c47ebb5e7500f3a50f6f673b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161278 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Patrick Luby <plubius@libreoffice.org>
2023-12-24Remove listeners of SvtAccessibilityOptionsGabor Kelemen
This class no longer notifies listeners since 2019 commit 3135d820d0172ef5695a4b97cec505e6ad03d67a so presumably the listeners can be dropped as well. The sd part tried to execute SID commands which seem to be removed since 2004 commit f77ad7f15f53526714518bb3562ba7de4ba0d45e Change-Id: I81d234aabe10b53278c89ffd846240507854d0c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161237 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-12-24cid#1545470 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545468 COPY_INSTEAD_OF_MOVE cid#1545446 COPY_INSTEAD_OF_MOVE cid#1545435 COPY_INSTEAD_OF_MOVE cid#1545419 COPY_INSTEAD_OF_MOVE cid#1545415 COPY_INSTEAD_OF_MOVE cid#1545410 COPY_INSTEAD_OF_MOVE cid#1545390 COPY_INSTEAD_OF_MOVE cid#1545384 COPY_INSTEAD_OF_MOVE cid#1545374 COPY_INSTEAD_OF_MOVE cid#1545371 COPY_INSTEAD_OF_MOVE cid#1545368 COPY_INSTEAD_OF_MOVE cid#1545366 COPY_INSTEAD_OF_MOVE cid#1545335 COPY_INSTEAD_OF_MOVE cid#1545331 COPY_INSTEAD_OF_MOVE cid#1545327 COPY_INSTEAD_OF_MOVE cid#1545308 COPY_INSTEAD_OF_MOVE cid#1545280 COPY_INSTEAD_OF_MOVE cid#1545199 COPY_INSTEAD_OF_MOVE Change-Id: If05a13125b05ccd93d34d0eced566e7b3b58aaef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161256 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-24Drop some wrapper methods from SvtAccessibilityOptionsGabor Kelemen
just use the wrapped officecfg methods instead of: GetIsAllowAnimatedGraphics GetIsAllowAnimatedText GetIsAutomaticFontColor IsSelectionInReadonly Change-Id: I74de75fc9ff2f9a36ef376255e937bb373055587 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161236 Tested-by: Jenkins Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
2023-12-23cid#1546006 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545999 COPY_INSTEAD_OF_MOVE cid#1545995 COPY_INSTEAD_OF_MOVE cid#1545994 COPY_INSTEAD_OF_MOVE cid#1545989 COPY_INSTEAD_OF_MOVE cid#1545982 COPY_INSTEAD_OF_MOVE cid#1545977 COPY_INSTEAD_OF_MOVE cid#1545970 COPY_INSTEAD_OF_MOVE cid#1545856 COPY_INSTEAD_OF_MOVE cid#1545845 COPY_INSTEAD_OF_MOVE cid#1545838 COPY_INSTEAD_OF_MOVE cid#1545776 COPY_INSTEAD_OF_MOVE cid#1545774 COPY_INSTEAD_OF_MOVE cid#1545744 COPY_INSTEAD_OF_MOVE cid#1545719 COPY_INSTEAD_OF_MOVE cid#1545716 COPY_INSTEAD_OF_MOVE cid#1545687 COPY_INSTEAD_OF_MOVE cid#1545648 COPY_INSTEAD_OF_MOVE cid#1545643 COPY_INSTEAD_OF_MOVE cid#1545641 COPY_INSTEAD_OF_MOVE cid#1545604 COPY_INSTEAD_OF_MOVE cid#1545531 COPY_INSTEAD_OF_MOVE cid#1545530 COPY_INSTEAD_OF_MOVE cid#1545524 COPY_INSTEAD_OF_MOVE cid#1545516 COPY_INSTEAD_OF_MOVE cid#1545501 COPY_INSTEAD_OF_MOVE cid#1545486 COPY_INSTEAD_OF_MOVE Change-Id: Idcf3e27bb9e81b6a77d5ef75c9376eb1d6aff8c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161245 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-22Related: tdf#155266 Eliminate delayed scrollbar redrawing when swipingPatrick Luby
By default, the layout idle timer in the InterimWindowItem class is set to TaskPriority::RESIZE. That is too high of a priority as it appears that other timers are drawing after the scrollbar has been redrawn. As a result, when swiping, the content moves fluidly but the scrollbar thumb does not move until after swiping stops or pauses. Then, after a short lag, the scrollbar thumb finally "jumps" to the expected position. So, to fix this scrollbar "stickiness" when swiping, setting the priority to TaskPriority::POST_PAINT causes the scrollbar to be redrawn after any competing timers. Change-Id: I8c0772fc40ddc690ee59c6267c1c50971f4ff238 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161184 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Patrick Luby <plubius@libreoffice.org>
2023-12-22InsertDeleteFlags should be synchronized with css::sheet::CellFlagsMike Kaganski
They get casted to each other in sc/source/ui/unoobj/cellsuno.cxx (see ScCellRangesBase::clearContents, which implements respective method of css::sheet::XSheetOperation). Commit 07b0c01857137de7e4bd02375e7c892d622d270e (CWS-TOOLING: integrate CWS dr66, 2009-03-02) introduced IDF_NOCAPTIONS with value of 0x0200, which conflicted with css::sheet::CellFlags::FORMATTED (itself introduced in commit b4100bbf615fd3d1cbae200ae187ccbddf8e44a6 (INTEGRATION: CWS calcuno01 (1.5.284); FILE MERGED, 2005-03-23)). Make the underlying type of InsertDeleteFlags consistent with the IDL definition; and make sure to avoid the conflicting values. Change-Id: Ic348f69a1e58db84ef6203391020f45b331e6967 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161145 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-12-22tdf#158652 notify navigator on insert/edit/delete commentOliver Specht
links changes of the drawing engine to comments as it was done before with pictures, shapes and OLE objects ui unit test included Change-Id: I4fde3a82b80e73758fb3da94ed2553453d09e9ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160624 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-12-22tdf#154044: Also store default column data, when copying to Undo documentMike Kaganski
And restore from it un Undo. Change-Id: I3e14b345cff25068d0555c5bceb4d6e97ce7cf76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161127 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-12-22cid#1546500 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546492 COPY_INSTEAD_OF_MOVE cid#1546468 COPY_INSTEAD_OF_MOVE cid#1546431 COPY_INSTEAD_OF_MOVE cid#1546382 COPY_INSTEAD_OF_MOVE cid#1546350 COPY_INSTEAD_OF_MOVE cid#1546336 COPY_INSTEAD_OF_MOVE cid#1546314 COPY_INSTEAD_OF_MOVE cid#1546152 COPY_INSTEAD_OF_MOVE cid#1546094 COPY_INSTEAD_OF_MOVE cid#1546077 COPY_INSTEAD_OF_MOVE cid#1546047 COPY_INSTEAD_OF_MOVE cid#1545213 COPY_INSTEAD_OF_MOVE Change-Id: Ia51df9f9cbde755db4d2685e34f22676ed5eceff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161141 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-21tdf#153690 Prevent invisible dialogs in Calc Full ScreenMatt K
This change just adds the flag "SfxChildWindowFlags::NEVERHIDE" to the info passed around so that the dialogs are not treated as invisible when executing SfxWorkWindow::ShowChildren_Impl. Change-Id: I35f0be94132cee438b3be9f4b4217208617a1e77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160660 Tested-by: Jenkins Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-21export UserAllowsLinkUpdate via AllowLinkUpdate propertyCaolán McNamara
Change-Id: I3dca61490ba9ad2912faf0bb431fb643f248c247 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161123 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-21Remove DeleteItemOnIdlexArmin Le Grand (allotropia)
There are some CrashReports in 7.6 which have DeleteItemOnIdle on the stack, but there is nothing reproducable. So I took a look... I first thought it's a MCGR regression, due to classes on the stack. But the Item involved is just random, can happen with any Item. Then I thought it may have to do with ITEM refactorings, but it happens with DeleteItemOnIdle involved, so also not the case. I already saw DeleteItemOnIdle when doing these and qualified as 'hack' in the way. already It is only on Windows and DeleteItemOnIdle is involved. This again (took a deeper look now) is an old hack to keep an SfxPoolItem 'alive' for some 'time'. For that, it triggers an async reschedule which then deletes the Item when being called. If the Item will be used after that is pure coincidence - seems to work in most cases. It seems as if for Windows the timing slightly changed for some scenarios, so a reschedule is too early. This can happen with this hack anytime. DeleteItemOnIdle is used in scenarios where SfxPoolItem* is e.g. returned, but is *not* anchored, so e.g. not member of an SfxItemSet. Or in short: Lifetime is not safe. DeleteItemOnIdle exists since 1st import, but was changed to AsyncEvent ca. 4 months ago (see 57145acf9ec47c23e307b7a5c0029d21d937cc35), so that may have caused it. It is possible that these errors happen on Windows since then. Before something more complicated was used to delete it late, but surely also not really safe. Due to ITEM refactor I have the knowledge/tooling to solve this. It will not be a 1-5 lines fix, but it is a hack and in the way for further ITEM refactor anyways. What we have nowadays is a SfxPoolItemHolder -> it's like an SfxItemSet for a single Item. It safely holds/ controls the lifetime of an SfxPoolItem. It is already used in quite some places. It helps to solve many hacks, also the ones putting Items directly to the Pool - due to there never was an alternative for that. In principle the ItemPool/ItemSet/Item paradigm was never complete without SfxPoolItemHolder. Thus I started to fix that (and remove that hack for good, sooo many changes over the years, sigh), but as said is not straightforward. Will have to change retvals of involved stuff to SfxPoolItemHolder - it's just two pointers and designed to be copied (one is a Pool, needed to cleanup when destructing). CopyConstruct/destroy just counts the RefCnt up/down, so cheap. 1st version compiling, let's check on gerrit... Corrected one error in QueryState for securitypage, also added some security features/asserts. Change-Id: Ida49fd35ca88ead84b11d93e18b978cb9e395090 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161083 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-12-21Revert "tdf#100584, tdf#157784 - Arrange sheets depending on the RTL settings"Andreas Heinisch
This reverts commit 4f1b3c16f5530a2a190cab07c07c7bf63acf42c7. Reason for revert: To many regressions. Change-Id: I7352bb3c192d5e6c72e95c387ee551764007e97b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161152 Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de> Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2023-12-21Add export sheet range option to calcNickWingate
User can specify which sheets to export e.g. '2-5,7' exports sheets 2,3,4,5,7. Note: this is different from exporting pages as one sheet may contain several pages worth of content. Also fix a bug where exporting only a selected sheet causes the next sheet to be exported. e.g.: Sheet 1 is empty, Sheet 2 has content. Exporting Sheet 1 results in Sheet 2's content being exported Signed-off-by: NickWingate <nick.wingate@collabora.com> Change-Id: Iecd42188ddbbbcd70eb37bec80783e29e3cb5b19 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156255 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159686 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-21tdf#158375: adapt UI when DDE is disabled via DisableActiveContentSarper Akdemir
When DisableActiveContent is set, provide now non-functional areas meaningful error messages / popup dialogs. Change-Id: I34bffee10fb0ba5c0194193f3d3d81b93d7dbd26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160923 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2023-12-20cool#7865 sfx2 lok: fix bad view id on async command dispatchMiklos Vajna
If you try hard enough, it's possible to request an "add conditional format" dialog in one view and have the dialog pop up in an other view. This is related to cool#7853 but it focuses on the wider problem. What happens is that sometimes we do want to execute an uno command in an async way, e.g. one dialog opening an other dialog in its response handler: making sure the dialog is not manually / synchronously spinning the main loop while it's running is wanted. Also fixing each & every async command dispatch manually would be a lot of work. Fix the problem by remembering the current view in SfxHintPoster::Post() as it posts events to the main loop and restoring that view if necessary in SfxHintPoster::DoEvent_Impl(). Other comments: - An alternative would be to just dispatch all these UNO commands synchronously, but see above, there are cases where we want to stay async, a nested main loop would be worse. - An even more general fix would be to handle all calls to Application::PostUserEvent(), but vcl doesn't know what is the current view and would have trouble switching to that view (only sfx2 and higher up knows that), so do this only at a SfxHintPoster::Post() level, this is already meant to fix all async uno commands. - There was a single case in sd/ where we tried to dispatch an async event while switching views, so switch to a sync command dispatch there to avoid the problem. CppunitTest_sd_tiledrendering would hang without this and would emit a warning in SfxHintPoster::Post(). - Restore the sc/ code to do its async dispatch as it used to, so now CppunitTest_sc_tiledrendering's testOpenURL is a test case that covers this change. Change-Id: I765e618f55caad791aa1fe7569a32bcc31622525 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161071 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-12-20capture these explicitly by nameCaolán McNamara
Change-Id: I0908aedada9c59426373080d7d3894b452693939 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161076 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-20tdf#158375: disable DDE when DisableActiveContent is setSarper Akdemir
Change-Id: I167f6ea5d740b5a53cd02a9b865e65ff980a8877 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160922 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2023-12-20tdf#158375: adapt UI when embedded content is disabled via optionSarper Akdemir
When DisableActiveContent is set, embedded active content is disabled (e.g. OLE). Therefore the existing ui insertion bits don't function either. Disable them with a warning pop-up hinting "Active content is disabled." Change-Id: I14984684f22df6aff81af79d5a15589b5cae75fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161055 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-20lok: Block requests to load external referencesSzymon Kłos
- currently in LOK case we don't open multiple files in one "environment" - currently it opens import dialog which is synchronous - and that blocks whole app Change-Id: I11c2c7f602ecf1e29b3d6fb2930ce873749bc2ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159984 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161058 Tested-by: Jenkins
2023-12-19split ScGridWindow::UpdateFormulas into two partsCaolán McNamara
a) figures out what might need to redraw b) triggers redraws on that Change-Id: Ib6e1d8d0785cc629fd2cfb0cfdc4ad43897fd4f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161012 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-19cool#7853 sc lok: fix bad view id on hyperlink clickMiklos Vajna
The document had 2 windows. The first window was typing in column A, the second window ctrl-clicked on a hyperlink in column B. The LOK callback was emitted in window 1, not in window 2, which is unexpected. What happens is that ScGlobal::OpenURL() dispatched an async command when window 2 was active, and we happened to be in window 1 when processing that user event from the main loop. Fix the problem by dispatching the URL open command in a synchronous way, so the LOK view can't be different. An alternative would be to track the current LOK view id for posted user events, and set the view back to the one which was current at post-time before executing the event. We can consider doing that in a follow-up change, but this fixes the problem at hand and is a safe fix. Change-Id: I9a3c9fc1b90ad538d8b2510c7844549c9881ca56 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160976 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-12-19cid#1557601 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546498 COPY_INSTEAD_OF_MOVE cid#1546384 COPY_INSTEAD_OF_MOVE cid#1546376 COPY_INSTEAD_OF_MOVE cid#1546374 COPY_INSTEAD_OF_MOVE cid#1546373 COPY_INSTEAD_OF_MOVE cid#1546368 COPY_INSTEAD_OF_MOVE cid#1546365 COPY_INSTEAD_OF_MOVE cid#1546356 COPY_INSTEAD_OF_MOVE cid#1546340 COPY_INSTEAD_OF_MOVE cid#1546266 COPY_INSTEAD_OF_MOVE cid#1546236 COPY_INSTEAD_OF_MOVE cid#1546188 COPY_INSTEAD_OF_MOVE cid#1546178 COPY_INSTEAD_OF_MOVE cid#1546166 COPY_INSTEAD_OF_MOVE cid#1546156 COPY_INSTEAD_OF_MOVE cid#1546144 COPY_INSTEAD_OF_MOVE cid#1546143 COPY_INSTEAD_OF_MOVE cid#1546100 COPY_INSTEAD_OF_MOVE cid#1546078 COPY_INSTEAD_OF_MOVE cid#1546041 COPY_INSTEAD_OF_MOVE cid#1546036 COPY_INSTEAD_OF_MOVE cid#1546033 COPY_INSTEAD_OF_MOVE Change-Id: Ib3586d93198992e206baf5c2de5a663d5574aa3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160979 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-19cid#1559313 Dereference null return valueCaolán McNamara
we already have the ScPostIt here Change-Id: I646cbe073be3a63f8aeaa4939406b56a73b6382e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160973 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-19tdf#154339: do not cache GetCellArea results for nowXisco Fauli
Partially revert 0a55aa8ba38aea56a2bce1504fd687e510f66b9d "calc: cache GetCellArea results" Change-Id: I371a56f64afe541d9a194e6435fda3fb27bc43ce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160349 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-12-16cid#1545970 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545957 COPY_INSTEAD_OF_MOVE cid#1545944 COPY_INSTEAD_OF_MOVE cid#1545939 COPY_INSTEAD_OF_MOVE cid#1545931 COPY_INSTEAD_OF_MOVE cid#1545926 COPY_INSTEAD_OF_MOVE cid#1545909 COPY_INSTEAD_OF_MOVE cid#1545899 COPY_INSTEAD_OF_MOVE cid#1545896 COPY_INSTEAD_OF_MOVE cid#1545894 COPY_INSTEAD_OF_MOVE cid#1545858 COPY_INSTEAD_OF_MOVE cid#1545823 COPY_INSTEAD_OF_MOVE cid#1545820 COPY_INSTEAD_OF_MOVE cid#1545819 COPY_INSTEAD_OF_MOVE cid#1545772 COPY_INSTEAD_OF_MOVE cid#1545749 COPY_INSTEAD_OF_MOVE cid#1545743 COPY_INSTEAD_OF_MOVE cid#1545739 COPY_INSTEAD_OF_MOVE cid#1545635 COPY_INSTEAD_OF_MOVE cid#1545603 COPY_INSTEAD_OF_MOVE cid#1545602 COPY_INSTEAD_OF_MOVE cid#1545592 COPY_INSTEAD_OF_MOVE cid#1545544 COPY_INSTEAD_OF_MOVE cid#1545532 COPY_INSTEAD_OF_MOVE cid#1545520 COPY_INSTEAD_OF_MOVE cid#1545512 COPY_INSTEAD_OF_MOVE cid#1545490 COPY_INSTEAD_OF_MOVE cid#1545483 COPY_INSTEAD_OF_MOVE cid#1545467 COPY_INSTEAD_OF_MOVE cid#1545461 COPY_INSTEAD_OF_MOVE cid#1545458 COPY_INSTEAD_OF_MOVE cid#1545428 COPY_INSTEAD_OF_MOVE cid#1545394 COPY_INSTEAD_OF_MOVE cid#1545385 COPY_INSTEAD_OF_MOVE cid#1545383 COPY_INSTEAD_OF_MOVE cid#1545366 COPY_INSTEAD_OF_MOVE cid#1545357 COPY_INSTEAD_OF_MOVE Change-Id: I76224326977b4067b94ca3176cad1ca6de17930a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160847 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-16tdf#158514 Add "Edit Comment" entry to the navigator popupRafael Lima
Clicking this option will show the comment and enter edit mode. Change-Id: Ia9d10e5e03229c48120c27de0a623de5c5cf50d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160582 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-12-14Related: cool#6893 ScFormulaGroupIterator::next creates columnsCaolán McNamara
that didn't exist before. Lots of time spent in ScColContainer::resize on getting document statistics. ScColContainer: :resize ScTable: :CreateColumnIfNotExistsImpl ScTable: :FetchColumn ScFormulaGroupIterator: :next ScDocument: :GetFormulaGroupCount ScDocument: :GetDocStat Change-Id: I52d4ab052e21215eb650bdccf4abc056ee2dd405 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160784 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-14tdf#158551: sc_uicalc: Add unittestXisco Fauli
Change-Id: I66d62651a8f8295265e4bfbfc5395e0f400d726b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160769 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-12-14cid#1545211 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545218 COPY_INSTEAD_OF_MOVE cid#1545232 COPY_INSTEAD_OF_MOVE cid#1545243 COPY_INSTEAD_OF_MOVE cid#1545246 COPY_INSTEAD_OF_MOVE cid#1545251 COPY_INSTEAD_OF_MOVE cid#1545260 COPY_INSTEAD_OF_MOVE cid#1545261 COPY_INSTEAD_OF_MOVE cid#1545276 COPY_INSTEAD_OF_MOVE cid#1545295 COPY_INSTEAD_OF_MOVE cid#1545297 COPY_INSTEAD_OF_MOVE cid#1545301 COPY_INSTEAD_OF_MOVE cid#1545302 COPY_INSTEAD_OF_MOVE Change-Id: I97ba935a4a2b8715b55ebbf6e853a66260b2eb90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160686 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-14cid#1545734 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545723 COPY_INSTEAD_OF_MOVE cid#1545708 COPY_INSTEAD_OF_MOVE cid#1545705 COPY_INSTEAD_OF_MOVE cid#1545684 COPY_INSTEAD_OF_MOVE cid#1545674 COPY_INSTEAD_OF_MOVE cid#1545673 COPY_INSTEAD_OF_MOVE cid#1545667 COPY_INSTEAD_OF_MOVE cid#1545661 COPY_INSTEAD_OF_MOVE cid#1545660 COPY_INSTEAD_OF_MOVE cid#1545657 COPY_INSTEAD_OF_MOVE cid#1545653 COPY_INSTEAD_OF_MOVE cid#1545636 COPY_INSTEAD_OF_MOVE cid#1545624 COPY_INSTEAD_OF_MOVE cid#1546124 COPY_INSTEAD_OF_MOVE Change-Id: I7d50594e046a022147d9ddf077b8b2d8027f9bca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160721 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-14tdf#158551: fix crash Paste Special with Operation (mdds)Julien Nabet
Change-Id: I0be1056261c6ef7f90fe9244265aa038c36a7dd2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160389 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>