path: root/chart2/source/tools
AgeCommit message (Collapse)AuthorFilesLines
8 daysfix coverity parse errorsCaolán McNamara7-12/+12
Change-Id: I3a1179947704452e3ffec02be59d0f7bf0b75ab0 Reviewed-on: Tested-by: Jenkins Reviewed-by: Caolán McNamara <>
10 daystdf#42982 Improved UNO API error reportinghomeboy4451-2/+2
Change-Id: I450ea0b1a19381c47370633d124c2ba906415987 Reviewed-on: Reviewed-by: Michael Stahl <> Tested-by: Jenkins
2020-12-29loplugin:stringviewparam: operator +Stephan Bergmann1-1/+1
Change-Id: I044dd21b63d7eb03224675584fa143009c6b6008 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-12-27Simplify loplugin:stringviewparam comparison operator handlingStephan Bergmann1-1/+1
In practice, it works fine to look at all of them, regardless of actual argument types. Change-Id: Ifc49cbcd6003c8837c1b3f81d432c59fb0657bf1 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-12-26New loplugin:stringliteralvarStephan Bergmann7-12/+12
See the comment at the top of compilerplugins/clang/stringliteralvar.cxx for details. (Turned some affected variables in included files into inline variables, to avoid GCC warnings about unused variables.) Change-Id: Ie77219e6adfdaaceaa8b4e590b08971f2f04c83a Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
Change-Id: Ib51fd610c5188fe95872d509f004ae88f38c5417 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-12-01OSL_FAIL.*exception -> TOOLS_WARN_EXCEPTIONNoel1-2/+2
Change-Id: I6800e23ead2767d245d5da71d2d40e0f8a6d7e1f Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-11-30loplugin:stringviewparam include comparisons with string literalsNoel2-22/+22
Change-Id: I8ba1214500dddaf413c506a4b82f43d63cda804b Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-11-22tdf#123936 Formatting files in module chart2 with clang-formatPhilipp Hofer3-22/+14
Change-Id: Ie4dea73190040e5716fe531cf35fae20d7e175db Reviewed-on: Tested-by: Jenkins Reviewed-by: Christian Lohmaier <>
2020-11-06tdf#42949 Fix new IWYU warnings in directories c*Gabor Kelemen4-5/+0
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Iac1e7802dbe1efa01c2befdd10406231788d4fc1 Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
2020-10-09tdf#134978 Chart OOXML Import: fix pie chart label custom positionTünde Tóth1-1/+2
Follow-up of commit dff7a46fb46d1fa2a3ad674ee493ae2d59150fe3 (tdf#130032 Chart OOXML Import: fix data label custom position). Change-Id: Iaaf4ae654ac0c1b4896a53be6034e6c027412df0 Reviewed-on: Tested-by: Jenkins Tested-by: László Németh <> Reviewed-by: László Németh <>
2020-09-24tdf#136402 Chart View: remove custom label textBalazs Varga1-0/+2
Now Delete Data Labels and Insert Data Labels local menu options remove custom label text instead of keeping it. See with unit test document custom_data_label.xlsx of commit bcda268cde1f8408c2066ce985acedfce3e3bc2e (tdf#134977 Chart OOXML: fix import of custom data label). Change-Id: Ifc7afd0f2ece9da528e6206a6bd393b394b36f9e Reviewed-on: Tested-by: László Németh <> Reviewed-by: László Németh <>
2020-09-18tdf#136267 OOXML Chart Import: create main category axis labels onceBalazs Varga1-0/+1
because InternalDataProvider can not handle different category names on the primary and secondary category axis. Revert e0b0502516a10181bbd1737b93b38b2bba4c98e8 commit, except the relevant unit test. Regression from commit: e0b0502516a10181bbd1737b93b38b2bba4c98e8 (tdf#128016 Chart OOXML Import: fix duplicated category labels) Also fix tdf#129994 (FILEOPEN - hang at import time), which is a a regression from commit fa0a981af41a2606541eec1cb20a379a739691e0 (tdf#114166 DOCX chart import: fix missing complex categories) Change-Id: I5d049e760eb1a647ea774be264349a2f16f15f5b Reviewed-on: Tested-by: László Németh <> Reviewed-by: László Németh <>
2020-09-16Turn OUStringLiteral into a consteval'ed, static-refcound rtl_uStringStephan Bergmann1-1/+5
...from which an OUString can cheaply be instantiated. This is the OUString equivalent of 4b9e440c51be3e40326bc90c33ae69885bfb51e4 "Turn OStringLiteral into a consteval'ed, static-refcound rtl_String". Most remarks about that commit apply here too (this commit is just substantially bigger and a bit more complicated because there were so much more uses of OUStringLiteral than of OStringLiteral): The one downside is that OUStringLiteral now needs to be a template abstracting over the string length. But any uses for which that is a problem (e.g., as the element type of a container that would no longer be homogeneous, or in the signature of a function that shall not be turned into a template for one reason or another) can be replaced with std::u16string_view, without loss of efficiency compared to the original OUStringLiteral, and without loss of expressivity. The new OUStringLiteral ctor code would probably not be very efficient if it were ever executed at runtime, but it is intended to be only executed at compile time. Where available, C++20 "consteval" is used to statically ensure that. The intended use of the new OUStringLiteral is in all cases where an object that shall itself not be an OUString (e.g., because it shall be a global static variable for which the OUString ctor/dtor would be detrimental at library load/unload) must be converted to an OUString instance in at least one place. Other string literal abstractions could use std::u16string_view (or just plain char16_t const[N]), but interestingly OUStringLiteral might be more efficient than constexpr std::u16string_view even for such cases, as it should not need any relocations at library load time. For now, no existing uses of OUStringLiteral have been changed to some other abstraction (unless technically necessary as discussed above), and no additional places that would benefit from OUStringLiteral have been changed to use it. Global constexpr OUStringLiteral variables defined in an included file would be somewhat suboptimal, as each translation unit that uses them would create its own, unshared instance. The envisioned solution is to turn them into static data members of some class (and there may be a loplugin coming to find and fix affected places). Another approach that has been taken here in a few cases where such variables were only used in one .cxx anyway is to move their definitions from the .hxx into that one .cxx (in turn causing some files to become empty and get removed completely)---which also silenced some GCC -Werror=unused-variable if a variable from a .hxx was not used in some .cxx including it. To keep individual commits reasonably manageable, some consumers of OUStringLiteral in rtl/ustrbuf.hxx and rtl/ustring.hxx are left in a somewhat odd state for now, where they don't take advantage of OUStringLiteral's equivalence to rtl_uString, but just keep extracting its contents and copy it elsewhere. In follow-up commits, those consumers should be changed appropriately, making them treat OUStringLiteral like an rtl_uString or dropping the OUStringLiteral overload in favor of an existing (and cheap to use now) OUString overload, etc. In a similar vein, comparison operators between OUString and std::u16string_view have been added to the existing plethora of comparison operator overloads. It would be nice to eventually consolidate them, esp. with the overloads taking OUStringLiteral and/or char16_t const[N] string literals, but that appears tricky to get right without introducing new ambiguities. Also, a handful of places across the code base use comparisons between OUString and OUStringNumber, which are now ambiguous (converting the OUStringNumber to either OUString or std::u16string_view). For simplicity, those few places have manually been fixed for now by adding explicit conversion to std::u16string_view. Also some compilerplugins code needed to be adapted, and some of the compilerplugins/test cases have become irrelevant (and have been removed), as the tested code would no longer compile in the first place. sal/qa/rtl/strings/test_oustring_concat.cxx documents a workaround for GCC bug <> "Failed class template argument deduction in unevaluated, parenthesized context". That place, as well as uses of OUStringLiteral in extensions/source/abpilot/fieldmappingimpl.cxx and i18npool/source/localedata/localedata.cxx, which have been replaced with OUString::Concat (and which is arguably a better choice, anyway), also caused failures with at least Clang 5.0.2 (but would not have caused failures with at least recent Clang 12 trunk, so appear to be bugs in Clang that have meanwhile been fixed). Change-Id: I34174462a28f2000cfeb2d219ffd533a767920b8 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-09-04tdf#124176 Use #pragma once in chart2George Bateman3-15/+3
This commit was carried out mostly by a Python script, source of which is at Change-Id: Ifee23b494264f895e5612952d0875cac064e4132 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2020-09-03Make ImpSvNumberformatScan::GetColor constMike Kaganski1-1/+1
Change-Id: Idbcce18029944ab884cdde03e21190cbb574a00f Reviewed-on: Reviewed-by: Noel Grandin <> Reviewed-by: Mike Kaganski <> Tested-by: Jenkins
2020-09-03restore m_aModelChangeListenerCaolán McNamara1-0/+114
which disappeared, apparently by accident with... commit 56e1133f724896aec3f5b5c409fb5917a3b13eb4 Date: Sun Dec 8 19:33:42 2013 -0200 Convert chart 3D scene illumination to .ui and then a bunch of cleanups removed the unused code Change-Id: I53fe4f6878dda4f7b8d76a04213b5c6d1366a165 Reviewed-on: Tested-by: Jenkins Reviewed-by: Caolán McNamara <>
2020-09-02tdf#136061 Chart ODF/OOXML: fix missing custom labelsBalazs Varga1-2/+4
by UNO extensions ShowCustomLabel in DataPointLabel.idl and CUSTOM in ChartDataCaption.idl, fixing OOXML/ODF import/export. We should display custom data label even if DataPointLabel is disabled (e.g. category name and/or value fields are not displayed). Note: import of the embedded chart of the DOCX unit test document uses also ODF format in the background, testing also the extension of the native file format. Change-Id: I73e21f1e69fddec9f3b4163c46b6582cd1c74b5d Reviewed-on: Tested-by: Jenkins Tested-by: László Németh <> Reviewed-by: László Németh <>
2020-09-01Fix typo in codeAndrea Gelmini1-4/+4
It passed "make check" on Linux Change-Id: I8336c2a639a1d45c8370fd13204896f3f1494b4f Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2020-09-01Fix typo in codeAndrea Gelmini1-1/+1
It passed "make check" on Linux Change-Id: Icb950648977545c02ec8569f8b246359b33f8054 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2020-08-28Change OUStringLiteral from char[] to char16_t[]Stephan Bergmann2-17/+17
This is a prerequisite for making conversion from OUStringLiteral to OUString more efficient at least for C++20 (by replacing its internals with a constexpr- generated sal_uString-compatible layout with a SAL_STRING_STATIC_FLAG refCount, conditionally for C++20 for now). For a configure-wise bare-bones build on Linux, size reported by `du -bs instdir` grew by 118792 bytes from 1155636636 to 1155755428. In most places just a u"..." string literal prefix had to be added. In some places char const a[] = "..."; variables have been changed to char16_t, and a few places required even further changes to code (which prompted the addition of include/o3tl/string_view.hxx helper function o3tl::equalsIgnoreAsciiCase and the additional OUString::createFromAscii overload). For all uses of macros expanding to string literals, the relevant uses have been rewritten as u"" MACRO instead of changing the macro definitions. It should be possible to change at least some of those macro definitions (and drop the u"" from their call sites) in follow-up commits. Change-Id: Iec4ef1a057d412d22443312d40c6a8a290dc6144 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-08-18loplugin:unusedvarsglobalNoel Grandin1-6/+6
tackle some read-only vars. Mark some of them const to make it obvious they are not really used, and to make the constantparam plugin see more data. Change-Id: Ia25927745866746aa1aa9d5affd5857ad9f9ee24 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-08-14loplugin:simplifybool moreNoel Grandin1-1/+1
look for expressions like !(a && !b) which can be expanded out Change-Id: I72515a9638762b050f9a258c08da39ebfa2ef8e7 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-08-13use OUStringLiteral in SfxItemPropertyMapEntryNoel Grandin1-16/+16
Change-Id: I4f05b6a35010e661ea77f3e4b83302d2ec74d227 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-08-06tdf#135184 add linecaps in chartsRegina Henschel1-0/+8
Chart is currently not able to interpret property linecap. But in case of linecap 'round' or 'square', line dashes lengths are adapted so that they look same as in MS Office (tdf#134053). This does not work, if the corresponding linecap property is not interpreted. Dashed border of data labels is not fixed because of bug tdf#135366. In addition I have fixed errors in prstDash detection, which I have noticed while creating unit tests. The unit tests cover file text, not visual appearence. Change-Id: I8cf2d2b2fc0923c2882f8148b4550bc363270480 Reviewed-on: Tested-by: Jenkins Reviewed-by: Regina Henschel <>
2020-07-16compact namespace: chart2Noel Grandin1-5/+2
Change-Id: I3c9f42b2fc40d65e573a668ed7c4eb88dc64d22b Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-06-30Upcoming improved loplugin:staticanonymous -> redundantstatic: chart2Stephan Bergmann8-20/+20
Change-Id: If4e61fdcf1749b2900512ae788422c435ae6af0d Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-06-24use more std::container::insert instead of std::copyNoel Grandin5-15/+7
which is both more compact code, and more efficient, since the insert method can do smarter resizing Change-Id: I17f226660f87cdf002edccc29b4af8fd59a25f91 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-24inline some use-once typedefsNoel Grandin1-2/+1
Change-Id: Idddba2f3fd05265b08dbc88edb6152d34a166052 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-18use for-range on Sequence in chart2Noel Grandin14-205/+180
Change-Id: Ief02e5d5284b0cbad26b04c0a282dccfee577b90 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-18tdf38835 Avoid pointless globalsMesut Çifci1-23/+14
Change-Id: I998ffadeef2232366bb5d2fdeb5632e799366038 Reviewed-on: Reviewed-by: Tor Lillqvist <> Reviewed-by: Noel Grandin <> Tested-by: Noel Grandin <>
2020-05-15use more try_emplaceNoel Grandin1-4/+1
specifically looking for the pattern if (map.find(...) == map.end() map[...] = value Change-Id: I99f20d73f6e71a10726c9d39d8644c2e51120091 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-13tdf#132757 UI: option to set Position Axis property of chartsTünde Tóth1-0/+16
Follow-up of commit 40d83914d43f60a196dfabddea0b52e2046b333a (tdf#127792 implement UNO chart attribute MajorOrigin). Change-Id: I68c35a4552a3915c045036d1f0f38804a00b7093 Reviewed-on: Tested-by: Jenkins Reviewed-by: László Németh <>
2020-05-12tdf#38835 strip out OUString globalsMesut Çifci1-17/+8
Change-Id: I594a990b628463b7ab5eda5395de8bab5f080534 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-09remove dead codeNoel Grandin1-37/+0
Change-Id: I095e9a6137ea835f6182819b55e911079925f740 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-08improve loplugin:referencecastingNoel Grandin1-6/+4
to catch a few more cases Change-Id: I0323fba51bb2b4ba255e1db5aa0d890c5c6a2e1b Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-08compact namespace in canvas..cuiNoel Grandin1-1/+1
Change-Id: I7bd0c2a55b936896fcfe7e1a374871008a18618f Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-07replace ODFDefaultVersion usage with ODFSaneDefaultVersionMichael Stahl2-4/+4
Compare with ODFSVER_012 mostly works the same, except for places where namespaces are defined where the ODFSVER_EXTENDED bit should be checked. Change-Id: I86469b763bc2f903632976bc9d6ec04d543d705e Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
2020-04-28Fix typo in codeAndrea Gelmini7-15/+15
Change-Id: I6a67206aee0b1844090d86b3fc91dc6c2e650c77 Reviewed-on: Reviewed-by: Julien Nabet <> Tested-by: Jenkins
2020-04-27tdf#132355 fix X axis position of stock chartsTünde Tóth1-13/+0
Set the ShiftedCategoryPosition for true in case of stock chart. Regression from commit: 111c260ab2883b7906f1a66e222dbf4dc3c58c4f (tdf#127777 OOXML chart export: fix "CrossBetween" for not imported charts) Change-Id: I7ced1b03158908e838f7bb44c89dea23c5b347b7 Reviewed-on: Reviewed-by: Balazs Varga <> Reviewed-by: László Németh <> Tested-by: László Németh <>
2020-04-27Make upcasting css::uno::Reference ctor require complete typesStephan Bergmann7-4/+7
The main reason for the "home-grown" UpCast introduced with 904b3d1fceee5827076758ed2a81f80cb73493ca "Up-cast conversion constructor for css::uno::Reference" in 2013 was probably that we could not yet rely on C++11 std::is_base_of back then. A (welcome) side effect was that the derived class could be incomplete. However, specializations of UpCast relying on whether or not T2 is incomplete are obviously an ODR violation if the type is incomplete in some TUs and complete (and derived from T1) in others. And even if UpCast had internal linkage, it would still be brittle that its behavior depends on the completeness of T2 at the point of the template's instantiation, and not necessarily at the point of use. That means we should better base that ctor on std::is_base_of (which we can do now since 39a1edd6fec902ef378acce8af42c4d7fba280d0 "Make css::uno::Reference upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on Clang and GCC if the completeness requirements are not met. This change fixes all the cases where types need to be complete now, plus any resulting loplugin:referencecasting warnings ("the source reference is already a subtype of the destination reference"). Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-04-22tdf#42949 Simplify use of rtl::math::approxEqual in include/basegfx/Gabor Kelemen2-0/+2
Turns out we can save about 500Mb of preprocessor input if we use rtl_math_approxEqual from rtl/math.h instead of its C++ wrapper rtl::math::approxEqual from rtl/math.hxx and manage the fallout accordingly. Before: bin/includebloat.awk | head sum total bytes included (excluding system headers): 19017296671 After: $ bin/includebloat.awk | head sum total bytes included (excluding system headers): 18535432672 Change-Id: I1691171f3a309405a7099882ad9989d147f59118 Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
2020-04-19loplugin:flatten in chart2Noel Grandin11-445/+445
Change-Id: Iadc4da6515a7d82e7a92b33d74d589b61fa2c64f Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-04-14loplugin:buriedassign in c*Noel Grandin1-2/+1
Change-Id: Id14fed7e5c0f588ad3c927f12251432d12c1a7c8 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-04-11Use range-based for loopMike Kaganski1-3/+3
Change-Id: I2ee332ffeb9004535882a7859f1821624ef5efa6 Reviewed-on: Tested-by: Jenkins Reviewed-by: Mike Kaganski <>
2020-04-07loplugin:unusedvariableplus in chart2Noel Grandin1-4/+2
Change-Id: I8bb958718f71b52819755f3af6d5fcff4af1f596 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-04-01tdf#130969 Chart view: fix incorrect precision of axis labelsBalazs Varga1-0/+3
Use UNLIMITED_PRECISION in case of GENERAL number format of labels in embedded charts, just like we do in Calc. Regression from commit: 7f373a4c88961348f35e4f990182628488878efe (tdf#48041 Chart: do not duplicate major value) Change-Id: I298353d748f34e23bc642b3b0c365df6e73c23aa Reviewed-on: Tested-by: Jenkins Reviewed-by: László Németh <>
2020-03-14tdf#130975 replace `rtl::math::isNan` with `std::isnan`.Yukio Siraichi9-19/+19
Change-Id: I5d53e6369d35093445b2efd8936bbf8c6775ff47 Reviewed-on: Tested-by: Jenkins Reviewed-by: Mike Kaganski <>
2020-03-12tdf#130976 replace `rtl::math::isInf` with `std::inf`.Yukio Siraichi3-7/+7
Change-Id: Id0f0e07b324230d2d69cbf4ab07b0fff5b24474d Reviewed-on: Tested-by: Jenkins Reviewed-by: Mike Kaganski <>
2020-02-25loplugin:referencecastingNoel Grandin1-1/+1
getting --enable-pch=normal working with clang means that the plugins now have a better view on some stuff, so trigger more warnings Change-Id: I83ca010c0ef07c8106068362bb50a354e3cf7dae Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>