summaryrefslogtreecommitdiff
path: root/sc/source
AgeCommit message (Collapse)Author
2020-06-23Resolves: tdf#126928 allow link updates in an intermediate linked documentEike Rathke
... if link updates are allowed in the current document and that intermediate document resides in a trusted location. This works with both, the "Always (from trusted locations)" and the "On request" settings under Tools -> Options -> Calc -> General. It can't work with documents residing in a non-trusted location as there is no way to allow updates on demand for a such loaded document (hidden via formulas). Reviewed-on: https://gerrit.libreoffice.org/77588 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 54bf84746a2a9a2e2aaf0df9e429b0cfd538f640) Reviewed-on: https://gerrit.libreoffice.org/77604 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 14825a8b7f00ee4c148f2583856e5102312cabbd) (cherry picked from commit f136b30fa3e991b780e4b1ed704d04256d0cfca0) Change-Id: Ie483f7743db7c6d5cf947dc16a9c3660855f3423
2019-09-27sc lok: Optimize invalidation triggered by ScTabView::TabChanged() methodTamás Zolnai
We don't need to invalidate all parts of the document. It's enough to invalidate only that sheet which we changed to. Reviewed-on: https://gerrit.libreoffice.org/79500 Tested-by: Jenkins Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit 96bd7504165f89ec5485d00a487e54634af347ce) Change-Id: I2c3aeb226c83bef473b0b33444b625e93d111b01 Reviewed-on: https://gerrit.libreoffice.org/79626 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-09-27lok: deduplicate code related to notifyDocumentSizeChanged() callTamás Zolnai
co-author: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/79498 Tested-by: Jenkins Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit e9260633df07b6796b19bc92523671cb345597a1) Change-Id: Ia4cef7b23fc682ec32aeb9be4dcdd582464c64e9 Reviewed-on: https://gerrit.libreoffice.org/79624 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-09-27sc lok: Optimize invalidation triggered by ScTabView::SetCursor() methodTamás Zolnai
Don't call a full invalidation, rather use invalidation only on the new area. Make sure that the invalidation is called first. Reviewed-on: https://gerrit.libreoffice.org/79497 Tested-by: Jenkins Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit db0e7e3715bdef7ad6c1f536e9cf1ea84773fbe8) Change-Id: Ibdcc71a81f852acbd40a710204540ebd8df77907 Reviewed-on: https://gerrit.libreoffice.org/79623 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-09-27sc lok: Optimize invalidation triggered by getRowColumnHeaders() methodTamás Zolnai
Don't call a full invalidation, rather use invalidation only on the new area. Make sure that the invalidation is called first. Reviewed-on: https://gerrit.libreoffice.org/79494 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit e740aaf876edd58c1f5c5e17af2495cad36cfc27) Change-Id: I89d1c6342ed8e95fe738a876a76ca6feda031962 Reviewed-on: https://gerrit.libreoffice.org/79620 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-09-27lok: send an invalidation by document size changeTamás Zolnai
It was sent by the kit code earlier. Now we move it to the LO core code, so we can optimize it later. co-author: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/79491 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit cd7ff1797d754018db1d47888781c9d7ecb24dcf) Change-Id: Id0a8991016dbe8d13891071e2d5b4c9250720da9 Reviewed-on: https://gerrit.libreoffice.org/79617 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-08-29sc: LOK: commit cell edits before saveascd-6.0-29-20190828Ashod Nakashian
Users typically don't recognize that changes done to a cell need to be committed (typically by hitting RETURN) before they are saved to file. This is especially true on the web. This patch commits any in-flight changes before SaveAs. This is currently done only for LOK and unconditionally at that. This can be controlled via a flag, if there is such a use-case. Change-Id: I2a88b2f1df47be764058f4505561b22830d9d67a Reviewed-on: https://gerrit.libreoffice.org/78012 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com> (cherry picked from commit cc7eb4d345e3fede698a3f255c1938d275305c14) Reviewed-on: https://gerrit.libreoffice.org/78149 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2019-08-21calc: simplify getDocumentSize calculation.Michael Meeks
Change-Id: Iee2ebf2c6ed74651556647264f519caa9c59dad7 Reviewed-on: https://gerrit.libreoffice.org/76558 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-07-16LOK: Emit the doc. modified state even when changing the cell inline.Jan Holesovsky
The "LOK: emit modified status on entering cell data" patch did this only for the formula input line, and did not change the state when the user just clicked on the cell and started modifying it; so this patch extends it. Also change the actual DocumentModified state of the document directly instead of just sending a flag, so that the state in LOOLWSD and in the core don't get out of sync. Change-Id: Ie516ce5a74d94247d79cf993517d7f4a6657cc94 Reviewed-on: https://gerrit.libreoffice.org/75710 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2019-07-15LOK: emit modified status on entering cell dataAshod Nakashian
Entering data into a cell without committing will normally not set the modified flag. However clients might want to know whether there is in-flight changes when they need to save the document. A possible scenario is that the user enters some cell data and then closes the window. Both WSD and the client app would here rely on the modified notification to decide whether to save the document or not. We do not change the document modified state, since that may be incorrect (in case the user actually cancel the cell entry), so we preserve that so future updates to the modified status would reflect the correct state of the file. Instead, we emit a client notification that the document has been modified, to signal them that saving is sensible. Note that ideally we would undo this when the user cancels the cell edit, but that would be complicated due to multi-editor scenarios. For example, another user might actually edit the document while we cancel our cell edit, and in this case we should not reset the modify flag. Since this is unreliable, we leave the flag set, unless the Core emits an update, which will surely be accurate. Change-Id: Id26aa6f8ce2c0a08f8bee6812fcf99275dc24551 Reviewed-on: https://gerrit.libreoffice.org/75513 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit 38b899312245758381fa72ad17c2d4c281edb1ba) Reviewed-on: https://gerrit.libreoffice.org/75626 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2019-05-03tdf#125086: Write dataField attribute for fields that also appear in DataMike Kaganski
Change-Id: Id9f8f07bfdb1060f0c3d7ed6f8526a6bfdd84eb4 Reviewed-on: https://gerrit.libreoffice.org/71687 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/71696 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-05-03tdf#125055: properly round fractions of secondsMike Kaganski
... so that 2017-07-10T09:11:02.999999... becomes 2017-07-10T09:11:03, not 2017-07-10T09:11:02. The latter created duplicated items in pivot table cache previously. TODO: check what to do if the times are actually different by 100 ns? What Excel does then? Should we increase cache item precision? Change-Id: I622d1c784ee9fddf6b387bec2d8af87bae5668ba Reviewed-on: https://gerrit.libreoffice.org/71610 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/71618 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-05-03tdf#125046: export longText attribute for sharedItems elementMike Kaganski
Change-Id: Id727f10763bc5017eeb3e267b425d6013786d6a2 Reviewed-on: https://gerrit.libreoffice.org/71585 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/71590 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-25sc lok: avoid save incorrect data, whether the pane has ...Henry Castro
horizontal / vertical splits In the tiled rendering case the horizontal / vertical splits were not implemented, so the leftmost visible column is 0. So preserve horizontal / vertical splits when saving the document Change-Id: I15b6f009910e51fdaf475de5aac1ebded16c1956 Reviewed-on: https://gerrit.libreoffice.org/69926 Tested-by: Jenkins Reviewed-by: Henry Castro <hcastro@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/70079 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2019-04-24Resolves: tdf#119623 record group positions also for top cellsEike Rathke
So listeners can be re-established for remaining grouped cells if top cell is deleted (which ends listening and probably was the cause to exclude them here). Change-Id: Ic91b74c65013452d56b5cfbc132722c4314743c8 Reviewed-on: https://gerrit.libreoffice.org/61808 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2019-04-24Resolves: tdf#120013 tdf#123714 tdf#123736 shared formula group splitEike Rathke
This is a combination of 7 commits. Resolves: tdf#123714 tdf#123736 all split formula groups; tdf#120013 related Add all split shared formula groups to regrouping and mark for listening, even if the references had not be to adjusted. This partly also resolves tdf#120013 but there's more to that, a remaining partial group is not updated. Reviewed-on: https://gerrit.libreoffice.org/68951 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 7fdc5df36f5b50e0629405a47ff3d5765fcfeb93) Resolves: tdf#120013 tdf#123714 split-off group or single cell needs listening Reviewed-on: https://gerrit.libreoffice.org/69066 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 5c27a048658afcd2f78ef4d7e6c7128554ed3f4c) Resolves: tdf#123736 re-establish listeners for unshared formula groups ... when replacing one of their formula cells, with another formula cell or any other cell, passing through DetachFormulaCell() Reviewed-on: https://gerrit.libreoffice.org/69221 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 1634a6d926c6cfd8fe92be1f3ae6083d2fb80f5e) In case of sc::NoListening only SetNeedsListeningGroup(), tdf#123736 follow-up Reviewed-on: https://gerrit.libreoffice.org/69303 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 6160025b27e97841321be29863bb1efd8c194a5f) Related: tdf#123736 re-establish listeners also for vector unsharing ... via DetachFormulaCells() Reviewed-on: https://gerrit.libreoffice.org/69320 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 564d0d145cf9c164ea9c717b4b2113fd971fa0af) Reget position_type as the block or type may have changed, tdf#123736 related Reviewed-on: https://gerrit.libreoffice.org/69358 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit e5de84e73ffbaa1a45ab787750f5997582bbfa49) Listening when grouping in ScColumn::AttachNewFormulaCells(), (tdf#123736) Not directly related to tdf#123736 but similar approach. Setting a vector with ScColumn::SetFormulaCells() is currently only done for Undo documents, but implementation provided listening as only single cell listening for not-undo/clip documents, which wouldn't work if actually used in grouping context. The upcoming unit tests will use SetFormulaCells() for checks. Reviewed-on: https://gerrit.libreoffice.org/69371 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit de024e572dd7a588f82b84c68daa2051ec6b20e9) c511f618e9dde2288491c01cfcd889970fd6e4e5 d527307ef5278d87345c6dbfab9d05cb490dfe6c 3e5a5334dfe11002b526f942463626b62efbc340 a57308495a06e0df612eb1610b5f387d6b60ce08 2faf3e74d95cb1f3088f20cbb7de7ba965a6de21 990e6a5d6e1efcf70a2661b3a9a39c37d9e4c2e6 Change-Id: If6d1fef7e545017232a1b7e29b4d60dd58775e88 Reviewed-on: https://gerrit.libreoffice.org/69554 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-04-24tdf#124741: export default column width to XLSXMike Kaganski
For some reason, we have never exported the default column width to XLSX, although we have such export for XLS. This led to bugs like tdf#100946. Workarounds applied to those bugs have made LO to export columns which shouldn't have been exported, abusing "customWidth" attribute in XclExpColinfo::XclExpColinfo depending on if the column has size different from an app-global default; after that, sheet-local default was determined, and then columns which have mbCustomWidth set (i.e., different from app default), as well as those different from sheet-local default, were stored. Effectively, the hack had disabled the removal of defaults from maColInfos in XclExpColinfoBuffer::Finalize. We even had unit tests explicitly testing that we export those columns that Excel skips. The effect of that is not only unnecessary data in the file; the data was actually wrong (customWidth actually means that the width was edited manually by user, even if equal to the default, thus changing Excel handling of the column); and also Calc initializes all columns to the right of last used column for such a file. Only in case when app-global default happened to match sheet-local one, columns would have properties allowing them to be removed from maColInfos in the end of XclExpColinfoBuffer::Finalize, which still resulted in problems similar to the workarounded one. This patch implements proper export of the default column width to XLSX, thus partially reverting changes made for tdf#100946 in commit 40d892a2db4d750aaf0562c63004e693c028273c. Actually, our export to XLSX does not depend on the 5-pixel correction (see ECMA-376-1:2016 18.3.1.81), since the exported default depends only on most-used column width. XclExpDefcolwidth implementation was edited to only take the correction into account when exporting to XLS (to keep status quo; it's clear that XLS widths export and import implementation is incorrect: some empirical formula is used in XclTools::GetXclDefColWidthCorrection, that was introduced in commit 555d702903fb0857122024e1ab78a72d122d3f16 for i#3006, that doesn't match any documentation, and changes widths of columns in exported XLS - something to be fixed independently). Change-Id: I227aca17e56247cbb839444717066a898987c4f1 Reviewed-on: https://gerrit.libreoffice.org/71132 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/71222
2019-04-22tdf#124883: don't drop data field names on importMike Kaganski
The name attribute of dataField element was already read in PivotTable::importDataField; and then it was ignored in PivotTableField::convertDataField. ScDataPilotFieldObj had no handler for name in its ScDataPilotFieldObj::[gs]etPropertyValue, although it has [gs]etName for that - so this change puts pieces together to allow to use the imported name correctly. Reviewed-on: https://gerrit.libreoffice.org/71068 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 7f6a6664a1f3a37a97d02d5f0894300aff0d8db5) Change-Id: I5357601b26e6635ab132ff6a1294645995aff97e Reviewed-on: https://gerrit.libreoffice.org/71070 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-22tdf#124881: Provide a non-empty name for pivot table's data fieldMike Kaganski
Otherwise, the empty string is used by Excel, so the field arrives unnamed, disappearing from pivot table's cells upon refresh, etc. Change-Id: I2e0f9fad2d766829f2b06425bec24ff182e3a869 Reviewed-on: https://gerrit.libreoffice.org/71065 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/71067 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-20tdf#124810: Roundtrip pivot table style info from XLSX.Mike Kaganski
Also provide a default pivot table style for those tables that don't have a style info. Let's use the style settings that Excel uses. Change-Id: I8006a33a0aa0e92629f7db0a9c24a6ff52d17945 Reviewed-on: https://gerrit.libreoffice.org/70933 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/71006 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-18sc: Get rid of the Idle hack in the Special Filter Dialog.Jan Holesovsky
The problem is that with LOK, the creation of Idle here causes a deadlock when the dialog is being opened and its first paint is requested. No real idea what change now causes the problem (this used to work), but given that the use of the Idle is a hack in the first place, let's use the GetFocus/LoseFocus handlers instead, and act accordingly only when the focus of the interesting controls changes. Change-Id: Ib6c0267a064cb31438544e47fe3e0869b575ef7c Reviewed-on: https://gerrit.libreoffice.org/70917 Reviewed-by: Aron Budea <aron.budea@collabora.com> Tested-by: Aron Budea <aron.budea@collabora.com>
2019-04-18tdf#124772: export data field number format to XLSXMike Kaganski
... otherwise Excel would reset data formatting e.g. from currency to plain numbers upon refresh. Excel relies on per-field format setting in pivot tables, while Calc takes fields formatting from source. Change-Id: Ia8cdf3f8fcd23720e3daaf989152c170057b339c Reviewed-on: https://gerrit.libreoffice.org/70860 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/70919
2019-04-16tdf#124736: Sort group field itemsMike Kaganski
Excel expects the group field items to be in ascending order starting from "<01/02/2010", then "Jan", "Feb", ..., then end with ">01/02/2020". Change-Id: I29e9b55f43091ed007f59e10dec64f46a37c7d5f Reviewed-on: https://gerrit.libreoffice.org/70800 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/70815 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-15LOK: getPartInfo now returns list of selected partsAshod Nakashian
For spreadsheets, selected parts are still unimplemented, so returns false for all. For presentations, visible parts seem to be always return false at load time. Change-Id: I90c79617f88deec98849bb374ca0ba177cd9c9af Reviewed-on: https://gerrit.libreoffice.org/69611 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-04-13tdf#113908: Implement exporting pivot tables' groups fields to XSLXMike Kaganski
Two tests in sc/qa/unit/pivottable_filters_test.cxx were extended to also test round-trip of group fields in XLSX. Change-Id: I70b7c15b09040c64fa1da2f88001af7ba16f2c6f Reviewed-on: https://gerrit.libreoffice.org/69653 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/70687 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-12tdf#124651: always write "name" attribute to dataField elementMike Kaganski
Despite being optional as per ECMA-376-1:2016, Excel 2016 seems to require the presence of "name" attribute in dataField element of pivot table definition, so make sure to write at least empty string there. Change-Id: Iaab5674f86b7dd0b267776678e11af47086635d7 Reviewed-on: https://gerrit.libreoffice.org/70522 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/70684
2019-04-12dpcache : use case-insensitive normalization of...Dennis Francis
field labels, else on export to xlsx, Excel will fail to load the pivot table due to case-insensitive duplicate field labels in the pivotCacheDefinition1.xml. This could be done just for xlsx export filter, but we do normalization in dpcache.cxx anyway and it would not hurt if we do a case-insensitive normalization here. The private member ScDPCache::AddLabel had code duplication and more importantly it is called in loop for every label in the database so results in O(n^2) time complexity where n is the number of labels, so removed it to reuse normalizeLabels() at the only call-site. Also added a unit test that checks case-insensitive normalization. Change-Id: Id563dee232a98a2aea9f4fc29254f6942e1c5ba7 Reviewed-on: https://gerrit.libreoffice.org/70498 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
2019-04-11tdf#123421 : xlsx export : Don't write data field entry...Dennis Francis
under colFields tag if there is only one data-field. <colFields count=[*]> <field x="-2"/> <--- -2 indicates data field. </colFields> Excel 2013/2016 seems to crash at the presence of '<field x="-2"/>' in colFields when there is only one data-field. Additionally, call GetOutputRangeByType(sheet::DataPilotOutputRangeType::TABLE) on all ScDPObject's in non-const mode, so that the internal pOuput member of ScDPObject is populated. Otherwise the const GetOutputRangeByType(sheet::DataPilotOutputRangeType::TABLE) call always return an invalid range. This also adds 2 unit tests :- 1. To check the presence of <field x="-2"/> in colFields tag if there are more than one data-fields. 2. To ensure the absence of <field x="-2"/> in colFields tag if there is only one data-field. Change-Id: I8f470bd1ab883f73586f04a3fcc30e3fbf948c4a Reviewed-on: https://gerrit.libreoffice.org/70316 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
2019-04-07do not access uninitialized values when printing (tdf#121439)Luboš Luňák
The assert in the bugreport is triggered by ScPrintFunc::CalcPages() passing uninitialized values of nEndRow (and others). These variables apparently get initialized only by constructors that take ScPrintState. These ctors also set (the somewhat poorly named) bState and the call to CalcPages() is guarded by this. However, GetPrintState() will simply create ScPrintState filled with these uninitialized values and later on this will be used with these ctors, so bState will be set, but nEndRow will be bogus. Although 5217a2a0bf27e496cc429ee45dff7c239b466ae6 introduced tdf#121439, this strange bState logic and unitialized variables has been these since the initial commit, and the code doesn't take any precautions to check whether the values are valid or not, so I assume this always was just lucky enough to work and 5217a2a0bf finally triggered a problem. Given that it's rather unclear to me how this is supposed to work properly, just add an extra flag to both ScPrintFunc and ScPrintState marking whether the values are set or not and make CalcPages() depends on this flag instead. Change-Id: I0620de6562865c24f5a0edca2566b01546bf2e2b Reviewed-on: https://gerrit.libreoffice.org/68739 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins (cherry picked from commit 9432bab9f8f4a246d205ff2a460f60aeedba8ce1) Reviewed-on: https://gerrit.libreoffice.org/69262 Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-04-01Add Rows() method to ooo.vba.excel.XApplicationTor Lillqvist
Change-Id: I7e1d83539153eede300b2b24f2fa6796859d299c
2019-04-01Avoid "Text Import" dialog if invoking Paste() from OLE AutomationTor Lillqvist
Change-Id: Ib12b628eee25273aa489dbbd86004167ca105c0b
2019-03-27Add aCalcPageSize and aCalcPagePos properties to ScModelObj::getRendererMuhammet Kara
So that we can adjust page offset when outputting to GDIMetaFiles Change-Id: I1c28440a1ff62a879b6341748a6d3092f2bfda96 Reviewed-on: https://gerrit.libreoffice.org/66526 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-on: https://gerrit.libreoffice.org/69814 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-03-15LOK: re-factor async key & mouse event re-posting.Michael Meeks
A fairly pure re-factor, although adding disposed window checking to a number of sites with a warning. Moves the event emission helpers from VCL into SfxLokHelper: we're going to need more view / integration here next anyway. Removes lots of copy/paste horror. Change-Id: I279c11a1d8093b4feeeb6b7850f500806fff80dd Reviewed-on: https://gerrit.libreoffice.org/69218 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/69268 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2019-03-11tdf#123939: string and error are same type for pivot cache in XLSXMike Kaganski
Change-Id: Id39d322661f7537e8999acafee655c0cc16a78c1 Reviewed-on: https://gerrit.libreoffice.org/68911 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/69063 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-03-11tdf#123923: make COUNTIF propagate errors in its first parameterMike Kaganski
In a specific case, Err:504 was emitted by COUNTIF when its 1st parameter was #REF!. This value was written into pivot cache definition when exporting to XLSX. Clearly Excel only expected propagated #REF! there, emitted error to user, and dropped the pivot table. This problem made XLSX pivot table cache generated by Calc unusable by Excel, despite ECMA-376 Part 1, 18.10.1.27 tells that the error value is application-dependent. The change makes COUNTIF to propagate errors received in its 1st parameter, instead of owerwriting them with own Err:504. This will likely need to be extended to other functions, if similar problems would arise. Change-Id: I459fa163a0e3e5f2c658631d66e096f4d46b1ace Reviewed-on: https://gerrit.libreoffice.org/68868 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 1f970c20a25deed282dbaf08a4be5af25e4951db) Reviewed-on: https://gerrit.libreoffice.org/69039 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-02-18Resolves: tdf#121002 UpdateRefOnNonCopy::mbUpdated=true if references changeEike Rathke
... somewhere in a previous shared formula group, so for the new groups after split the column is added to sc::RefUpdateContext::maRegroupCols in ScColumn::UpdateReference() to setup new listeners later, and true returned there, which also results in ScTable::SetStreamValid(false) at the end, which in this constellation wasn't the case. It may have been a reason that some documents have individual unrecalculated results stored (i.e. values moved within ranges that a shared formula group pointed to) that can be corrected by recalculating after load. Said to be a regression from commit 2f6a06856ad8df0c11a112d1e457b408e9a7af1d CommitDate: Fri Jun 5 16:22:38 2015 +0200 tdf#90694 reset group area listeners when splitting group but that only uncovered this misbehaviour. Change-Id: I6b04b71898c3f1774452dd19790c208f3167d8eb Reviewed-on: https://gerrit.libreoffice.org/67461 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit cdfa8b27f28328612b6734533981c1b363ced0a0) Reviewed-on: https://gerrit.libreoffice.org/67466 Reviewed-by: Kohei Yoshida <libreoffice@kohei.us> (cherry picked from commit 439407a36e4085c17c65c620a1bb2ca95f4564b0)
2019-02-18Resetting all fields for all dims corrupts pivot cacheKatarina Behrens
test case is exporting ooo55266-3 (contains data grouped in numerical intervals) to xlsx and without closing the document, opening filter on 1st pivot table (kaboom!) ClearGroupFields corrupts the cache bc it resets Field.mpGroup items for all dimensions, not just the one present in ScDPDimensionSaveData (all this happening in ScDPCollection::SheetCaches::getCache). Consequently, accessing or rebuilding pivot cache may crash bc mpGroup now points nowhere. I split and renamed ScDPCache::ClearGroupFields into 2 parts, one of them clears maGroupFields, the other resets mpGroup ptrs in maFields. When adding data to cache, the former is used (bc group ptrs get reset almost immediately afterwards) Reviewed-on: https://gerrit.libreoffice.org/65329 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com> Reviewed-by: Kohei Yoshida <libreoffice@kohei.us> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit f70d29fd91d232f0b030f0f76bd23bd2919eb868) Change-Id: I96e8d234a17da0f3cc65c0625aa47b12284b98b8 Reviewed-on: https://gerrit.libreoffice.org/66622 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 59d4b488e0d25266f02ca142d18deee7ecc5dc55)
2019-01-18make format->page dialog asyncNoel Grandin
Change-Id: Ie2c63e2bac176002bc6616578aef2d4c763245c7 Reviewed-on: https://gerrit.libreoffice.org/66113 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Mert Tümer <mert.tumer@collabora.com> Tested-by: Mert Tümer <mert.tumer@collabora.com>
2019-01-18make insert->header/footer dialogs asyncNoel Grandin
Reviewed-on: https://gerrit.libreoffice.org/66089 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 2281ade467e7dcc9652f74dbc4d9736100b0ad78) Change-Id: I0e8eac86280d42752db2d7bde8c6aecf452bad6c Reviewed-on: https://gerrit.libreoffice.org/66156 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Mert Tümer <mert.tumer@collabora.com> Tested-by: Mert Tümer <mert.tumer@collabora.com>
2019-01-18make Format->Conditional Formatting->Manage dialog asyncNoel Grandin
Reviewed-on: https://gerrit.libreoffice.org/66097 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit f548dfa29239913fd71be67eadc2905010cabd95) Change-Id: I13a40c13340ea34cbcbde11289d3420855a7264f Reviewed-on: https://gerrit.libreoffice.org/66206 Reviewed-by: Mert Tümer <mert.tumer@collabora.com> Tested-by: Mert Tümer <mert.tumer@collabora.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-01-17[cp] build fixcp-6.0-20Aron Budea
Change-Id: If61e862e08bce4405b6a94c868d94d7c6a6c844a
2019-01-17Resolves: tdf#114695 limit width of this comboCaolán McNamara
Change-Id: I3bcb880d05b9b2b6a7faf7b3646b169f3b11a46b Reviewed-on: https://gerrit.libreoffice.org/65509 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> (cherry picked from commit a1f3bcc6312a599996fee9825703394fe5b3a20a)
2019-01-17tdf#112484: repeat-item-labels is invalid in odf1.2 strictJulien Nabet
Change-Id: I23d204ef3d4e466876bb3416d616dc1f3682ad4c Reviewed-on: https://gerrit.libreoffice.org/65740 Tested-by: Jenkins (cherry picked from commit 40a7e9c93855ac6cceb4c4189587998e21581de5) Reviewed-on: https://gerrit.libreoffice.org/65749 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit c64564c6b520f4dbadb689e958dafa1591b3711d)
2019-01-17crashtesting: ooo55266-3.ods some members are nullptrKatarina Behrens
Crashes since commit 6481bda69ade61cb5420156272fcf17edd43d620 tdf#121612: update pivot caches during saving to XLSX without refresh, pivot cache export was skipped entirely Change-Id: Ic68d4974d5cb9278d61938a59aa8f1a01b920f1f Reviewed-on: https://gerrit.libreoffice.org/64903 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 837a65cdc0bef4ef6c48f7b867c7948c70352f05) Reviewed-on: https://gerrit.libreoffice.org/64946 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 1c34812c11248649321b7106dfdc22f1d75091a9)
2019-01-17Resolves: tdf#80583 create range list string with proper delimiterEike Rathke
... which is the to be used function parameter separator here. The current document's grammar (from which the separator is obtained in ScRangeList::Format() if not specified) may differ from the forced English grammar later when compiling the formula, and all formula expressions to be inserted use the language independent ';' semicolon function parameter separator. Change-Id: I7a3deb6d50fc57ed434ede1f00bbe8c5c1361e0f Reviewed-on: https://gerrit.libreoffice.org/64819 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 470a91cb041782e29664212d096bb16873ba57a0) Reviewed-on: https://gerrit.libreoffice.org/64824 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 89d65f96128edf3055aaa5cebdaf78d893d01187)
2019-01-17Resolves: tdf#121887 RowModel::mnRow is 1-based, alwaysEike Rathke
Basically this was always wrong. Original code didn't treat the r attribute as optional and resulted in an invalid -1 row for such cases, hence the RowModel wasn't applied later. Then commit af8e6f4f544ecd01d3eda5f38bbd4779d5e8b2c6 CommitDate: Wed May 29 22:05:02 2013 +0200 r is an optional attribute in c and r, fdo#65059 introduced a 0-based SheetDataContext::mnRow but assigned that to a 1-based RowModel::mnRow as well if r attribute was missing, and did not update SheetDataContext::mnRow if r attribute was given. commit ff56553e34dfed01b9226ce7a516dbeb6da32124 CommitDate: Thu Mar 13 18:39:22 2014 -0400 fdo#76032: This row index is 1-based whereas our own mnRow is 0-based. then correctly assigned the decremented r attribute to SheetDataContext::mnRow but did not touch the assignment to RowModel::mnRow if r was not given. Probably confused by the ++mnRow already there which is correct but not sufficient for the assignment. Which we now finally fix herewith.. Change-Id: Iae1563ed01b95e7852ddad4fd59374c07186b493 Reviewed-on: https://gerrit.libreoffice.org/64580 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com> (cherry picked from commit 76fbe494785faee1313d1c0be8ed2ca7b0d74f68) Reviewed-on: https://gerrit.libreoffice.org/64639 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 41f19175c2e4c344c582c8b57a803f5ec4e5aaad)
2019-01-17tdf#121612: update pivot caches during saving to XLSXVasily Melenchuk
Cache was empty so pivot table was not exported completely and pivot table filter were missing. Reviewed-on: https://gerrit.libreoffice.org/63785 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-on: https://gerrit.libreoffice.org/64265 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 78457f7462aa3bf92839667a550451f0d434f48b) Reviewed-on: https://gerrit.libreoffice.org/64303 Reviewed-by: Vasily Melenchuk <vasily.melenchuk@cib.de> (cherry picked from commit 52c088c4d738a3299bda434635a2d9f2da03467c) Change-Id: Ib0b9e98a5588159c5c7de1e2e5d2bdcbfe986d8d
2019-01-17tdf#105236, only take number format from numeric cellsMarkus Mohrhard
Change-Id: I55deaa1f0579582a45dc1e10bb578b680eb98647 Reviewed-on: https://gerrit.libreoffice.org/64200 Tested-by: Jenkins Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit fb04e7180cdf656dbbd3daa9c81615d9478229e0) Reviewed-on: https://gerrit.libreoffice.org/64204 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 811d39b4ed3487ac6eb81d04de70f9845fec32db)
2019-01-17Resolves: tdf#119700 save correct table:last-row-spannedEike Rathke
Regression from commit f6e6a6139e90d6e88fb65308e8592193ac602a8a CommitDate: Mon Nov 21 07:49:06 2016 +0000 tdf#48140 Replace uno CellRangeAddress and CellAddress with direct calls that calculated endrow-startcol instead of endrow-startrow. Change-Id: Ie576f9abdcdc23fc5f0a06735caadc24e975360f Reviewed-on: https://gerrit.libreoffice.org/63374 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 6e566c2b2b23d457a9fd47c16df15ce11e84c8e8) Reviewed-on: https://gerrit.libreoffice.org/63382 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit f2c6156a90093d38e1ab304d11ffed90555d5fa1)
2019-01-17tdf#107586, import chart sheet colorMarkus Mohrhard
Change-Id: Ie7d728cd36c93d5f398266ee65be0e1bf14a0c97 Reviewed-on: https://gerrit.libreoffice.org/62974 Tested-by: Jenkins Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 06e90234e402717e3ef04cf712d34c9165dbc08e) Reviewed-on: https://gerrit.libreoffice.org/62980 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit b6052b6f78a4486f129dbaef9db3106c4f289cae)