summaryrefslogtreecommitdiff
path: root/oox/source/helper
AgeCommit message (Collapse)Author
2024-06-29Fix "lets" -> "let's"Andrea Gelmini
Change-Id: I01968fc18b093dbbc27213f01c3da38ae151c62c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169748 Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net> Tested-by: Jenkins
2024-06-07tdf#160591 PPTX export: fix colormap mapping in slide masterTibor Nagy
Change-Id: I154f0ff1769fbda361ec62f1dd589ca0d7686bd9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168506 Tested-by: Jenkins Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de>
2024-05-10loplugin:ostr in ooxNoel Grandin
Change-Id: I08124ce2da1facbe2e84aa4a7a8e25fec24fa962 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167428 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-09tdf#146619 Drop unused 'using namespace' in: oox/Gabor Kelemen
Change-Id: I4e8aa7443e71a7cb629f762b08d86dd1fa5b7f0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165690 Tested-by: Jenkins Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2024-03-29tdf#158237 Use C++20 contains() instead of find() and end()Aaron Bourdeaux
Change-Id: I529096d97991a89bdc68ec7f5d490ec21744fc6e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165499 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2024-03-17loplugin:unusedmethodsNoel Grandin
Change-Id: Ib0a72355972662c6b902bca9a527be91fb3e1d17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164930 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-15SAL_WARN->SAL_INFONoel Grandin
reduce log noise Change-Id: I16a45c8c41292b245a507ee51924b2f465719c97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163370 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-27Drop std::as_const from css::uno::Sequence iterationsMike Kaganski
Obsoleted by commit 2484de6728bd11bb7949003d112f1ece2223c7a1 (Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and commit fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[] in internal code, 2021-11-05). Change-Id: Idbafef5d34c0d4771cbbf75b9db9712e504164cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162640 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-26tdf#96401: allow to detect a broken ZIP packageMike Kaganski
In deep detection, first check if it's a broken ZIP package. If it is, set the RepairPackage media descriptor property to true. Pass the RepairPackage value to the OOXML filter detection. Change-Id: Ic958283f3cce92ac29ce93ac330cc9e409e3eb78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159976 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-10-27tdf#156593 FILEOPEN OOXML: image shown in full instead of croppedBalazs Varga
Revert "Revert "tdf#118133 DOCX import: disable lazy-loading of tiff images"" This reverts commit c6bf16909db054ec5467ebdc0ea0c9dc07307048. Lazy-loading doesn't work with cropped TIFF images, because in case of Lazy-load TIFF images we are using MapUnit::MapPixel, but in case of cropped images we are using MapUnit::Map100thMM and the crop values are relative to original bitmap size. Change-Id: I2dbf6caf08d7899ec2eae683996d997809d62b89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158509 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2023-10-20Extended loplugin:ostr: Automatic rewrite O[U]StringLiteral: ooxStephan Bergmann
Change-Id: Ic5bcb44fbe56804e23bcdfd039a77c010858ca02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158206 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-06-26new loplugin:constexprliteralNoel Grandin
OUStringLiteral should be declared constexpr, to enforce that it is initialised at compile-time and not runtime. This seems to make a different at least on Visual Studio Change-Id: I1698f5fa22ddb480347c2f4d444530c2e0e88d92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153499 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-08Do not copy decodeXString() string and analyse if there is nothing to decodeEike Rathke
... which usually isn't. Change-Id: I1cadc5a4c0072d5152173ad41e54e25c224e96db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151509 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2023-04-20Run clang-tidy with misc-unused-using-decls on modules [d-o]*Gabor Kelemen
To remove unneeded using declarations. Via the simple script: for i in $(find $dirname -name "*cxx" -o -name "*hxx" ); do clang-tidy-12 --checks="-*,misc-unused-using-decls" "$i"; done Change-Id: Idd8aa3d3cfec456c4babb65e89af712051b4deb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150609 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-04-02MCGR: 1st additions to OOXML MCGR importArmin Le Grand (allotropia)
This change provides 1st changes to get Gradients with muti color stops imported from MSO in the oox import filter. It supports currently multiple ColorStops and transparency. Also 'border'(s) should work, but -remember- this is work in progress. Since it is work in progress it is currently and temporaily secured by ENV VAR "MCGR_TEST=0", so when not using this the master version will not be touched at all. The number defines various ColorStop tests, 0 for none, but some changes are active, e.g. MSO import. You may try 1 or 16 to see all your Gradients hard replaced by something using that feature. I will take care fo cleaning this up again when the feature progresses/gets complete. Change-Id: I92e10d8cd5150733741a6def20a542abf97bd903 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149682 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2022-12-20crashtesting: assert on import of forum-mso-en4-253564.xlsxCaolán McNamara
source document contains a timestamp formatted as: 2011-010-31T00: 00:00Z ^^^ Change-Id: I604ffa69189280faf9d7f55dae472cf9fe1b6763 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144614 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-12-17crashtesting: assert on export of forum-mso-en4-212378.xlsx back to xlsxCaolán McNamara
input xml contains: <cellStyle name="ck-In_xdc80_.." resulting in a bare low surrogate that asserts on export's OUString::toUtf8() Sanitize it at the original import Change-Id: Ib1259ed55090efb16e1c5b4b488bf3050e473324 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144389 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-12-11crashtesting: accept timestamp with Z suffix as validCaolán McNamara
seen with forum-mso-en4-652977.xlsx Change-Id: I5ca7be851c279d28e225cba1ba401a4f7fa99e87 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143944 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-18Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxxStephan Bergmann
...so that its TOOLS_WARN_EXCEPTION can be used in comphelper/source/misc/logging.cxx in a follow-up commit. (And while at it, rename from diangose_ex.h to the more appropriate diagnose_ex.hxx. The comphelper module is sufficiently low-level for this immediate use case, so use that at least for now; o3tl might be even more suitable but doesn't have a Library until now. Also, for the immediate use case it would have sufficed to only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION, TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of include/tools/diagnose_ex.h into an additional new include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move the complete include file as is.) Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-02elide some temporary OUString construction in oox parsingNoel Grandin
Change-Id: I2ea01ef4724dd375d641c8e39a7028c0e5ccec2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137702 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-02clang-tidy modernize-pass-by-value in ooxNoel Grandin
Change-Id: Ia553a24693f2ffc0f580c9869b82f0d01a1a0ffb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137693 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-01use more string_view when dealing with attributesNoel Grandin
which means we don't need to call strlen on them, since we already know how long they are. Change-Id: Iefc76f38a23250e87a65c27df3634d562464a760 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137679 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-27replace oox::OptValue with std::optionalNoel Grandin
Change-Id: I16e7179b2851640b4d73665685dcc1e84042ddaf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136270 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-24almost nobody is using the oox::AttributeList::get methods properlyNoel Grandin
Most of the call sites just ignore the fact that we are returning an optional value here. Which means that when an attribute is missing, they get an empty string or zero. And we seem to be fine with that. So make a plugin that warns about calling value() on a temporay OptValue. And add a utility method so we don't have to pay the cost of passing a default value to getString() The need for this is driven by wanting to change to std::optional, which will throw an exception if code attempts to read an empty std::optional Change-Id: Idb0a5ad1eac66b5caa93d6195928bad9e0b2ad70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136283 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-23tdf#149314 PPTX import: fix internal hyperlink in editorTibor Nagy
Hyperlinks on text weren't imported correctly if the linked slides have default slide name, resulting broken links in the editor (hyperlinks work well in slide shows without this fix, too). Change-Id: I797fa94134c1346bc83729c713e65b2a268a14c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135245 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2022-06-22rename oox::OptValue::get to valueNoel Grandin
as a step in replacing OptValue with std::optional Change-Id: Ia5d05c28a88beaced11ae1d0414de66106cc9e20 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136269 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-22rename oox::OptValue::get(Type) to value_orNoel Grandin
as a step towards replacing OptValue with std::optional Change-Id: Ic4afaca87034b1b794432ee4261a6495058b26fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136268 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-22remove OptValue(bool,Type) constructorNoel Grandin
as a step towards converting it to std::optional Change-Id: I6f377967f2a495d8c29979444607c991aaaf5d63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136267 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-21rename oox::OptValue::has() to has_valueNoel Grandin
as a step towards converting it to std::optional Change-Id: I9b2201c29827fcddae3b46480065c90b2907e6cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136210 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-04Just use Any ctor instead of makeAny in ooxStephan Bergmann
Change-Id: Id6c8341b545c819521056926ef1b80d20d148c5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133795 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-04-26add o3tl::toUInt32Noel Grandin
Change-Id: I07f11bf12fbe1d1c2d812fa0965d6e632e1e1aba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133437 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-13loplugin:stringviewparam whitelist some more functionsNoel Grandin
for which we have o3tl:: equivalents Change-Id: I4670fd8b703ac47214be213f41e88d1c6ede7032 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132913 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-10loplugin:stringview check for getToken and trimNoel Grandin
since we now have o3tl versions of those that work on string_view. Also improve those o3tl functions to support both string_view and u16string_view Change-Id: Iacab2996becec62aa78a5597c52d983bb784749a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132755 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-08move comphelper::string::toInt32 to o3tlNoel Grandin
so we can use it in places where we cannot include comphelper Change-Id: Iba0ba3e4c0dcf0f9d1f09092a77c3b2010ec4f6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132732 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-08use more subView when converting to Int32Noel Grandin
Change-Id: I54e3ddf79ba793fd4328bf8bda7f949b65349651 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132693 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-05Fix typosAndrea Gelmini
Change-Id: Idcb10d0cc0759473e95e47afec7ed69853628612 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132587 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2022-04-05Advanced Diagram support: Move Diagram Text information to svxArmin Le Grand (Allotropia)
In a next step to get the Diagram mechanism/ModelData independent from oox, I moved the Text ModelData to svx, using a TextBody struct. This is a 1st move that covers most of what the algorithms to handle Diagram re-layout and other functionality use. This will potentially have to be extended accordingly when missing data is detected. It is potentially much more simple as the oox TextBody, by purpose. Due to functionality using that data I could now massively move more of it to svx. Change-Id: I6d6e6c572f119aeefa4e91eff56f58f3ceb6a31e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132523 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2022-01-30Recheck modules [o-r]* with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: I6b4b05a5e59b256653c4caf5297fffd601b45083 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128845 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-11-08rtl::Instance->thread-safe static in PropertyNameVectorNoel Grandin
Change-Id: I3f595585b78c9e5ac32d9fc345c55a4eb14101c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124824 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-30Prepare for removal of non-const operator[] from Sequence in ooxMike Kaganski
Change-Id: Iee1e16c516547e8f23631b33c928ac6637050f68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124376 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-14Avoid COW overhead using css::uno::SequenceMike Kaganski
The scenarios are: 1. Calling sequence's begin() and end() in pairs to pass to algorithms (both calls use getArray(), which does the COW checks) 2. In addition to #1, calling end() again when checking result of find algorithms, and/or begin() to calculate result's distance 3. Using non-const sequences in range-based for loops, which internally do #1 4. Assigning sequence to another sequence variable, and then modifying one of them In many cases, the sequences could be made const, or treated as const for the purposes of the algorithms (using std::as_const, std::cbegin, and std::cend). Where algorithm modifies the sequence, it was changed to only call getArray() once. For that, css::uno::toNonConstRange was introduced, which returns a struct (sublclass of std::pair) with two iterators [begin, end], that are calculated using one call to begin() and one call to getLength(). To handle #4, css::uno::Sequence::swap was introduced, that swaps the internal pointer to uno_Sequence. So when a local Sequence variable should be assigned to another variable, and the latter will be modified further, it's now possible to use swap instead, so the two sequences are kept independent. The modified places were found by temporarily removing non-const end(). Change-Id: I8fe2787f200eecb70744e8b77fbdf7a49653f628 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123542 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-05Pass context and resource string down to boost::locale separatelyNoel Grandin
because this is often on a hot path, and we can avoid the splitting and joining of strings like this. Change-Id: Ia36047209368ca53431178c2e8723a18cfe8260a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119220 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-03Consolidate on C++17 std::scoped_lock instead of std::lock_guardNoel Grandin
as in commit 9376f65a26240441bf9dd6ae1f69886dc9fa60fa Change-Id: I3ad9afd4d113582a214a4a4bc7eea55e38cd6ff9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119927 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-18osl::Mutex->std::mutex in GenericPropertySetNoel Grandin
Change-Id: Iee437489d40d038349f9faf860f2eca971932c6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119142 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-19fix loading calc files with embedded form macrosNoel Grandin
GraphicHelper was trying to use the current frame/ window to convert values, but during initial load there is no current window. Change-Id: I8a79501df1d2e83a13d3cfb64ae8e66152c60561 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117470 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-17use string_view in the Translate APINoel Grandin
Change-Id: I0bb0ea9d39ed623928060ffd3f2e2bc36ba33209 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117272 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-25const OUString -> const OUStringLiteralMike Kaganski
Mostly automated rewrite Change-Id: Ie020a083f898bc126b8fb039d4ecb2e687172da1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112965 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-03-11Revert "tdf#118133 DOCX import: disable lazy-loading of tiff images"Xisco Fauli
This reverts commit fa356008b08a8a5b5556aa8f89ca8f7989c53516 Similar to 1238ca8d100c107656b707ed3a6b662f0a1867fb <Revert "tdf#126310 Disable lazy loading of WMF images> it seems this workaround is no longer needed and lazy-loading works with tiff images. The unittest has not been reverted Change-Id: Ie8debfc2978a4b57aa035679116472c98db89e33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112162 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-03-07Revert "tdf#126310 Disable lazy loading of WMF images"Xisco Fauli
This reverts commit 184a4771dad448a37f80b29bc62ad62e0a6a4bb6. Reason for revert: The problem is no longer reproducible as described here: https://bugs.documentfoundation.org/show_bug.cgi?id=138515#c3 It also needs to be reverted in order to get tdf#138515 fixed, although it doesn't fix the problem Change-Id: I7bb678f1a19ae3609064449cfc5e71e0ba8c9de2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111931 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2020-12-21do not preload all images in the pptx importerLuboš Luňák
Now with my GraphicFilter::MakeGraphicsAvailableThreaded() patches for Impress images will be loaded in parallel as they are needed, which should usually be more efficient than loading all of them immediately. This basically reverts commits: b1319842a49cdf6512bbd9e81081e2a9edbd6089 04e27df3c162f1df02f061b94434a38d1eaa3a46 9eb8e2737d3a4d52ce1b0cc44091a3b7ecf59e3b Change-Id: I46bb0d6d93fb69f03f464308f6fce1603aafdfd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107945 Tested-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-by: Luboš Luňák <l.lunak@collabora.com>