summaryrefslogtreecommitdiff
path: root/sc/source
AgeCommit message (Collapse)AuthorFilesLines
2021-01-28add string_view variants of methods to O[U]StringBufferNoel4-7/+7
and update the stringview loplugin to detect cases where we can use these new methods. Change-Id: I998efe02e35c8efcb3abfb4d7186165bbe6dfb2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110046 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-27tdf#96505 Get rid of cargo cult 'long' integer literalsAlchemist1-3/+3
Change-Id: I8746b7b32cbebd275fe9f47cce9c80aa87fbc583 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108809 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-01-27cid#1472566 silence Unintended sign extensionCaolán McNamara2-5/+5
and hopefully also cid#1472568 Division or modulo by zero Change-Id: Ic774b11fc17f8635c769df912bba4fff69f87d0e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110007 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-26cid#1472493 silence Unintended sign extensionCaolán McNamara2-5/+5
Change-Id: Ib6bda68c1f6efe5492ca7444044b4c900b81e24e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109965 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-26tdf#139809 sc ooxml export autofiltered date columnsBalazs Varga4-5/+31
Export XML_dateGroupItem, XML_year, XML_month, XML_day, XML_dateTimeGrouping based on the OOXML standard. Follow up commit of: d101a6f8579df8241dcd8100908868cd7d7c3f8a (tdf#116818 sc OOXML: import autofiltered date columns) Note: DOCX round-trip is not lossless here, because instead of exporting the original yearly and monthly dataGroupItem filtering, the export contains daily level dataGroupItem elements for each day. Change-Id: I456b2240213839725e2b416622986ee4a9cf60d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109699 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-26dynamic_cast unnecessary hereNoel Grandin1-4/+3
Change-Id: I25b2c174bab07117849104fbc77fe3568c7f3d6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109935 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-26tdf#92456 dynamic_cast to static_castNoel Grandin1-3/+2
the dynamic_cast is unnecessary here, we already know the type from GetType(), and is shaves 3% off the time for this bug Change-Id: Ib3afa45134d68c261cbdaf04521e0e742035f926 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109934 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-26tdf#139167 XLSX export: fix proliferation of conditional stylesTibor Nagy2-3/+10
Run-time created styles “ExtConditionalStyle_N N” for extended conditional styles were written back to the XLSX file, growing the cell style list by each save-reload with unused styles. Co-authored-by: Attila Szűcs (NISZ) Change-Id: Icccb9f5333311556132b760efd4e8c8c2db00858 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109667 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-25tdf#139857 release mouse on launch context menuCaolán McNamara1-0/+2
Change-Id: I2baa635dbc81c326eecb1fc579a0f80901d4117d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109895 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-25tdf#92456 improve VLOOKUP perfNoel Grandin5-12/+12
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-25tdf#139830: keep the right sidebar context for chart after view switch (calc).Tamás Zolnai3-3/+70
There is a general behavior to switch to the default sidebar context by view deactivation and switch back to the right context by view activation. See SfxShell::Activate() and SfxShell::Deactivate(). By activation, we use the selection to find out the right sidebar context. See GetContextForSelection_SC() method for example. However, for charts, this does not work, because the chart window is a separate environment and the shell does not know what is selected inside the chart window. So let's avoid context switches when we have a chart window active. Let the chart controller handle sidebar context changes. Change-Id: I272ee5c35ac30221eed2930201c4710a9a5877c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109790 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109897 Tested-by: Jenkins
2021-01-24sc: GetRowForHeight performance improvement.Michael Meeks1-5/+18
Instead of just skipping hidden rows, either skip or interpolate into visible ones. This method, and it's single caller look rather unusual to me. It is unclear why we would want to return the results we do, and why the one caller subtracts a row. Some surprising proportion of tile rendering was exercising this code path extremely slowly. --5.94%--ScDocument::GetPrintArea | |--5.04%--ScDrawLayer::GetPrintArea | ScTable::GetRowForHeight | | | --4.58%--ScFlatBoolRowSegments::getRangeData | | | --2.46%--ScFlatSegmentsImpl<bool, bool>::getRangeData Change-Id: I75418d6af59a33b99e8bb0c374139e1a4ee6ef87 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109837 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Tested-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Ashod Nakashian <ash@collabora.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109848 Tested-by: Jenkins
2021-01-22Related tdf#139782 sc: Make sure column exists before accessing itMichael Weghorn1-2/+2
While the first fix (Change-Id I12a780bf52024cef31188651813d3a93cc2b5ddd, "tdf#139782 sc: Don't try to access unallocated column") makes opening the simplified bugdoc I had attached to tdf#139782 work, the original document I was given (which I can't share as is, but from which the simplified bugdoc was created) had more formulas and managed to hit another similar issue related to the fact that columns are now dynamically allocated, and crashed trying to access one that wasn't yet allocated. Fix this place as well by making sure the column exists. Backtrace: "#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50\n" "#1 0x00007ffff7aa7537 in __GI_abort () at abort.c:79\n" "#2 0x00007ffff794beb1 in std::__throw_bad_exception() () at /lib/x86_64-linux-gnu/libstdc++.so.6\n" "#3 0x00007fffa0b161dc in std::__debug::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> >, std::allocator<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> > > >::operator[](unsigned long) (this=0x555558827250, __n=84) at /usr/include/c++/10/debug/vector:427\n" "#4 0x00007fffa0c23935 in ScColContainer::operator[](unsigned long) (this=0x555558827250, nIndex=84) at .../libreoffice/sc/inc/colcontainer.hxx:44\n" "#5 0x00007fffa0c76275 in ScQueryCellIterator::InitPos() (this=0x7fffffff8040) at .../libreoffice/sc/source/core/data/dociter.cxx:1082\n" "#6 0x00007fffa0c76c28 in ScQueryCellIterator::GetFirst() (this=0x7fffffff8040) at .../libreoffice/sc/source/core/data/dociter.cxx:1233\n" "#7 0x00007fffa0c76fb6 in ScQueryCellIterator::FindEqualOrSortedLastInRange(short&, int&) (this=0x7fffffff8040, nFoundCol=@0x7fffffff7f58: 1024, nFoundRow=@0x7fffffff7fb0: 1048576) at .../libreoffice/sc/source/core/data/dociter.cxx:1304\n" "#8 0x00007fffa11b1529 in ScInterpreter::ScMatch() (this=0x5555619f7fd0) at .../libreoffice/sc/source/core/tool/interpr1.cxx:5050\n" "#9 0x00007fffa121f653 in ScInterpreter::Interpret() (this=0x5555619f7fd0) at .../libreoffice/sc/source/core/tool/interpr4.cxx:4247\n" "#10 0x00007fffa0f03bf5 in ScFormulaCell::InterpretTail(ScInterpreterContext&, ScFormulaCell::ScInterpretTailParameter) (this=0x55555e793030, rContext=..., eTailParam=ScFormulaCell::SCITP_NORMAL) at .../libreoffice/sc/source/core/data/formulacell.cxx:1952\n" "#11 0x00007fffa0f028b2 in ScFormulaCell::Interpret(int, int) (this=0x55555e793030, nStartOffset=-1, nEndOffset=-1) at .../libreoffice/sc/source/core/data/formulacell.cxx:1644\n" "#12 0x00007fffa0be0274 in ScFormulaCell::MaybeInterpret() (this=0x55555e793030) at .../libreoffice/sc/inc/formulacell.hxx:445\n" "#13 0x00007fffa0f07b34 in ScFormulaCell::GetErrCode() (this=0x55555e793030) at .../libreoffice/sc/source/core/data/formulacell.cxx:2974\n" "#14 0x00007fffa10bac28 in ScCellFormat::GetString(ScRefCellValue const&, unsigned int, rtl::OUString&, Color const**, SvNumberFormatter&, ScDocument const&, bool, bool, bool) (rCell=..., nFormat=0, rString=\"\", ppColor=0x7fffffff87e8, rFormatter=..., rDoc=..., bNullVals=true, bFormula=false, bUseStarFormat=false) at .../libreoffice/sc/source/core/tool/cellform.cxx:77\n" "#15 0x00007fffa0bcb8f8 in ScColumn::UpdateScriptType(sc::CellTextAttr&, int, mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > >&) (this=0x55555e793330, rAttr=..., nRow=1, itr=...) at .../libreoffice/sc/source/core/data/column3.cxx:794\n" "#16 0x00007fffa0b9e315 in ScColumn::GetRangeScriptType(mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func1<mdds::mtv::default_element_block<51, sc::CellTextAttr> >, mdds::detail::mtv::event_func>::iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > >&, int, int, mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > > const&) (this=0x55555e793330, itPos=..., nRow1=1, nRow2=1, itrCells_=...) at .../libreoffice/sc/source/core/data/column2.cxx:2089\n" "#17 0x00007fffa0b27563 in (anonymous namespace)::FindEditCellsHandler::operator()(size_t, ScFormulaCell const*) (this=0x7fffffff9180, nRow=1, p=0x55555e793030) at .../libreoffice/sc/source/core/data/column.cxx:3091\n" "#18 0x00007fffa0b31267 in sc::CheckElem<mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>, (anonymous namespace)::FindEditCellsHandler>(mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent> const&, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::const_iterator const&, size_t, size_t, (anonymous namespace)::FindEditCellsHandler&) (rStore=..., it=..., nOffset=0, nDataSize=999, rFuncElem=...) at .../libreoffice/sc/inc/mtvfunctions.hxx:149\n" "#19 0x00007fffa0b2eb58 in sc::FindElement2<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>, (anonymous namespace)::FindEditCellsHandler, (anonymous namespace)::FindEditCellsHandler>(mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent> const&, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::size_type, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::size_type, (anonymous namespace)::FindEditCellsHandler&, (anonymous namespace)::FindEditCellsHandler&) (rStore=..., nStart=0, nEnd=1048575, rFuncElem=..., rFuncElse=...) at .../libreoffice/sc/inc/mtvfunctions.hxx:496\n" "#20 0x00007fffa0b2b487 in sc::FindFormulaEditText<(anonymous namespace)::FindEditCellsHandler>(sc::CellStoreType const&, SCROW, SCROW, (anonymous namespace)::FindEditCellsHandler&) (rStore=..., nRow1=0, nRow2=1048575, rFunc=...) at .../libreoffice/sc/inc/mtvcellfunc.hxx:141\n" "#21 0x00007fffa0b293e3 in ScColumn::HasEditCells(int, int, int&) (this=0x55555e793330, nStartRow=0, nEndRow=1048575, rFirst=@0x7fffffff92ec: 0) at .../libreoffice/sc/source/core/data/column.cxx:3434\n" "#22 0x00007fffa0b981b1 in ScColumn::GetOptimalHeight(sc::RowHeightContext&, int, int, unsigned short, int) (this=0x55555e793330, rCxt=..., nStartRow=0, nEndRow=1048575, nMinHeight=0, nMinStart=0) at .../libreoffice/sc/source/core/data/column2.cxx:863\n" "#23 0x00007fffa0fcaf7d in (anonymous namespace)::GetOptimalHeightsInColumn(sc::RowHeightContext&, ScColContainer&, SCROW, SCROW, ScProgress*, sal_uLong) (rCxt=..., rCol=..., nStartRow=0, nEndRow=1048575, pProgress=0x7fffffff9740, nProgressStart=406268) at .../libreoffice/sc/source/core/data/table1.cxx:93\n" "#24 0x00007fffa0fccdae in ScTable::SetOptimalHeight(sc::RowHeightContext&, int, int, ScProgress*, unsigned long) (this=0x55555a39e890, rCxt=..., nStartRow=0, nEndRow=1048575, pOuterProgress=0x7fffffff9740, nProgressStart=406268) at .../libreoffice/sc/source/core/data/table1.cxx:470\n" "#25 0x00007fffa0c7ced6 in ScDocRowHeightUpdater::update() (this=0x7fffffff9910) at .../libreoffice/sc/source/core/data/dociter.cxx:2732\n" "#26 0x00007fffa15aae65 in ScXMLImport::endDocument() (this=0x555558902ec0) at .../libreoffice/sc/source/filter/xml/xmlimprt.cxx:1443\n" "#27 0x00007fff99f9e04b in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) (this=0x555559b8e0f0, rStructSource=...) at .../libreoffice/sax/source/fastparser/fastparser.cxx:911\n" "#28 0x00007fff99fa2318 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) (this=0x55555a718940, aInputSource=...) at .../libreoffice/sax/source/fastparser/fastparser.cxx:1482\n" "#29 0x00007fffecc8fa95 in SvXMLImport::parseStream(com::sun::star::xml::sax::InputSource const&) (this=0x555558902ec0, aInputSource=...) at .../libreoffice/xmloff/source/core/xmlimp.cxx:504\n" "#30 0x00007fffa15e0863 in ScXMLImportWrapper::ImportFromComponent(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, com::sun::star::xml::sax::InputSource&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, bool) (this=0x7fffffffa2b0, xContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55555591a590, xModel=uno::Reference to (ScModelObj *) 0x55555a39fe50, aParserInput=..., sComponentName=\"com.sun.star.comp.Calc.XMLOasisContentImporter\", sDocName=\"content.xml\", aArgs=uno::Sequence of length 4 = {...}, bMustBeSuccessfull=true) at .../libreoffice/sc/source/filter/xml/xmlwrap.cxx:182\n" "#31 0x00007fffa15e3c0b in ScXMLImportWrapper::Import(ImportFlags, ErrCode&) (this=0x7fffffffa2b0, nMode=ImportFlags::All, rError=...) at .../libreoffice/sc/source/filter/xml/xmlwrap.cxx:510\n" "#32 0x00007fffa182aa1c in ScDocShell::LoadXML(SfxMedium*, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) (this=0x55555a783820, pLoadMedium=0x55555aa07260, xStor=empty uno::Reference) at .../libreoffice/sc/source/ui/docshell/docsh.cxx:482\n" "#33 0x00007fffa182b423 in ScDocShell::Load(SfxMedium&) (this=0x55555a783820, rMedium=...) at .../libreoffice/sc/source/ui/docshell/docsh.cxx:629\n" "#34 0x00007ffff5182831 in SfxObjectShell::LoadOwnFormat(SfxMedium&) (this=0x55555a783820, rMedium=...) at .../libreoffice/sfx2/source/doc/objstor.cxx:3128\n" "#35 0x00007ffff5174ee3 in SfxObjectShell::DoLoad(SfxMedium*) (this=0x55555a783820, pMed=0x55555aa07260) at .../libreoffice/sfx2/source/doc/objstor.cxx:677\n" "#36 0x00007ffff51c5544 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x55555a39fdc0, seqArguments=uno::Sequence of length 16 = {...}) at .../libreoffice/sfx2/source/doc/sfxbasemodel.cxx:1883\n" "#37 0x00007ffff52f307f in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) (this=0x5555587e4650, rArgs=uno::Sequence of length 13 = {...}, _rTargetFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x5555569f3330) at .../libreoffice/sfx2/source/view/frmload.cxx:681\n" "#38 0x00007ffff5fd8854 in framework::LoadEnv::impl_loadContent() (this=0x555557039788) at .../libreoffice/framework/source/loadenv/loadenv.cxx:1163\n" "#39 0x00007ffff5fd45c7 in framework::LoadEnv::start() (this=0x555557039788) at .../libreoffice/framework/source/loadenv/loadenv.cxx:394\n" [..] Change-Id: I2d61e4a29543b1d331ae63d7ec023e88395e0b68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109705 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-22tdf#139782 sc: Don't try to access unallocated columnMichael Weghorn1-0/+4
This fixes a regression from commit 7282014e362a1529a36c88eb308df8ed359c2cfa Date: Fri Feb 1 15:15:16 2019 +0100 tdf#50916 Makes numbers of columns dynamic. Change-Id: I12a780bf52024cef31188651813d3a93cc2b5ddd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109704 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-21tdf#118207: tdf#118189: sc: Move UItest to CppUnitTestXisco Fauli2-3/+3
Change-Id: I1084aaf66d0c1943fa1457de7bb58c2b0b1b1189 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109481 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-01-21lok: Send rows heights invalidation on pasteDennis Francis1-2/+18
... when the dest cell has wrap-text option set. Conflicts: sc/source/ui/view/cliputil.cxx Change-Id: I9f0dd157694701c96fd91e02b8232ed205f13ae4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109602 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> (cherry picked from commit 5fb8b1b2867af8dc5e55c769cf9923609709f914) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109670 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
2021-01-21tdf#116818 sc,offapi,XLSX import: fix autofiltered date columnsBalazs Varga4-12/+60
by importing dateGroupItem. Add property IsDateValue to com::sun::star::sheet::FilterFieldValue. Note: ODS import/export and XLSX export haven't been supported, yet. To check/show the fix manually, run the test with $ (cd sc && make -srj8 UITest_autofilter UITEST_TEST_NAME="autofilter.AutofilterTest.test_tdf116818" SAL_USE_VCLPLUGIN=gen) Change-Id: I033f1915c710589ff11fe97e9b39e45251976dfc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109233 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-21cache SalLayoutGlyphs in ScOutputData::LayoutStrings()Luboš Luňák1-6/+41
OutputDevice::GetTextWidth() requires the layout, and DrawText() requires it as well. Moreover GetTextWidth() may be called multiple times (e.g. if the whole string doesn't fit the cell). Cache up to 1000 layouts, they get cleaned up after LayoutStrings(), and with larger cells there won't be that many of them, and with smaller cells they should generally contain short strings. Change-Id: I42defd275467078b2c02c7700ca9bbc2c6e65e15 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109708 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-01-21tdf#51022 sc import: fix lost print ranges of last sheetAttila Szűcs1-9/+13
of documents with external references. Processing external sheets could remove (or extend) the print ranges of the last non-external sheet (indexed by nCurTab). Co-authored-by: Tibor Nagy (NISZ) Change-Id: Ifc44148875106dad791de61953f3b046b6f2b188 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109295 Tested-by: László Németh <nemeth@numbertext.org> Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-21pivot table: avoid crash on drag n dropSzymon Kłos1-0/+3
Change-Id: I8d081cf884c38b2e4f367143ad728c29b1466fbd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109634 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-01-20tdf#139115 vcl tree list: add new toggle behaviorsAttila Szűcs1-0/+3
at clicking on list items with checkboxes to clean-up generic VCL plugin commit 2471d6f44c7e8ecbe86a90eeb593b899a08a7408 (tdf#116675 vcl tree list: toggle by label click (e.g. in AutoFilter)). This limits the new toggle-always to ScCheckListMenuControl (e.g. AutoFilter). set_clicks_to_toggle() options to set the effect of the click on a treeview list item: 0 == clicking never toggles the checkbox (default setting) 1 == clicking always toggles the checkbox 2 == clicking only toggles the checkbox of a selected list item, i.e. the first click selects a not selected list item, and only the second click toggles its checkbox. It would be better if we could set this information in the .ui files, but I did not find a good way for that. A good place in the code to call this function can be found by searching for the .ui filename. Co-authored-by: Tibor Nagy (NISZ) Change-Id: I5c72d710508fc397f2b6f959d7680b23f8dc6f67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108947 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-20ofz#29691 revert throw SvStreamEOFExceptionCaolán McNamara5-1073/+1019
reasonably sane code like s.ReadUInt32(a).ReadUInt32(b).ReadUInt32(c).ReadUInt32(d); if (s.good()) // use a, b, c d; stopped working. FWIW on a short read we retain whatever was in the variable before the read, rather than overwrite it with new random data, so sal_uInt32 a(0xdead); s.ReadUInt32(a); assert(s.good() || a == 0xdead); the msoffice ppt/escher/xls/doc filters especially speculatively parse and rely on a variables preinit value in the case of a short read. commit b345a2bab0d6f981049951a86b172ce49ce7d4c2 cid#1470786 Uncaught exception commit 71aec4726a94dcde1169fd293dbecfeb0e840e6d ofz#29528 uncaught exception commit bed03603f6cae264abb9e5b58aa2ab00448d92ff ofz#29414 uncaught exception commit 684885a99a1eb7ad943e9736166d4bb1468663be ofz#29443 uncaught exception commit 93574ac7768d247ed754ecda322e54e4bd447e43 ofz#29251 Abrt commit 413db68d95bd39d34e6a6b81a7c5c9478ced0514 ofz#29152 short read commit f400e883044143f999c460375a293647b4a57244 ofz#29151 short read commit 96ea80a725dfe4ef38993f78917c243f13e3beb5 ofz#29129 Abrt on uncaught exception commit 646a635efe6eecbc3d1dd3a7cbb02a278c6f3be5 ofz#28931 Indirect-leak commit b0e573f18629d28fe3179c12d0d434653f92fc93 ofz#29030 Abrt in xlsfuzzer commit 95407c39168d186ee44e67b1a6a4bcf592c58b84 ofz#28902 uncaught exception commit 45175d655ad3773df1c006182108cf25e87b1091 oss-fuzz: tgafuzzer doesn't pass sanity check commit b82fc702bae9d6190bda1b4818a47cfa197df6d8 oss-fuzz: psdfuzzer doesn't pass sanity check commit e7c76d604a4694e6568bf10c2a06a786f1096319 oss-fuzz: epsfuzzer doesn't pass sanity check commit 901e5e7c9170184e286ea3e46fce406136aa9572 oss-fuzz: xlsfuzzer doesn't pass sanity check commit 127bfab61c297df06fd8e71e709bc4362cb89d21 oss-fuzz: pngfuzzer doesn't pass sanity check commit 77387ae00ae27e3f8bcdf7bccf97fb2db8f196b7 oss-fuzz: mtpfuzzer doesn't pass sanity check commit 974ffa79b0fef4ca76558bb8b16bce84af3aaf6c oss-fuzz: xlsxfuzzer doesn't pass sanity check commit 6d6d104cbb382d0045e1f04b12d268992fa5c624 oss-fuzz: bmpfuzzer doesn't pass sanity check commit a7d1d107ec58d3b00b4019c89edddcff71ca6ff3 oss-fuzz: qpwfuzzer doesn't pass sanity check commit 898993aa62276f59480df8af1da4bad530829b56 oss-fuzz: pcxfuzzer doesn't pass sanity check throw/catch parts of commit 8c9a4ff511a3b1d84a7a6d08a1b153c07f164abb throw exception in SvStream when reading past end of file Change-Id: Ic49c249768b17b64d8e868655dbc05b31906c2e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109621 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-19ofz#29713 Direct-leakCaolán McNamara1-3/+5
Change-Id: I6acec28ac5ebfe5e266b8dc6ff355eb4dbd6fc6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109626 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-19loplugin:unusedmethodsNoel2-6/+0
GtkPrintWrapper stuff is dead since commit ed07ec7606cb24cccaf6b7b81b2bd308debaa2e6 drop never completed GtkSalPrinter Change-Id: Ia42e9bca020a9683ba247d466f743a0018e920f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109618 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-18Bring uno:RefreshView to CalcSamuel Mehrbrodt3-0/+11
Allow refreshing the document layout via UNO slot Change-Id: I956bb884b1fb4231b1f617c4aa5a80ff9a45ec92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109230 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-01-17Fix typosAndrea Gelmini1-1/+1
Change-Id: Ibf250ad583c0c58c1c7866bf1c37129f0e4b8fd9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109468 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-01-16tdf#139583 fix case rot 180deg for cell anchored shapesRegina Henschel2-6/+16
Method adjustAnchoredPosition() in ScDrawView::Notify() needs to distinguish whether an object really has a changed geometry or only becomes visible. The previous solution used the snap rectangle for this. But in the case of a 180deg rotation only the logic rectangle changes, not the snap rectangle. The patch extends the test to consider logic rectangle as well. SetCellAnchoredFromPosition is adjusted to create maShapeRect, which is compared to the logic rectangle. Change-Id: Iba8a173938da05178f1058ef98e9ef526cca490e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109386 Tested-by: Jenkins Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
2021-01-16lok: sort: invalidate the row-height cache tooDennis Francis1-0/+11
Change-Id: I13e59dc045b23a6ea60cd4cf34dda3166dbf5aad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109208 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit 7ef5fcc08f6678ad6a61c46b187e1920fca74d23) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109275 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
2021-01-16tdf#97087 Give unique, comphrehensible names to idleshomeboy4451-0/+1
Change-Id: I6823486a45311f81f0ed789dedff6c02b8fb3893 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109056 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-01-16make the Color constructors explicitly specify transparencyNoel21-43/+41
to reduce the churn, we leave the existing constructor in place, and add a clang plugin to detect when the value passed to the existing constructor may contain transparency/alpha data. i.e. we leave expressions like Color(0xffffff) alone, but warn about any non-constant expression, and any expression like Color(0xff000000) Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-15fix location of change tracking boxes in OnlineNoel Grandin1-2/+2
Change-Id: I65fcb52e224dce7df2a5a7baed2b8f23d0d49397 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108849 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2021-01-15tdf#136155 let the other elements in the dialog determine the final widthCaolán McNamara1-0/+3
Change-Id: Ib47db4f47a331b1f3754ca4974a9f3e5b14efc95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109292 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-01-15tdf#138832 XLSX export: fix lost file names in modified linksAttila Szűcs1-1/+1
Also for single-reference links, use the temporary indexes calculated in commit f85d860ccbebd99bc128218148e2992c9415f221 (tdf#87973 XLSX export: fix lost file names in modified links), Note: only a new test case has been added to the modified unit test document. Co-authored-by: Tibor Nagy (NISZ) Change-Id: I4337a4e68008956ea42b626d210f07b1cbfe59ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109088 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-15tdf#139258 XLSX export: fix position of rotated imagesSzabolcs Toth1-7/+4
Follow-up of commit a4eec60c388cc65ae0b4c8ea0fd7235f520a749d (tdf#123613 XLSX export: fix position of rotated shapes) and commit 368c56144aab5794c39d5bc2082d9b3d6d7cebdb (refactor for xlsx shape export). Change-Id: If5a79685efa1a80ea82eac19aed12bb426d10987 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108533 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-14lok: send sheetGeometry invalidation after sortDennis Francis1-0/+9
...just for the rows to let the client know the row sizes/spans have changed. Change-Id: I26f985ab0ba4eb5b21db5783a8ac3957c64c2f22 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109207 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit cca01519c7e778d3cf9208e642073d939d9fdac0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109272 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
2021-01-14tdf#133858 reduce the double-ref range to data contentDennis Francis2-0/+115
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>
2021-01-14Rename m_xBtnCancel->m_xBtnClose (sc/optsolver)Julien Nabet2-4/+4
Since it corresponds to id="close" gtk-close, response close in sc/uiconfig/scalc/ui/solverdlg.ui Change-Id: I909f8f7a5d08784bda786eb86d92f88831749f23 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109246 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-13Revert "pivot table: make options cancel button working" + fix crash againJulien Nabet1-1/+1
In the dialog, you have 3 buttons "Help", "Cancel" and "OK" Using "Cancel" will call "close" which doesn't revert back changes. To test this: - Launch Calc - Create an array with 2 cols (qtX and qtY) and put 2 rows of values - Create a pivot dialog - Put qtX in "Filters" part - Double click on qtX (=> "Data Field" dialog appears) - Click "Options..." (=> "Data Field Options" dialog appears) - Enable any checkbox (eg: Empty line after each time) + click "OK" (=> dialog "Data Field Options" closes) - Click "Options..." again (the checkbox is still enabled as expected) - Disable the checkbox + click "Cancel" (=> dialog "Data Field Options" closes) - Click "Options..." again (the checkbox is still enabled as NOT expected) So revert the below quoted commit and fix this by using "cancel" in: - action-widget response - id for the GtkButton - the use of the id to initialize m_xBtnCancel with m_xBuilder->weld_button This reverts commit c2a349bc1482482d3e5ec06232c166d77fe9b602. Change-Id: I555a90706de635e90b0ee397dfd958df55b5c40a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109193 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-01-13Resolves: tdf#138972 dnd is moving instead of copying the dataCaolán McNamara1-4/+4
Change-Id: Icb2a3882704bf38c14b7a46154d51c3171268ca6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109220 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-13lok: don't turn off online spelling by view change.Tamás Zolnai1-7/+8
Since we don't exit editing for LOK inside this NotifyChange() method, we should keep also spelling functionality alive. See also the comment we have here: "As long as the content is not edited, turn off online spelling." So it seems a good idea to make this spelling modification dependent of bStopEditing flag. This causes issues, during view switches. Change-Id: Ic684073d129c1cac4b6f4d11f34cd64cb5db3295 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109206 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109209 Tested-by: Jenkins
2021-01-13devtools: move DevelopmentToolChildWindow to its own fileTomaž Vajngerl2-2/+2
Change-Id: I12326479afb5756729b62ff3676f995d16f64aa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109045 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-01-13devtools: Enable DevTools in Calc, Impress and DrawTomaž Vajngerl2-1/+5
This adds the DevTools to menu in Calc, Impress and Draw, so it is possible to turn on the DevTools docking window in these most relevant modules. Change-Id: I446d2f0c9b6e5a1169d4eef556ac6989fa080634 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108977 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-01-13tdf#113013 XLSX import: fix "Formula is" type conditional formattingTibor Nagy1-4/+9
rule when the formula contains a reference to another worksheet. Change-Id: I873fad97a88df64e885fef20d4259ef6bfeaa06b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108850 Tested-by: Jenkins Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-13ofz#29528 uncaught exceptionCaolán McNamara1-348/+356
Change-Id: Ie2d52ba50d911ab6245d1dcf9b5e0f13ad53c300 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109188 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-12cid#1471553 establish that pViewData will never be nullCaolán McNamara1-11/+8
seeing as these are created from CreateScSubTotalDlg and that is always called with a aArgSet containing a ScSubTotalItem with a non-null ScViewData set Change-Id: I1e3d243e4b00d54f9f5015a543556c39d6053f07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109069 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-12transparency->alpha in tools::ColorNoel3-5/+5
this just changes the Get/Set methods, the constructor and internal representation of Color is not changed. Change-Id: Idb6e07cc08bbaa5bd55b6bd4b585e648aef507b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109074 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-12pivot table: make options cancel button workingSzymon Kłos1-1/+1
Change-Id: Ife5b5b09d7fb0879f5c29a5aefeec4746bc0ae56 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107816 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109099 Tested-by: Jenkins
2021-01-12jsdialog: make Data field dialog workingSzymon Kłos2-0/+46
Change-Id: Iae4ec2b585272fb09253b6e05ac2a59da2219fd7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107777 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109098 Tested-by: Szymon Kłos <szymon.klos@collabora.com>
2021-01-11CreateScSubTotalDlg always called with a non-null pArgSetCaolán McNamara5-8/+7
Change-Id: I8a13a66ab7ce55a48896a921dc3b91594abefbc4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109068 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-11MakeNumberInfoItem always passed a non-null ScViewData*Caolán McNamara4-5/+5
Change-Id: Ibf6c837f841749b7fb25fd448c954105ef78beeb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109067 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>