summaryrefslogtreecommitdiff
path: root/sw/source
AgeCommit message (Collapse)Author
2022-01-17tdf#145321 Crash scrolling DOCX to bottomNoel Grandin
this is a consequence of commit d4dc6b5cfdb02ad00a06ad32650948648abe010d use std::vector for fetching DX array data which made pre-existing bugs easier to see. This crash made apparent that we have bad data ending up in SwDrawTextInfo. So I added some asserts there to catch that. However, that simply made apparent that there are bug(s) at a higher level that I have no idea how to to fix. So at the primary problem site in SwTextCursor::GetModelPositionForViewPoint I clamp the values to sane ones. Change-Id: Ic74f6944932bbfc22e8cf9addf9e7511755b18be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128497 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 0e4bcbb67dda204ba78f99df68a63458c29e7470) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128441 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-01-17tdf#146747 InternalItems has to be null terminatedCaolán McNamara
Change-Id: I15c0afdcae3e9bc1412e6564c15df2196515052e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128346 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-15tdf#143039 tdf#143106 sw: DOCX export: don't export duplicate flysMichael Stahl
The problem is that at the end of the paragraph a second call to OutFlys() is made in line 2730 and that causes the duplication; for this call the value FLY_POSTPONED must be returned, not FLY_NONE. (regression from 3eced2d52415abeac266804ab682bee022322a19) Also revert commit deb892628a1501527c8c41b85a65282df95b81b1 because its test fails now as 0 comments are exported; it was apparently another problem introduced by the above commit, and apparently this fix helps for duplication of comments too. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128386 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit f261fae4af72b1328bc3e93fc52a9a24ce0975b3) Restore tdf#134951 docxexport: stop duplicating stuff in postponed text Partially revert commit f261fae4af72b1328bc3e93fc52a9a24ce0975b3 to restore deb892628a1501527c8c41b85a65282df95b81b1 because as reported by jluth the test case testfdo79008 that failed was apparently somewhat misleading and the test case testTdf134951_duplicates that should test comments erroneously failed to fail because it is doing a loadAndSave() instead of a loadAndReload(). Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128410 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 4c4fb36222f6c624cfdea82ce266bf9d99073558) Change-Id: Ib9706e4c24db38c15a0170ba2e8f08fba5327f98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128341 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-12tdf#144270 sw: manage tracked table (row) deletion/insertionLászló Németh
in Manage Changes dialog window, where deleted/inserted tables and table rows were shown as multiple cell changes, as a regression. Now a single table deletion/insertion or deleted/inserted consecutive table rows are shown with a single tree item in the dialog window instead of showing multiple cell changes. Add new Action icons to the tracked table row insertion/deletion tree items (re-using table row deletion/insertion icons). Show cell changes as children of the single parent item tracked table row change. Accept/Reject and Accept/Reject All support 1-click acceptance or rejection of table (row) changes, instead of clicking on all cell changes of a single table (row) deletion/insertion. Regression from commit c4cf85766453982f1aa94a7f2cb22af19ed100be "sw: fix crash due to redlines on tables on ooo121112-2.docx". (cherry-picked from commit eebe4747d2d13545004937bb0267ccfc8ab9d63f) Conflicts: sw/inc/bitmaps.hlst Change-Id: Id03a8075cc6849b70a8d32e1a955b79e7d3a3246 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128326 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-01-12tdf#146605 sw: try to fix SwSectionFormat notificationsMichael Stahl
SwSectionFormat no longer notifies via its SwModify to SwClient listeners, but only via SvtBroadcaster, so SwSection and SwSectionFrame need to be SvtListeners. This can be seen when changing the footnote-at-end setting in the section dialog, if the SwSection doesn't get the event the footnote numbers aren't adapted to a new restart value, if the SwSectionFrame doesn't get the event the footnote container isn't moved. This is of course not pretty but hopefully it will be refactored further in the future. (regression from commit 2e32f4ed5af16a68c97a50806a42ffa2d10f1d7a) Change-Id: I93c616e209a01fc5d4c8eba701a6ddce5d5b432e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128257 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit cb188ce336e434c2b7002b3d8a41a681e73ae51a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128243 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-12sw: stop inheriting SwSectionData::m_bProtectFlag from parent sectionMichael Stahl
This is actually no longer inherited by accident since commit 2e32f4ed5af16a68c97a50806a42ffa2d10f1d7a because it replaced the SwSectionFormat::Modify()->ModifyBroadcast()->CallSwClientNotify()->CallSwClientNotify() with a call to GetNotifier()->Broadcast(), and apparently SwSection is a SwClient of SwSectionFormat but not a SvtListener. But some consider the new behaviour useful, as previously there was no way to un-protect a section inside an outer protected section at all, while in this way every section can have its own independent protection flag. (The m_bEditInReadonlyFlag is not used for this purpose, as it is only for the case when the document was loaded ReadOnly.) So make it more explicit by removing the SwSection inheritance code. A similar change was made for hidden flag in commit 91b0024965908c692bea40f47c58ea9d1bf8a596 Change-Id: I29d3c84309a84267573950775f2a1c6353623724 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128221 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 840cc7883849a10eea11a02a743848238723a3de) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128232 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-11tdf#134960 tdf#146419 use sorted array to list hyperlinks in NavigatorJim Raykowski
in document order The current approach of using layout position to list hyperlinks in document order works for single-page view but not for multiple-page or book view. This patch makes the list order layout independent by using SwPositions to sort the hyperlinks in document order. Change-Id: Ie09ac362aa0e8db813430de50c7f06f3072179f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127856 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit 1aa49bb9cf2b960312bf1e65ea1eee2521873a16) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128227 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-10tdf#144890 Invalid selection area when text in LTR runNoel Grandin
In commit ec50b9e5eaec7c94df35617676077ef0d65cecc7 no need to allocate Sw2LinesPos separately on heap I made this change, // If there's no doubleline portion involved or start and end are both // in the same doubleline portion, all works fine, but otherwise // we need the following... - if( pSt2Pos != pEnd2Pos && ( !pSt2Pos || !pEnd2Pos || + if( (pSt2Pos || pEnd2Pos) && ( !pSt2Pos || !pEnd2Pos || pSt2Pos->aPortion != pEnd2Pos->aPortion ) ) I tried to follow the explanation in the comment, since the existing comparison of pointers made no sense, since the two objects would always be distinct. However, that appears to have caused this bug, so change the comparison to directly represent the original logic. Change-Id: I95d6d870cecd762d4eb809d371e4a61b6641c85e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128133 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 563af8fd15aa37e75af8882cccbdf8914ebe8e61) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128154 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-01-09Resolves: tdf#146285 the "edit" button should be insensitiveCaolán McNamara
for this case Change-Id: Ib60577d10bd4a91ea01c5aa6fcf3d50b38fbe24d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128067 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-09tdf#146084 Don't warn for languages without hyphenationHossein
Upon opening a Writer document containing some languages that do not use hyphen, an alert is created with the text: 'Missing hyphenation data Please install the hyphenation package for locale "ab_CD".' in which 'ab_CD' is the locale. This patch removes the warning for these languages, that do not use hyphenation: * Arabic script languages (except Uighur) + Persian (Farsi) + Kashmiri + Kurdish (Central Kurdish and Southern Kurdish with Arabic script) + Punjabi + Sindhi + Malai + Somali + Swahili + Urdu "Words are not hyphenated in Arabic language text, however hyphenation is possible for Uighur text written in the Arabic script" https://www.w3.org/International/i18n-tests/results/word-break-shaping The list from MS documents is lenghty, but some of the languages are were not available in LibreOffice, so they are ommited: https://docs.microsoft.com/en-us/typography/script-development/arabic There were languages like Hausa and Kanuri from Nigeria that use both Latin and Arabic script, but only Latin script was listed in the LibreOffice languages, so they were also ommited. * CJK languages + Japanese + Korean + Chinese + Yue Chinese "CJK languages differ from European languages in that there are no hyphenation rules" https://tug.org/TUGboat/tb25-0/cho.pdf * Vietnamese "In Vietnamese all words consist of single syllables, so they are often very short; hyphenation is not allowed at all." https://tug.org/TUGboat/tb29-1/tb91thanh-vntex.pdf Hyphenation is declined in Vietnamese orthography since 1975 https://www.quora.com/When-did-hyphenation-decline-in-Vietnamese-orthography The fix for Japanese (tdf#143422) was previously done in: 53d5555f13371252874ec962dee4643168d26780 and the functionality is preserverd with the current patch. An alternate approach would be adding all the unicode scripts, specifying the script for each langauge, and decide upon the script (mostly) and not (only) the language. More information about the hyphenation usage of many scripts can be found in: https://r12a.github.io/scripts/ This is the list of Unicode scripts: https://unicode.org/standard/supported.html https://en.wikipedia.org/wiki/Script_(Unicode)#List_of_scripts_in_Unicode Change-Id: I7d2b4ee55a0893d1f0d1f9cd3b7cc037a49589b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126435 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com> (cherry picked from commit 151c56ed547490a99d912524c0e56b5d6d4a1939) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128082 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-07ofz#43052 crash in WW8TabDesc::MergeCellsCaolán McNamara
Change-Id: I4d7acc006458598ad43033fa8e35b2f422d76ff5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127770 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-01-05Fixed tdf#143142 when unable to scroll table column width properties.alt
Fixed the issue when unable to scroll table column width properties on some occasions. Change-Id: Id0a89d248d2a4effc0cb08ca0dc60aa23f66d70e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127938 Tested-by: Jenkins Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> (cherry picked from commit a409739efe4507e23926d1862215c128904fda88) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127955 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-05Outline folding: Check frame area is valid before using pointer toJim Raykowski
saved outline frame It seems when a frame is removed it is not immediately destroyed, so a pointer to the removed frame may not be a null pointer. This patch checks for valid frame area definition before using the save outline frame pointer with intention to fix an intermittent crash occurrence when an outline paragraph is removed. Change-Id: I4f9b55acc6aeb83553a3f26c2701159c2ba439a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127717 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127933 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-05tdf#134960 SwNavigator: Improve table content member list orderingJim Raykowski
by sorting by table node index in the document model This has advantage over sorting by frame layout top position because it always shows the tables in the order they appear from start to end in the document independent of single-view, muliple-page, or book view. Change-Id: I9103c32bbb32afd44e0528b1c7744812075b2339 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127828 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127932 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-12-27tdf#146257: sw: better handling for list numbering = NONEVasily Melenchuk
Previously during refactoring were lost some corner cases with some level having disabled numbering. In this case LO should strip useless delimiters up to next level. For example, if second level has disabled numbering, third level should look like "1.1", but not "1..1". Change-Id: I259a16b456f51bc76d5c8360974d0acadfc36776 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127517 Tested-by: Jenkins Reviewed-by: Vasily Melenchuk <vasily.melenchuk@cib.de> (cherry picked from commit bf2b46aa15665dde63ceff4e7686b99b3990354f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127569 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-26Outline folding: check pointer before useJim Raykowski
Change-Id: Ifa79ef5f286da77fdac9464b4e271021107bf34e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127348 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit 1609bb6ab5e34fc8fff67240e3c49dde93f2d2d7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127378 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-24tdf#138743 sw_redlinehide: delete FlyFrames when hiding tracked changesMichael Stahl
Cannot remember why but when RemoveHiddenObjsOfNode() was added in commit 464ef392f901c6e2ad3d32df8b039f2226073cf4 only as-char draw shapes were removed from the draw page, but as-char fly frames remained. For these only a barely visible border is painted sometimes, but the problem is they remain as a mouse click target, not sure how i didn't notice this earlier. Somehow image painting is wonky on current master, works fine on 7.1. Change-Id: Ie4e20f6a399daadda1badf155ba510445394f5e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127366 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 2954039767e1adab7a65838b61a449b701f244a4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127372 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-23tdf#138771 sw_fieldmarkhide: fix overlaps in SwScriptInfo::InitScriptInfo()Michael Stahl
For sw_redlinehide, the MergedPara::extents were guaranteed not to overlap with the MultiSelection aHiddenMulti in this function because CalcHiddenRanges() took care to remove deleted redlines, but now extents may be created for fieldmarks and it does nothing for fieldmarks. Fix InitScriptInfo() to handle overlaps between extents and hidden ranges. (regression from c0864f26f3143ea81c65d3826fae32a8fd54c531) Change-Id: Ic7aa432e1b5b960f3a865176cf9dbc096b2cfd5e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127329 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit d11fb6cecaf72787973990e09cc7e8d03bdbf9d7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127260 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-23Revert "Revert "sw_fieldmarkhide: init fieldmark mode from options""Michael Stahl
This reverts commit 70dd95aabd11b2146e2556c1da87da4a22d6f7b5. Looks like we might get some time to fix bugs. Change-Id: I7038c5e854676e2540011dd2a8dcfb8870788502 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125558 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 657de5fba12b0e9afcdee361654d2a2d0dbd7311) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127261 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-23sw: fix SwTextGlyphsKey::operator==()Miklos Vajna
It assumed that the length of our text and the RHS's text is the same, but that may not be true. Originally introduced in commit c7b83934fcf4120c1a4cba8e1eaf9c7aef9edc82 (tdf#119992 sw: compare sub-strings in SwTextGlyphsKey comparison, 2018-10-12). Change-Id: I0361ec001aaffdbad6814bbbfefec6eaeb367f10 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127163 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit 0aca74c0acc3e1c3f6099f47bfe9bfedfa7bf86d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127258 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-12-22tdf#135061 sw_redlinehide: fix copy into delete redline following tableMichael Stahl
When pasting, the entire document body is covered by a delete redline. The insert position is in the last node, whose SwTextFrame has a MergedPara, and the problem is that the MergedPara::pLastNode continues to point to the last node of the document, even when the delete redline is adjusted to end in a newly inserted node by SaveRedlEndPosForRestore::Restore(). Thus afer the 2nd paste, SwDoc::SearchNumRule() goes into infinite loop from node 141 to 86 and then jump via the bad MergedPara back to 141. The reason is that in DocumentContentOperationsManager::CopyWithFlyInFly() the RecreateStartTextFrames() isn't called. This is because it only checks if the preceding node is a text node, while here it is a table node. Fix this by checking if the node at the insert position is merged to a node preceding the previous node. Change-Id: I103b60b2bec86af11006ed591cfda2feb5f575a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127273 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 70ac13eecfa620e94770a64110eeaa05f8c266e6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127253
2021-12-22tdf#135061 sw_redlinehide: create frames following hidden tableMichael Stahl
When pasting, the entire document body is covered by a delete redline. The insert position is in the last node, following a table; table nodes do hot have any connection to frames if they are hidden by redlines, so MakeFrames() won't create frames for the inserted nodes. Refactor SwNodes::FindPrvNxtFrameNode() so that it can detect that table nodes are hidden in the current layout and continue to search in this case. For multiple layouts, MakeFrames() may need to use different nodes per layout, as the "nearest" one in one layout may be hidden in another. Change-Id: I3bb2c861c861438ac2695ab49dd91dc2bde87db4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127272 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit af4e20426ad24c6f2c0164b37472f2b7b54ecd30) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127252
2021-12-22sw: simplify SwNodes::FindPrvNxtFrameNode(), de-golf conditionalsMichael Stahl
Change-Id: Ie5b35793ce38e6338e34d47725e649a56078d603 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127271 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit b922988e2cd57c9397b9e512a7616a10612b2b8f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127251 Tested-by: Michael Stahl <michael.stahl@allotropia.de>
2021-12-22sw: simplify SwNodes::FindPrvNxtFrameNode(), pEnd is always passedMichael Stahl
Change-Id: I6bd606e8c70704cb716b1eb474934dedb54d81da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127270 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit e0f13ce0f9e2dac836c42141bb848d2bf4fbda75) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127250
2021-12-22sw: simplify SwNodes::FindPrvNxtFrameNode(), improve commentsMichael Stahl
Change-Id: I2f715ffe49d1c3ef373ffeb2a3cc335d511e0c13 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127269 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 25aa814aa466cb0a59e34dfef33c50065c445f60) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127249
2021-12-22tdf#146243 sw: fix Undo of accepting table row insertionLászló Németh
Fix Undo of accepting table row insertion to get back the "false" value of HasTextChangesOnly property and the associated light blue table row background. This fixes also the missing update of the table row background at accepting the table row insertion. Follow-up to commit 8c028b7e41e3d350d0e67005b16faf0159cc5c12 "tdf#146244 sw: update HasTextChangesOnly in modified rows". Change-Id: I8e2436b6b7b67f06037481955ff22cdbc2b22dc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127228 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 1edaee2f03bce0efa409c592919458658d0aa751) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127186 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-21tdf#104823: support for sdt plain text fieldsVasily Melenchuk
This is a squashed commit containing set of changes: * Create a input field from sdt text block. * Advanced support for reading field data from data bindings which can point to custom xml or properties xml. For this XOOXMLDocumentPropertiesImporter idl interface was extrended with extra getterrs to get properties as xml dom elements. * Support for exporting of this feature back to docx. For this some extra parameters for sdt block are kept in newly introduced grabbag for input fields. If field does not contain grabbag it being exported as before (FILLIN or whatsoever), otherwise sdt block is counstructed based on data from grabbag. * Basic support for updating custom xml values back into custom xmls with usage of xslt transformations. To achieve this extra parameters were introduced to XXSLTTransformer: now it is able to support in-memory transformation stylesheets. Some unittests were corrected: since sdt plain text edit area is a field located inside paragraph in outout corresponding sdt is also located inside paragraph (instead of Word's approach with paragraph inside sdt). Seems this is not critical. Change-Id: I1a73ef300db3619804f7adf18579bea708764c14 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127015 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127127
2021-12-21tdf#134960 List hyperlinks in order of apperance in the documentJim Raykowski
in Writer Navigator Hyperlinks content type member list Change-Id: I0473c767478b1125acbb7e1b4bda99ac22934884 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126992 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit 64065ade86cac68b9d500f0495ffc5745a944819) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127180
2021-12-21tdf#143569 fix fly frame Headings out of order in NavigatorJim Raykowski
This fix uses the function that is used to determine SwSectionsContent nYPos. Using this approach also works to make the listing order of members of outline content type (Headings) the same order as they appear in the document. Change-Id: I108994553026e05088b103e1094e38a94d6608be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127022 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit c8ac73daa670ab571c3d52541c67c28270ee6a08) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127182 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-21tdf#90805 sw tables: use veryThin instead of hairline bordersJustin Luth
This keeps it consitent with tdf#99027 which was fixed on the same day. Change-Id: I03d8a9c2ab1e7f6cf8a7c95d7600d549138e414e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127165 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Reviewed-by: Justin Luth <jluth@mail.com> (cherry picked from commit 3807e43b3b1a05eb7d9c88988b41448cfc05015a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127183 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-21tdf#144672 fix Index entries in Naviator are always grayed outJim Raykowski
by fixing The return from SwTOXBaseSection::IsVisible. SwSectionFormat::GetInfo for RES_CONTENT_VISIBLE always returns false so it needs negated here and also need to test GetInfo pool item argument for valid pointer to a frame, indicating content is visible. Change-Id: I82326642b5714dd38779cf03a501ed0a2b032bcb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127024 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit 6485187c5351f9356a3f27bae86bd0460b6bd3c8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127181 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-21tdf#137318 sw_redlinehide: fix assert on export moz715138-3.doc to ODFMichael Stahl
(regression from 31f51598fd08c2b76583a1baad0c0d6d4b336664) Change-Id: Ia3e5d25e46da3016d1af9f5e1dbdcfc6bdd46457 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127145 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit d246fcf94638604911ef11ff2f4bdc0c5ba8dbfc) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127169 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-21tdf#146244 sw: update HasTextChangesOnly in modified rowsLászló Németh
It's not forbidden to write in rows deleted or inserted with change tracking, also Accept/Reject only part of the text changes here. Improve to handle these in SwTableLine::UpdateTextChangesOnly() by keeping property HasTextChangesOnly = false (tracked row change) only if 1) there is an insert redline, which is the oldest redline in the row (tracked row insertion) or 2) there is a delete redline, which is the newest redline in the row, and no text outside of redlines, and no insert redline in the row, i.e. whole text content is deleted (tracked row deletion). Also update HasTextChangesOnly table row property at accepting SwRangeRedlines in changed table rows. And follow-up bug fix commits of this: commit bc206f7fd3b4a9e843c81f39dcd2faeeff9c785a "cid#1495785 silence Unchecked return value" and commit 213173edc5e47bb6da11f9a301f4dca71854a48c "sw: fix crash with commit 8c028b7e41e3d350d0e67005b16faf0159cc5c12". (cherry-picked from commit 8c028b7e41e3d350d0e67005b16faf0159cc5c12, commit bc206f7fd3b4a9e843c81f39dcd2faeeff9c785a and commit 213173edc5e47bb6da11f9a301f4dca71854a48c) Change-Id: I2bc556c732e1d0fdca24678c79351aafbfc156b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127195 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-12-20Check pointer before useJim Raykowski
Change-Id: I06a19b4e6a5fa892c8aec555e5416fda7fe24146 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127090 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127155
2021-12-20SwNavigator: fill content member lists when toggling from root viewJim Raykowski
Other content type member data could have changed while in root content view. Fill the content member lists when toggling from root, excluding the toggled from root content which should already have the most recent data. Change-Id: I7a014affa72c05f0a89df29acfbabcaf59fe711a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126796 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit dc54785f153a7fe8fecc1e21b0ef7c6549e2d0d0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126971 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-20tdf#146019 Remove confirmation dialog about applying images EXIF rotationGabor Kelemen
Change-Id: I53553f91eeb5bd56bbad19b80421177a84625d96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126616 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127151
2021-12-20related tdf#90805 sw table: ensure border when setting border colorJustin Luth
When using uno:FrameLineColor to set a table's border color, add hairline borders if there are none at all. Change-Id: Ib2b2f8aff0052dc32b38486c98670ebff3bd6a4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126923 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127000
2021-12-20tdf#90805 sw: if no border when adding border color, add hairlineJustin Luth
Due to things like tdf#90070 (since LO scales down an image when adding a border), only make this a hairline border. Otherwise, a larger default would seem reasonable... From what I can tell, SID_FRAME_LINECOLOR in SwFrameShell::ExecFrameStyle affects frames and images and OLE objects. Change-Id: Icd72cecb7ebd7fc8b236fb5b8ebd14771399f94d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126910 Tested-by: Justin Luth <jluth@mail.com> Reviewed-by: Justin Luth <jluth@mail.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126999 Tested-by: Jenkins
2021-12-20tdf#144364 sw: Revert "Use FastParser in SwXMLTextBlocks"Justin Luth
This reverts 7.0 commit fd6feb4f538b0c5c9061529ff002be9f62a7239a. Noel said this was just a performance fix, so just go ahead and revert it. It caused the regression documented in bug 144364. Change-Id: I044c49e42873db120a94d93a00e9b35105778b9c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127012 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> (cherry picked from commit 1addd8c104f6ad390bdd0ca61cd5ce97b55ce218) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126982 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-17tdf#137318 sw_redlinehide: fix JoinNext() if deleted node contains redlinesMichael Stahl
The GetRedlineMergeFlag() of the deleted node is None also if there are deletions contained completely inside the node, but in this case the merged node does need a MergedPara, so check if the deleted node had a frame that has a MergedPara in addition to the flag (which remains as an "optimization"). (regression from d258fc29560baa5ecae03ebc2740e11420643e27) Change-Id: I44456f230374ec1de159106678e80fb4670c9f33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127011 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 31f51598fd08c2b76583a1baad0c0d6d4b336664) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126978 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-12-17tdf#99027 Set default table border width to 0.5ptSamuel Mehrbrodt
Change-Id: Ib6c8a6e63271f400d69702c3c090678d6c016af3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126922 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> (cherry picked from commit c84ec0b1debb9b72f05ffc1d669608afc454cec2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126972 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-17tdf#144565 sw_redlinehide: fix mailmerge when flys anchored at last nodeMichael Stahl
The InsertPageBreak() calls SplitNode() which is not ideal as the flys anchored at the last node of the document may end up anchored to the newly inserted node and this one will be removed again a bit further on: GetNodes().Delete( aDelIdx, iDelNodes ); ... which is what crashes, when the SwNodeIndex of the anchor is moved hard to a different node, which causes inconsistencies such as: sw/source/core/text/txtfrm.cxx:1263: TextFrameIndex SwTextFrame::MapModelToView(const SwTextNode*, sal_Int32) const: Assertion `static_cast<SwTextNode*>(const_cast<sw::BroadcastingModify*>(SwFrame::GetDep())) == pNode' failed. Instead, always use AppendTextNode() and then set the break item directly, which even simplifies the code. (reportedly a regression from 166b5010b402a41b192b1659093a25acf9065fd9 although i wasn't able to find an earlier version that didn't crash in some way) Change-Id: I4cac74fc86fc505f62b14cf0d7a7f9689c7402ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126921 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 42448f48bb48a13d6618a181b12840db6d85c574) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126944
2021-12-16tdf#145747 Fix cursor not shownJim Raykowski
after moving focus from shape object to comment window to edit window Change-Id: Ibce3939575cfdc941eec45fea24383fc5edf53d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125431 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit 85057da7f19e8e5d6023c16fa07d138e2b519a66) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126885 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-16tdf#139843 sw_redlinehide: fix crash while updating reference fieldsMichael Stahl
Use layout in MakeRefNumStr() when checking if node is numbered, because a hidden node has a null SwNodeNum. (regression from ae246b44da1708417aaaefe4f9186cfbbb9a9137) Change-Id: Iea797c03018929601ea797f00e3cf2d7749e55ce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126857 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit cc02c0e32fda654cb4bcb93f87ceb48b356e1d84) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126875 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-15tdf#141175 sw_redlinehide: fix crash in lcl_DeleteRedlines()Michael Stahl
The GetNext() returns itself if it's alone in the Ring. (regression from 27aa4b16bf704d0246595750daf57b57ff2577b3) Change-Id: Idf92ce5362c4a4acf1582f463fe7bafc8553b400 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126844 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 19f2054c6063177d08c818c5b7eeba7ab9178249) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126823 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-15tdf#136855 sw: fix ReplaceRangeImpl() restoring of rPamMichael Stahl
This broke in CWS swrefactormarks2 (commit df6d312ca537402463e4eb0530f22b956600fc02) but for spell-checking the ReplaceRange() wasn't used until commit e1629c210ad78310e3d48c0756723134a27b89df. Change-Id: I4a6256b65b89e21e9e87ff45d0c5e6c4577a5846 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126842 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit d16c5f47600d236e911ae50d0e58a3f2256f5a61) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126821 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-14tdf#146145 sw: 1-click Accept/Reject of table row changesLászló Németh
Now context menu of a changed table row shows Accept Change/ Reject Change menu items, which accept or reject the deletion or insertion of the table row. Also Accept Change/Reject Change icons of the Track Changes toolbar are enabled, and do the same, if the cursor is not before or in a tracked change. Add the following labels to the Undo actions: "Accept change: Row Inserted" "Accept change: Row Deleted" "Reject change: Row Inserted" "Reject change: Row Deleted" Change-Id: I12ae0158d059b044e430cc0ab86f0cf8931eadd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126770 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 95c003d75e0f8b255344715a35358072b5eba99d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126811 Tested-by: Jenkins
2021-12-14tdf#134960 List drawing objects in order of appearance in documentJim Raykowski
in Writer Navigator drawing objects content type member list Current code seems like it should work but GetFrameOfModified doesn't provide layout position for drawing objects like it does for table and frame objects. This patch gets position of drawing object in document directly from SdrObject. Change-Id: I501757900f265370d8e3b606cb4b3a81464e73f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126627 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit 9e046e43fc6d3fecd193da076c0871a458ba71dd) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126808
2021-12-13tdf#146208 sw DOCX: fix crash at Redo of tracked table changesLászló Németh
Importing DOCX tables with tracked row deletion and insertion, accepting them, Undo, and accepting them again (or Redo) crashed LibreOffice, related to the missing Undo support of deletions in SwExtraRedlineTable. SwTableRowRedline is not used for DOCX export since commit dbc2bdffbec9b3f7eba485652cdd43634458b5a6 "tdf#145091 DOCX: don't export obsolete table row change data", so it's possible to switch off deletion of row changes in SwExtraRedlineTable to fix crashing, keeping SwTableRowRedline only to fix the round-trip of the original row change Date temporarily. Change-Id: I6ac571656e45c4299a07a63646bb28d6d1fcd081 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126662 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 6a9cf64ea7509aac258f290cc1f204fd1ce1f974) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126748
2021-12-11tdf#146140 sw DOCX import: fix moveFrom regression with broken text contentLászló Németh
(Also a small clean-up: increase the character limit for tracked text moving detection: Only 2 or more (non-whitespace) character deletions are checked for it, because single characters are often typos or some control-like characters, e.g. soft hyphen, not real text movings.) Details of the regression: commit d32d9a2b3c5e3963f4a18f6c7bbf50fab2e9b2be "tdf#123460 DOCX track changes: moveFrom completely" fixed the missing redline import of the end of the moved paragraphs, but paragraph end was imported as w:del, not w:moveFrom explicitly. From commit f51fa7534421a195a58b4a737a2e836d8c25ba81 "tdf#145718 sw, DOCX import: complete tracked text moving" this resulted two deletions (a moved one and a plain one) instead of the previous single one. Moreover, exporting these double deletions at the same position to ODT, raised a back-compatibility issue with broken text content, see tdf#107292 (solved recently, but not in older LibreOffice versions). Removing the explicit w:del code path in writerfilter, it solved the regression from commit f51fa7534421a195a58b4a737a2e836d8c25ba81 "tdf#145718 sw, DOCX import: complete tracked text moving". See also commit 9e1e88ad5cf2dc0e9b188c60930445652a6c7519 "tdf#145720 DOCX export: fix loss of tracked moving". Change-Id: I15bfc83b87dd42a762ff84edf5bae765fe02a5ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126631 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 692bc46b25db61176b4ced7b7beffeca7d55068e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126669 Tested-by: László Németh <nemeth@numbertext.org>