summaryrefslogtreecommitdiff
path: root/sc
AgeCommit message (Collapse)Author
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>
2021-11-23do not try to read table cell again on ScRefCellValue::isEmpty()Luboš Luňák
The ScRefCellValue is always initialized to point to the relevant cell. Originally there used to be a cell pointer that could be null, but since 43e50ec759200fe166dba59d3ff76af2a2e148c8 it's been always set and so checking again is pointless. Change-Id: Ib661ec5de73891ed3a5cd0346287324183721806 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125687 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23O[U]String::replaceAt overloads that take string_viewNoel Grandin
which results in lots of nice string_view improvements picked up by the plugins Change-Id: Ib0ec3887816b3d4436d003b739d9814f83e244b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125657 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-22cache error strings for ScTable::validQuery() (tdf#133835)Luboš Luňák
Avoid calling SharedStringPool::intern() on values that are repeatedly the same. Change-Id: I094f2e777a4ca24536e0c25e6a1c6358ccf49f61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125660 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-22Revert "cache FormulaError::NoRef error string (tdf#144249)"Luboš Luňák
A more generic fix coming. This reverts commit b4c1bb2f91e9ae47820c289e2c08f640a958cf05. Change-Id: Ia7821f1c8585506556708f1bf8526e7f509aafd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125659 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-22Use less DegreeN::get()Mike Kaganski
Change-Id: I97b8d6282c72307cc29a913af221d283523f2fae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125653 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-22Generalize DegreeNMike Kaganski
This potentially allows to introduce other degree fractions easily, like Degree<sal_Int64, 60000>, with automatically defined conversion functions. Change-Id: Id1c32d9e029943844bdc833178c1f99387ff87fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125640 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-21Removed break after returnAndrea Gelmini
Change-Id: I0ad0ae7074905075cdff46ded69eaaa07570f0ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125075 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-20small optimisationNoel Grandin
avoid malloc in the common case Change-Id: I3820065c2b070eddf7cfcba117ec1be73735957f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125562 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-19uitest: sc: Add UItest for the Save to CSV dialogXisco Fauli
Change-Id: Iddf617a02697c30e195d1de94fa064adf5b2d7f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125560 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-19uitest: better use execute_dialog_through_action in these casesXisco Fauli
Change-Id: Ic2317db908afc12973624034f29c1de6f4efd60c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125561 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-19Use more precise value for M_PI in OpenCLMike Kaganski
No idea if that would make actual difference, but it simply looks odd that we use such a value, in view of all other efforts to improve accuracy of rad<->deg conversions. The value is used that is already present elsewhere in the code, e.g. in sc/source/core/opencl/op_statistical.cxx. Change-Id: I098f2bf748670e3250035d74d1bf7d1e224dd66b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125557 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-19Drop F_PI1800/F_PI18000, and unify deg2rad/rad2deg conversionsMike Kaganski
Change-Id: Ib89b00c3dc8cd440e8a88906eea133becd1cef64 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125509 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2021-11-19gtk3: use GtkPopover default for selected cases that are within a documentCaolán McNamara
and where inability to escape window under X11 hasn't been a problem to date Change-Id: I14aa5fe2cf443b6214aed48266d5bd32b8b9c700 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125541 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-19gtk3: default to an explicit constrain-to for PopoversCaolán McNamara
with the intent to do the same replacement with GtkWindow under X11 for gtk3 that we do in MenuButtons for the popover with direct popovers when the constraint is GTK_POPOVER_CONSTRAINT_NONE Change-Id: I629c30b44a9e362ba0d924bb229930b5f0dc7ed3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125540 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-19tdf#136551: sc_subsequent_filters: Add unittestXisco Fauli
we can use the file from tdf#134867 to test tdf#136551 although one bug is in calc and the other is in writer In the end, the problem is in the sax parser when dealing with files bigger than 10Mbs so the problem is not specific to one component Change-Id: If366626b386c592a0b780692a951b27a3e5cdbe5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125538 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-19Use M_PI* instead of F_PI*Mike Kaganski
Change-Id: Ie2b7a1c74fc516781a17a20157b8217bc41e383d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125504 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-18drop unnecessary TODOCaolán McNamara
Change-Id: Id906f7a6bf806d5c102f8653b1174aaa47e8bb7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125488 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-18uitest: sc: remove duplicated test with the same nameXisco Fauli
In the file, there are two test_tdf91305_sort_text_cells_rows so this one is never executed. Just remove it because it's quite a basic test Change-Id: I255b4202359e20744845fbdcbf963e74b9ee0710 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125490 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-18tdf#76836: sc_ucalc: Add unittestXisco Fauli
Change-Id: I62d4325dcaee19188529bb749801dc945c060572 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125487 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-18when color menu popdowns only popdown the autofilter if something was selectedCaolán McNamara
so the color menu can be dismissed without dismissing the autofilter Change-Id: Idb44f40a599382f86ffa9519910c37e64a56820c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125439 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-18resave with latest gladeCaolán McNamara
Change-Id: I151ae11d722881b21aeb9b88716c8be963e43056 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125476 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>