Age | Commit message (Collapse) | Author |
|
When we have sheet with lots of data with applied conditional formatting
and that data is used with autofilter feature - filtering is very slow.
That was caused by repaints synchronously called on every row show/hide.
ScConditionalFormat::DoRepaint() called by ScFormulaListener callback
...
ScDocument::Broadcast
ScColumn::BroadcastRows
ScTable::SetRowHidden
ScTable::DBShowRows
This patch schedules repaint in the Idle so we do that after all changes
are already applied.
Change-Id: If0876ada0f336a41b69560db6a581d6e24d7ac16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156897
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit c838c24a7e1eee9709789aab99b242f0a0c8c419)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156969
|
|
When xlsx spreadsheet was opened in LOK on
every save default column width was decreased.
This doesn't happen in non-LOK case.
Column width in Excel are defined by double value
which specifies number of '0' characters which fit
into the column.
On export we use mnCharWidth from XclRootData to
convert Calc twips size to number of characters.
In LOK case it was 102 while in non-lok case 101.
It was caused by different Reference Device used in
ScDocument::GetRefDevice() because in LOK case we
are in WYSWIG mode as introduced in
ScModelObj::initializeForTiledRendering in commit c25062f:
sc tiled rendering: Don't adjust the text width according to printer.
Let's use for export purpose the GetVirtualDevice_100th_mm()
Change-Id: I6709194d7924e8c7e0aaa75ff3901afbcc1f8c11
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156576
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156750
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
|
|
... by setting the result value or if necessary recalculating even if
AutoCalc is turned off for the document. Similar for other implicitly
recalculating formula types.
Also set a boolean number format if none.
Change-Id: I2f75735707180eccf4b2c525738ac0b763901230
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147425
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 05ac57f85eb622b798719db03bbdd07b79e1703a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147444
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 816b0e97f32df82a1ffc23950d5bf21760a4cd39)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153546
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
|
|
"ImagePreferredDPI" property was added for impress and writer,
but it was not handled in calc, so it document properties dialog
crashed (exception because of a non existent property).
Change-Id: I9eb3f6aa7cf6d8ab48930b3071b993e073117688
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127942
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 88d8c9af7140ec25dfbcd9323b870a2da7b6f7e0)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152558
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
|
|
When clone a conditional format list, also copy the cache
values that hold the min and max values, otherwise if clone
occurs when copying to the clipboard the values have wrong
data due to limiting range cells copied.
Signed-off-by: Henry Castro <hcastro@collabora.com>
Change-Id: Id9085a1488a3bde24842e0d2e062c9b425074157
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151686
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
When copying a range cells to a clipboard, if exists a
color scale conditional format from different ranges,
it should update the min and max values, otherwise
the color scale conditional format could not calculate
min and max values due to limiting range cell copied.
Signed-off-by: Henry Castro <hcastro@collabora.com>
Change-Id: I660e18090a60b99ddf2b55ce1f713fd41121290e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151685
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Move the AddSub calculation inside ScMatrix so we
can use an iterator to walk the matrix and avoid lookup
cost for each element.
Shaves 50% off the time spent here in my test sheet.
Change-Id: I171d7dd4ae86419a563342a4120d14106e8d71db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144826
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit 96f162d02adee9b4edbb440896be90a64523c119)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144900
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Import table column attribute totalsRowFunction and also export it,
which fixes a warning when roundtripped on a different office suite.
Change-Id: Icc76fc310aef3bd51bcefebece57f962a56b7cca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142843
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit e54b39c82e88a296af1d2c7ddbf6f20513ffacf5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143444
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Change-Id: Ie6551e386cd53f6b4bf4cceb6d7bd6170a2072ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143599
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Rashesh Padia <rashesh.padia@collabora.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
|
|
This will avoid repeated lookup in the ScTable::GetCellArea.
Which is used for vcl::ITiledRenderable::getDataArea().
Tested in CppunitTest_sc_ucalc
Change-Id: Ied58cfe447e1b924af9b401e95e127c784b80355
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142279
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
|
|
It will share information about real size of a data inside
spreadsheet so we can easily check where data ends in online
side.
Change-Id: I376187a33c5c82d409f559d5cc826a4f36d4252e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139472
Reviewed-by: Gökay ŞATIR <gokaysatir@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Change-Id: If582e7e1bf818dcf9eaddd5313aa21f5768a578f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139886
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit a56e5434a4ed453b55b8f060ed18404d77a9fb10)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139842
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
I don't see why it should be private, it's range checked,
so there should be no harm. Especially when a number of classes get
declared as friends to get access to it anyway.
Change-Id: I333d749aa9d09aaf9dcbabf43d67a67d1257a132
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134051
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139471
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
shaves 10% off view load time
Change-Id: I51078ef81613faa2f8c37530fb7dc77b73192525
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140070
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit 7e829725105897da822fe4b0d09c4a04a2666132)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139987
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
This requires 2 fixes
(*) First, we are deleting from the front of a block in the mdds
storage, so apply a similar patch to mdds to the previous improvement,
(*) Then, we end up with an O(n^2) situation in ScRangesList::Join.
But we are only displaying this data, and in fact, we only display the
first 1000 ranges anyway, so just clamp the list to 1000 entries, and
pass a flag up to the dialog so that we can report that we stopped
counting.
(*) I had to tweak the testSharedStringPool unit test, since
we are not actually clearing the underlying mdds storage, the
reference counts do not drop until we have removed all the
elements in that block of mdds storage (because then the entire
block is destructed, including the not-yet destructed elements)
Change-Id: I2c998f81dfb46453a48fce1254fd253d299d12b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139400
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit 462053a26070db6e7c8ec818c816d64d1d82782b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139424
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
This reverts commit 99cd1d8834bb708afc81c825ff2b7992b7acb37d.
This commit is only reverted in libreoffice-7-3 branch.
In master and libreoffice-7-4 the issue is not reproducible
after the default Calc number of columns was increased to 16384
Change-Id: I28dcc1c56c803d49ea101dbb0ace7085f7a78820
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138445
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Change-Id: I54fc92d1d7afd61febbbb057868b038864f29ec2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138432
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit d3492e15dce1dc8448c6444a92e3e2f7ec19571c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138566
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
|
|
This commit follows the same pattern as
commit c72e500ccaf0ce2261c5233b80fba9342778f810
sw: allow undo of typing in 2 views independent from each other
with some changes since calc and writer have different undo/redo
infrastructure on top of SfxUndoManager.
Change-Id: Ib6e7e21caccb94752c01c529b5013553dba8b4f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137579
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit a2e1754dc96955a8c6da0e25896f645cf2f09f74)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137596
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
No functional change.
Change-Id: I822c6a9d270dc582aaae2900f833843a0d6f8ddc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134651
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 0874486b348f1477d59e161a4d73c5cb56e238f9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137434
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
... instead of std::vector to not get invalidated iterators when
the container is resized.
Regression from
commit f8defe59ff75df2b516ee407f1dac22b0ac72a19
CommitDate: Wed Sep 6 22:45:10 2017 +0200
Replace some lists by vectors in unoobj (sc)
which was bad for this case.
Change-Id: I8d3a001242865cadc82b359a3198906d26373a41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136007
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 7a0a0e23b7e81c1ee0601824a4ee990a2178f98b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136023
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Columns should be dynamically allocated on demand, so there should
be theoretically no good reason to allocate 64 initially. In practice
doing so hides all places that do not allocate columns as needed.
Change-Id: I8b46ecc97852ed23369e720f50f3266c48440435
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133311
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133800
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
e4008dc0c3b43c9eacdd88511075be2b88 did this for ApplyBlockFrame()
but didn't chagne ApplyFrame() which is only called from there.
Change-Id: I9f1dce3dc7fda23b42e90432c13dfca0aa7f267e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135072
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
==143282== Invalid read of size 2
==143282== at 0x190CDBFC: SfxItemSet::Count() const (itemset.hxx:96)
==143282== by 0x1910F33E: SfxItemSet::Get(unsigned short, bool) const (itemset.cxx:748)
==143282== by 0x1F14D76C: ScPatternAttr::GetItem(unsigned short, SfxItemSet const&, SfxItemSet const*) (patattr.cxx:1347)
==143282== by 0x1F14D7DA: ScPatternAttr::GetItem(unsigned short, SfxItemSet const*) const (patattr.cxx:1352)
==143282== by 0x202A3E44: ScLineBreakCell const& ScPatternAttr::GetItem<ScLineBreakCell>(TypedWhichId<ScLineBreakCell>, SfxItemSet const*) const (patattr.hxx:83)
==143282== by 0x2028E8BC: ScOutputData::LayoutStrings(bool, bool, ScAddress const&) (output2.cxx:1677)
==143282== by 0x2028D4A8: ScOutputData::DrawStrings(bool) (output2.cxx:1473)
==143282== by 0x202D9879: ScPrintFunc::PrintArea(short, int, short, int, long, long, bool, bool, bool, bool) (printfun.cxx:1675)
==143282== by 0x202DD459: ScPrintFunc::PrintPage(long, short, int, short, int, bool, ScPreviewLocationData*) (printfun.cxx:2301)
==143282== by 0x202DF491: ScPrintFunc::DoPrint(MultiSelection const&, long, long, bool, ScPreviewLocationData*) (printfun.cxx:2713)
==143282== by 0x20031888: ScModelObj::render(int, com::sun::star::uno::Any const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (docuno.cxx:2259)
==143282== by 0x30C1A485: PDFExport::ExportSelection(vcl::PDFWriter&, com::sun::star::uno::Reference<com::sun::star::view::XRenderable> const&, com::sun::star::uno::Any const&, StringRangeEnumerator const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&, int) (pdfexport.cxx:219)
==143282== by 0x30C1F879: PDFExport::Export(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (pdfexport.cxx:987)
==143282== by 0x30C33BA2: PDFFilter::implExport(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (pdffilter.cxx:174)
==143282== by 0x30C33F2A: PDFFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (pdffilter.cxx:237)
==143282== by 0x21AC6986: SfxObjectShell::ExportTo(SfxMedium&) (objstor.cxx:2488)
==143282== by 0x21AC2363: SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) (objstor.cxx:1553)
==143282== by 0x21ACE816: SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (objstor.cxx:2966)
==143282== by 0x21ACCA87: SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (objstor.cxx:2756)
==143282== by 0x21AA8CDB: SfxObjectShell::APISaveAs_Impl(rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (objserv.cxx:317)
==143282== by 0x21B2B4AD: SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) (sfxbasemodel.cxx:3132)
==143282== by 0x21B2CB12: SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (sfxbasemodel.cxx:1768)
==143282== by 0x1C507AFE: ScPDFExportTest::exportToPDF(com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, ScRange const&) (scpdfexport.cxx:192)
==143282== by 0x1C511A33: ScPDFExportTest::testForcepoint97() (scpdfexport.cxx:571)
==143282== by 0x1C52778D: void std::__invoke_impl<void, void (ScPDFExportTest::*&)(), ScPDFExportTest*&>(std::__invoke_memfun_deref, void (ScPDFExportTest::*&)(), ScPDFExportTest*&) (invoke.h:74)
==143282== by 0x1C5276C1: std::__invoke_result<void (ScPDFExportTest::*&)(), ScPDFExportTest*&>::type std::__invoke<void (ScPDFExportTest::*&)(), ScPDFExportTest*&>(void (ScPDFExportTest::*&)(), ScPDFExportTest*&) (invoke.h:96)
==143282== by 0x1C527659: void std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (functional:420)
==143282== by 0x1C5275E2: void std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()>::operator()<, void>() (functional:503)
==143282== by 0x1C52758C: void std::__invoke_impl<void, std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()>&>(std::__invoke_other, std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()>&) (invoke.h:61)
==143282== by 0x1C52753C: std::enable_if<is_invocable_r_v<void, std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()>&>(std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()>&) (invoke.h:111)
==143282== by 0x1C52731C: std::_Function_handler<void (), std::_Bind<void (ScPDFExportTest::*(ScPDFExportTest*))()> >::_M_invoke(std::_Any_data const&) (std_function.h:290)
==143282== by 0x1C527A34: std::function<void ()>::operator()() const (std_function.h:590)
==143282== by 0x1C527078: CppUnit::TestCaller<ScPDFExportTest>::runTest() (TestCaller.h:175)
==143282== by 0x49326F2: CppUnit::TestCaseMethodFunctor::operator()() const (TestCase.cpp:32)
==143282== by 0x15937E3D: (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (vclbootstrapprotector.cxx:46)
==143282== by 0x4929ED1: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (ProtectorChain.cpp:20)
==143282== by 0x4B05D6D: (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (unobootstrapprotector.cxx:78)
==143282== by 0x4929ED1: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (ProtectorChain.cpp:20)
==143282== by 0x4AF2F2A: (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (unoexceptionprotector.cxx:62)
==143282== by 0x4929ED1: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (ProtectorChain.cpp:20)
==143282== by 0x491261E: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (DefaultProtector.cpp:15)
==143282== by 0x4929ED1: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (ProtectorChain.cpp:20)
==143282== by 0x4928690: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (ProtectorChain.cpp:86)
==143282== by 0x4946ACD: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (TestResult.cpp:182)
==143282== by 0x4932103: CppUnit::TestCase::run(CppUnit::TestResult*) (TestCase.cpp:91)
==143282== by 0x4932BCF: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (TestComposite.cpp:64)
==143282== by 0x4932A5F: CppUnit::TestComposite::run(CppUnit::TestResult*) (TestComposite.cpp:23)
==143282== by 0x4932BCF: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (TestComposite.cpp:64)
==143282== by 0x4932A5F: CppUnit::TestComposite::run(CppUnit::TestResult*) (TestComposite.cpp:23)
==143282== by 0x494FDBF: CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) (TestRunner.cpp:47)
==143282== Address 0x1d7624b0 is 64 bytes inside a block of size 120 free'd
==143282== at 0x4847669: operator delete(void*) (vg_replace_malloc.c:923)
==143282== by 0x1F150EA1: ScPatternAttr::~ScPatternAttr() (patattr.hxx:53)
==143282== by 0x190D29B2: SfxItemPool::Remove(SfxPoolItem const&) (itempool.cxx:802)
==143282== by 0x1EA27F8E: ScAttrArray::SetPatternAreaImpl(int, int, ScPatternAttr const*, bool, ScEditDataArray*, bool) (attarray.cxx:574)
==143282== by 0x1EBF43D5: ScAttrArray::SetPattern(int, ScPatternAttr const*, bool) (attarray.hxx:148)
==143282== by 0x1EBD9068: ScColumn::ApplyAttr(int, SfxPoolItem const&) (column.cxx:634)
==143282== by 0x1EC6C1EB: ScColumn::SetNumberFormat(int, unsigned int) (column2.cxx:3094)
==143282== by 0x1F1CB737: ScTable::SetNumberFormat(short, int, unsigned int) (table2.cxx:2238)
==143282== by 0x1EE3F135: ScDocument::SetNumberFormat(ScAddress const&, unsigned int) (document.cxx:3717)
==143282== by 0x1F09CCA5: ScFormulaCell::InterpretTail(ScInterpreterContext&, ScFormulaCell::ScInterpretTailParameter) (formulacell.cxx:2155)
==143282== by 0x1F099D9F: ScFormulaCell::Interpret(int, int) (formulacell.cxx:1615)
==143282== by 0x1ECC048D: ScFormulaCell::MaybeInterpret() (formulacell.hxx:465)
==143282== by 0x1F09F5C8: ScFormulaCell::IsValue() (formulacell.cxx:2760)
==143282== by 0x1EA82355: (anonymous namespace)::hasNumericImpl(CellType, ScFormulaCell*) (cellvalue.cxx:155)
==143282== by 0x1EA822FA: ScRefCellValue::hasNumeric() const (cellvalue.cxx:624)
==143282== by 0x2028E876: ScOutputData::LayoutStrings(bool, bool, ScAddress const&) (output2.cxx:1676)
==143282== by 0x2028D4A8: ScOutputData::DrawStrings(bool) (output2.cxx:1473)
==143282== by 0x202D9879: ScPrintFunc::PrintArea(short, int, short, int, long, long, bool, bool, bool, bool) (printfun.cxx:1675)
==143282== by 0x202DD459: ScPrintFunc::PrintPage(long, short, int, short, int, bool, ScPreviewLocationData*) (printfun.cxx:2301)
==143282== by 0x202DF491: ScPrintFunc::DoPrint(MultiSelection const&, long, long, bool, ScPreviewLocationData*) (printfun.cxx:2713)
==143282== by 0x20031888: ScModelObj::render(int, com::sun::star::uno::Any const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (docuno.cxx:2259)
==143282== by 0x30C1A485: PDFExport::ExportSelection(vcl::PDFWriter&, com::sun::star::uno::Reference<com::sun::star::view::XRenderable> const&, com::sun::star::uno::Any const&, StringRangeEnumerator const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&, int) (pdfexport.cxx:219)
Change-Id: Idf19b79f5aef7e07666249f5f9ec510003a3f886
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134362
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
I.e. no restriction on number of rows for LOK.
Change-Id: I248a70bafe18c68e59f604e33b9456474ab785c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134282
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
All tests pass now, and I've also handled all significant bugreports
from tdf#133764. This commit is mainly meant to test this more
in practice and collect feedback. Depending on how this turns out,
there may be a backwards compatibility option or something similar,
but so far I see no significant need for it.
Change-Id: I1a946f4e0b51be5acf4e25dc773e7694c2b17b48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131180
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131959
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Change-Id: I616ef20dc1295ce17c4877ff367815bb6a90b7a1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134551
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: Ic213997edf6838282a38e444a638713a72397fb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134549
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Generally const functions should not modify the data, so this
generally should not be needed. Those functions that need to allocate
a column because they can't/don't handle default values for
non-existent columns well should go with const_cast, being
an exception to the rule.
Change-Id: I62706da5b447019542d6775f14064fa15b71f3c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134488
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134548
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
With this callback the lok clients can read and draw the print ranges on
each sheet of the Calc document.
Conflicts:
include/LibreOfficeKit/LibreOfficeKitEnums.h
libreofficekit/source/gtk/lokdocview.cxx
Change-Id: Ie19351d4420e0f3d4191f6a354ce99ab830aede2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134375
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
(cherry picked from commit 172bc7a8f4eeab907adac077407186fbbd046a77)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134527
Reviewed-by: Gökay ŞATIR <gokaysatir@collabora.com>
|
|
If there's a document with a huge formula group, InterpretDirtyCells()
on load will only interpret the range needed for drawing. But then
scrolling just a bit could result in e.g. IsValue() call on a cell,
and that could result in unrestricted Interpret() on the whole
huge formula group, which could be slow. So explicitly interpret
just the drawn cells in the hope that it'll avoid any further
Interpret() calls.
Change-Id: I01c9f95cf8a1cf240b798feef27d21010957030c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133306
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit 64cb1d10fffccebbc825c858083f13eb717b0553)
|
|
The function has been there since the initial commit and is not
documented, but I think it counts the shortest amount of empty
cells in the given area starting from the direction given. And
AFAICT the off-by-one error was there since the initial commit,
when it returned one less if the entire area was empty and
the direction was vertical (horizontal was fine). And
ScHTMLExport::FillGraphList() even was adjusted for this until
my recent commit changing that code). But then ad2bc869bfe2d34bde
added a shortcut for unallocated columns that didn't have
the error. And the error even got corrected during the rewrite
in c008dc483f8c6840803983e7e351cec6fdd32070, but then
01de94471c20a8b9c36d6080638d70e57eac55bf reverted that. Anyway,
so fix this, I think all the relevant code should(?) now work
properly.
Change-Id: I194691f7276a1cea75945de05cb0dda2cdca859a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133319
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
The GetEmptyLinesInBlock() call has unclear semantics and it appears
that it has an off-by-one error. Use a simple clear function
for the check.
Change-Id: I45d9b73428aedababc1ad93c202daa1de945b5bf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133303
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
The problem with GetColumnsRange() was that it was clamping the range
to the number of allocated columns, but that's not always wanted,
e.g. ScDocument::InsertMatrixFormula() needs to iterate over the whole
range and allocate columns if necessary instead of ignoring them.
From an API point of view it's also not very obvious that something
called GetColumnsRange() actually does something more than just
returning the given range.
Handle this by making GetColumnsRange() return the actual given range,
and add GetWriteableColumnsRange() and GetAllocatedColumnsRange()
for the specific cases. This also required changing ScColumnsRange
to work simply on SCCOL value instead of using std::vector iterator
(since the vector may not have all the elements in the range).
Change-Id: I9b645459461efe6b282e8ac5d7a29549830f46c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133295
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
thanks to that we can reach them using LOK as formulabar
is not fully welded yet
Change-Id: Icc1963ab11c1e6e3c407222d76b2a87fdaffa652
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133496
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Mert Tumer <mert.tumer@collabora.com>
|
|
Having a separate sparkline context is very useful, so we can add
a custom UI when the user has the cursor over a sparkline. This
will allow a "Sparkline" tab for NotebookBar and its own deck in
Sidebar, activated only when the sparkline is present. Also the
pop-up menu can be customized specifically for the sparkline, but
this may be less useful.
For the sparkline context we need a custom shell - SparklineShell
where now all the UNO commands can be implemented (not done in
this commit).
Change-Id: Idca2ad946af3afdd1b494744b80c9c093eec602c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133022
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit e1f3f2e00c37173e5f6f1cbb5235ab95b100bde7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133062
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Disable error dialog box when about to save in lok mode as this
ultimately invokes SvpSalInstance::DoYield() when we want to save
immediately without committing any erroneous input in possibly a cell
with validation rules. After save is complete the user can continue
editing.
Conflicts:
sc/source/ui/app/inputhdl.cxx
Change-Id: Iffa0766ad594db75f57158986c4e1d2646f71da4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132410
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
(cherry picked from commit e0175ee821eaff56c4b8e0a1b7afa1cabe0ab593)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132656
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
|
|
ScTable::HasSelectionMatrixFragment() gets called several times
when opening 'Sheet' in the menubar, and the functions it calls
end up a quadratic cost for the number of columns repeatedly
calling ScMarkData::GetMarkedRanges() for the same object. Fix
the performance problem by getting the value once and reusing it.
Change-Id: I8b05475832c3560318c43429c3b9323035a3691f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132267
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Column flags and widths are stored separately from ScColumn data,
and so don't depend on allocated columns count.
Also rename the functions from the misleading generic name to what
they actually do.
Change-Id: If85ae80efda1d8b382fa3b559aa65be0292e25ba
|
|
A mistake from 694148a9898b47d749588f9a32173a9933262e29,
the array is meant to be from column 0, so as if 'nStartCol == 0'.
Change-Id: I7f2ecea6c7378d0d5530cb38314807a8f7c896c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131972
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
If there's e.g. an entire row bold, it's enough to set default
attribute for unallocated columns.
This also reverts the workaround from commit 297ab561c6754, as it's
no longer necessary.
Change-Id: I0b208709aeaff1c0d59da2410926876715cfe642
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131320
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
As said in the previous commit, the default pattern is the default
style that can be edited by the user, so it's principially incorrect
to simply ignore it. If needed for performance, then it needs
to be done explicitly. This change currently should not affect
anything, as ScHorizontalAttrIterator is used only in tests.
Change-Id: I31f153d427cdfd6e98a4d7a3584cfa89676d4c33
|
|
Even ScDocument::GetDefPattern() can be modified by the user (it's
the default style that can be edited), so it's conceptually
incorrect to ignore it while iterating, and clamping to allocated
columns is also no longer needed. If this makes some code slow,
then that needs explicit handling in that code or some other
way of speeding things up.
Change-Id: I4a7c7fef0a8625b559bbce4580df19a5e9ed92a7
|
|
Things like applying bold to an entire row no longer allocates
all rows after my recent changes, but the attribute change is
done in ScTable to the default attribute of unallocated columns.
That means that clamping column positions to the end of allocated
columns is no longer valid when handling attributes. Add functions
that clamp depending on whether unallocated columns have
a non-default attribute set.
Change-Id: I879d0a034c0b336064361d0f8cb12e5a8da22b9c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131265
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Move the decision whether to return a column or the default data
for unallocated columns into a simple function.
Change-Id: I369b8c815de96b61181f2483c6afac44a5c3bc2e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131264
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
This adds a "edit sparkline" action to the context menu and a
dialog to change the data range of a sparkline. To change a
sparkline using undo/redo, a new class UndoEditSparkline was
added, which allows to change the attributes of a sparkline and
revert back the old attributes when undoing. This is then used in
the Dialog when setting the changed data range of a sparkline.
To make sure that undo/redo works correctly, a simple unit tests
was added.
Change-Id: I08af1813fa288278bc0d33b0540660b325b17235
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132748
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit a08f9ed2341bc60faae6b86538661fea40417ace)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132924
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Change-Id: I6bdb5f4291aece7ec02d8de0731b8f983b4f2bb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132592
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132921
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Issues can happen when saving a document with sparklines where a
sparkline is deleted and then undo-ed. The reason for this is
because the SparlineList wasn't correctly updated when deleting,
copying or adding sparklines. This change adds hooks when new
sparklines are created or when sparklines are deleted to report
this into SparlineList.
SparklineList garbage-collects itself but this is not enough when
we rely that the non-deleted weak pointers to the sparkline groups
contain the correct non-deleted weak pointers to the correct
sparklines.
Change-Id: I976cbe7e6168813d3dd5089c036cc7fe4e357fb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132554
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132883
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
Change-Id: I309087a27ea0bc297c9bea9b2b8945579e055f4d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132552
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132881
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
|
|
This change allows to group parklines together into a sparkline
group, or ungroup them, so they use their own sparkline group.
This also adds the undo and redo for this actions.
Change-Id: I61b604203afaf2fe8c2d47b80082739ded15d6fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132545
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132880
|
|
Change-Id: I34e11a4881c564351c3e08d157fb42ac4bb8ef3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132544
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132879
|