summaryrefslogtreecommitdiff
path: root/writerfilter
AgeCommit message (Collapse)Author
2018-08-21tdf#57589 writerfilter: support hash-encoded colorsJustin Luth
Previously, a hash-encoded value would simply fail to zero and thus the color would be dark black. The unit test covers two conditions. Paragraph 1 has a valid encoding, and pararaph 2 has an invalid coding (which is ignored and fails to COL_AUTO). Change-Id: I68940f5c4b0975a87feb6cab8fb3572b7546a077 Reviewed-on: https://gerrit.libreoffice.org/59295 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-08-17ofz#9934 null derefCaolán McNamara
Change-Id: I6833ad8a556b561a37e468da8845914cabfac4c5 Reviewed-on: https://gerrit.libreoffice.org/59246 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-16tdf#113608 DOCX import: don't use numbering of removed paragraphsLászló Németh
to avoid direct numbering of the unnumbered paragraphs later using numbering of the removed w:r-less paragraph incorrectly. Test file and clean up by Justin Luth. Change-Id: I821eed11f96e56e945aa88da03cc84e29322195a Reviewed-on: https://gerrit.libreoffice.org/59117 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2018-08-16tdf#106572 writerfilter: don't write to dummy paragraphJustin Luth
I found a few existing unit tests that this fixes, and a few unit tests that already worked without this. So something else is at play here, but it doesn't appear to be hurt by this fix since each one still starts with "First Page" style. Change-Id: Idc61279fc5fddc9df62b6ab7a9bcd3822d52cbbb Reviewed-on: https://gerrit.libreoffice.org/59033 Reviewed-by: Justin Luth <justin_luth@sil.org> Tested-by: Justin Luth <justin_luth@sil.org>
2018-08-15RTF picture sizes are 32-bit signedStephan Bergmann
...not 16-bit unsigned. Word2007RTFSpec9.docx states "A small number of control words take values in the range −2,147,483,648 to 2,147,483,647 (32-bit signed integer)." and for \picwN, \pichN, \picwgoalN, and \pichgoalN it states "The N argument is a long integer." This was found with Clang's new -fsanitize=implicit-conversion during CppunitTest_writerfilter_rtftok, where writerfilter/qa/cppunittests/rtftok/data/pass/TCI-TN65GP-DDRHDLL-partial.rtf contains "\pich81306": > Testing file:///home/sbergman/lo/core/writerfilter/qa/cppunittests/rtftok/data/pass/TCI-TN65GP-DDRHDLL-partial.rtf: [...] > writerfilter/source/rtftok/rtfdispatchvalue.cxx:770:48: runtime error: implicit conversion from type 'int' of value 81306 (32-bit, signed) to type 'sal_uInt16' (aka 'unsigned short') changed the value to 15770 (16-bit, unsigned) > #0 in writerfilter::rtftok::RTFDocumentImpl::dispatchValue(writerfilter::rtftok::RTFKeyword, int) at writerfilter/source/rtftok/rtfdispatchvalue.cxx:770:48 (instdir/program/libwriterfilterlo.so +0xb96f2f) > #1 in writerfilter::rtftok::RTFTokenizer::dispatchKeyword(rtl::OString const&, bool, int) at writerfilter/source/rtftok/rtftokenizer.cxx:311:29 (instdir/program/libwriterfilterlo.so +0xd86c93) > #2 in writerfilter::rtftok::RTFTokenizer::resolveKeyword() at writerfilter/source/rtftok/rtftokenizer.cxx:243:12 (instdir/program/libwriterfilterlo.so +0xd84b06) > #3 in writerfilter::rtftok::RTFTokenizer::resolveParse() at writerfilter/source/rtftok/rtftokenizer.cxx:123:27 (instdir/program/libwriterfilterlo.so +0xd8299a) > #4 in writerfilter::rtftok::RTFDocumentImpl::resolve(writerfilter::Stream&) at writerfilter/source/rtftok/rtfdocumentimpl.cxx:786:27 (instdir/program/libwriterfilterlo.so +0xbf03bd) > #5 in RtfFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at writerfilter/source/filter/RtfFilter.cxx:144:20 (instdir/program/libwriterfilterlo.so +0x132d911) > #6 in RtfTest::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int) at writerfilter/qa/cppunittests/rtftok/testrtftok.cxx:58:27 (workdir/LinkTarget/CppunitTest/libtest_writerfilter_rtftok.so +0x15c6e) > #7 in test::FiltersTest::recursiveScan(test::filterStatus, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:130:20 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x5724c) > #8 in test::FiltersTest::testDir(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:155:5 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x57ec9) > #9 in RtfTest::test() at writerfilter/qa/cppunittests/rtftok/testrtftok.cxx:78:5 (workdir/LinkTarget/CppunitTest/libtest_writerfilter_rtftok.so +0x16214) (Needs to add o3tl::clamp as a compatibility wrapper for C++17 std::clamp.) Change-Id: I515e70a435c2585777062fd5a27d1de8ddbe1b74 Reviewed-on: https://gerrit.libreoffice.org/59038 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins
2018-08-14create appendCopy method in OUStringBufferNoel Grandin
so we can avoid temporary copies when appending a substring of an OUString to the buffer. I would have preferred to call the method just "append" but that results in ambiguous method errors when the callsite is something like sal_Int32 n; OUStringBuffer s; s.append(n, 10); I'm not sure why Change-Id: I6b5b6641fcb5b26ce2269f89ef06e03c0b6aa76f Reviewed-on: https://gerrit.libreoffice.org/58666 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-13ofz#9870 check sequence length before useCaolán McNamara
Change-Id: I137a9de49c5a73eb5f277dc1519e5e036abba31c Reviewed-on: https://gerrit.libreoffice.org/58945 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-13cleanup tdf#72560 writerfilter: set in defaults, not stylesJustin Luth
These "unspecified" defaults are best set in document defaults, not in the style itself. Otherwise things like table styles don't know whether they can override that property. Most of the existing logic was no longer necessary, since a more generic fix ensured that all parentless styles inherited all docDefaults. Change-Id: I0ae0ccc4d69c784611fd762b5aed6e924196caf1 Reviewed-on: https://gerrit.libreoffice.org/58829 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-08-11writerfilter: ensure bidi has expected valueJustin Luth
In case the document has an unexpectedly high positive value for bidi, don't let that mess up the logic. Change-Id: I133dbec738a7503dff49b2af6d1a35b2f7754a9d Reviewed-on: https://gerrit.libreoffice.org/58827 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-08-10cleanup tdf#106062 writerfilter: use new GetAnyProperty functionJustin Luth
Change-Id: I88945bbaaf07e3b068c63f17c654c5f7fee9d20a Reviewed-on: https://gerrit.libreoffice.org/58828 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-08-08tdf#103961: delay merge of default props until exportJustin Luth
Until now, during docx import the pPrDefault properties have been directly added to the parentless styles. However, things like table styles are supposed to over-ride these document defaults, but not style defaults. Since the docDefaults are merged into the style, table-styles were unable detect if they could override them. Exporting doesn't export pPrDefaults well, so the properties still need to be merged into the style when round-tripping. Almost every existing unit test document is a proof test. It effectively ought to act as a non-functional change. Plus, this basically reverts 7f697ec27b1175ed94228155935d9ccd3cd5606c so that unit test still covers bug 103961. Change-Id: I4948299ddd610c07d828f2bd57c58734f1b94c49 Reviewed-on: https://gerrit.libreoffice.org/58203 Reviewed-by: Justin Luth <justin_luth@sil.org> Tested-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-08-08tdf#119136 GetPropertyFromStyleSheet infinite loopJustin Luth
So, apparently we accept a style that has no styleId and define it as such. Due to some reworkings, this function was called instead. Since we can "find" a style without a name, now every parentless style thought it inherited from this nameless style. Change-Id: I47b4119abd37ece94a39e636ddb7798b809ccb04 Reviewed-on: https://gerrit.libreoffice.org/58705 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-08-06related tdf#103961 writerfilter: DocDefaults -> defaultsJustin Luth
Effectively should be an NonFunctional Change. Both LO and .docx format have an ability to specify document-wide properties. However, on import the defaults are being directly applied to the styles, and no internal defaults were being set. This patch changes it so that the style:default-style for the paragraph family gets the DocDefaults. Now "Standard" is treated just like any other style. This just opens up more possibilities for the future. Currently, the lack of export support hinders doing anything further. Thus the defaults are still being directly applied to the styles. Change-Id: Ibd1225c5a2dd021b4ce2e57241f0ee99969a0c68 Reviewed-on: https://gerrit.libreoffice.org/57932 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-08-03Move angle normalization code from various places to toolsMike Kaganski
Also rename svx angle normalization functions in include/svx/svdtrans.hxx, that deal with 100ths of degree, to avoid confusion: NormAngle180 -> NormAngle18000; NormAngle360 -> NormAngle36000. Some places were fixed that previously returned inclusive ranges (i.e., both 0 and 360), see changes in these files: chart2/source/view/main/PlottingPositionHelper.cxx chart2/source/view/main/PolarLabelPositionHelper.cxx chart2/source/view/main/ShapeFactory.cxx filter/source/graphicfilter/idxf/dxf2mtf.cxx sw/source/core/graphic/grfatr.cxx (the latter now matches the comment in the function). Change-Id: I9f274bbb4168360d60dceff02aeba6332c519a59 Reviewed-on: https://gerrit.libreoffice.org/58556 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-08-02[API CHANGE] add some more asserts to the string functionsNoel Grandin
rtl_[u]String_alloc now requires that the length be >= 0. Since this function is only @since Libreoffice 4.1, it is unlikely to be widely used externally. Removed some unit tests that were testing invalid or out of range paramers, which are already not allowed according to the documented contract of those functions. The change in writerfilter is because the new asserts triggered when running testFdo74745 The change in SwTextNode::EraseText is because testFdo60842 triggered the assert in replaceAt. The change in SwFieldSlot::SwFieldSlot is because testMoveRange::Import_Export_Import triggered the assert in replaceAt. The changes in SwFieldSlot::SwFieldSlot and TabControl::ImplGetItemSize are due to failures in the uitests. Change-Id: Ib317261067649b0de96df12873ce31360cd24681 Reviewed-on: https://gerrit.libreoffice.org/58390 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-01tdf#118949 don't set zero auto top margin in every first paragraphLászló Németh
of sections, only in table cells. Partially revert of the commit 0307a62790b33ee0c02c2323a8f759e53e2035a4. Change-Id: I1daf1bc49ce1acf42a55857c1b6b92c7cbcb8e00 Reviewed-on: https://gerrit.libreoffice.org/58431 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2018-08-01forcepoint#62 null derefCaolán McNamara
Change-Id: I255aeb96c3763aa106128d3463e4fd55395ef8b8 Reviewed-on: https://gerrit.libreoffice.org/58408 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-01forcepoint#56 null derefCaolán McNamara
Change-Id: Iaa9c4d6901a340145412fa46eaf5c292c3fb62e8 Reviewed-on: https://gerrit.libreoffice.org/58385 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-01forcepoint#58 null derefCaolán McNamara
Change-Id: I826890ec85a16bc05fc1e4cd068079b0f8734d07 Reviewed-on: https://gerrit.libreoffice.org/58393 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-01tdf#118521 writerfilter: ContextMargin grouped with Top/BottomJustin Luth
fixes tdf#104348, but tagging with the bug# of the initial fixes. Internally, EditEng holds Top/Bottom/Context settings in one object, so if only one piece is set, the cloned object starts with docDefaults, so the un-initialized parts also need to be specified with the values they inherit from their style. So this patch makes two corrections. The first is grouping ContextMargin with top/bottom. The second correction is to check the entire style-chain instead of only the direct style for the inherited property. Change-Id: Ie1d4c9538aefece4ff8b7287242c7f4d33319b3b Reviewed-on: https://gerrit.libreoffice.org/57914 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2018-07-31writerfilter: create StyleSheetEntry::GetMergedInheritedPropertiesJustin Luth
This is a useful function. Make it more widely available. Change-Id: I729c908eaf26e17c16198d14dcb89069ec6ca70c Reviewed-on: https://gerrit.libreoffice.org/58261 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-07-30related tdf#72560 writerfilter: also check rPrDefaultsJustin Luth
So far I've been fixated on paragraph properties, but styles (both character and paragraph) also inherit the rPrDefaults. One enhancement could be to check the styleType and skip the paragraph stuff for character styles, but that doesn't seem necessary or valuable at this point. The unit test is pre-emptive. Change-Id: I4e898f5fa573b62be4dc70512b02cdeb7b21e7c6 Reviewed-on: https://gerrit.libreoffice.org/58257 Reviewed-by: Justin Luth <justin_luth@sil.org> Tested-by: Justin Luth <justin_luth@sil.org>
2018-07-29loplugin:stringloop in variousNoel Grandin
Change-Id: Ic2436c6d94729211cd5bc72fee18af228381e4a3 Reviewed-on: https://gerrit.libreoffice.org/58250 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-28writerfilter: unit test that no w:default still uses "Normal"Justin Luth
Note: the unit test does NOT test the changes in GetCurrentParaStyleName. That is just a logical change and this unit test asserts the validity of the intention. Word 2013 was used to confirm that Normal is used for styleless paragraphs even if it is not marked as "default". Change-Id: I405591b40ed9028b292e99ba2833c25a24e089ac Reviewed-on: https://gerrit.libreoffice.org/58161 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-07-27writerfilter python: 2 blank lines after class/function definitionMiklos Vajna
To be in sync with PEP8. Change-Id: If712dc4eac675abb011543f2ea54a2de085e6ad8 Reviewed-on: https://gerrit.libreoffice.org/58163 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins
2018-07-27tdf#117988 writerfilter: IgnoreTabsAndBlanksForLineCalculationJustin Luth
Introduced in LO 4.0 in a mass copy of compat settings in commit 355d25eac764713f4d52eac801ade6e2ff1deab0 Change-Id: I0d95941ff2815a43e571be1a6a0dbab1d12185d6 Reviewed-on: https://gerrit.libreoffice.org/57991 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-26writerfilter: avoid -Werror=deprecated-copy (GCC trunk towards GCC 9)Stephan Bergmann
...by explicitly defaulting the copy/move functions (and, where needed in turn, also a default ctor) for classes that have a user-declared dtor that does nothing other than an implicitly-defined one would do, but needs to be user- declared because it is virtual and potentially serves as a key function to emit the vtable, or is non-public, etc.; and by removing explicitly user- provided functions that do the same as their implicitly-defined counterparts, but may prevent implicitly declared copy functions from being defined as non- deleted in the future. (Even if such a user-provided function was declared non-inline in an include file, the apparently-used implicitly-defined copy functions are already include, so why bother with non-inline functions.) Change-Id: I08632dcf7ccac1ab7efa0d5e8f4985d74cd31eac Reviewed-on: https://gerrit.libreoffice.org/58077 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-26OOXMLFastContextHandler has a deleted copy assignment opStephan Bergmann
...for whatever reason, ever since the file's introduction with 359fd901c7c8a1c37e1d2ccee2b5a2cf6c3c93d1 "INTEGRATION: CWS xmlfilter02". Make the copy ctor expliticly defaulted to avoid -Werror=deprecated-copy with GCC trunk towards GCC 9. Change-Id: I7785dfb073767ba963ceec682cfbdfe192eed69b Reviewed-on: https://gerrit.libreoffice.org/58040 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-25tdf#106174 writerfilter: bidi - prev adjust? prev bidi?Justin Luth
Four situations to handle: 1.) bidi same as previous setting: no adjust change 2.) no previous adjust: set appropriate default for this bidi 3.) previous adjust and bidi different from previous: swap adjusts 4.) previous adjust and no previous bidi: RTL swaps adjust The previous method was pretty heavy-handed, especially when clobbering the inherited ParaAdjust value. It essentially only handled situation #2. There are several commits that this one builds on or that enhance it. Look in this bug 106174 and in bug 72560. Change-Id: I07192ed93d50b07911cc8134a4ee57da87023d78 Reviewed-on: https://gerrit.libreoffice.org/57196 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-24tdf#72560 writerfilter: StyleProperty - also check DocDefaultsJustin Luth
Styles without parents still have inheritance - from the DocDefaults. So, make sure to check those properties too in GetPropertyFromStyleSheet() (and therefore also in GetAnyProperty). Currently, this should only impact when InStyleSheetImport(), but if the docDefaults ever find a way to naturally migrate into LO as doc defaults and not into the style itself, then this will also be useful to check for paragraph properties etc. Change-Id: Ic02cd10c104c0330684308f1380a77009206a664 Reviewed-on: https://gerrit.libreoffice.org/57805 Reviewed-by: Justin Luth <justin_luth@sil.org> Tested-by: Justin Luth <justin_luth@sil.org>
2018-07-23loplugin:unusedfieldsNoel Grandin
Change-Id: I1827262ad95942cacff589929f9436f8383cf142 Reviewed-on: https://gerrit.libreoffice.org/57642 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-23tdf#72560 writerfilter: check my style, not default styleJustin Luth
The default style is only relevant if no style is defined for the paragraph, so it should not be hard-coded into any general operation. The intention of that code was to look for an inherited value, which can properly be found with GetPropertyFromStyleSheet(). Change-Id: Ie2805d2516b43b45e702ee860deabe89d50ec031 Reviewed-on: https://gerrit.libreoffice.org/57804 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-07-21writerfilter: default style is the last oneJustin Luth
Documentation states, and the examples confirm that "If this attribute (w:default) is specified by multiple styles, then the last instance of a style with this property shall be used." Change-Id: I17f06ab8944a39341a00c479117e978a01d6af7a Reviewed-on: https://gerrit.libreoffice.org/57510 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-07-20tdf#103961 writerfilter: parentless styles need pPrDefault(s)Justin Luth
It is possible for paragraph styles to be based on -none-. In those cases, the DocDefaults must be applied. Change-Id: I5b3458384c6473f3aaf64e5f274372d291ff824d Reviewed-on: https://gerrit.libreoffice.org/57371 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-20tdf#118521 DOCX import: style sets unset left/right/hanging marginJustin Luth
followup to commit 480ac84f2f5049fb4337b36f12fd6796e005761b which nicely paved the way by doing this for top/bottom. Change-Id: I61b4e298e8732391b4f0467b459d9c15298925fa Reviewed-on: https://gerrit.libreoffice.org/57742 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org>
2018-07-20writerfilter, xmlsecurity: various small cleanupsMiklos Vajna
That call in the RTFSprms copy ctor to the parent non-copy ctor was a bit odd. Change-Id: Ic219ec22c0b63472766a668406585dbbeebae2f7 Reviewed-on: https://gerrit.libreoffice.org/57763 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins
2018-07-19tdf#104797 DOCX change tracking: handle moveFrom and moveToLászló Németh
data as deletion and insertion instead of importing them as normal (unmodified) texts (messing up document content and losing change tracking information). Change-Id: I9c0a7da83f3e8235d65d47afdb99ffe188f52704 Reviewed-on: https://gerrit.libreoffice.org/57723 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org>
2018-07-18tdf#118521 DOCX import: fix paragraph margin from paragraph styleLászló Németh
when the other (top or bottom) margin was set by direct formatting. Change-Id: Ic4038397329374fb2d6cf974751310f7dd8e8b31 Reviewed-on: https://gerrit.libreoffice.org/57585 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2018-07-18tdf#79878 perf loading docx file, use XMultiPropertySetNoel Grandin
because the property setting code in sw/ is surprisingly expensive Change-Id: Id9caa735f77539484993a8f16082cff588a9763a Reviewed-on: https://gerrit.libreoffice.org/57569 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-18related tdf#63561 docx: styles inherit tabstops tooJustin Luth
Add import and export support for style-parent tabstop inheritance. This patch is dependent on GetPropertyFromStyleSheet commit 39171b82b245a7589b9258337a18d6dd281f8ed2 Change-Id: I0245d0e08f140b6cb473c96cffa6f5a4ceff8944 Reviewed-on: https://gerrit.libreoffice.org/57278 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org>
2018-07-17tdf#79878 perf loading docx file, disable SAX threading for writerNoel Grandin
since it seems to cost us 20% performance Change-Id: Ic4796ee3756c8c722feb4851dc48a99e882ba0fe Reviewed-on: https://gerrit.libreoffice.org/57545 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-17tdf#104354 DOCX import: fix paragraph auto spacing in tablesLászló Németh
Top margin of first paragraph of a table cell with auto spacing, and bottom margin of last paragraph of a table cell with auto spacing are zero (except in numbered last paragraphs), but LibreOffice set 14pt instead of them, resulting much longer tables. Following cases needed special handling: - auto spacing in style - direct top and bottom auto spacing - direct top and bottom margins - footnotes in cell paragraphs Change-Id: I462847616dd43b4ba30fae2c4eb99abb49bfb9a3 Reviewed-on: https://gerrit.libreoffice.org/57352 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2018-07-17tdf#81943 sw RTF import: fix missing wrap in background for in-table shapeMiklos Vajna
Regression from commit 015fd55c94b7b650ed8e572cafaf3b0f903b01b9 (tdf#96275 RTF import: fix anchor of shapes inside tables, 2016-05-10), remember more context when delaying the import of a shape. Change-Id: Idc02868eb3fe5b7637c9fd00c841bf71423adf2b Reviewed-on: https://gerrit.libreoffice.org/57531 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-16coverity#1437962 and 1437961 and 1437955 and 1437951 resource leakNoel Grandin
regression from commit 0fb5ca6cc9cc55a4436a36c533461769b1fc8526 tdf#79877 perf loading docx file, writerfilter/ improvements Change-Id: I76792bd635eacc60647a097e070ce7b963fd122f Reviewed-on: https://gerrit.libreoffice.org/57478 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-15cppcheck: useInitializationList in writerfilterJochen Nitschke
Change-Id: I4bbd2b4d3a4bba23936bd25a02cff011448e66f9 Reviewed-on: https://gerrit.libreoffice.org/57453 Tested-by: Jenkins Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2018-07-13related tdf#106174 writerfilter: replace broken FindParentStyleSheetJustin Luth
FindParentStyleSheet didn't do anything right. An empty stylename was supposed to check currentEntry, but instead it just returned null. The passed stylename was completely ignored if there was a currentEntry. And on top of that, the stylename itself was returned, not its parent. Even worse, the currentEntry properties were ignored because in that case it DID return the parent. Even the comments were totally bogus. Amazing... GetPropertyFromStyleSheet() has the potential for LOTS of use in writerfilter. I'm surprised it has hardly been used. Perhaps the completely wrong results led people to ignore it rather than investigate why it didn't give the expected results. Change-Id: I89a6b02877ab7990aa4eb58e5e0b6a572f3d10e3 Reviewed-on: https://gerrit.libreoffice.org/57195 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-13sw, writerfilter: various small cleanupsMiklos Vajna
Different parameter name in declaration and definition, repeating type name inside the very same line when initializing from a cast, and so on. Change-Id: I52dc29ed845fb1a780dfab586bfd67db0d4a9e54 Reviewed-on: https://gerrit.libreoffice.org/57370 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-12Add missing sal/log.hxx headersGabor Kelemen
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes. This commit adds missing headers to every file found by: grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG') to directories w* x* Change-Id: I27bff44da3d34d24262031c7489e755311599bc5 Reviewed-on: https://gerrit.libreoffice.org/57307 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-10tdf#118533 fix shape import: zero top margin only in first paragraphLászló Németh
commit 0307a62790b33ee0c02c2323a8f759e53e2035a4 fixed the top margin import of the paragraphs of document sections, and import of first paragraph of the text frames with beforeAutospacing, but nullified all other paragraph top margins in frames. Note: there is no visible margin difference in the unit test (extended by this commit) before and after the fix, because the first paragraph uses also afterAutospacing, resulting still 14pt paragraph space. But the tested beforeAutospacing value of the next paragraph checks the fix correctly. Change-Id: I0ab3b8bbff33c5488f4b4af1ea4dabf7105103f2 Reviewed-on: https://gerrit.libreoffice.org/57231 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org>
2018-07-10tdf#79877 perf loading docx file, writerfilter/ improvementsNoel Grandin
this improves load time by 20%. We switch from shared_ptr to tools::SvRef to manage the objects I noticed some double inheritance like this: DomainMapper LoggedProperties Properties SvRefBase LoggedTable Table SvRefBase so to be safe I made all the ref-count-base-class inheritance virtual. Change-Id: Ia3de9733f5c6966e8171f43d083dcc087040b8cd Reviewed-on: https://gerrit.libreoffice.org/57022 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>