Age | Commit message (Collapse) | Author | Files | Lines |
|
Replacing a grouped formula cell with a different content may lead to
the remaining cells of the group not being recalculated if they listen
to a range that contains the current position. For example
A1: 1
A2: =SUM($A$1:$A1) => 1
A3: =SUM($A$1:$A2) => 2
Enter 2 in A2 => A3 should be 3 but is not recalculated.
Loading http://bugs.documentfoundation.org/attachment.cgi?id=122714 of
tdf#97897 exhibits that behavior.
Change-Id: I10b91e77549a7534143be3d6e3cc03026cdaa764
(cherry picked from commit ce28d83912d14bc81c455af64893842de78a8c8d)
Reviewed-on: https://gerrit.libreoffice.org/23856
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
As with ce28d83912d14bc81c455af64893842de78a8c8d
Change-Id: I7cd30509138368d73b43c82d71d520d55417d416
(cherry picked from commit b6ba851c02570c17e0484c94065a2e72c5675e58)
Reviewed-on: https://gerrit.libreoffice.org/23870
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
... which consist of only C4 or C[3] without a range operator.
Change-Id: I1865f0ec4c4fec1101b93b6b40d6f26871a65f07
(cherry picked from commit 3c36ba50f65d663f35264f2a11c99c0ff98674a2)
Reviewed-on: https://gerrit.libreoffice.org/23843
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: Ifbc02304f5a2e080db2d6645e2c7f825a2c56cb5
Reviewed-on: https://gerrit.libreoffice.org/23473
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
In ScColumn::GetNeededSize the memory pointed by rOptions.pPattern is freed and
new value is set again in ScFormulaCell::InterpretTail function in pDocument->SetNumberFormat
when pDocument->GetCondResult is called in column2.cxx:130.For fix setting the newly calculated
ScPatternAttr* value after the GetCondResult call.
Change-Id: I045404465b6dfa561b0821bb3b1875463aa7887a
Reviewed-on: https://gerrit.libreoffice.org/23688
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 99bf0b931401f556033f67297aa9783c4cf19b00)
Reviewed-on: https://gerrit.libreoffice.org/23709
|
|
(cherry picked from commit d6b32653ad34f0879ad1ada421a3a2655dd766e1)
Backported.
Change-Id: I78812c2d6fdb3464ccc2ebeee901a76f675effa4
Reviewed-on: https://gerrit.libreoffice.org/23437
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
If a formula cell group was split during deletion and the group also
listened into the range where a cell was deleted, the group wasn't
notified of the deletion.
Change-Id: I858f5d4c0b647636611133fc32f3df7fbdaf7288
(cherry picked from commit 164419bfe6270015ccf94183c0b6273da7730391)
Reviewed-on: https://gerrit.libreoffice.org/22784
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
ScRangeName::insert() assigns an index only if the passed ScRangeData
instance's index was 0. Duplicating an ScRangeData object duplicates
also the index, so effectively two instances with the same index could
be inserted to the named expressions collection, a following
ScRangeName::findByIndex() retrieved one of them by chance.
Change-Id: Ic141ffb1a683bda5907f4359167da84faf1649e1
(cherry picked from commit 336d816176650726f6d14539464d9fd28ddd032d)
Reviewed-on: https://gerrit.libreoffice.org/23324
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
... same as for ScFormulaCell::InterpretTail()
Change-Id: I444f259fe4e86ed0638a04f1b5d9272edd182e2e
(cherry picked from commit 29ee431c1cf859c3d5a5041cff5cb04b89db27a0)
Reviewed-on: https://gerrit.libreoffice.org/23280
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
For the early bail out on errors to work correctly and not prematurely
end calculations the current error function needs to be stacked in
JumpMatrix context, otherwise we may end up with
((nErrorFunction=74)>=(nErrorFunctionCount=2)) or some such..
(cherry picked from commit 62b40429946c0e5021912072dc79a60fc11fce06)
Change-Id: I3559e15180694961585db92f6aa98a46430ae372
Reviewed-on: https://gerrit.libreoffice.org/23091
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Backport of b2f5336b08b5f638f890a626eb2aeefaf499a79b
Change-Id: I04ef53b8880243b3548e1b7fd926690dcb4a2137
Reviewed-on: https://gerrit.libreoffice.org/22846
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Attachment 123203 of tdf#98389 has external references of the form
[1]Data!$1:$1048576
which effectively address the entire cell range of sheet Data and
allocating a matrix for a billion cells attempted to allocate 8GB+xGB of
memory which the system said no-no ...
Some brave soul along the road once decided that a check on the number
of elements wasn't needed anymore and dared to remove it during
refactoring.. This change reintroduces the check and adds it also to
other places that try to instanciate or resize a matrix.
When allocation of a matrix for an external range reference fails it is
checked whether the request is for such nasty entire rows or entire
columns ranges and if so tries to shrink the range to the actual data
area used, which at least in this case helps and works.
Additionally it fixes a long standing bug in the cached area to array
mapping which caused the cache to not be hit but instead the matrix was
aquired over and over again for the same range, causing a serious
performance bottle neck specifically for VLOOKUP and related functions
where the same external range is used in a lot of cells.
(cherry picked from commit 9e60bbdb3aa5f80ca80c9c4fdf7accd12c4a5d1c)
Change in convertToTokenArray() backported to older code flow.
disable means Enable(false), not true.. tdf#98389 related
EnableAdjustHeight(true) lead to the side effect that when clearing the
range of a pivot table during import, formulas in the same rows were
recalculated with then empty data. Through xSheetOp->clearContents() in
PivotTable::finalizeImport() of
sc/source/filter/oox/pivottablebuffer.cxx
In the case of the bugdoc attached to tdf#98389 that lead to all
VLOOKUP() calls resulting in #N/A errors because an empty string was
looked up.
(cherry picked from commit 088ba465d6bb0931c7034d564a3077e21078cb13)
e629ce871d255cc871671165c4da974f21041cec
Backported to ScMatrix implementation of 5-0.
setCellRangeData: check matrix size before operating, tdf#98389 follow-up
Now that we can have the one element error matrix we can't blindly call
ExecuteOperation() on it that would access elements out of bounds.
(cherry picked from commit 9cae3a88587deaf22ee83b2e36487013a1220a3b)
Backported to older code flow.
b6e5525f685c9324235f128a943dd716ea7a3fca
Change-Id: I35f67b48e665bf1cc8d672325c32b889f2e05c57
Reviewed-on: https://gerrit.libreoffice.org/23003
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Fixes the VLOOKUP problem reported in tdf#94540 by falling back to
non-OpenCL for such a case, where one of the columns passed to the
VLOOKUP contained strings. And since a while, we don't claim to handle
strings in VLOOKUP. Which is true.
(cherry picked from commit 476bef70f1d9fd58b29a1f6fb95e54567b031acf)
Change-Id: I4140c86bf8166beb8201aa90c075d9f4432d9173
Reviewed-on: https://gerrit.libreoffice.org/21874
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
(cherry picked from commit 02e69f0c3acec2c2e81692bc53c4356591a84ba5)
Conflicts:
sc/source/core/tool/token.cxx
Change-Id: I8cd00494fc63124443fc01582296ef17f4cd5e27
Reviewed-on: https://gerrit.libreoffice.org/21821
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I6e813b7525a3d9b1db131db9f08fc20f7320345f
Reviewed-on: https://gerrit.libreoffice.org/21661
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
(cherry picked from commit 208883398dcf9af6b88611097d1f75d5fbc9afad)
Reviewed-on: https://gerrit.libreoffice.org/21792
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
|
|
Change-Id: Ib9f9ed627dc37b11d8c3911aa4fe62141ff471c2
Reviewed-on: https://gerrit.libreoffice.org/21723
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
(cherry picked from commit a0a4ea3c636fc18cca6a3b2f9391996fb909e81f)
Reviewed-on: https://gerrit.libreoffice.org/21731
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Loading ISOWEEKNUM(date) maps to WEEKNUM(date) so accept the actual
ISOWEEKNUM parameter count defined in ODFF. This also ensures forward
compatibility with 5.1 where 3e5deb8ccfaf0b73fb6cf394822e560dc036a686
(cherry picked from commit 15494f0f99d1cf6f75e8c2996377b242af247bbf)
converts ISOWEEKNUM(date,mode) to real ISOWEEKNUM(date) if mode!=1 as
there is no matching WEEKNUM(date,mode) defined. This WEEKNUM here never
implemented the ODFF WEEKNUM but a mix of ISOWEEKNUM and something
undefined different.
Change-Id: Ibd0d4483486a1db28cc600821baae9f13b9dd687
Reviewed-on: https://gerrit.libreoffice.org/21118
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
skipping splitFormulaCellGroup() and joinFormulaCellAbove() for nEndRow equal
to MAXROW since nEndRow + 1 is not valid
Change-Id: Iabfcb33bf58d20331841ca386cca4a91fd6598bf
Reviewed-on: https://gerrit.libreoffice.org/21389
Reviewed-by: jan iversen <jani@documentfoundation.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 975ceab198a06558875006bbd9a4d0a2708e416e)
Reviewed-on: https://gerrit.libreoffice.org/21393
|
|
... if literal strings are copied with formula expression tokens.
(cherry picked from commit dad412e07f805a53ad73ce2e80d187a70c77e8de)
Conflicts:
include/formula/token.hxx
Change-Id: I13526907bb6c2c605c6ed9584fa6e3f2b18623b8
Reviewed-on: https://gerrit.libreoffice.org/20731
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
bAll (ie "Find All") seems a little tricky for GetBackward but not for GetRowDirection method
Change-Id: I47d2b378fb493bcdc1ad30902a3a677eedc50789
Reviewed-on: https://gerrit.libreoffice.org/20067
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
(cherry picked from commit 71f0e4e5e2efee05bccf13698752e84f5059db5f)
Reviewed-on: https://gerrit.libreoffice.org/20105
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
|
|
(cherry picked from commit d46203b55d92185ab2c1d3ac79761100d26aaee3)
Conflicts:
sc/source/core/data/formulacell.cxx
Change-Id: I17283fc5e39da2d7222c302dd63522df69d0ad96
Reviewed-on: https://gerrit.libreoffice.org/20328
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Reviewed-on: https://gerrit.libreoffice.org/18792
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 5ba0f79e246ea970d16f366640c2ccd87e1d8786)
Backported to 5-0 replacing the interim forward compatibility of
4a33435137e4d9fb7a85c527a37edc6780170d9a
Change-Id: Ic053342fde436a7053c15e32683e09b9e91f5308
Signed-off-by: Eike Rathke <erack@redhat.com>
|
|
Regression of b5cd11b4b02a85a83db77ba9d8d1763f0cd88cb1
It was always wrong to propagate ForceArray already if a function had a
ForceArray parameter *somewhere*, we need to do this per parameter
instead.
(cherry picked from commit 49257e1da7e371fdea0fac080116b0511789cac7)
Conflicts:
formula/source/core/api/FormulaCompiler.cxx
prevent ForceArray propagation on the same token, tdf#95670 follow-up
This may happen if the last RPN token is put and the function has a
ForceArray parameter but now again would be wrong if not all parameters
are ForceArray.
(cherry picked from commit b31b17e52b2b2b94999d68c4b2ed5c74ee7eed0a)
890fb6b5b88337033cfcf2e8189371ee39461205
-Werror,-Winconsistent-missing-override
(cherry picked from commit 6edc492efd6fe2de15c1ae306b400ca054772ad1)
Backported to SAL_OVERRIDE
3bb2764b625d44f6e0cecbdde3363440faef63b5
Change-Id: If188d45366279d9a7bf641edc7e4dd7095d6d035
Reviewed-on: https://gerrit.libreoffice.org/19993
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
also tdf#95419
... and not already if the function has a (ReferenceOr)ForceArray type
parameter somewhere else in the parameter list.
Regression triggered by commit 01eea7fe40c939311bf1920b6e8b4391a93c2e82
for MATCH, HLOOKUP and VLOOKUP first parameter, but behavior already
present since OOo for LOOKUP; FORECAST in its first parameter, PROB,
LINEST, LOGEST and TTEST in the last two parameters.
Change-Id: I4a30ea3362f86274a048b0e3f47fa12da3001a3a
(cherry picked from commit b5cd11b4b02a85a83db77ba9d8d1763f0cd88cb1)
Reviewed-on: https://gerrit.libreoffice.org/19659
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
|
|
MDETERM uses lcl_LUP_decompose() which as the name suggests does LUP decomposition.
This patch allows additive cancellations to occur in a cleaner way while doing the *only*
additive operation in LUP decomposition, that is while computing Shur complement.
This patch does not change the high level semantics of the algorithm.
Also note that this change makes improvement only in the case where matrix elements entered
by the user are *integers*. The change allows MDETERM to evaluate to exact 0.0 for
singular integer matrices.
The steps to calculate Shur complement are :
for i = k+1 to n
aik = aik / akk;
for j = k+1 to n
aij = aij - akj*aik
This is now modified as :
for i = k+1 to n
for j = k+1 to n
aij = ( aij*akk - akj*aik ) / akk
Without this change MDETERM() for certain singular matrices used to evaluate to a tiny non zero value,
which also caused MINVERSE() to generate a wrong output.
An example of such a matrix is :
1 2 3
4 5 6
7 8 9
Change-Id: Idd4211ddceab1b758fd05bfd57f7eecd5d4fd1a0
Reviewed-on: https://gerrit.libreoffice.org/19534
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit e1e73a97b20af862f2fb914cb16a4f74c3ad31cb)
Reviewed-on: https://gerrit.libreoffice.org/19578
|
|
... also in arithmetic matrix operations.
(combination of 4 commits):
move ConvertStringToValue() implementation from ScInterpreter to ScGlobal
In preparation of matrix calculations to use string conversion
configuration and UI markers for cells containing strings that could be
numeric values.
Change-Id: Ifa9e45853dded249fa741c050ae1f106365f99ea
(cherry picked from commit 329496c1f75f97d2e6119ceb214a2ea1fbadb17a)
add half decoupled ScInterpreter::ConvertStringToValue()
... for back calls of ScMatrix in preparation of tdf#91453
Change-Id: Ife94d1675c1bc7c5611586e3f352ff69264469d7
(cherry picked from commit 6516d5e299bdf0e7aa03d1004763f6d10db48546)
Resolves: tdf#91453 use configuration of text to number conversion
... also in arithmetic matrix operations.
Change-Id: Ia00054d0af383e225d9d40b59da2dc28a817b65a
(cherry picked from commit 466a20ef07f36d50a73a18ab119b3cc18b4babf4)
Resolves: tdf#91453 use configuration of text to number conversion
... also in arithmetic matrix operations if both operands are matrix.
Change-Id: I84609656b166b4e059d9496a5ed732a96e731164
(cherry picked from commit 778d03b59c62d21fd171b81c9fab3ba8496e319d)
Reviewed-on: https://gerrit.libreoffice.org/19172
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I059248659f51746cfc1d06faeaadaf3d645c03d3
(cherry picked from commit 968e2faff6d4283dacd9010d31cb4c0df45eb7c5)
Reviewed-on: https://gerrit.libreoffice.org/19519
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Used the same style as existing code, added a new virtual isMinOrMax()
and add some special casing in Reduction::GenSlidingWindowFunction(),
and fsim_count() and fmax_count() functions that count how many
non-NaN numbers we actually see. As such, I am not sure at all that
this is an ideal way to do this, but will have to do for now.
Change-Id: I846a8d24f4563f8fae1a45971a4ce202ed918487
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Change-Id: If7326fd1242d90ff92e62d141714960476198605
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Not sure why the code from f5e7207053b857b6903a0ab9c161bed9ad7bcee9
did not produce correct results any longer. Anyway, now OpenCL
division works right in case of empty or zero cells.
Clearly I need to add unit tests to make sure this stuff keeps
working. In later commits.
Change-Id: I93b787ad5da453af1601768308fb614a332ed142
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
|
|
We get correct result by simplifying the code;)
No need to have the outer "if (gid0 < X)" test around the calculation
code generated by Reduction::GenSlidingWindowFunction(). The lhs and
rhs check the gid0 range themselves and that leads to the desired
result for subtraction.
While fixing this I noticed that the handling of empty cells in
division is also wrong. Will fix in another commit.
Change-Id: Ia45bd81e692a17b0453cc79cd4673a00e119562a
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
|
|
... needed since we accept A:A entire column notation without the need
of a row number being specified.
Change-Id: I84f6a39e213a4b554e0188e73b4acb34c7a98460
(cherry picked from commit 14bb562b4a8776974391641adcc62ded013ffd2f)
Reviewed-on: https://gerrit.libreoffice.org/19359
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
those whose string ref syntax is unknown or can't be guessed i.e.
don't use it for new documents (prefer user settings in that case)
Conflicts:
sc/qa/unit/subsequent_export-test.cxx
Change-Id: I1355031cdd63e2a5c50064531011be71ae7f7b8f
Reviewed-on: https://gerrit.libreoffice.org/19244
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
|
|
integralPhi is called with nan(0xfffff000001f6)
which recurses through rtl_math_erfc->rtl_math_erf->rtl_math_erfc
until we run out of stack
Change-Id: Iab8a22fb23686d22d151f2508dbeb44ab47a76b7
(cherry picked from commit d2a07cd3214af27c5af601992e3c4a1a6e3b3dad)
Reviewed-on: https://gerrit.libreoffice.org/19282
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
|
|
so it happily passes the pre-cast string bounds check and blows
up in the post-cast string access
Change-Id: Ifd4d087b37e8a84d886e2f7833dfc773b8bf1343
(cherry picked from commit 5d826db15beaff4f0930724431d34f7103111591)
Reviewed-on: https://gerrit.libreoffice.org/19280
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
value"
This reverts commit bfd51e38599d717a3c1b19acd882b52175dd3d09.
Calculating with NaN cries for even more problems..
Change-Id: Ie1b7cddc4f157859ee3087b0eadb3a082672a1c7
Reviewed-on: https://gerrit.libreoffice.org/19286
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
|
|
Change-Id: I6bd82191ef7c5bb2c7829daf341d360c6d09c11b
(cherry picked from commit f3dfab0c23bde81a00fa2f16cf4d96c8809e5045)
Reviewed-on: https://gerrit.libreoffice.org/19237
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
... if any operation like popping a value or calculating an intersection
resulted in error, so the error gets passed as double error to matrix
operations where one operand is a scalar value.
Change-Id: I909ba25545625b827ce790e07d1ebe8643154703
(cherry picked from commit 934e47958c78d1184beaaefdf3baefd3eecbea05)
Reviewed-on: https://gerrit.libreoffice.org/19235
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
We will return false if any of the tests here match, so good to test
the trivial things first before ones involving a potentially complex
function call.
Change-Id: I531282041c888799d37d95ae773daa349e60a37d
|
|
Auformat list (maData) is defined as "MapType" which itself is defined like this:
boost::ptr_map<OUString, ScAutoFormatData>
so default sorting is ascii
2 consequences:
1) Default didn't appear first
2) When adding a new autoformat entry when it was new first one of the list
wasn't saved because of iterator was incremented first before looping
See https://bugs.documentfoundation.org/show_bug.cgi?id=94173#c5
There were some other weird behaviors too according to comments of the bugtracker
Regression from http://cgit.freedesktop.org/libreoffice/core/commit/?id=72c1b6141d590fb4479925ed8bc88b79357c2bfc
Solution:
Add a Compare so Default entry is always first one so the first time incremented iterator is ok and
new entry (even if new first one in list) is saved
Thank you Markus for the idea! (I was lost in Compare syntax)
Reviewed-on: https://gerrit.libreoffice.org/18598
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
(cherry picked from commit 652158c3f2c9cd0d6f71ecd14bf5d5cc02a71b50)
use collator for UI visible sorting, tdf#94173 follow-up
(cherry picked from commit a71febc99d2cfc2fe51dec8c0bca5d84d8577168)
b9f7ebb087c1ce5008f43b2df3f1fadc41066ed1
Change-Id: I9ba0cdc63c66b747db102bb661cd09fbfe5996ae
Reviewed-on: https://gerrit.libreoffice.org/19029
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
|
|
editeng uses special control characters (apparently 0x01) that need to
be translated by editeng to the real characters. Let EditEngine handle
the conversion from editeng string to OUString.
Change-Id: If5014e1ada7f1df933a084b17bb307035ce01cc6
Reviewed-on: https://gerrit.libreoffice.org/19065
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
provide forward compatibility for name change of FINV
Reviewed-on: https://gerrit.libreoffice.org/18814
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
(cherry picked from commit 2cc040878ce816b0353224910333e33a20983359)
Conflicts:
sc/source/core/tool/compiler.cxx
Change-Id: I0afd2555be94c452172e5a357f2f0897be381863
Reviewed-on: https://gerrit.libreoffice.org/18909
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
|
|
... if more than one argument is passed to PRODUCT() or SUMSQ() and
matrix/array arguments are involved the functions returned wrong
results.
For example, wrong behavior
=PRODUCT({2,3},{4,5}) gave 6
=SUMSQ({2,3},{4,5}) gave 34
Correct is
=PRODUCT({2,3},{4,5}) result 120
=SUMSQ({2,3},{4,5}) result 54
Change-Id: Iec7b136a5cc678416f28b1abfe19cd0901ef22b6
(cherry picked from commit c1780ad265ce5f6abb3b91a4f70bf2b3d7a47149)
Reviewed-on: https://gerrit.libreoffice.org/18864
Reviewed-by: Łukasz Hryniuk <lukasz.hryniuk@wp.pl>
Tested-by: Łukasz Hryniuk <lukasz.hryniuk@wp.pl>
|
|
EndListeningContext holds BroadcasterStoreType iterators in its
ColumnBlockPositionSet and collects broadcasters to purge them at the
end. Removing broadcasters from ScColumn::maBroadcasters in between
invalidates the iterators. Hence calling the "normal" EndListening()
that removes a broadcaster when all listeners are gone while an
EndListeningContext is in use is bad.
Change-Id: Ibdd88469e91e6173ceff1f391c23ef7cb7c6f596
(cherry picked from commit e4a8ae0bf54476e9a0c9e1f5348c05f3cd838899)
Reviewed-on: https://gerrit.libreoffice.org/18615
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
It is not sufficient to collect the cells, one has to broadcast on the
collection.
Change-Id: I11f889936aff43f958c56789e539809289819752
(cherry picked from commit 97ad6393525a928b5dfe2a6562d7604446da7af0)
Reviewed-on: https://gerrit.libreoffice.org/18573
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
|
|
Will make it less demanding on low-end hardware, where the device
driver is unresponsive for too long when a OpenCL kernel handling lots
of data is executing. This makes Windows restart it which is
problematic.
I tried several approaches of splitting, both at higher levels in sc
and at the lowest level just before creating and executing the OpenCL
kernel(s). This seems to be the most minimal and local approach. Doing
it at the lower level would have required too much poking into our
obscure OpenCL code, like passing an offset parameter to every kernel.
Use a simple heuristic to find out whether to split. On the
problematic low-end devices, CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT is
4, while for more performant devices it is 1 or 8.
Change-Id: If16d152710057b34d09ef0203960e1fbb9ac067f
Reviewed-on: https://gerrit.libreoffice.org/18613
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
in Calc functions NETWORKDAYS and WORKDAY.INTL
Change-Id: I2d42ab956e4ab9f2187a0c6bc3c64c9306ca892a
Reviewed-on: https://gerrit.libreoffice.org/18559
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 75bde904d5b4f756037889f2b2ddee3e34dd81b8)
Reviewed-on: https://gerrit.libreoffice.org/18595
|
|
Drag&Drop Undo is a special case of ownership..
Change-Id: I2fe7769c4d84efe09d432335d5d8e72d506bf7a1
(cherry picked from commit 44f34c1163882c2e3086282374fee9cd55ee211f)
Reviewed-on: https://gerrit.libreoffice.org/18470
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Treat an array of null string pointers as no strings for OpenCL. For
some reason, at least in the case of the "Test OpenCL" thing, we got
an mpStringArray that is non-null but where all the elements
(rtl_uString pointers) in it are null. Treat that case as if the
mpStringArray was null.
This makes the tests "Test OpenCL" actually use OpenCL. Maybe it has other
useful effects, too. (But for normal spreadsheet use, the mpStringArray that
gets handled here *is* null when all the cells used by a formula group are
numbers. At least it seemed so in a simple test.)
Add a few more useful (?) SAL_INFO calls.
Some cosmetic changes to make the code look saner.
Return correct value from the OpenCL VLOOKUP implementation. Also,
when the lookup fails, produce the expected N/A error code instead of
a bare NaN.
Don't claim we support strings arguments in the OpenCL VLOOKUP. The
string support certainly isn't complete or correct anyway. Partially
revert c3383aafa18ef9d03b04b2a4719e71fdfabc14eb.
Add VLOOKUP to the set of opcodes that we trust the OpenCL
implementation for.
(cherry picked from commit 7e91726f4d81f0ab27d79ee231abd666b4999758)
(cherry picked from commit d4310b6cd8a367666cc702c3e47cf12a35407ef7)
(cherry picked from commit 32b35d9d8a21091b987d94fc2ad24d69e9d8a6f3)
(cherry picked from commit 41a6094095a0cd42f24eb996c7ec8c28ab9d6c1a)
(cherry picked from commit 162264450cb62177ea133829d081fecdb02136b5)
(cherry picked from commit 7bb7539c0e34283baeaacf7e4ff0b19287afadc2)
Change-Id: I5402732c9ddcac1efcc25960a5c46175d7a90b4d
Reviewed-on: https://gerrit.libreoffice.org/18022
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
|
|
For example, "B2:" or ":B2" were accepted as valid range, with the
missing part set to A1, which resulted in a A1:B2 range.
An omitted sheet specifier always results in a valid relative sheet,
hence that flag is set, so testing flags for non-null before the final
result is available isn't sufficient.
Additionally this revealed a flaw in handling of external references
when loading documents if the original file name differs from the
resulting real file name due to relative paths.
Actually now the displayed file name matches the real file name when
such a document was loaded, where before the original file name was
displayed.
Probably such references didn't even work before if the reference
spanned more than one sheet, which is a rather rare case for external
references.
Change-Id: I38035f2e4b3a11c0280457498cf62b02f882d2a1
(cherry picked from commit 56238d58a7da705e4e91604964e6564d819a9196)
Reviewed-on: https://gerrit.libreoffice.org/18035
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|