summaryrefslogtreecommitdiff
path: root/include/formula
AgeCommit message (Collapse)Author
2023-09-23tdf#146619 Recheck include/[e-j]* with IWYUGabor Kelemen
Change-Id: I705becd4618989ca274ca8c42eeff3bc18a4ae76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156986 Tested-by: Jenkins Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
2023-04-02Avoid conversions between OUString and OString in VCLMike Kaganski
Standardize on OUString, which is the main internal string class. Convert from/to OUString only when communicating with respective external APIs. Removes about 200 conversions from the code. Change-Id: I96ecee7c6fd271bb76639220e96d69d2964bed26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149930 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-02-27can use a reference instead of a pointerCaolán McNamara
Change-Id: I770983c2a46c2181db80243efa7c926e356d5e6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147745 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-02-26no need to hold SvtSysLocale by std::unique_ptrNoel Grandin
allocate it inline, it is only one pointer in size Change-Id: I736f3322784897054993fbddd423f36357f817c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147741 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-02-23Resolves: tdf#153767 Try harder to import OOXML bool shared formula resultEike Rathke
... by setting the result value or if necessary recalculating even if AutoCalc is turned off for the document. Similar for other implicitly recalculating formula types. Also set a boolean number format if none. Change-Id: I2f75735707180eccf4b2c525738ac0b763901230 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147425 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2023-01-01Resolves: tdf#151886 Use default locale with English function names againEike Rathke
Automatically switching to en-US locale when using English function names caused too much confusion. There also might be the possibility that the '.' dot decimal separator clashes with the inline array column separator in some locales. A proper solution would make this user-specified and if set also adjust the separators to the common English ones. For now keep the default locale again as it previously was the case. Change-Id: Ic4712c6609c14f35cf0d1d842ac7443806a6e115 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144924 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-09-28use more string_view in formulaNoel Grandin
Change-Id: I3d9feafb0e2010f284a1700becbe9b701edc9849 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140697 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-01Related: tdf#142293 Introduce a protected FormulaCompiler::GetFinalOpCodeMap()Eike Rathke
... to prepare having GetOpCodeMap() return a temporary if a final doesn't exist yet. Currently just an alias. Change-Id: I6fc100ae6223010e149e4af01fc7c17630930de7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139162 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-08-06Related: tdf#135993 Destroy temporary OpCodeMap when reading configEike Rathke
Initialized at FormulaCompiler base class instance it lacks AddIn mapping and a still existing OpCodeMap prevents necessary reinitialization from derived ScCompiler instance later. Change-Id: I0c2db41dd45829abfb8460730264f097ab76ab2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137881 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2022-06-23clang-tidy modernize-pass-by-value in formulaNoel Grandin
Change-Id: I275f96bb8b24838538ac88532508ad7dbd127eae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136271 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-18Related: tdf#142293 tdf#141495 Allow additional symbols in externals mapEike Rathke
... to repair broken saved as Excel documents with saved Add-In programmatic names, by adding them as upper-cased symbols. Previously, adding such name was rejected if the Add-In already existed in the reverse map. Now multiple one-way aliases are accepted. The upper-case programmatic name was already attempted to be added for all Add-Ins of the collection (for the non-UI case via fillFromAddInCollectionUpperName()) but the pre-known Add-Ins are mapped before so existed already and those names were rejected, as they shouldn't be necessary. Except for broken documents.. Change-Id: I3cb6848779362de3446581528d2f6e6f19af9ec8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136072 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-06-02Resolves: tdf#149378 Force array input if outer function returns array/matrixEike Rathke
So the result will actually display as full matrix, or in the cell range marked prior to input, instead of just the top left element in one cell, without having to close the input with Shift+Ctrl+Enter to force array mode. The previous behaviour can be forced by pre-selecting/marking one cell, which also worked previously when closing as array input. Change-Id: I81c079ce02e0c8d0536617ca6882fb470a352441 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135278 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-03-14new loplugin:trivialconstructorNoel Grandin
Change-Id: Iaaf63c49ce94987ab9c4ebc68e963cc3054a3c34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131342 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-20Fix typoAndrea Gelmini
Thanks a lot to Valter Mura: https://listarchives.libreoffice.org/global/l10n/2022/msg00005.html Change-Id: I37467e1b9ba7cba2553be5df0d8324da8fe6c13b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128303 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-12-20Recheck include/[e-r]* with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: I44e4e3a88067c1c29ce9d563b22741e984b43576 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126964 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-11-04use more DECL_DLLPRIVATE_LINKNoel Grandin
to avoid unnecessarily exporting symbols Change-Id: I4c9c7c86f288ba9655a8b919387e30f3096ccfb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124667 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-11loplugin:moveparam in formulaNoel Grandin
Change-Id: I358f5e8031c235be76bb96591bf33f59a39b00ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123350 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-15loplugin:finalclassesNoel Grandin
Change-Id: I88831f290e1923db6fb5a733746bfa3bc7fbc7e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122148 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-04store ScTokenArray by value in SharedFormulaBufferNoel Grandin
Change-Id: Ibff3c2fea3cadc234266953ab15ae5f25c4ac1e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121626 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-28Resolves: tdf#76310 Preserve whitespace TAB, CR, LF in formula expressionsEike Rathke
Allowed whitespace in ODFF and OOXML are U+0020 SPACE U+0009 CHARACTER TABULATION U+000A LINE FEED U+000D CARRIAGE RETURN Line feed and carriage return look a bit funny in the Function Wizard if part of a function's argument but work. Once a formula is edited, CR are converted to LF though, probably already in EditEngine, didn't investigate. Change-Id: I6278f6be48872e0710a3d74212db391dda249ed2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119635 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-07-26Related: tdf#64086 Add FormulaGrammar::isRefConventionOOXML()Eike Rathke
... to prepare detailed compiler scanner handling. Change-Id: I4a50491b4fa95516773adbd7b86e91ab121b1820 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119517 Tested-by: Eike Rathke <erack@redhat.com> Reviewed-by: Eike Rathke <erack@redhat.com>
2021-06-30Purge out rtl::math::setNanBaiXiaochun
Change-Id: If8794c105e279afd4437517d3e61f2f900eb6490 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118123 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-04-23undo blocking emitting focus events during grab_focusCaolán McNamara
revert... commit f97dbac73fe149e8fed0932890d0c1d6be4869a3 Author: Caolán McNamara <caolanm@redhat.com> Date: Wed Jun 26 21:00:02 2019 +0100 infinite focus changing in toc biblio page which blocked calling focus-changed callbacks when grab_focus is called explicitly analogous to how we block value-changed callbacks setting values through code but don't block them when the value is changed by user interaction. In retrospect that was a poor choice, so revert that and subsequent workarounds in favour of just not calling gtk_grab_focus if the widget already has focus. checked: a) tdf#138427 focus set to wrong input box b) tdf#138078 only call GetFocus if we gained focus from an unfocused state c) tdf#137993 ensure the toplevel vcl::Window is activated d) tdf#136941 call focus in handler explicitly Change-Id: I411480e2d627aa9995fb41b0aa17e9fb6d34d73f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114524 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-09Recheck include/ with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: Ifc253bf800bb1468b5774663a93f4fb30bec81d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113657 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-18move async focus-in/focus-out workaround to known client that needs itCaolán McNamara
and for the normal case process immediately. Use-case is the bibliography editor, modified uncommitted entry, click in browser column margin area to select a new row, the entry should commit its old contents to the old row before filling from the new row Change-Id: Ib41d96afcfa86bcd1075b9512d4cfab593afa66d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111152 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-25tdf#92456 improve VLOOKUP perfNoel Grandin
shave 5% of the time here - ref-counting triggered by copying svl::SharedString is significant, so return by const& instead of by value Change-Id: Ic702632da45d75dddab33d6ce1e6f1097ff70de9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109900 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-14tdf#133858 reduce the double-ref range to data contentDennis Francis
in certain matrix formulas like SUM(IF(A1=G:G, H:H)*B1/B2) where whole columns are used for comparison in the condition of IF ultimately followed by a reducer like SUM. In such cases we can safely reduce the double-refs involved in the comparison to the sheet area where there is data before converting the data to ScMatrix. This is a more restricted version of Noel's fix in 37ffe509ef011357123642577c04ff296d59ce68 Change-Id: I1c2e8985adedb3f4c4648f541fb0e8e7d0fae033 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109050 Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 65167a9265acfea04733b5ff6ee3220a9da624f4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109118 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
2020-12-02tdf#138427 focus set to wrong input boxCaolán McNamara
Change-Id: I4c1d3aa720f280f0ec1a3764d55f1d95ebd3180d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106999 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-02move the callbacks to be privateCaolán McNamara
Change-Id: I75a786d379ce1ea80acef90b9574d2901e046f3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106993 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-21tdf#123936 Formatting files in module include with clang-formatPhilipp Hofer
Change-Id: I0507dd797cd5a35e0ae14f4b69ee4e172d08a71a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105681 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2020-10-14Derive FormulaExternalToken from FormulaByteToken, tdf#133260 follow-upEike Rathke
This should always have had a ParamClass member variable and SetInForceArray()/GetInForceArray() functions but never did. Now with commit 3a33828b8de7554e497051738c722b1764960a86 CommitDate: Tue Oct 13 21:36:31 2020 +0200 Resolves: tdf#133260 Propagate ForceArrayReturn from inline arrays it broke CppunitTest_sc_subsequent_filters_test with the virtual dummy assert() in FormulaToken::SetInForceArray(). Unfortunately not caught earlier but at least it did now. Remove the duplicated FormulaToken overrides and simply derive from FormulaByteToken instead that has all we need. Change-Id: I7946602955970fb9d6f349efdacb41389e211b68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104262 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-07-13tdf#42949 Fix IWYU warnings in include/[a-r]*/*hxxGabor Kelemen
Recheck after 7-0 branchoff Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I7f5c35474b671facbda85a9538462dd4291add91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97655 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-07-07formula: create instances with uno constructorsNoel Grandin
See tdf#74608 for motivation Change-Id: I5983c837977e40b91df02605c1012640ffd5c650 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98291 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-29Related: tdf#131423 CHOOSE() supports only 30 jump targets, limit in dialogEike Rathke
Change-Id: Ic3506ee6194ac4e74e572a10db96f100bc9e6ac2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95149 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-05-29improve pahole script and pack a few classesNoel Grandin
(*) fix: I was substracting the padding space instead of adding it when calculating how much free space we had to improve. (*) sort input data, so we process structs located in the same DSO together, which reduces GDB's memory usage (*) handle another error condition, where gdbs output is sufficiently mixed up that we miss the end of commands terminator Change-Id: Ic4bb92b736f38a2b3d90e4a14485152b7f869b43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95041 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-03use more compact namespace syntax in /includeNoel Grandin
excluding the UDK headers of course Change-Id: Iac7ab83d60265f7d362c860776f1de9d5e444ec0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93268 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-28Resolves: tdf#127831 implement RAND.NV() and RANDBETWEEN.NV() non-volatileEike Rathke
Same as RAND() and RANDBETWEEN() but not recalculating on every change, just the normal expression recalculation. Change-Id: I8ba7099125e487a78bd3d91db8b666c2f36b22fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92994 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2020-04-23Related tdf#131169: avoid magic numbersJulien Nabet
Change-Id: Ic82f214f22933e3c74b8b0fc4c6a25b19f103fa1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92735 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2020-03-31Resolves: tdf#131372 Write "error cell" formula to OOXMLEike Rathke
Change-Id: Iedbe0912ff28e6203bec0104c59b1102cf97daf9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91382 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-03-12tdf#130976 replace `rtl::math::isInf` with `std::inf`.Yukio Siraichi
Change-Id: Id0f0e07b324230d2d69cbf4ab07b0fff5b24474d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90377 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-03-12tdf#130977 replace `rtl::math::isFinite` with `std::isfinite`.Yukio Siraichi
- make all calls look like `std::isfinite`. - change the comments referring `rtl::math::isFinite`. Change-Id: I0cde9ceb9f20150467b454cddde5e62003cfde1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90234 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-11-20loplugin:unusedmethodsNoel Grandin
Remove a filtering step in the python script that was hiding some results Change-Id: Id94268f150902405ab197c077f18aaedf98845fc Reviewed-on: https://gerrit.libreoffice.org/83256 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-19up/down in ArgEdit doesn't do anythingCaolán McNamara
but it should cycle through the arguments Change-Id: Ifa398039e77d536a0df021b1a18e06d6df673980 Reviewed-on: https://gerrit.libreoffice.org/83192 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2019-10-29loplugin:finalclasses filter..frameworkNoel Grandin
Change-Id: Ic4d0a2946c925035d60defc4d25caea05535adbc Reviewed-on: https://gerrit.libreoffice.org/81654 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-17Pre-allocate an ScInterpreter object for each thread...Dennis Francis
and reuse them for interpret'ing all cells under the respective threads. This gives a sizeable win in the execution time especially for long formula-groups. Change-Id: Ib340950f21e863b5b821d20c092214d8bc5012aa Reviewed-on: https://gerrit.libreoffice.org/80845 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-09-04loplugin:constmethod in formulaNoel Grandin
Change-Id: Iae40405e7805b7c7ce3ce7f4b3653094fd49f396 Reviewed-on: https://gerrit.libreoffice.org/78564 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-02drop some unneeded includesCaolán McNamara
Change-Id: I13019ae1b991b5910c50e760a8a825bcf50509d2 Reviewed-on: https://gerrit.libreoffice.org/73321 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-05-13drop some more unneeded includesCaolán McNamara
Change-Id: Iec71ca870db5f6aaf317e23db369dfc1fa04bcc1 Reviewed-on: https://gerrit.libreoffice.org/72205 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-05-11remove unused RefEdit/RefButtonCaolán McNamara
and rename WeldRefEdit/WeldRefButton back Change-Id: I3aab8585d4ba1017cc755bf21e827522e7ee6980 Reviewed-on: https://gerrit.libreoffice.org/71957 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-05-09loplugin:unusedmethodsNoel Grandin
Change-Id: I7b4d2e5e611935284e2902b0089950768dfb7717 Reviewed-on: https://gerrit.libreoffice.org/72036 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>