summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8/docxattributeoutput.cxx
AgeCommit message (Collapse)AuthorFilesLines
10 daysloplugin:constantparamNoel Grandin1-1/+1
Change-Id: Ifd973d558a73954d4b240b4d740739aa0a0a077e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187044 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-19tdf#161521 tdf#166305 docx export: fix page margins when mirrorMarginsJustin Luth1-0/+9
This patch is basically Oliver's original work that he reverted in tdf#165083. His problem was that he trusted Sections().CurrentSectionInfo() to be accurate in this context. I substituted m_pCurrentPageDesc. make CppunitTest_sw_ooxmlexport19 CPPUNIT_TEST_NAME=testTdf153196 Change-Id: Iedce7b6460664301f65f3ce2cf0a97c4e26194d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186696 Reviewed-by: Justin Luth <jluth@mail.com> Tested-by: Jenkins
2025-06-09Avoid some castingMike Kaganski1-2/+2
Change-Id: Ic29a6f6f582d3c4f00af78b9b8aa3083b68b7292 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186291 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2025-06-05SwAttrPool: pass SwDoc by refXisco Fauli1-3/+3
After commit ca6b1677cc3d923f0c13b2253b48a0ea90485b41 Author: Xisco Fauli <xiscofauli@libreoffice.org> Date: Tue Jun 3 11:59:57 2025 +0200 sw: no need to create a dummy attr pool Change-Id: Iadc9df6ffab9f479355cd3e2c649a2d3f9c1dbfb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186203 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-05-22sw filter: don't write empty OOXML docPr title/descriptionAron Budea1-8/+12
Change-Id: I4cfeec04dc32ab4aded69f5f99046f8a1cf027a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185337 Reviewed-by: Aron Budea <aron.budea@collabora.com> Tested-by: Jenkins
2025-05-14tdf#166511 sw: unify export of DrawingML object IDsAron Budea1-23/+15
Both docPr and cNvPr have IDs referring to DrawingML objects, and are supposed to be unique within the document. These IDs were handled in different parts of the code during export. 7460e4f4a7b15cc7984adf65bc17e3d580413224 added a workaround, likely to keep them unique, but together with 4b0fa253a4540f5461397815d290586f9ddabe61 this caused a clash sometimes, and the result couldn't be opened in Word afterwards. Use the same counter for both IDs. It needs to start from 1, as 0 ID makes at least grouped shapes invalid. Change-Id: I5e7b9855bc88a61841dfcd3d41599a4ce444eb40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185190 Tested-by: Jenkins Reviewed-by: Aron Budea <aron.budea@collabora.com>
2025-05-14tdf#166319 sw interdependent redlines: fix DOCX export of delete under formatMiklos Vajna1-1/+31
The bugdoc has <del>AA<format>BB</format>CC</del> in it, DOCX import works fine, but exporting back to DOCX results in a document Word can't open. It seems that the problem is: this is a "format on top of a delete" redline, so we kept writing <w:t> for the format redline content, while Word considers "format on top of a delete" essentially a type of delete, so it requires <w:delText> instead. Fix the problem by extending DocxAttributeOutput::RunText() to consider both "delete" and "delete, then something on top of it" as a delete redline, that results in the correct markup. Keep our own DOCX import unchanged to still accept both <w:t> and <w:delText> for text inside a delete redline. Change-Id: Id64fcad322bc58dc0ef3e453445f83248d6f3cff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185301 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2025-05-13tdf#155707 sw DOCX: fix Kashida justification import/export/layoutLászló Németh1-0/+19
Fix missing import/export of DOCX w:jc=lowKashida/mediumKashida/ highKashida justification settings. Add visualization support using 133%, 200% and 300% word spacing for them. Kashida justification allows typesetting less compressed Arabic text, but this layout lost in Writer, also lost in DOCX/Word completely at DOCX export of Writer (the settings weren't grab-bagged). Note: instead of grab-bagging (which applied only at table properties yet in the case of w:jc), these minimum = desired = maximum word spacing values carry the Kashida justification setting. (DOCX cannot support custom word spacing, so this doesn't interfere with the other settings.) Follow-up to commit 5a48070f5904c51dc9e7bbad4213d802fd4bc89b "tdf#126154 sw offapi xmloff cui: add min/max word spacing", and commit 7d6696757dcdfa3cee481ac7795a91b2b47da363 "tdf#159923 sw cui offapi xmloff: add custom word spacing". Change-Id: Icc41a69742ae604d091c6429441261742fe6f763 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185233 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: Jenkins
2025-05-08tdf#165564 RTF:Fix export and import of footnotes/endnotesOliver Specht1-1/+2
Removes additional spaces in export and wrong insertions of custom footnote/endnote symbols in import. Change-Id: I2e79e87a5b644b116a87602332e09cde89b64ba5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184978 Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Tested-by: Jenkins
2025-04-25rename ReferenceMarkerName to SwMarkNameNoel Grandin1-6/+6
as per vmiklos request at https://gerrit.libreoffice.org/c/core/+/184192/comment/dcdeab88_b56fb1ce?usp=email Change-Id: I57883da79db3ffb9c2f0e5c1ca3eaa535610eb7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184615 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2025-04-23tdf#165083 Remove of wrong page margin export codeOliver Specht1-11/+0
With 8ef9573f087b86f93860c8d07d04b60a40512836 import and export of page margins has been changed. The export part was wrong so it is removed here. Change-Id: I00ab7854cb7ee0baa81bfffcd7f07dea3b84f2f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183146 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2025-04-16Make UINames and Programmatic Names typesafeNoel Grandin1-5/+5
by wrapping up OUStrings inside some type-safe wrappers to make it obvious in the code what kind of name we are dealing with. The new classes are in sw/inc/names.hxx Note that I spun the names for table formats out into their own name class TableStyleName, becuase they are weird. Most of the time they are UINames, but not always. Change-Id: Iaf320639fd1aae8ba0f99866ff206906544c42be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178839 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-04-15Make reference marker names typesafeNoel Grandin1-9/+10
by creating a wrapper class, to make it obvious in the code what kind of name we are dealing with. The new class is in sw/inc/names.hxx Change-Id: I889c3a56c1cbc451a9a88c4e4340fe4b3183cc2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184192 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2025-04-13crashtesting: tdf107209-1.odt exported to rtf cannot be loadedCaolán McNamara1-1/+1
probably since: commit 326388da4e40c85f8a1af40264aaf56c7845e224 CommitDate: Tue Dec 29 13:55:41 2020 +0100 tdf#138779 do not call EndRun() in StartRuby() There is ruby text in this doc which doesn't span any base text so there isn't a run to close it. If there are two of these empty rubys in a paragraph the tags get noticibly mangled. <text:p text:style-name="Text_20_body"> て栄繁あとうも陸爛誇え大て折ほつころ<text:ruby text:style-name="Ru1"> <text:ruby-base/> <text:ruby-text> けんらん</text:ruby-text> </text:ruby> なも大草みよだ生舗よぬ雑うば物ばほ路っ作あ足通法し相いしこら様がつば有が<text:ruby text:style-name="Ru1"> <text:ruby-base/> <text:ruby-text> ふさわ</text:ruby-text> </text:ruby> </text:p> Change-Id: I4befe041e778c67f7f9fc7f1510b0a73a8b35d2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184122 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-04-11tdf#166102: replace < and > with parenthesesXisco Fauli1-4/+10
=sum<A1:A3> was exported to =sumA1:A3 making the expression faulty I also tried replacing them with spaces but then it causes a Syntax error in Word after updating the field Change-Id: I25b42d0a06335a4e5d8c8df90e8cf30e191fe426 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183967 Tested-by: Jenkins Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-11tdf#166126 sw: docx: add annotationRef on commentsJaume Pujantell1-1/+5
Right now we never add <w:annotationRef/> to any comment when saving to docx. According to the standard, not having it is the same as having it in the beginning. But when round-tripping a document with multiple comments without text from MS Word, the comments get mangled if the annotationRef tags aren't kept. So it's better to always write the implicit annotationRef at the beginning of comments. Change-Id: I6c395bbc691a29533e2be9a93663993e083db65b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183856 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183975 Tested-by: Jenkins
2025-03-28tdf#165933 avoid w:delText inside w:moveFromJaume Pujantell1-0/+9
w:delText should only be used inside a w:del, we differentiate if we use w:del or w:moveFrom by looking if the current redline is move and if it is inside a move bookmark. But sometimes the run contents are writen before the surrounding bookmarks, in that case we wrongly used delText. To avoid this we need to check not only the existing bookmarks but also the ones that will be opened in this run. Change-Id: I6653d18545cc5eb5f302c5753cdd7dfb24bee6fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183458 Reviewed-by: Jaume Pujantell <jaume.pujantell@collabora.com> Tested-by: Jenkins
2025-03-28loplugin:constparam in swNoel Grandin1-1/+1
Change-Id: Ic169c3c090d5617fb22d9dbb6c09dc3ec69e57fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183431 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-03-18tdf#83844 DOCX import: implement Ch-based LR indentationJonathan Clark1-8/+53
Adds support for the leftChars, rightChars, hangingChars, and firstLineChars attributes, which are used for character-based indentation in CJK documents. This change also updates import/export of DOC Ch-based hanging indentation to correctly match the new behavior implemented for DOCX. Change-Id: Ib9168d4b5fa14f37ae81ba6ebb5402211ff10fd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183066 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2025-03-14tdf#165059 sw use delText inside all del tagsJaume Pujantell1-3/+12
Continuation of commit 624de66a2aeee92c0d2cadc8de3740167ec09062 "sw fix not valid moveFrom/moveTo tag". Make sure to us w:delText instead of w:t inside the w:del tags now used because of that change. Change-Id: Ic5bac1865e5c12a71bd15306249c2624eb1149f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182922 Reviewed-by: Jaume Pujantell <jaume.pujantell@collabora.com> Tested-by: Jenkins
2025-03-07tdf#165059 sw fix not valid moveFrom/moveTo tagJaume Pujantell1-31/+60
According to the ISO standard, w:moveFrom/To elements are only permitted within a move*RangeStart/End section. If not inside such delimited range only w:ins and w:del are valid. We still write w:move* in paragraph properties outside of move*Range. This is technically also not valid, but lots of tests seem to have documents with this, and it is outside the scope of the bug. Change-Id: Iaf097b8b017aac1f6182a91abe464433e7664620 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182503 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182633 Reviewed-by: Jaume Pujantell <jaume.pujantell@collabora.com> Tested-by: Jenkins
2025-02-11tdf#164685 Cleanup SfxItemSetFixed - Part 3rafaelhlima1-1/+1
This is the continuation of the cleanup of class SfxItemSetFixed, as described in the bug ticket. Change-Id: I567f985af181d326a6adb6c3d3af2a9e2fa8df34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180975 Tested-by: Jenkins Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
2025-02-10cut down the amount of GetBaseModel queryingCaolán McNamara1-4/+2
Change-Id: Ib7007a223373232006b8c4261778748b6fe3bf97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181321 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2025-02-10check once if there are any urn:bails metadata in the documentCaolán McNamara1-17/+20
for the common case that there are none at all, in which case we don't have to check every paragraph for its metadata. Change-Id: I65a59041d1eeb56db6e312c8b130fbd7d519306a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181304 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-01-29Speed up the iteration furtherMike Kaganski1-4/+2
... after commit 1a938482fbe10065d670e05257a62d8fcfff3793 (use getFastAttributeTokens and getValueByIndex, 2025-01-29), which has avoided Sequence construction overhead. This avoids conversion of value strings from UTF-8 to UTF-16 and back. Change-Id: Ie832002c5ef4fb6e5390e4b17b752714c09cf471 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180882 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-01-29use getFastAttributeTokens and getValueByIndexCaolán McNamara1-3/+6
instead of getFastAttributes Change-Id: I011f0fd8bfd615ff9ee89dd7755c536740463f70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180866 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-01-25convert SwTextGrid to scoped enumNoel Grandin1-3/+3
Change-Id: I0c317a0bd1e91ed9399e5436bd2b0d7d26173ffc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180736 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-01-06crashtesting: assert on reimport of forum-mso-en-2419.docxCaolán McNamara1-2/+10
after export to docx. Use similar duplicate preventation mechanism as normal bookmarks and annotations use. Change-Id: I31a70f1ee437a5d8cce790c7ec2c7a8d5894d3f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179828 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2025-01-06merge duplicate part of branchesCaolán McNamara1-17/+13
Change-Id: I58d4748819c5eb950f26f09684eb93d55bf025ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179827 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-11-28tdf#163913 Implement font-relative marginsJonathan Clark1-23/+28
This change adds loext:margin-left and loext:margin-right, which implement margins that support font-relative units. See tdf#36709 for additional details. Change-Id: I31b0dd2b6f98cb5b02fd4dca3608db6fdee4054c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177473 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-11-28don't need to check for null twiceCaolán McNamara1-5/+0
since: commit 1ae71d8f09771ba7180be6ebdf89d36a31eb8625 CommitDate: Fri Dec 16 20:18:04 2022 +0000 Revert "fix math export/import in docx/rtf" tidy up here, and possibly commit ef533553559fe09b4afab651fc692885d1acf4ed CommitDate: Wed Jan 4 13:49:58 2023 +0000 Rudimentary support for dynamic_cast on UNO proxy objects is also relevant Change-Id: I27548c5071df4f3231a49a1ee47fa72d0a93148c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177471 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-11-28tdf#126533 vml gradient export: fix radial color swappingJustin Luth1-2/+5
This fixes my 24.8 regression 6dd6891a3deed8718bf2b0fcf564f229f676f8ba related tdf#126533 tdf#159824 VML: don't export: negative angles So far I really haven't touched radial gradient code, but the above patch swapped the colors around for linear/axials, and (while the import for radials is probably wrong) that also changed round-tripped radials - swapping colors each time. Note that on the unit test, the initial focus is 100, so on the first import the colors are NOT swapped. But since we don't write a focus, re-imports will start swapping. See FillModel::pushToPropMap in oox/source/vml/vmlformatting.cxx make CppunitTest_sw_ooxmlexport21 \ CPPUNIT_TEST_NAME=testTdf126533_pageGradient Change-Id: I469fe7fba520e338df90e2eb0d8bdf96709d2ecc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177452 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2024-11-24Turn SW_MOD macro to a functionMike Kaganski1-3/+3
Change-Id: Ide1f6fd2fc8a80b31353a14e416505a2349cea2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177071 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-11-21docx: export empty GrabBag elements as self-closing xml tags - 2Andras Timar1-1/+6
In 6cb711645b8d8f3cee0d3454e193cc7bf1cad305 the condition was not good, because there is a special element called "attributes" which is not a child element but contains attributes of the current element. In the condition we should check for 0 elements that are not "attributes". Change-Id: I1d6995e13f288902c1cce85ac3b7d4e0da213df8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176900 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
2024-11-19docx: export empty GrabBag elements as self-closing xml tagsAndras Timar1-10/+17
Although <tag></tag> and <tag/> are syntactically equivalent, we got a report that some 3rd party tool could not process a docx file produced by LibreOffice. In styles.xml there was <w14:ligatures w14:val="standardContextual"></w14:ligatures> instead of <w14:ligatures w14:val="standardContextual"/> This patch is meant to fix this, to mimic what Word does anyway. Change-Id: Iea409981d2a2eac40c460bdae4d3dc7e8b0c33ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176680 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Jenkins
2024-11-13tdf#36709 editeng: Layout for font-relative first-line indentJonathan Clark1-1/+2
This change extends layout for font-relative paragraph first-line indentation into Edit Engine. Change-Id: I5906f493b91fbcb87ded165709fb132b33ce1906 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176487 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-11-13tdf#36709 sw: Writer layout for font-relative first-line indentJonathan Clark1-1/+2
This change implements layout for font-relative paragraph first-line indentation in Writer. Change-Id: Ie8f386bcc13a43ab92d5c15654c24bfdfc62bd69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176216 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-11-12loplugin:reftotemp in swNoel Grandin1-4/+4
Change-Id: I370d18643b0c83c60846a0b6f051440a043c647a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176486 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-11-12sw: use SAL_RET_MAYBENULL in GetDocShell()Xisco Fauli1-1/+2
similar to commit c796878e6af0fc7c886e813a0010d9402312eb5c Author: Xisco Fauli <xiscofauli@libreoffice.org> Date: Mon Oct 21 15:56:25 2024 +0200 tdf#163543: check GetDocShell() Change-Id: I4b489c59b7596466aea6b5c7b78248d82f193a0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175628 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-11-12clang-tidy: performance-unnecessary-copy-initialization in swNoel Grandin1-6/+6
Change-Id: I64342ae8c10738e276702e8ab2c0c0954be25752 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176441 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-11-02cid#1494598 Uninitialized scalar fieldCaolán McNamara1-1/+2
since: commit d87cf67f8f3346a1e380383917a3a4552fd9248e CommitDate: Wed Oct 23 18:26:07 2024 +0200 tdf#131728 sw inline heading: fix missing/broken DOCX export Change-Id: I15971c085af3ec20a44dd49865a979e974f7572a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175934 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-11-01tdf#48459 tdf#131728 sw inline heading: new frame style: fix DOCX exportLászló Németh1-6/+25
Export Inline Heading frame style as OOXML style separator, fixing interoperability of the newly created inline headings. Remove frame grab-bagging, use the new Inline Heading style for round-trip of DOCX documents. Note: paragraph grab-bagging is used only for the case, where no frame created for the inline heading (second or more inline heading paragraphs in the same paragraph layout). Now the DOCX import uses anchoring as character, fixing layout problems of short paragraphs with big size headings anchored *to character* previously. Follow-up to commit 7a35f3dc7419d833b8f47069c4df63e900ccb880 "tdf#48459 sw inline heading: apply it on the selected words", commit d87cf67f8f3346a1e380383917a3a4552fd9248e "tdf#131728 sw inline heading: fix missing/broken DOCX export" and commit a1dcbd1d1ce6071d48bb5df26d7839aeb21b75a8 "tdf48459 sw inline heading: add Inline Heading frame style". Change-Id: Idc5f366c7a34f6e018683744475fc87aed0a3d14 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175835 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: Jenkins
2024-10-29tdf#140226 use StaticWhichCastOromidayo Owolabi1-35/+35
Replace static_casts informed by .Which() for SfxPoolItems with StaticWhichCasts where appropriate in htmlctxt.cxx and docxattributeoutput.cxx Change-Id: I0a905c9e92cf39396bab0620ed35b201f8e6a8c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175515 Reviewed-by: Hossein <hossein@libreoffice.org> Tested-by: Jenkins
2024-10-23tdf#131728 sw inline heading: fix missing/broken DOCX exportLászló Németh1-1/+10
Fix layout interoperability during DOCX round-trip by grab- bagging w:p/w:pPr/w:rPr/w:specVanish, i.e. the style separators. Note: use FrameInteropGrabBag to select the text frames, which are inline headings, exporting only their text content (a single paragraph), and use also ParaInteropGrabBag to export w:specVanish. Note: specVanish lost completely originally, converting inline headings to normal paragraphs. After commit 56588663a0fddc005c12afaa7d3f8874d036875f, text frames (the workaround for inline heading/ToC/bookmark support) were exported instead of plain paragraphs, which were broken at least in LibreOffice. Follow-up to commit 56588663a0fddc005c12afaa7d3f8874d036875f "tdf#131728 sw inline heading: fix DOCX paragraph layout interoperability". Change-Id: Ic61617f9c9652c9364f8262914c66dec093d6910 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175372 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2024-10-23tdf#163486: PVS: Expression is always trueXisco Fauli1-2/+1
Expression 'pChangesSet' is always true. Change-Id: Ib1f654b0b30d0e8e73121a7448a392a134be888f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175459 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-19Fix typoAndrea Gelmini1-1/+1
Change-Id: Ib3ee31656c5c9b99d77d359d28761713bb2479ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175193 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-10-19tdf#156333 Adding a tint/shade values to the modelVladislav Tarakanov1-42/+120
Before implementing text effects from the TextFill tag, their values must be directly saved in ComplexColor, without saving in GrabBag. To achieve this, DomainMapper has introduced separate processing of the LN_textFill_textFill tag using the new TextFillHandler class. TextFillHandler inherits from TextEffectsHandler. As a parameter in the constructor, it receives a reference to the ComplexColor to which changes will be added. This is done because some text effects (ThemeTint, ThemeShade) can be specified in the <color> tag, so TextFill must complement existing transformations. For the same reason, when processing LN_EG_RPrBase_color, the ComplexColor value is taken from the context if it was placed there previously. In docx export, existing "Tint" and "Shade" transformations are preserved only in <color ThemeTint=...> and <color ThemeShade=...>. Because the Tint and Shade values from TextFill must be distinguished from the values from color during export, the "Tint" and "Shade" transforms have been renamed to "ThemeTint" and "ThemeShade". Also added new "Tint" and "Shade" transformations, which are currently only saved in TextFill. Change-Id: I0ebba53eba83ccfc99fa812e60d6cebb2ff6bf0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157979 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-09-25tdf#163092 sw: fix broken anotations on save to docxJaume Pujantell1-4/+7
Opening an odt file and saving it as docx would break the comment threads into unconnected comments. This also fixes a regression from commit 3bb2668f5e753e9fa6aa7eea74454bf11cdfc853 where creating a commet thread with multiple children and saving to docx would break it into separate threads. Change-Id: I76a0ec49bd69b953d816b3b5d3cc6d14065d5846 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173681 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173872 Tested-by: Jenkins Reviewed-by: Jaume Pujantell <jaume.pujantell@collabora.com>
2024-09-21Make replacement graphic management more atomicMike Kaganski1-3/+4
Commit 8872f7121b4ae4dd0b51820366d3510a88f7aac2 (crashtesting: crash on exporting kde274105-6.docx to .rtf, 2024-03-27) added some safety code in EmbeddedObjectRef::GetReplacement. It mentioned, that there are likely some bugs in the management of the graphic. This tries to fix this management, avoiding the intermediate states, and only changing the graphic when all the data is ready. This also reverts the changes of the mentioned commit, obsoleted now; and of commit 8780fa41dcd164af244742461f4e57a4bcf4c7a4 (svtools: fix lost replacement grpahic when updating it via OLE fails, 2018-10-30); but keeps commit 24231f2a336c50eac5e6a1621c57e60ebe1e1cf4 (svtools: fix lost replacement non-rendered graphic when updating it fails, 2022-02-17). This has revealed that the second part of unit test for tdf#143222 ("Check export of embedded worksheet in slide"), introduced in commit 92a407b7f90a98704a238c5ffa3a3491eaf3263a (tdf143222 Handle alternate content of graphicData element., 2021-07-08), has never really worked: the "pGraphic != nullptr" check would never fail; in fact, that used to always return an empty graphic. The problem was filed as tdf#163064, and the test was modified accordingly. Commit 5d997c029e53c31a3651a08f5012645097cec48f (sw XHTML export: improve dummy OLE object handling, 2018-08-30) made ReqIF export handle missing replacement graphic. However, it had assumed that SwOLENode::GetGraphic always returns a valid pointer even for the missing data. That is fixed here in OutHTML_FrameFormatOLENodeGrf. Other places, where the pointer was dereferenced unconditionally, were fixed (keeping current behavior). Change-Id: Ica97a691ecc11b856bdb003f89467ea3392684bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173716 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-17use more concrete UNO types in swNoel Grandin1-2/+3
Change-Id: I0f84ce7116441abb2359ee756c912ae663baa2fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173545 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>