summaryrefslogtreecommitdiff
path: root/sc
AgeCommit message (Collapse)Author
2021-11-30tdf#144308: sc_uicalc: Add unittestXisco Fauli
Change-Id: Ia37d19722fc7a4ef46cf6f17fa0e45a12db0e7b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126111 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-30make autofilter a row shorter, now it has extra menu itemsCaolán McNamara
for the filter by color options, which have pushed its height up taller than it used to be. I think it would be better to make more submenus here to shrink its height down further, but that's not attempted here. Change-Id: Idb484bd77d2cca6e175d997955b0967720d94ec6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126121 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-30tdf#145901 constrain gtk autofilter within calc windowCaolán McNamara
so its all visible as much as possible under wayland Change-Id: Iad82f9ab63d57a93361e773a159c2716e13d59f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126120 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-29tdf#144308: don't cache DoAutoComplete/AutoInput in ScInputHandlerMike Kaganski
The setting from /org.openoffice.Office.Calc/Input is already cached in ScModule::m_pAppCfg; synchronizing the two mentioned places was done in commit 8810812e58f1b014d3156235c1ab5a2d6c73c828. Another existing cache in ScInputHandler only complicates things, making the behavior inconsistent when configuring through registry, com.sun.star.sheet.GlobalSheetSettings, and menu. So just read the setting when needed from ScModule in methods of ScInputHandler. For lok, use ScModelObj::initializeForTiledRendering to set it up (as was done in 65990058f041c3f1d280a69d411eb4ceacf5a721). Change-Id: I102d3360aeb45b301f04f4c8bbee1191c23fe0e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126002 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-29close menu a followed by open menu b should not cancel open menu bCaolán McNamara
Change-Id: I9c708811d9eea04a2421c97a97d7dce14fdc8e63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126058 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-29center vertically so if there is only one entry it doesn't looksCaolán McNamara
Change-Id: I97ae6145d0139bd33f33d298803c7e787fd717a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126061 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-29move PopupMenu::IsInExecute out of vcl/include/menu.hxxCaolán McNamara
Change-Id: I01af38dd57a645ea0afeaff033ce6d07dfe09535 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126026 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-29store ScQueryEntry simply by valueLuboš Luňák
There's not much point in complicating this by allocating them dynamically if they're always treated by value anyway. Change-Id: I8325829201c0ad6c95858916a94c5b4d1d208b1c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126024 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-29tdf#145578, tdf#145587 revise calculations for WEEKS Add-In functionWinfried Donkers
The calculations now follow the documentation for WEEKS in https://wiki.documentfoundation.org/Documentation/Calc_Functions/WEEKS. Change-Id: Ifede6e2ec2d9cfb7301fd5eb53bf7b6f187053bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125319 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-29tdf#132145: Synchronize ScAppCfg with configurationMike Kaganski
Change-Id: Iadf5ff86d043f63355fd30816a9e2011479465c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125990 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-28Refactor ScInputCfg a littleMike Kaganski
Make ScInputOptions a private ancestor. This allows to drop OptionsChanged, and avoid potential way to change settings without committing to configuration. Drop ScInputOptions::SetDefaults, and use ctor for that. Change-Id: I8abb7309a72e84ac7c83592f3758f0264cd1cc4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125905 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-28tdf#132145: Synchronize ScPrintCfg with configurationMike Kaganski
Change-Id: I903e8277fea5c223081244ae30dff31bbda7d554 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125904 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-28don't need to have a specific mbCanHaveSubMenu mode anymoreCaolán McNamara
since the gap in the vcl treeview separator problem is fixed Change-Id: I105167127588c11895d81dd2aea3c9e119170069 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125952 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-28drop unneeded includeCaolán McNamara
Change-Id: I5feae2a17eb1ac647f2be4c6936e3a9b0706a333 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125953 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-28gtk[3|4] move the indicator to the edgeCaolán McNamara
Change-Id: I79e4f404f85846ef85886f8bdbe3d4ba3114a091 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125950 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-27Resolves: tdf#144410 show submenu indicator for color filtering optionsCaolán McNamara
do it as an easily backportable change Change-Id: Ib92e8f1e35e6465b52a69f3a8513068668dc6953 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125949 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-27Resolves: tdf#145863 crash on click after quick double clickCaolán McNamara
Change-Id: I18862328a3239424de80b478a09f568b5dcef1ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125948 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-27use more OInterfaceContainerHelper3 in scNoel Grandin
Change-Id: I27df936f95ac7727b58ad196201df6d56bceeca9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125943 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-27tdf#132145: Synchronize ScInputCfg with configurationMike Kaganski
Change-Id: I45cc9b6c8cbd9205e185bebff97644f53f5cf0af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125896 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-26Regression Statistics: use cell reference, not fix row to calculate offsetEike Rathke
The INDEX() offset was calculated with a fix row number derived from the initial output position, like 35-ROW(). That fails if the range later is moved or rows inserted/deleted. Instead, use a cell reference of the cell's current column and end row, like ROW($A$34)+1-ROW(). 34+1 to not have things shifted if a row is inserted before 35. Change-Id: I11276c4acb35505576daa1a20ad49a4fcdbaba49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125914 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-11-26tdf#126356 partial Revert "sc tiled editing: Mapping has to beJustin Luth
turned off after drawing the buttons." This partially reverts LO 5.0 commit 342d84218c17da40d0a4f96bc3b07b536d64517a which comments: Also - we are actually never call with something else than MAP_PIXEL, so let's kill the resetting of the mapmode; let's see if some obscure corner case bites us here. Several bug reports have indicated artifacts on screen, all coming from the use of autofilter, and in these cases the map mode is 0 (Map100thMM), so I restored the whimsically removed logic. Change-Id: I9bb5d7418fc4083ed71139a64329b11fa1e4cc13 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125879 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2021-11-26tdf#133996 speed up opening of ODS with autofilter + conditional formattingNoel Grandin
inline some hot methods, and use OUStringLiteral to avoid repeated construction of an OUString, saves about 3% Change-Id: I6d09ade4e08a94ed5dd49a8882e26bb5786409d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125873 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-26tdf#119190: sc_subsequent_filters_test2: Add unittestXisco Fauli
Change-Id: I5ba98b3651470f7c86b9aca9359d563e64058552 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125874 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-26Reverts tdf#144247 tdf#101217 - 4 digits in row height/col widthHeiko Tietze
Reverts patch I29d90b413e6f6f6e8b73d30ac47d644a69d15046, ad8edac43e73555bc2055514300c5b81a1bb04ea and partially Ibdee348d84a8b96d8f698e7fc6db89eb24422f5d Change-Id: Iba5fd2d2a65d813c2d5ba85e66a7c3e07b726ca5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125871 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2021-11-26cid#1494444 silence Dereference null return valueCaolán McNamara
Change-Id: I7c6c60489a58378238ff63ff9c6b45f3a7aa4bf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125866 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-26tdf#144940 sc: fix disabled header/footer regressionAttila Bakos (NISZ)
Setting "Same content on first page" in the Page Style dialog on either the Header or Footer tab resulted disabled header/footer after reload. This was due to flawed logic when assigning SC_UNO_PAGE_HDRON/FTRON value: "leftness" was checked for but not "first pageness". Regression from commit b9993369b4011cd8f367e439f5248096827f1efc "tdf#121715 XLSX: support custom first page header/footer". Co-authored-by: Daniel Arato (NISZ) Change-Id: I8ee4c9f8145913d9dc5f4b66cdbc2352f2e405f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125367 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-11-25use even hyper-thread cores for Calc threadingLuboš Luňák
I assume the threading was originally limited only to real cores because that's how many FPUs there are in the CPU. But Calc dynamically allocates many data structures (ScFormulaCell most notably), which means they end up scattered all over the memory, and processing them often stalls on memory reads, leaving time for other HT core to run. For data-heavy documents (such as using VLOOKUP) using HT cores saves 30%, but I can see 10+% gains even for compute-heavy documents. Change-Id: I302b17e55f27541606d922a1f0b27005ce0f0ba8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125801 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-25Resolves: tdf#145863 crash if popup closed before becoming truly visibleCaolán McNamara
the timing has to be just right to get this to happen Change-Id: I1ae81bf5c79b7f8b3fdf82b3fab94d5a3b6076cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125816 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-25sort, cache and binary search query items if they're many (tdf#136838)Luboš Luňák
This makes autofilter even with tdf#136838 almost instanteous. Change-Id: I94b4b6d6ab6f8e73312d88c8b88c0f393707f117 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125795 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-25fast query item searching also for ByValue with stringLuboš Luňák
The tdf#136838 comment #2 document has MaterialNumber column that is actually strings (even though they look like numbers), but autofilter creates ByValue query items (for whatever reason). So extend the conditions for fast searching to include this case, otherwise it'd be handled by the generic slower code. Change-Id: I0fe192b99cd2999282db53ba98587b712c42c762 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125794 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-25avoid repeated checks with same result on fast lookup pathLuboš Luňák
Change the compareByString() function to a template with a bool parameter that will disable all the checks, allowing the compiler to effectively generate just a small inline function. And then compute the bool value once and call the fast version if true. With comment #2 in tdf#136838 this actually saves 40% of time. Change-Id: I5a5190f19a1df163b28e527090ec880e6de5bbda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125768 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-25try to search efficiently with a query with many items (tdf#133867)Luboš Luňák
Autofilter with large documents can create queries that have thousands of items. Searching all of those for every cell using the generic algorithm can be quite slow. First try an optimized search for this case that skips most of the complications and just tries to find in the query items an exact match for the cell. This significantly speeds up tdf#133867 or attachment from comment #2 in tdf#136838. Change-Id: I2bba18da6a101c76398d8c42c4306c53682899c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125746 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-25don't fetch cell string content for each query item (tdf#133804)Luboš Luňák
When using autofilter, the query entry can have thousands of items, and fetching of the cell string value is not trivial in some cases. I'm not doing this for numeric values, as those depend on query items and also seem fairly fast. Change-Id: I01fa2e0cbce8f770d1ed079c0dba74830402a895 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125735 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-25tdf#128914: sc_uicalc: Add unittestXisco Fauli
Change-Id: I80d5a9c1ac9b05273f0237b966ad23a11a17a0c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125798 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-24Resolves: tdf#128914 Create copies for non-shareable token arraysEike Rathke
Change-Id: I59fdcf48fb0da9d944b00a140e043e4ea5fb1ae5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125789 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-11-24uitest: remove print leftoversXisco Fauli
Change-Id: I9b0cef7a8a536a8db7d0b840dfe69714fdbf2cd4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125779 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-24tdf#145828 Sidebar line styles: Default to "thin" widthSamuel Mehrbrodt
Change-Id: I78d754d36c7ea41f7e3259be331d23b8a25c480f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125771 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2021-11-24Fix typosAndrea Gelmini
Change-Id: Ibc2eb80d7cc0cfc22c7fea0dc7ebe495ae0927c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125765 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-24Border tab page: Use 'thin' widthSamuel Mehrbrodt
instead of random number Change-Id: I89f3be2d6bba02f1fbe52065fab81caded2656f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125699 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2021-11-24ofz#41299 add testcaseCaolán McNamara
cp workdir/LinkTarget/Executable/fftester instdir/program LD_LIBRARY_PATH=`pwd`/instdir/program valgrind instdir/program/fftester `pwd`/sc/qa/unit/data/slk/pass/ofz41299-1.slk slk ==805505== Conditional jump or move depends on uninitialised value(s) ==805505== at 0x1D66BAA5: ScRawToken::CreateToken(ScSheetLimits&) const (token.cxx:354) ==805505== by 0x1D30D115: ScCompiler::CompileString(rtl::OUString const&) (compiler.cxx:4831) ==805505== by 0x1DC68FE0: ScImportExport::Sylk2Doc(SvStream&) (impex.cxx:2174) ==805505== by 0x1DC654E4: ScImportExport::ImportStream(SvStream&, rtl::OUString const&, SotClipboardFormatId) (impex.cxx:390) ==805505== by 0x1DB84091: TestImportSLK (docsh.cxx:3404) ==805505== by 0x406657: sal_main_with_args(int, char**) (fftester.cxx:485) ==805505== by 0x40389D: main (fftester.cxx:97) Change-Id: If0cbab2b1b41dacba3b2871b09e31e2d8675ba82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125677 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-24remove superfluous code that has a TODO note about itLuboš Luňák
The commits introducing this part of code have tests attached, so it's fairly easy to check that this part of code is in fact not necessary, but if in doubt there's the option of simply asking the author of the code. Change-Id: I3b754090ac462d3ae8e4676fc1643570ec53aac1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125695 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com> Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-24Rename o3tl::underlyingEnumValue to o3tl::to_underlying to match C++23Mike Kaganski
Change-Id: I1597a8e77199445bf377dbe54adc3134bb04fd51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125748 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-23Resolves: ofz#41299 Rewind also on last resort #REF! IsReference()Eike Rathke
Otherwise for #ref!e:o NextNewToken() bailed out with an uninitialized maRawToken. Change-Id: I8b3b399a5a3636ccda3104ba2a5971e5e9a8fc02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125736 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-11-23short-circut SC_AND lookup if left side is known to be falseLuboš Luňák
Change-Id: Ia1badb975f4effca668a5c2a41cfef3beccf8e2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125739 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23allow matching of empty cells as svl::SharedString (tdf#133804)Luboš Luňák
This may speed up some lookups. Change-Id: I13a39abc43c64eb758fa55a6cdbda3e83e179121 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125743 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23set empty value if not returning a shared stringLuboš Luňák
This is strictly speaking not necessary if callers would always initialize to nullptr, but I guess this is better. Change-Id: Ica88395e0f615afbd58efa71e5d64bfdd2a37319 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125734 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23do not wait for condition that's not neededLuboš Luňák
When not querying for the test equal condition, it's pointless to keep searching for it to become true only to throw it away. Change-Id: Ie861bac141f80025e95753fb8b1202498df17383 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125733 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23move code to a separate functionLuboš Luňák
To be extended in following commits. Change-Id: I09eaf0f5cfdbbe0aff254231dbb983fd7f72cc5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125732 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23do not fetch cell data if ScRefValueCell can tell thatLuboš Luňák
Change-Id: I2910231c9cf205ce697616e660e49056c221e89d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125731 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23tdf#139460 improve autofilter sub-menu interaction under gtkCaolán McNamara
so the submenu pops down when the mouse moves back into its parent. This removes layer of InterimItemWindow and for gtk (under wayland) the autofilter and its submenu can use native GtkPopovers Change-Id: I4c8c3d2087566f508d75eda72e272d9f7fba2f00 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125428 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>