summaryrefslogtreecommitdiff
path: root/sc/inc/table.hxx
AgeCommit message (Collapse)Author
2018-02-21Use iterator pre-increment/decrementEike Rathke
Change-Id: I079850116648dc69b8c92fa23b30233f63d9b6e7
2018-02-21Pass ScColumnsRange::Iterator as const&Eike Rathke
Specifically for each operator==() call two temporaries were copied, for operator!=() even twice as much.. in for(...:GetColumnsRange()) Change-Id: I4b426ae855454544e50efca35aa73303138f7ba7
2018-02-03TypedWhichId in scNoel Grandin
Change-Id: I43558191f65bfb07abfbc92970629d5dd561a04e Reviewed-on: https://gerrit.libreoffice.org/49141 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-24loplugin:constparamsNoel Grandin
Change-Id: I7c695073d9a9d3b7a641d6eb9fe01a47d8c3a504 Reviewed-on: https://gerrit.libreoffice.org/48392 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-23tdf#98931 Consider cell-anchored images when sortingSamuel Mehrbrodt
This makes images/draw objects anchored to cells move as any other content when sorting cells. Works for sorting rows and columns. Also fixes a bug where notes attached to cells were not sorted when sorting columns. Change-Id: Id9a56a15f776d5adbe382a9bca167bff48b69a0c Reviewed-on: https://gerrit.libreoffice.org/46838 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
2018-01-22sc: std::iterator is deprecated in C++17Michael Stahl
Change-Id: I947dcf61e95bdc68d19eab7daca4c31ba8047d5e Reviewed-on: https://gerrit.libreoffice.org/48224 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-12-19wrap scoped enum around css::util::NumberFormatNoel Grandin
Change-Id: Icab5ded8bccdb95f79b3fa35ea164f47919c68fa Reviewed-on: https://gerrit.libreoffice.org/46339 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-12-19tdf#114479 : Use the SvNumberFormatter from ScInterpreterContextDennis Francis
This fixes one of the crash mentioned in the bug report, during loading of the bug document. The crash being the assert failure in ScDocument::GetFormatTable(). Change-Id: Iffb8ede1416f34f0cd9852fa3f8d1f199406c013 Reviewed-on: https://gerrit.libreoffice.org/46549 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2017-12-18Remove almost duplicate code blocks.Kohei Yoshida
Change-Id: Ib75d0caa41876908091bed374d3afd802928acf7 Reviewed-on: https://gerrit.libreoffice.org/46661 Reviewed-by: Kohei Yoshida <libreoffice@kohei.us> Tested-by: Kohei Yoshida <libreoffice@kohei.us>
2017-11-29loplugin:countusersofdefaultparams in scNoel Grandin
Change-Id: I8e790f9253279c9135ea1a4bcdd663ae7df44015 Reviewed-on: https://gerrit.libreoffice.org/45464 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-21Move token-cache for doubles to ScInterpreterContext...Dennis Francis
...from ScInterpreter and in the s/w interpreter, create a ScInterpreterContext for each thread for passing into per thread ScInterpreter constructor. Change-Id: I4e0abce043c7e1e70859efb2e5001fc284f416a9
2017-11-21Introduce ScInterpreterContextTor Lillqvist
Possibly later things that need to be thread-local can be handled through the ScInterpreterContext. Why handle some thread-local things through the ScDocument::maNonThreaded and ScDocument::maThreadSpecific mechanism, and others through this ScInterpreterContext? Good question. Share SvNumberFormatter across worker threads and use mutex to protect SvNumberFormatter::IsNumberFormat() Change-Id: I372e5fbd9a19785f55f0faf4a4bedc5fc1ef3e03
2017-11-21Move formula tree manipulation out of multi-threaded parts of codeTor Lillqvist
Change-Id: I2f7e6fb747b6a74172a81f9db9bc210ef6a27342
2017-11-21First steps for Calc parallelismTor Lillqvist
For now, formula group calculations are done in parallel threads when 1) OpenCL is not used, and 2) the environment variable CPU_THREADED_CALCULATION is set. This commit is a surely broken first step and does not actually work that well at all. Change-Id: Ia7e5019703ba89bff0695faef0f7504765061149
2017-10-23loplugin:includeform: scStephan Bergmann
Change-Id: I2ed763e0584a188032c80fde60890de3c6985cbd
2017-10-17dyncolcontainer: use ScBitMaskCompressedArray for pColFlagsNoel Grandin
Change-Id: I5df10fe7477e05424eb5e8a3544073a264568aac Reviewed-on: https://gerrit.libreoffice.org/43409 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-17dyncolcontainer: use ScCompressedArray for pColWidthNoel Grandin
and enhance ScCompressedArray with an iterator to avoid O(n^2) "for" loops. Change-Id: I7d8fda8306b0a5c73bf373b3991e1c07271bc9d9 Reviewed-on: https://gerrit.libreoffice.org/43387 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-08sc-perf: do not add a million empty filter entries just to sort and discardEike Rathke
Which can happen if an (anonymous) database range as filter range was selected to span an entire column of which most (the tail) is empty cells. The entries are processed to be unique anyway. This significantly shortens the time to display the filter dialog. Happened with attachment http://bugs.documentfoundation.org/attachment.cgi?id=136074 of bug https://bugs.documentfoundation.org/show_bug.cgi?id=112258 Change-Id: Ia169911d6f23611a3b3ecbf291757465f1998210 Reviewed-on: https://gerrit.libreoffice.org/42118 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-09-02dynamic column container: fix some more for loopsNoel Grandin
and add reverse-iterator functionality Change-Id: Ide7ee9d2152871d414246303d76c91da36557524 Reviewed-on: https://gerrit.libreoffice.org/41727 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-31make the ScColumnsRange iterator return SCCOLNoel Grandin
since we don't want to expose internal details like the ScColumn to most of the code, make the ScColumnsRange iterators return SCCOL instead of ScColumn* Change-Id: I67a58df90959170105255d18e7dd38ef0d6e3c11 Reviewed-on: https://gerrit.libreoffice.org/41719 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-08-25dynamic column container: more efficient loops over all colsNoel Grandin
Create an ScColumnsRange class that returns a pair of (start,end) iterators to go through the list of currently allocated columns. This is a fairly thing wrapper around the underlying std::vector, so it should be fairly efficient (two pointers, and pointer increment for iteration). If this style of iteration is acceptable, I'll go through the rest of the code that does: for (SCCOL nCol=0; nCol<MAXCOLCOUNT; nCol++) type stuff, and change it to use ScColumnsRange. Change-Id: I81501c69b7f5566c6204dde0d87a6fe0deb9743c Reviewed-on: https://gerrit.libreoffice.org/41413 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-23loplugin:constparam in sc part2Noel Grandin
Change-Id: I4fd18096d7d22d8c146a2437906187d5df1cb268 Reviewed-on: https://gerrit.libreoffice.org/41447 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-16add a way to restore from our new cache formatMarkus Mohrhard
Change-Id: I6eeaaf9ca05bed2a908143ae5f4daab6e098799c Reviewed-on: https://gerrit.libreoffice.org/41199 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-08-16introduce a way to write a simple data representation to a streamMarkus Mohrhard
The format used is column orientated and allows quick import and export of the table content. This will be used for the external data to cache the results of each transformation step in the UI. Change-Id: I6e1bfd3b3384cbfadeb98fb995dfd0b03d5e6eb6 Reviewed-on: https://gerrit.libreoffice.org/41198 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-07-22avoid unnecessary calls of AdjustRowHeightTamas Bunth
Change-Id: I2d164f69a7313d69f3fe5cabe1e3cc39aeba4d32 Reviewed-on: https://gerrit.libreoffice.org/40272 Reviewed-by: Tamás Bunth <btomi96@gmail.com> Tested-by: Tamás Bunth <btomi96@gmail.com>
2017-07-20Avoid unnecessary calls of AdjustRowHeightTamas Bunth
Check if attribute changed during ApplyAttributes. If it did not change, it is unnecessary to recalculate cell size, repaint etc. Change-Id: Ic3a3fa24efa9ad3619b8979a67e972a7635311cc Reviewed-on: https://gerrit.libreoffice.org/40198 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Bunth <btomi96@gmail.com>
2017-07-13loplugin:useuniqueptr in scNoel Grandin
Change-Id: I004e1f0292c8a40515880546574255ab835dbdbe Reviewed-on: https://gerrit.libreoffice.org/39875 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-29ScTable::VisibleDataCellIterator::ROW_NOT_FOUND can be constexpr and privateTor Lillqvist
Change-Id: Iee866c10dad9e401b5c507849efa11d877177357
2017-06-12tdf#95883 Select Unprotected Cells in CalcGulsah Kose
Change-Id: I20a71f66154675de9c2c47ff32e859c899fe9103 Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/37424 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-06-06first arg of ApplyBlockFrame is never nullCaolán McNamara
Change-Id: Ie65fce6041278c6758df266c4ef097a5758f75dd Reviewed-on: https://gerrit.libreoffice.org/38448 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-06-06add COVERITY_NOEXCEPT_FALSECaolán McNamara
to markup dtors that coverity warns might throw exceptions which won't throw in practice, or where std::terminate is an acceptable response if they do Change-Id: I32b94814e8245372e1d1dc36be0d81e3564042f4 Reviewed-on: https://gerrit.libreoffice.org/38318 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-05-24tdf#107945: properly iterate over mtv during pivot cache loading.Kohei Yoshida
This reduces the total time required for populating the pivot cache by ~60%. Change-Id: I6a8511959c20231a8a5dbd0b0a9a3d0930a1fa0c Reviewed-on: https://gerrit.libreoffice.org/37971 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
2017-05-23drop the SCsROW/SCsCOL/SCsTAB typedefsNoel Grandin
which are exactly the same as the regular SCROW/etc typedefs, and have been this way since commit 43a21999a92c99867bc3417291719996776b0647 Author: Oliver Bolte <obo@openoffice.org> Date: Fri Jun 4 09:00:39 2004 +0000 INTEGRATION: CWS rowlimit (1.1.2); FILE ADDED Change-Id: Ia7f75d71227ca3167b5fd56019bb9bdf0697d1b0 Reviewed-on: https://gerrit.libreoffice.org/37911 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-05-17tdf#43535: support additional sheet protection options.Kohei Yoshida
New options are: * insert columns. * insert rows. * delete columns. * delete rows. Change-Id: I076b0d01bee0fff0623e2f1137c09938a6110939 Reviewed-on: https://gerrit.libreoffice.org/37695 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
2017-05-11tdf#107258 Create show/hide all comments toggle button.Gulsah Kose
Created new show/hide all comments button for calc by ShowAnnotations command. Unifyied writer, calc and impress's ShowAnnotations slot. Change-Id: I27149d09ee1763b84258c5e0c890a9628c8874c0 Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/36697 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-05-10loplugin:checkunusedparams in sc(part3)Noel Grandin
Change-Id: I61fc2ba762983d7bafb6ed8baafba458590af59a Reviewed-on: https://gerrit.libreoffice.org/37458 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-10loplugin:checkunusedparams in sc(part2)Noel Grandin
Change-Id: I1d54d16dbe5648a21baa9bf96444e60fcd034c81 Reviewed-on: https://gerrit.libreoffice.org/37457 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-03tdf#107255: detect whether the range has only one data cell.Kohei Yoshida
Change-Id: I030961d9d38b092ffdc966baa10decae0c2d070d Reviewed-on: https://gerrit.libreoffice.org/37178 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
2017-03-17cleanup double includes and declarationsJochen Nitschke
Change-Id: I770e09f48b1a3e8299f59a8e475ba3c18d436d7b Reviewed-on: https://gerrit.libreoffice.org/35312 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2017-03-07tdf#50916 Simplify and refactor source codeBartosz Kosiorek
Change-Id: Ibcb3068318180f2adfdc41aac5d75299c1ffaffc Reviewed-on: https://gerrit.libreoffice.org/34711 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2017-03-03Remove redundant 'inline' keywordStephan Bergmann
...from function definitions occurring within class definitions. Done with a rewriting Clang plugin (to be pushed later). Change-Id: I9c6f2818a57ccdb361548895a7743107cbacdff8 Reviewed-on: https://gerrit.libreoffice.org/34874 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-02-24tdf#50916 Allow dynamically increase number of columns according to needsBartosz Kosiorek
Change-Id: I08b1d70b6aafb01738bb5dec3f4eafd7b21e6bb5 Reviewed-on: https://gerrit.libreoffice.org/33724 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2017-02-08tdf#50916 Introduce new column validation functionBartosz Kosiorek
Change-Id: Ib8f7b3793732a113e764c4345c07803eb8bcbc3f Reviewed-on: https://gerrit.libreoffice.org/33196 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2017-01-18tdf#104967 preserve isolated notes data in clipboard when closing documentEike Rathke
Change-Id: I0e263583e27c5103c0bb90e8fe00562e46a52d98
2016-11-26Resolves: tdf#103493 copying note captions needs a completed destination sheetEike Rathke
If a copied sheet's destination position is before its source position, the source's ScColumn::nTab members still pointed to the original source position when the captions were created, which led to the wrong drawing layer page being used and at the end the drawing shapes not being correctly assigned. Change-Id: I9c3cc97d8b4486756023b9ab02da28079a1d0627
2016-11-12Renaming due to the fact that it now dumps non-formula blocks too.Kohei Yoshida
Change-Id: I9d06786a93bab2f0ed0d179df8edf9b5d8128bf6
2016-11-12Ctrl-Shift-F8 to dump the column storage where the cursor is.Kohei Yoshida
Enabled only in dbgutil build. Change-Id: I0cd095fb56893122a26b2da6882fca15e516d193
2016-11-11loplugin:countusersofdefaultparams in sc(part2)Noel Grandin
Change-Id: I1e2a0969ca7e9e0f75079a171150269dfed26507 Reviewed-on: https://gerrit.libreoffice.org/30755 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-10Refactor ScAttrArray for tdf#50916Dennis Francis
For a default column, now ScAttrArray does not store the default format. So the case of default pattern from 0 to MAXROW is represented as nCount = 0 and pData = nullptr in ScAttrArray. A new ScAttrArray object (aNextColAttrArray) is introduced as a member of ScTable. This is used to store the formatting of *unallocated* columns (whose indices are from aCol.size() to MAXCOL). In next patches for this bug, I plan to refactor table*.cxx functions related to formatting such that : 1) In formatting setter functions, if colspan of the input range spans the colrange(aCol.size() to MAXCOL) then instead of allocating columns, apply that formatting to aNextColAttrArray. 2) In formatting getter (const) functions, if requested colspan has some intersection with the colrange(aCol.size() to MAXCOL) then use the formatting info stored in aNextColAttrArray to calculate the formatting of the input range. 3) In general setter (non-const) functions if we really need to allocate new columns (example, when data is entered), use the formatting info stored in aNextColAttrArray to create pAttrArray of the new column. Change-Id: Ieb56f853209b396d92fdb2c27e39361703576423 Reviewed-on: https://gerrit.libreoffice.org/27828 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
2016-10-24tdf#100517 : Optionally include comment-only columns when sortingDennis Francis
Change-Id: I6b8d4cceda276bef95b28706fb15cb040e07f4c6 Reviewed-on: https://gerrit.libreoffice.org/29593 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>