summaryrefslogtreecommitdiff
path: root/chart2
AgeCommit message (Collapse)Author
2024-04-15cid#1546354 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546319 COPY_INSTEAD_OF_MOVE cid#1546286 COPY_INSTEAD_OF_MOVE cid#1546283 COPY_INSTEAD_OF_MOVE cid#1546191 COPY_INSTEAD_OF_MOVE cid#1545953 COPY_INSTEAD_OF_MOVE cid#1545874 COPY_INSTEAD_OF_MOVE cid#1545857 COPY_INSTEAD_OF_MOVE cid#1545781 COPY_INSTEAD_OF_MOVE cid#1545765 COPY_INSTEAD_OF_MOVE cid#1545546 COPY_INSTEAD_OF_MOVE cid#1545338 COPY_INSTEAD_OF_MOVE cid#1545190 COPY_INSTEAD_OF_MOVE cid#1545272 COPY_INSTEAD_OF_MOVE cid#1545242 COPY_INSTEAD_OF_MOVE cid#1545229 COPY_INSTEAD_OF_MOVE Change-Id: I88813d9dbd87ce10375db8198028f8b70e23f0fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162027 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-27tdf#160225, related tdf#92768: hide axis title not taken into account when...Julien Nabet
duplicating sheet or when saving a file and reopen it. When creating a title for an axis, "createTitle" is called. Before tdf#92768 "support hiding title objects", when unchecking "axis title" in sidebar, the title was removed (via "removeTitle") But since tdf#92768, "hideTitle" is called instead. The pb is "Visible" attribute wasn't registered in StaticTitleWrapperPropertyArray. So when duplicating sheet after having created a title and hidden it, when duplicating sheet, the new sheet had the title visible. In the same way if, after having created a title and hidden it, you save the file and reopen it, the title is displayed. Change-Id: I980505ec02906e673dd60a60e4d9837928bf8876 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164938 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr> (cherry picked from commit 6aac5b2c96b42e8204a10def52df1b85ebebeb46) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164878
2024-03-18Disable chart modification in readony view mode.Gökay Şatır
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com> Change-Id: I271caa12eed69099d6f0acd9bdcff53efcc26972 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164970 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2024-03-07tdf#153706: do not add categories, when source data doesn't have themMike Kaganski
lcl_AllOperator is used in XChartDocument::attachData implementation. When a data without existing categories is passed there, like an XY scatter, lcl_AllOperator used to force creation of the categories in the target, by returning 'true' unconditionally from setsCategories. This meant, that a new sequence of numbers starting from 1 was used as X values, and the old X data was interpreted as an extra Y series. This changes lcl_AllOperator::setsCategories to try to check if its data actually contains categories. Thus, XChartDocument::attachData will use categories either when the chart already uses categories, and ChartDataWrapper::applyData detects that using a call to DataSourceHelper::detectRangeSegmentation; or when the new data has it; but not when neither had it. When it's not possible to detect if there were categories in the new data (e.g., with user data), old behavior is used, setting categories. It could be an alternative to detect the chart type using xOldDoc->getDiagram()->getDiagramType() == "com.sun.star.chart.XYDiagram" in XChartDocument::attachData; and then decide to force the creation or not. But it seems hackish, and not really universal: other chart types must be tested (bubble?), no idea how to handle hypothetical cases when applied data contains categories in case of XY chart, etc. Change-Id: I86b34f6799c30b103f7fc6b2faf6ec255a9d137b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164298 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164279
2024-03-07Resolves: tdf#159879 Crash when closing "3D View" dialogCaolán McNamara
Change-Id: I9c116007afe9cea97b597933ad8483dce25c3707 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164274 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2024-03-03Make Chart Object Properties Dialogs Asynccodewithvk
How to reproduce it: When double-clicking on a chart, it will now open the Chart Object Properties dialog box. Previously synchronous, this commit updates it to be asynchronous. Signed-off-by: codewithvk <vivek.javiya@collabora.com> Change-Id: I54c24e0cd30d6ec8b2bfa93567e830405d2fd30c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162576 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 748a5a01165d40e9bcaa7bfc75b0e6f74fc5a07d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164194 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-02-16Chart: Make Data Range Dialog Asynccodewithvk
To reproduce the step, double-click on the chart and right-click to open the context menu, where you can see the option for data ranges. Signed-off-by: codewithvk <vivek.javiya@collabora.com> Change-Id: I0697d5918d35d132aa7c17f86204742017f7ff17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163358 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit afbb4e44478e520b866032df8f0a0a344568233e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163403
2024-02-07Fix: Convert 'runAsync' class-based calls to static method calls for chart ↵codewithvk
properties Signed-off-by: codewithvk <vivek.javiya@collabora.com> Change-Id: Ib368c2bbb5657a2dbf1b7f340bc9fb0b6f436713 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162975 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 9e438e7c169f626fb7a5337d645bf92269b52d5e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163019 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-02-07Set chart outliner background to the page bg to resolve 'auto' colorCaolán McNamara
Change-Id: I2498a7d49dbbd7bde017489722c3b655b6d75136 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162649 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 8fa1493facfe1f088fc99c762b5a8a0773fc1b9c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162854 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 15323cf74a778a5eea0d230c0ad94d7f337ac286) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163079
2024-02-07use ViewShell DOCCOLOR when available for chartsCaolán McNamara
Change-Id: I200538bd94d60867d84b7dc37811094b65dd9aa5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162853 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 1efd4e99741e69946068d0109743f37bc8c71bff) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163078 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-02-07Async Dialogs for Few Chart Propertiescodewithvk
Updated the chart properties dialogs to work asynchronously. The changes affect the following dialogs: Chart Type: Accessible by double-clicking on a chart to select it, then right-clicking to open the context menu. Selecting 'Chart type...' opens the dialog for modifying chart types. Insert Axes: Triggered by double-clicking on a chart to select it, then right-clicking and choosing 'Insert/Delete Axes' from the context menu. This dialog allows users to add or remove chart axes. Insert Titles: Opens when you double-click on a chart, right-click, and select 'Insert Titles...' from the context menu. It's used for adding titles to the chart and its axes. Insert Trendline: For column charts, you can double-click on a column, right-click, and choose 'Insert trendline..' to open this dialog. Insert Error Bars: In a column chart, after selecting a column, right-clicking and choosing 'Insert X Error Bars..' or 'Insert Y Error Bars..' opens the dialog for adding error bars to the chart. Signed-off-by: codewithvk <vivek.javiya@collabora.com> Change-Id: Id7bb8682150f2e3115420d9259c6afd41682641e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162655 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 71a3cfb71dddba8098d74d7bb1dd414e4696914b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163010
2024-02-06tdf#159288: Assertion on insert trend lineJulien Nabet
5 0x00007fd6780533a2 in __assert_fail (assertion=0x7fd66de41177 "ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && \"SolarMutex not owned!\"", file=0x7fd66df2c58b "/home/julien/lo/libreoffice/vcl/source/app/dbggui.cxx", line=35, function=0x7fd66de5d0c6 "void ImplDbgTestSolarMutex()") at ./assert/assert.c:101 6 0x00007fd66f0dd6a2 in ImplDbgTestSolarMutex() () at /home/julien/lo/libreoffice/vcl/source/app/dbggui.cxx:35 7 0x00007fd677522f10 in DbgTestSolarMutex() () at /home/julien/lo/libreoffice/tools/source/debug/debug.cxx:54 8 0x00007fd66f3aea88 in ImplFontCache::GetFontInstance(vcl::font::PhysicalFontCollection const*, vcl::font::FontSelectPattern&) (this=0x564a8f77e0c0, pFontList=0x564a8f7783d0, aFontSelData=...) at /home/julien/lo/libreoffice/vcl/source/font/fontcache.cxx:117 9 0x00007fd66f3ae987 in ImplFontCache::GetFontInstance(vcl::font::PhysicalFontCollection const*, vcl::Font const&, Size const&, float, bool) (this=0x564a8f77e0c0, pFontList=0x564a8f7783d0, rFont=..., rSize=Size = {...}, fExactHeight=12, bNonAntialias=false) at /home/julien/lo/libreoffice/vcl/source/font/fontcache.cxx:111 10 0x00007fd66eb905f6 in OutputDevice::GetDefaultFont(DefaultFontType, o3tl::strong_int<unsigned short, LanguageTypeTag>, GetDefaultFontFlags, OutputDevice const*) (nType=DefaultFontType::CJK_SPREADSHEET, eLang=..., nFlags=GetDefaultFontFlags::OnlyOne, pOutDev=0x564a8f6bfca0) at /home/julien/lo/libreoffice/vcl/source/outdev/font.cxx:573 11 0x00007fd62e86669d in chart::CharacterProperties::AddDefaultsToMap(std::__debug::unordered_map<int, com::sun::star::uno::Any, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, com::sun::star::uno::Any> > >&) (rOutMap=std::__debug::unordered_map with 19 elements = {...}) at /home/julien/lo/libreoffice/chart2/source/tools/CharacterProperties.cxx:358 12 0x00007fd62e951686 in (anonymous namespace)::GetStaticRegressionEquationDefaults()::$_0::operator()() const (this=0x7ffe3f9b6b80) at /home/julien/lo/libreoffice/chart2/source/tools/RegressionEquation.cxx:121 13 0x00007fd62e9500e7 in (anonymous namespace)::GetStaticRegressionEquationDefaults() () at /home/julien/lo/libreoffice/chart2/source/tools/RegressionEquation.cxx:117 14 0x00007fd62e94ff98 in chart::RegressionEquation::GetDefaultValue(int, com::sun::star::uno::Any&) const (this=0x564a90aa2870, nHandle=4, rAny=uno::Any(void)) at /home/julien/lo/libreoffice/chart2/source/tools/RegressionEquation.cxx:196 See full bt here: https://bugs.documentfoundation.org/attachment.cgi?id=192072 Change-Id: I8048b9a69761dba618ef556335c2cadab6647627 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162737 Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit dd5e179f0fd7c9bf37872acf53301be28bb71cfc) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162722 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-01-30When chart is active pass uno:ChangeTheme through to its parent frameCaolán McNamara
so theme changes can happen when chart has control of the UI Change-Id: Id7fd17d697d5ff8c03f1f46d80894e4f69cb9b9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162620 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-23fix bug in renaming chart objectsNoel Grandin
introduced by commit c5bb73cae7c172ad0f02f8c67dd57b53337f1d78 Author: Kohei Yoshida <kohei.yoshida@suse.com> Date: Tue Jan 31 16:03:46 2012 -0500 Get the whole thing to build after the method sig change in SdrObject. Change-Id: I1ca887d09857f6476980381853a9ae4946fd03e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162364 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 0ad94d52c022a0acb20be21b5a1dfcf445e12f0c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162377 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2024-01-23tdf#146487 Don't show generic diagram title when there is an empty title givenSamuel Mehrbrodt
Bugdoc has autoTitleDeleted set to false (so title should be visible), but then an empty title is given. In this case no default string should be added to the title, only in case of Pie Charts. Any other Chart types show the default title in MS-Office. Co-authored-by: Balazs Varga <balazs.varga.extern@allotropia.de> Change-Id: Ib445099a4a3d113cff6b1ffdfd093fe41c34716b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155681 Tested-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> (cherry picked from commit c205194b8c54011af4b2cd34fbc00f4885883643) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162270 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-01-16chart2: Make automatic area coloring for charts work for tiled renderingofftkp
Charts now get a temporary colored applied to the area property set if their color was set to automatic, which is done by default in tiled rendering mode. Change-Id: Ic6bd19b97d2a0ffa2a1ad516cfa202e2f4921db7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160659 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-01-15Make format condition, chart delete and pivot table error asynccodewithvk
todo: Make executeDlg_ObjectProperties_withoutUndoGuard dialogs to async. Signed-off-by: codewithvk <vivek.javiya@collabora.com> Change-Id: I9927c1008d34370b9394aaf653afb575f69f2d45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160557 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161703 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-13[cp] Remove Help - Donate to LibreOffice menu itemAndras Timar
... and remove Help - Get Involved menu item, too Change-Id: I7a701173f596306ee628ae4a12ad81d2d756caca
2024-01-10tdf#137691 chart2 export: preserve NumberFormat of DataSeriesJustin Luth
make CppunitTest_chart2_export3 CPPUNIT_TEST_NAME=tdf137691 tdf116163.pptx is a good example if you look at the DataTable. Prior to this patch, the DataTable lost the number formatting. TODO: /chart2/qa/extras/data/docx/testSeriesIdxOrder.docx is exporting General in this case, which was unexpected. It appears to be an import problem though, not an export one. TODO: The fixme in testPPTXPercentageNumberFormats is still needed. Page 2's axis should LinkToSource and ignore the specified style. (It too is an example of this export patch working good.) Change-Id: I28730ba49ac2929bbc1c3be50f0d4819a5a205dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161806 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161846 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-01-10tdf#137691 chart2 import: provide NumberFormat to DataSeriesJustin Luth
make CppunitTest_chart2_export3 CPPUNIT_TEST_NAME=tdf137691 This patch provides some very foundational support to importing a chart. It will open up a lot of doors to improve LinkToSource - since now the Source key is defined. Likely the source key should default to -1 instead of 0, so that LinkToSource can know whether or not the source is defined. /chart2/qa/extras/data/docx/testSeriesIdxOrder.docx is an example of where this patchset SHOULD have worked, but somehow it is losing its key during import... Unfortunately I have run out of time and can not follow these rabbit trails. Well, at least not until this change is considered a regression for some particular document... Change-Id: Ieddf2103002616aca2a408bde1f86d45c08dfc85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161702 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161845 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-01-10UnoApiTest::loadFromURL -> UnoApiTest::loadFromFileMike Kaganski
The old name was misleading (it doesn't take an URL, but a filename); also, now it's easier to grep for it - doesn't get mixed with vcl::graphic::loadFromURL. Change-Id: Ib88d2194200a6a54d2326971e0306ba39f0c7025 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161578 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161888 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-12-21crash when one user deletes a chart another has a property dialog open forCaolán McNamara
Insert a chart, user #1 select it, user #2 select it. User #1 double click it, double click again the legend to get dialog to edit it. User #2 delete chart, User #1 'ok' #0 0x00007f5365797d59 in osl::Mutex::acquire (this=<optimized out>) at include/osl/mutex.hxx:63 #1 osl::ClearableGuard<osl::Mutex>::ClearableGuard (t=..., this=0x7ffc7ffcccf0) at include/osl/mutex.hxx:182 #2 apphelper::LifeTimeGuard::LifeTimeGuard (rManager=..., this=0x7ffc7ffcccf0) at chart2/source/inc/LifeTime.hxx:175 #3 chart::ChartModel::lockControllers (this=0x0) at chart2/source/model/main/ChartModel.cxx:415 #4 0x00007f53658375ab in chart::ControllerLockGuardUNO::ControllerLockGuardUNO (this=this@entry=0x7ffc7ffcce80, xModel=...) at chart2/source/tools/ControllerLockGuard.cxx:34 #5 0x00007f5364df5f34 in chart::ChartController::executeDlg_ObjectProperties_withoutUndoGuard (this=<optimized out>, rObjectCID=..., bSuccessOnUnchanged=<optimized out>) at chart2/source/controller/main/ChartController_Properties.cxx:797 #6 0x00007f5364df7a5e in chart::ChartController::executeDlg_ObjectProperties (this=0x7f535401f310, rSelectedObjectCID=...) at chart2/source/controller/main/ChartController_Properties.cxx:707 #7 0x00007f5364e0f497 in chart::ChartController::execute_MouseButtonUp (this=<optimized out>, rMEvt=...) at chart2/source/controller/main/ChartController_Window.cxx:924 #8 0x00007f53760d61dc in (anonymous namespace)::LOKPostAsyncEvent (pEv=0x55e2f1b93db0) at sfx2/source/view/lokhelper.cxx:893 #9 0x00007f53760d0977 in LokChartHelper::postMouseEvent (this=<optimized out>, nType=1, nX=<optimized out>, nY=<optimized out>, nCount=2, nButtons=1, nModifier=0, fScaleX=0.083333333333333329, fScaleY=0.083333333333333329) at sfx2/source/view/lokcharthelper.cxx:294 just hold a reference to the chart the dialog operates on Change-Id: I3b05d1fc12e4df899c1a996f1029f9d3d62e87ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161099 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 8ed865ffc151c6778f122b4e83b46a28f26ebe5e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161106 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-12-14tdf#158684: CHART XY Scatter Chart: line type "stepped" ignores parametersJulien Nabet
Regression from 65752e649872edfd98915035b61aca510ae8f271 Date: Fri Mar 24 10:52:13 2023 +0100 jsdialog: enable and make async chart line prop dialog Change-Id: I1532c45ae72d2c45ace72bcc099fcc8baa265b99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160715 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr> (cherry picked from commit 9792c405201f558e66f588b547d88e4d463d4f26) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160699
2023-12-12tdf#158421 use correct awt:Gradient2 in Chart listsArmin Le Grand (allotropia)
Change-Id: I5fa02c2660d59981f540cde8bd6eaaaaddb30e65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160463 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com> (cherry picked from commit 6c986c718630ab21e6d9b5d353ddf1534e2dda41) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160573 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-12-08cid#1545617 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545748 COPY_INSTEAD_OF_MOVE cid#1545741 COPY_INSTEAD_OF_MOVE cid#1545698 COPY_INSTEAD_OF_MOVE cid#1545594 COPY_INSTEAD_OF_MOVE cid#1545588 COPY_INSTEAD_OF_MOVE cid#1545558 COPY_INSTEAD_OF_MOVE cid#1545545 COPY_INSTEAD_OF_MOVE Change-Id: I5dfec77a68959b9384fc71a2fc0908c5d1b42869 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160448 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-08cid#1546501 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546486 COPY_INSTEAD_OF_MOVE cid#1546485 COPY_INSTEAD_OF_MOVE cid#1546484 COPY_INSTEAD_OF_MOVE cid#1546482 COPY_INSTEAD_OF_MOVE Change-Id: I53cc622f16afc0f57ffd72e3e0a6f18e390fbb83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160443 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-07tdf#158223: chart2_uichart: Add unittestXisco Fauli
Change-Id: I11e20682155c524fcc119701111f5bc91f6beed8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160404 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-12-07simplify and modernise ScopedBitmapAccessNoel Grandin
(*) Make all of it use a "Scoped" paradigm (*) pass by value, no need to allocate on heap (*) make all of the construction go via the *Access constructors, instead of it being some via the constructors and some via the Acquire*Access methods. (*) take the Bitmap& by const& in the constructor, so we can avoid doing const_cast in random places. Change-Id: Ie03a9145c0965980ee8df9a89b8714a425e18f74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160293 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-12-06tdf#126084 import svg image from ooxml document that use svgBlip elem.Tomaž Vajngerl
In an OOXML document the svg image is defined in an svgBlip, which is an OOXML extension. This change checks for the svgBlip element and imports that instead the normal "blip" element that is still provided as a fallback (PNG image). Add roundtrip SVG image test for ODF and OOXML, Impress and Writer. testGraphicBlipXLSX test failed after this change, because some component was missing. Changed to enable use_rdb for all chart2 export tests, so issues like this won't happen anymore. Change-Id: Idf0e754775254d7dcfd0321dfca2ed6d00c42c09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157238 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-12-04cid#1546422 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546416 COPY_INSTEAD_OF_MOVE cid#1546415 COPY_INSTEAD_OF_MOVE cid#1546391 COPY_INSTEAD_OF_MOVE cid#1546390 COPY_INSTEAD_OF_MOVE cid#1546317 COPY_INSTEAD_OF_MOVE cid#1546252 COPY_INSTEAD_OF_MOVE cid#1546251 COPY_INSTEAD_OF_MOVE cid#1546249 COPY_INSTEAD_OF_MOVE cid#1546243 COPY_INSTEAD_OF_MOVE cid#1546195 COPY_INSTEAD_OF_MOVE cid#1546193 COPY_INSTEAD_OF_MOVE cid#1546137 COPY_INSTEAD_OF_MOVE cid#1545738 COPY_INSTEAD_OF_MOVE cid#1545782 COPY_INSTEAD_OF_MOVE Change-Id: I10d5091aa72b682371764b8a18cc5062e272c031 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160285 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-21chart2: Match chart background color with DOCCOLOR in Calcofftkp
Chart background color would be hardcoded to white which meant newly inserted charts would have a different background color in Calc (in other components, the background color is later set to transparent) Change-Id: I6ea55389f195155a96c4c8dcc94a902b2a862178 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159751 Tested-by: Jenkins Reviewed-by: Paris Oplopoios <parisoplop@gmail.com>
2023-11-20Extended loplugin:ostr: chart2Stephan Bergmann
Change-Id: I544f7286ff28cd105fa9dc7bff2712aebb3d5a45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159725 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-13Fix warning for emscripten buildJulien Nabet
TB lo_daily_tb_linux_wasm shows: /home/tdf/jenkins/workspace/lo_gerrit/tb/src_wasm/chart2/source/controller/main/ChartController.cxx:1557:71: warning: unused parameter 'rAccChartView' [-Wunused-parameter] void ChartController::impl_initializeAccessible( AccessibleChartView& rAccChartView ) ^ 1 warning generated. Change-Id: If584e6944c1d9105a7a8b7170dc1022911b57bf9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159373 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2023-11-07ITEM: Get away from classic 'poolable' Item flagArmin Le Grand (allotropia)
To understand this, some look back in history will be needed to see why it is as it is today. In some (reworked) comments 'poolable' is described as flag to hold Items in the ItemPool, also always having only one incarnation of each possible Item. This is not the original intention, but a side-effect. The reason is what the binary format in the office did: To save a document, the Objects & the Pool were saved, *not* individual Items *together* with the objects. The Pool was completely (binary) saved (and loaded) in one run. Temporary IDs were used to represent at the objects in file which Items were referenced. This *required* to have only one incarnation per item to have a minimal binary file size, thus this high effort was put into this. At doc load, the pool was loaded, all Items were set to RefCount 5000, the references from the objects were restored and then for each Item the RefCount was lowered by 5000 again and - if being zero - deleted. Items for UI were marked 'non-poolable' to *not* safe them with the document, so poolable was a flag to decide if that Info/Item was to be saved with the document - or more direct: if it is Model Data. Items are small, so if we prefer runtime it is okay to no longer being strict with this, anyways does not happen often and has only marginal memory effects - compared to runtime effects/savings. Other problems which this caused: One example is that objects in the UNDO stack were still in the pool, so e.g. deleted pictures were saved with the document despite no longer being used (!). That is the reason we have an UndoItemPool and a method MigrateItemPool to move stuff to that Pool when objects go to the UNDO stack - all of this is also no longer needed. Cleaning this up means to ideally have all items in the SfxItemSet, no longer at the Pool. The Pool should be reduced to a 'Default-Item- Holder' and a 'Slot-to-whichId-mapper'. This needs thorough cleanups/removals, but will be worth it because that massive simplification(s) will increase safety an runtime and make migrating to the goal of completely type-based ItemSet stuff easier for the future. Hopefully only view code in the office working with items will have to be changed for this. In this 1st step I already found that some 'compromizes' will be needed: - There are still Items that have to be at the pool to make the Surrogate-stuff working. This gives back all Items in a Pool of a type and is used in ca. 80 cases. Each one looks at these Items *without* context (e.g. a SfxItemSet at an Object would be a context), so if e.g. a dialog is open that temporarily uses Items of that type you would also get these - without knowing about it... To make that work there is still a mechanism to have Items at the Pool, but now just *registering* (and un-reg) them without any sort/search/ remove needs. Also only for Items that need that, so I evaluated the GetItemSurrogates calls and added some asserts when GetItemSurrogates tries to access an unregistered item type which needs to be added. - Another caveat is that there are about 250 places that directly put Items to the Pool (not all remove these, that is done at pool deletion, so some kind of silent 'garbage-collection' is in place). To have an overview I renamed the accessing methods to separate them from the same functionality at the SfxItemSet, which had the same names. An implementation does still add these directly to the pool, there is no way to cleanup those usages for now. In principle all these should be changed to hold the data at an SfxItemSet. I am still hunting problems. But you can build the office, all apps work (including chart) and you can do speed comparisons already. There are test throwing errors, so I hunt these now. It is hard to give an estimation about how much more changes/corrections will be needed. Completed adaptions to new registered Items at Pool, that reduces the failing tests. Still many that I need to hunt. Added stuff to work around that 'compromize' in ScDocumentPool: It overloads ::PutImpl of the pool to implement special handling for a single Item in SC, the ScPatternAttr. In former code that method was used from SfxItemSet and ::PutImpl at the pool directly, so it was only used in one place. I am not sure if it was used from the SfxItemSet functionality, but better offer it for now. To not waste too much runtime the callbacks depend on the boolean 'NewItemCallback' at the SfxPoolItem, it gets set for that single Item in SC and only then the callbacks trigger. I hope to get rid of those again, e.g. newItem_UseDirect is only needed since we have no 'real' StaticPoolDefaults currently - another thing that needs to be cleaned up in a next step. Since usages of impl(Create|Cleanup)ItemEntry and Direct(Put|Remove)ItemInPoolImpl got more and more similar I decided to unify that: move impl(Create|Cleanup)ItemEntry to tooling, make it globally available in svl and use it also directly for Direct(Put|Remove)ItemInPoolImpl. This slightly increases the failing tests again, but only since in Direct(Put|Remove)ItemInPoolImpl that fallback (e.g. tryToGetEqualItem) was used before, thus this is the same class of errors (SfxPoolItem ptr-compare) as the others which I will need to find anyways. Also fixed some missing stuff. Have now idenified and redirected all SfxPoolItem ptr-compares to be able to debug these - one cause for the remaining errors is probably that before with bPoolable those often were sufficient, but are no longer. Used the [loplugin:itemcompare] and a local clang build to do so, see https://gerrit.libreoffice.org/c/core/+/157172 Stabilized Direct(Put|Remove)ItemInPoolImpl forwards, added parameter to implCreateItemEntry to signal that it gets called from DirectPool stuff - currently needed. Hopefully when getting rid of that DirectPool stuff we can remove that again Added two more debug functionalities: - Added a SerialNumber to allow targeted debugging for deterministic cases - Added registering & listing of still-allocated SfxPoolItems at office shutdown Found PtrComp error in thints.cxx - POC, thanks to areSfxPoolItemPtrsEqual. Will hopefully help more with other tests Found some wrong asserts/warnings where I was too careful and not finding something/succeeding is OK, fixes some UnitTests for SC For SC I now just tried to replace all areSfxPoolItemPtrsEqual with the full-ptr-content compare SfxPoolItem::areSame. I also needed to experiment/adapt the newItem_Callback solution but got it working. Did that replacement now for SW too, found some places where the direct ptr compare is OK. Continued for the rest of occurrences, now all 160 places evaluated. Also done some cleanups. Massive cleanups of stuff no longer needed with this paradigm change. Also decided to keep tryToGetEqualItem/ITEM_CLASSIC_MODE for now. It is used for *one* Item (ScPatternAttr/ATTR_PATTERN) in SC that already needs many exceptions. Also useful for testing if errors come up on this change to test if it is related to this. Added forwarding of target Pool for ::Clone in SvxSetItem and SvxSetItem, simplified SfxStateCache::SetState_Impl and returned to simple ptr compares in SfxPoolItem::areSame to not do the test in areSfxPoolItemPtrsEqual. Debugged through UITest_calc_tests9 and found that in tdf133629 where BoxStyle is applied to fully selected empty calc the Item- reuse fallback has to be used not only for ATTR_PATTERN, see comment @implCreateItemEntry. Maybe more... Problem with test_tdf156611_insert_hyperlink_like_excel. Found that in ScEditShell::GetFirstURLFieldFromCell the correct SvxURLField is found and returned as ptr, but it's usage crashes. That is due to the SfxItemSet aEditSet used there gets destroyed at function return what again deletes the SvxFieldItem that is holding the SvxURLField that gets returned. This shows a more general problem: There is no 'SfxPoolItemHolder' that safely holds a single SfxPoolItem - like a SfxItemSet for a single Item (if Items would be shared_ptrs, that would be a safe return value). That will be needed in the future, but for now use another solution: Since I see no reason why EE_FEATURE_FIELD should not be shareable I wil change this for ow in the SfxItemInfo for EditCharAttribField. That way the Item returned will be shared (RefCnt > 1) and thus not be deleted. I changed the return value for GetURLField() and GetFirstURLFieldFromCell() in ScEditShell: At least for GetFirstURLFieldFromCell the return type/value was not safe: The SvxFieldItem accessed there and held in the local temporary SfxItemSet may be deleted with it, so return value can be corrupted/deleted. To avoid that, return a Clone of SvxFieldData as a unique_ptr. With all that UnitTest debugging and hunting and to get the paradigm change working to no longer rely on shared/pooled items I lost a little bit focus on speed, so I made an optimization round for the two central methods implCreateItemEntry/implCleanupItemEntry to get back to the speed improvements that I detected when starting this change. It was mainly lost due to that 'strange' chained pool stuff we have, so I added to detect the target pool (the one at which the WhichID is registered) directly and only once. Next thing to cleanup will/should be the pool and it's concept, all this is not needed and really costs runtime. Since implCreateItemEntry/implCleanupItemEntry are executed millions of times, each cycle counts here. Had an error in the last changes: pool::*_Impl methods use index instead of WhichID - most of them. Another bad trap, I really need to cleanup pool stuff next. Change-Id: I6295f332325b33268ec396ed46f8d0a1026e2d69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157559 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-11-02'new Double' is deprecated in JavaNoel Grandin
replace with Double.valueOf Change-Id: If5be8e500e31ebf9d5fb20ea7dd474677d7c74ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158785 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-02'new Float' is deprecated in JavaNoel Grandin
replace with Float.valueOf Change-Id: Ib6408b24dac2953789d0ec67e73b8be8aefca252 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158784 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-26Replace use of "Calibri" and "Calibri Light" with "Noto Sans"Stephan Bergmann
...in CppunitTest_chart2_xshape, which had caused <https://buildbot.flathub.org/#/builders/6/builds/75165> to fail with > diff.cxx:324:Assertion > Test name: Chart2XShapeTest::testTdf149204 > assertion failed > - Expression: valInTolerance > - 3511; Found Value: 3485; Tolerance: 1; Relative: 0 > > diff.cxx:265:Assertion > Test name: Chart2XShapeTest::testPieChartLabels1 > double equality assertion failed > - Expected: 8383 > - Actual : 8399 > - Delta : 1e-08 > - Reference: /run/build/libreoffice/chart2/qa/extras/xshape/data/reference/tdf90839-1.xml > - Node: /XShapes/XShape[2]/XShapes/XShape[3]/XShapes/XShape[2] > - Attr: positionX > > diff.cxx:324:Assertion > Test name: Chart2XShapeTest::testPieChartLabels2 > assertion failed > - Expression: valInTolerance > - 3124; Found Value: 2966; Tolerance: 1; Relative: 0 > > diff.cxx:324:Assertion > Test name: Chart2XShapeTest::testPieChartLabels3 > assertion failed > - Expression: valInTolerance > - 3124; Found Value: 2966; Tolerance: 1; Relative: 0 > > diff.cxx:324:Assertion > Test name: Chart2XShapeTest::testPieChartLabels4 > assertion failed > - Expression: valInTolerance > - 2768; Found Value: 2531; Tolerance: 1; Relative: 0 Change-Id: I518d37bedf7d8738396e05011223bd970786a45a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158377 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-24tdf#155040 sw floattable, RTF: fix table is overlapped by subsequent inline oneMiklos Vajna
The document had overlapping text on load since commit 05425f73bfa41d3f7591461e2ad0beb4fafc39b4 (sw floatable: teach the RTF import about SwFormatFlySplit, 2023-04-21). Interestingly the DOCX equivalent was fine, there the inline table is shifted down, below the floating table, so the overlap doesn't happen. Fix the problem by moving the AddVerticalFrameOffsets=true code from the DOCX filter to the shared dmapper, because RTF needs the same. See commit 50223ea6e212b60b7d33839c2753c5601fb50f95 (tdf#98987 sw: add AddVerticalFrameOffsets compat mode, 2016-03-31) for more details about this compat flag. It was already enabled for DOC, too. Change-Id: I948b179c9ec5fa24377014b0e86826568c417b6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158372 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-10-23Extended loplugin:ostr: Rewrite some O[U]StringLiteral -> O[U]StringStephan Bergmann
...in include files. This is a mix of automatic rewriting in include files and manual fixups (mostly addressing loplugin:redundantfcast) in source files that include those. Change-Id: I1f3cc1e67b9cabd2e9d61a4d9e9a01e587ea35cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158337 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-19Extended loplugin:ostr: Automatic rewrite O[U]StringLiteral: chart2Stephan Bergmann
Change-Id: Ifcb57548a594cbbaf70df8d9da17cf94a96667db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158146 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-19use more SdrObjList::begin/end in variousNoel Grandin
Change-Id: If054626a10d3cbd3b168dd4e66ec7f08344d2c2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158131 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-16tdf#141892: Set chart view to dirty state after loadingMike Kaganski
Previously, ChartViewHelper::setViewToDirtyState was only called in ChartModel::impl_notifyModifiedListeners during the load process of inline charts; after commit 574eec9036c5f185b3572ba1e0ca9d111eb361dc, the chart doesn't set its modified state when loading, and thus the view did not get notified about the necessary updates. This change introduces a hidden property in ChartDocumentWrapper, named 'ODFImport_UpdateView', which is set in SchXMLImport dtor to force the notification after the loading. Change-Id: Id9d82f16d233d2172cd6808a8498822e13b21b21 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158051 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-10-16tdf#157776: Do not set chart and its parent modified when paintingMike Kaganski
When the chart is painted for the first time, its update may create the initial set of objects, which used to set modified state after loading documents. Change-Id: Ie50ef34875440058020486192fe649b492e4baf9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158015 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-10-16tdf#157776: Do not send delayed update notifications for setModified(false)Mike Kaganski
Change-Id: I4948cc217079d2ed535b95e3892e619736237cc7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158014 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-10-15Repurpose loplugin:stringstatic for O[U]String vars that can be constexprStephan Bergmann
...now that warning about O[U]String vars that could be O[U]StringLiteral is no longer useful Change-Id: I389e72038171f28482049b41f6224257dd11f452 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157992 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-12Make NC_ constexpr-friendlyStephan Bergmann
...by moving the char8_t -> char reinterpret_cast out of any potential constexpr paths into a new TranslateId::getId. And demonstrate constexpr'ability by making the aCategories var in OApplicationIconControl::Fill (dbaccess/source/ui/app/AppIconControl.cxx) constexpr. (And there might be more such cases that could now be made constexpr.) Change-Id: I0b4e3292faf8f6b901f9b9e934e1aa6bf0f583ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157862 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-11Drop o3tl::span, can use C++20 std::span directly nowStephan Bergmann
Change-Id: Ic21ff7bf48f07f7277979d52e99d2c5c268de83f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157825 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-07loplugin:ostr: automatic rewriteStephan Bergmann
Change-Id: I2d09b2b83e1b50493ec88d0b2c323a83c0c86395 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157647 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2023-10-06SdrModel::getUnoModel can use XModel instead of XInterfaceNoel Grandin
Change-Id: Ica10c62066881ba86099d2057ff6fe20e0084a85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157632 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-05crashtesting: crash seen on exit of chartCaolán McNamara
with soffice --headless --convert-to ods forum-mso-en4-569016.xlsx and other similar Change-Id: I908fa834c1072a9854055cad1ee6261800d76aea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157573 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>