summaryrefslogtreecommitdiff
path: root/sw/source/core/text/redlnitr.cxx
AgeCommit message (Collapse)AuthorFilesLines
2024-01-09Decouple SwTextAttr from DirectPutItemInPoolArmin Le Grand (allotropia)1-1/+1
SwTextAttr uses a 'const SfxPoolItem*' and the mentioned DirectPutItemInPool/DirectRemoveItemFromPool to force creation of a ref-counted SfxPoolItem to work with. There is now tooling to do so, so changed to using SfxPoolItemHolder. That works like a small SfxItemSet - it transforms the Item to ref-count form and takes over management. It is safe to pass around, cheap to copy and it does not need manual cleanup of SfxPoolItems (automatic -as in SfxItemPool). Change-Id: I41401d5144c9cd59d5b10362ea17d63e35ab1eb3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161799 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-02-11sw: rename getFieldmarkFor() to getInnerFieldmarkFor()Justin Luth1-1/+1
The same change was made for getBookmarkFor() in https://gerrit.libreoffice.org/c/core/+/145412 Because otherwise it's quite confusing that we have a For() and an At() which could only be differentiated by a code read. Also improve getInnerFieldmarkFor() a tiny bit, so we process the first hit only once. Suggested at <https://gerrit.libreoffice.org/c/core/+/145348/1#message-286262286f234823b390e8f962e3ba11f5fa71b2>. Change-Id: I47e815eea0b8ac0df4957ac0d224acb6c5975b8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145486 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2023-01-17tdf#152872 sw: fix crash on ooo27109-1.sxwMichael Stahl1-0/+1
Has a redline that ends on the body end node. (regression from commit 2bcfb7231b5ca74f02274cfb74ca8463f78905d6) Change-Id: I9dc89a496791935b9d28e1874f947b70fdf0b85a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145569 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-01-10tdf#152872 sw: conditionally hide paragraph breaksMichael Stahl1-6/+69
Add a 3rd kind of hiding to SwRootFrame and CheckParaRedlineMerge(). This is quite simple as only consecutive paragraphs are merged. There is an existing similar feature described in http://www.openoffice.org/specs/writer/hidden_text/hidden_text.sxw which results in 0-height text frames if all text is hidden - but that is unconditional, while Word shows the paragraph when control chars are shown, and hides it otherwise *iff* its paragraph marker is hidden (and there's no page break on it). Change-Id: I8290962ea58278e17b8f84bf6b2ca4bb2325aa8f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145162 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-11-03Related: tdf#149932 honour PANGO_UNDERLINE_DOUBLE for preedit underlineCaolán McNamara1-0/+2
we already have support for double underline so that's an easy add Change-Id: I1bba5620038e396765bd79050ff6a520096f9476 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142223 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-10-11use more string_view in swNoel Grandin1-2/+2
Change-Id: Ibefb8549834ba5011286e3221f1ae276e2c0c0bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141153 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-29use more SwPosition::AdjustContentNoel Grandin1-3/+3
part of the process of hiding the internals of SwPosition Change-Id: I43e32d6ce99e045c4ac9258d5f208bc557998812 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140743 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-26cid#1500514 Uninitialized scalar fieldCaolán McNamara1-0/+2
Change-Id: I54cf8f0e5d77b62d857f302d702c4bb99cc36ad4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138864 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-20use more SwPosition::GetNodeNoel Grandin1-1/+1
Change-Id: Ic23fab765316d5e6423bff035c8ee3ec605210ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138591 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-17convert more nNode to SwPosition::GetNodeNoel Grandin1-1/+1
in places where we are using the result with operator== Change-Id: I28f8f6fa2c3754ec6612ab2334c3a58b61ecd065 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138401 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-17tdf#147466 sw_redlinehide: avoid crashing by delete un-deletingMichael Stahl1-1/+1
After the first delete, there is a single redline from 170,0 to 177,9, which contains a section. [ 169] 0x6133358 TextNode "b) 9 (Robin Cook, Jack Straw, Margaret Beckett, David Milliband, William Hague, Philip Hammond, Boris Johnson, Jeremy Hunt, Dominic Raab)", [ 170] 0x61349d8 TextNode "Hangul script is used to write which language?", [ 171] 0x61396f0 SectionNode , [ 172] 0x6138cc8 TextNode "Japanese", [ 173] 0x613ab58 TextNode "Vietnamese", [ 174] 0x613ad78 TextNode "Korean", [ 175] 0x613bc28 TextNode "Chinese", [ 176] 0x24a61c0 EndNode , [ 177] 0x6139568 TextNode "c) Korean", Then the next delete is from 169,137 to 170,0 and it is combined in AppendRedline() with the existing one, removing the existing one. Now the code for tdf#119571 at the end of AppendRedline() that splits up the one redline into 4 redlines, with the section start node and section end node not covered by any of them. AppendRedline() of a delete redline causing previously deleted nodes to become un-deleted is a situation that UpdateFramesForAddDeleteRedline() doesn't expect. Additionally there seems to be an issue with CheckParaRedlineMerge() setting the Section's m_bHiddenFlag, which was unintentional, it should only set m_eMerge flag, but fixing that isn't sufficient. Reportedly this crashes since commit 6433dc223f6d21570e7132c4a580d186a5d5a334 but the problem appears older. Change-Id: Ic83a93d5aaec4ee562fb960693b52bd7b25cb1a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138411 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-08-14use more GetContentIndexNoel Grandin1-1/+1
Change-Id: I48e36a95872b5c2bdb6b92c66403d4c08eedd38c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138255 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-07no need to allocate these SwPosition separatelyNoel Grandin1-6/+5
It is a small object, and in these places is already contained inside a heap object. Change-Id: I930d87827104e04fff2ad6b481ed94348a49701d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137930 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-02introduce SwPosition::GetContentIndexNoel Grandin1-8/+8
as part of the process of hiding the internals of SwPosition largely done by doing: git grep -lF 'nContent.GetIndex' | xargs perl -pi -e 's/\bnContent\.GetIndex/GetContentIndex/g' Change-Id: I12684071a6666c365dbadbab2a4b37cf51b274d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137695 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-02introduce SwPosition::GetNodeIndexNoel Grandin1-6/+6
as part of the process of hiding the internals of SwPosition largely done by doing: git grep -lF 'nNode.GetIndex' | xargs perl -pi -e 's/\bnNode\.GetIndex/GetNodeIndex/g' Change-Id: I3616cea4c47595afe74f1aa8e3be553279f25d44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137694 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-02introduce SwPosition::GetNodeNoel Grandin1-6/+6
as part of the process of hiding the internals of SwPosition largely done by doing: git grep -lF 'nNode.GetNode' | xargs perl -pi -e 's/nNode\.GetNode/GetNode/g' Change-Id: Id1937df1bd5a54677c2c1bbfb2d693a4e22a7b98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137671 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-29use more SwPaM::StartEndNoel Grandin1-2/+1
which is more efficient than calling Start() and End() separately Change-Id: I41c99527bcb37728bb9a87f63ed654e0be3d1f0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137614 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-25tdf#119840 HideIterator no need to always call GetRedlinePosNoel Grandin1-1/+1
if we are not going to process redlines. Shaves 5% off load time Change-Id: Ie46370b3f6172c35c057f7f9cb3285c76afa9d24 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137437 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-28use the new SfxWhichIter::GetItemState featureNoel Grandin1-1/+1
to speed up other places that are iterating over SfxItemSets Change-Id: I646bae12420d15e67effdd279e071cdf8a8afffd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135075 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-17tdf#145718 sw, DOCX import: complete tracked text movingLászló Németh1-1/+1
Add IsMoved bit to SwRangeRedline, and keep it in both parts of a split Delete/Insert redline. Set this bit during DOCX import, fixing incomplete import of moveFrom/moveTo elements. Details: - Search text moving only at redline Insert() and AppendRedline() instead in the layout code (which was much slower, because triggered by also mouse hovering): - detect text moving in Hide Changes mode, too; - Insertion inside or directly after tracked text moving keeps "moved text" layout of the original moved text parts (before and after the insertion). - at detection of text moving, invalidate (update) layout of the redline pair, too. - fix DOCX import: extend makeRedline() with property RedlineMoved to keep all moveFrom/moveTo stored in DOCX instead of losing them (joining them with normal redlines) in the case of missing Delete/Insert pair (see unit test document); Follow-up to commit ec577f566fa3e6d2666069180f8ec8474054aea9 "tdf#145233 sw track changes: show moved text in green color", commit bcdebc832b272662d28035007a4796e42d1305ae "tdf#104797 DOCX change tracking: handle moveFrom and moveTo" and commit d32d9a2b3c5e3963f4a18f6c7bbf50fab2e9b2be "tdf#123460 DOCX track changes: moveFrom completely". Change-Id: Iaca80e5e326a172bc7ba5fec64b63668b9378e2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125317 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-10-21introduce SwNodeOffset strong typedefNoel Grandin1-8/+8
for indexing into node children. Replaces various usage of sal_uLong, tools::Long, sal_uInt32 with an underlying type of sal_Int32. Also add a NODE_OFFSET_MAX constant to replace usage of ULONG_MAX Change-Id: I2f466922e1ebc19029bb2883d2b29aa4c0614170 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123892 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-20tdf#145233 sw track changes: show moved text in green colorLászló Németh1-3/+18
and with double strikethrough or underlines during change tracking to speed up reviewing, e.g. re-ordered list elements or changed paragraph or sentence order is more visible this way. Note: skip terminating white spaces of the changes during recognition of the text movement, as a workaround for a typical difference resulted by e.g. Writer UX: selecting a sentence or a word, and moving it with the mouse, Writer removes a space at the deletion to avoid double spaces, also inserts a space at the insertion point automatically. Because the result can be different (space before and space after the moved text), compare the changes without terminating spaces. See also commit bcdebc832b272662d28035007a4796e42d1305ae "tdf#104797 DOCX change tracking: handle moveFrom and moveTo". Change-Id: If2a16f1f43315ecab659b24425692ac14bcda619 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123814 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-10-10use SfxItemSetFixed in swNoel Grandin1-1/+1
Change-Id: I69e188d7599b7fc439f613cec0a0967ccb748b7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123313 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-09Rename bookmrk* -> bookmark*Julien Nabet1-1/+1
Change-Id: I9dec77b2af8abe5abb286ff76ed85d1e4078ee6a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123325 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-07-19Move svl::Items to include/svl/whichranges.hxx, and unify its usageMike Kaganski1-1/+1
... in WhichRangesContainer and SfxItemSet ctors. Now it's not needed to explicitly use 'value' in WhichRangesContainer's ctor, or create an instance for use in SfxItemSet ctor (svl::Items is already defined as a template value of corresponding type). Instead of WhichRangesContainer Foo(svl::Items<1, 2>::value); SfxItemSet Bar(rItemPool, svl::Items<1, 2>{}); now use: WhichRangesContainer Foo(svl::Items<1, 2>); SfxItemSet Bar(rItemPool, svl::Items<1, 2>); Change-Id: I4681d952b6442732025e5a26768098878907a238 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119157 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-08tdf#142128 sw: set author-color strikethrough for AS_CHAR imagesLászló Németh1-2/+4
(anchored as character) during change tracking instead of using always the same NON_PRINTING_CHARACTER_COLOR blue one. Follow-up to commit 76dc21860ce185bd5495adde8858d2f23284c78e "tdf#142128 sw: set author-color strikethrough for deleted images". Change-Id: I3fa02f6ec6cd1f71ae3b3c06644dd24f6c684f6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116795 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-05-10tdf#142130 sw track changes: fix crossing out of neighboring imagesLászló Németh1-2/+2
Normal images got crossing out from the next deleted images. Fix it by using only the start position of the image in CheckLine() instead of the 1-character length range of the anchor point. Note: add unit test also for tdf#78864. Follow-up to commit d845b91bcc6eb885c55494d4d4fab4ec09577e1d (tdf#78864 sw track changes: cross out deleted images). Change-Id: I8894e625d479adea4b1003f55f24f292064ed7ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115255 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-28simplify code, use more subView()Noel1-2/+2
Change-Id: I569c7f34acbdf8451cd5c9acf1abd334637072d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110051 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-20tdf#116757 sw ChangesInMargin: add "Show Insertions in Margin"László Németh1-3/+4
layout mode to allow to show the original text inline, i.e. only deletions, while insertions are showed in margin (opposite of the Show Deletions in Margin mode). Add a menu to the Show Changes icon on the Changes toolbar with menu items for the 3 layout modes "All Changes Inline", "Deletions in Margin" and "Insertions in Margin" with the following behavior: – Selecting a menu item turns on also the Show Changes mode to show the result immediately; – Disabling Show Changes mode always show the final text, i.e. only insertions. Enabling Show Changes mode again shows the changes according to the last Show Changes mode selected in the menu. – The new "Insertions in Margin" mode is intended to be only a run-time option, i.e. it's not possible to set it as a default Show Changes mode in Options, unlike "Deletions in Margin". Change-Id: Ie4dc9fe3b4b201fa9976ef04877af649e242ab46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109649 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-15tdf#135014 sw_fieldmarkhide: fix bogus assert on loading the bugdocMichael Stahl1-1/+1
The == case was omitted, iirc because of changing the first compare at the last minute. (regression from aacaa2aa91f705d64b929b5cff2872f160021b9f) Change-Id: I03602917def8248150139d788c880d93cab18bf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109304 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2020-12-16tdf#138847 sw ChangesInMargin: show all characters in marginLászló Németh1-2/+27
deleted by pressing backspace or delete, not only the first character from the deleted character sequence. Regression from commit 469f472fb31c4ef1a57f8ec54ba750c1332feec2 (tdf#138479 tdf#137769 sw ChangesInMargin: fix Undo in paragraphs). Change-Id: I0027cc0da02df8bccba2d957d4cc0407f34ba014 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107745 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2020-12-01sw_fieldmarkhide: CID#1470358: Null pointer dereferencesMichael Stahl1-1/+2
Change-Id: Ia61e83d9e62bc03d69ca640d3ee9ab27995b8a92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106961 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Jenkins
2020-11-25crashtesting: null deref on load of ooo72915-2.odtCaolán McNamara1-3/+4
since... commit aacaa2aa91f705d64b929b5cff2872f160021b9f Date: Tue Nov 3 22:11:59 2020 +0100 sw_fieldmarkhide: let CheckParaRedlineMerge() hide fieldmarks HideIterator finds the next delete redline or fieldmark, whichever is closer. Change-Id: Ibe4373255356d9fe235f787c5672e72ae7032f85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106578 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Jenkins
2020-11-17sw_fieldmarkhide: let CheckParaRedlineMerge() hide fieldmarksMichael Stahl1-24/+157
HideIterator finds the next delete redline or fieldmark, whichever is closer. Change-Id: I4c6eac864da4b4bf531437e555a3994fd2670367 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105984 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-11-17sw_fieldmarkhide: SwRedlineItr assumption that Show means no MergedParaMichael Stahl1-18/+34
... in SwRedlineItr::CheckLine() and also SwRedlineItr::Seek() Change-Id: I711ec37bd345cbf5f5f5339b8d792bcb56c425c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105980 Tested-by: Michael Stahl <michael.stahl@cib.de> Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-11-16tdf#137771 sw ChangesInMargin: fix end of paragraphLászló Németh1-1/+1
Deletions at the end of the paragraph weren't shown on margin, including the vertical "Changed line" mark. Change-Id: I2b79d1619cca891feab2f99eedad79ba330e75b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105931 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2020-11-03tdf#105967 sw change tracking: fix line break symbol in empty lineLászló Németh1-1/+7
At line break symbol of inserted or deleted empty lines, paint strikeout/underline based on redline color. Keep also the underline and strikeout formattings of the line break symbol in neutral color (NON_PRINTING_CHARACTER_COLOR), if they are not affected by change tracking. Note: in non empty lines, remove also the colored (not NON_PRINTING_CHARACTER_COLOR) underline/strikeout, if it's not based on redlining, fixing the double colored lines on the neutral color line break symbol. Follow-up of db25f1e2e3ae7a078f8f3c080ff3c4802f83b853 (tdf#105967 sw change tracking: fix pilcrow in empty line). Change-Id: I565a10154f5ecbefeb00fe3e17a53f74f2f84e63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105206 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2020-10-29tdf#105967 sw change tracking: fix pilcrow colorLászló Németh1-7/+6
Paint strikeout/underline based on redline color and settings at the inserted or deleted paragraph break. Follow-up of commit 350dbba44ee7703b1da11cc4732a5090ce5efe3d (tdf#105967 sw change tracking: fix pilcrow symbol). Note: because the pilcrow symbol is painted by the temporary text portion SwTmpEndPortion, see sw/qa/extras/layout/data/tdf42748.fodt for testing. Change-Id: I4c9c6bb7ce445aa30224fabe7162a19df0df08b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105007 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2020-10-28tdf#105967 sw change tracking: fix pilcrow symbolLászló Németh1-3/+7
formatting according to the tracked insertion or deletion of the paragraph break. There was no formatting at all or only (often bad) inheritance of the character style (strike out or underline) of the previous character, confusing the user. Note: because the pilcrow symbol is painted by the temporary text portion SwTmpEndPortion, see sw/qa/extras/layout/data/tdf42748.fodt for testing. Change-Id: I8afef01c515b8abd368cae12d3a02cabf6d897f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104933 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2020-10-26std::unique_ptr -> std::optionalNoel1-1/+1
Change-Id: I48195e5bd61f9b662481da0efc6165ced794600c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104801 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-15tdf#34355 sw,offapi,officecfg: show track changes in marginLászló Németh1-3/+9
In ShowTrackedChanges mode, hide tracked deletions in text optionally and show their shortened text in margin next to the vertical "Changed line" mark (showing only the first deletion of the line). Add "Tracked deletions in margin" checkbox to Writer->View page. Add "Display tracked changes" and "Outline View" sections to View, too. Add property ShowChangesInMargin to com::sun::star::text::ViewSettings. Add config setting: org/openoffice/Office/Writer/Content/Display/ShowChangesInMargin Show more information in Manage Changes dialog window about the tracked deletions with restricted visibility in ShowChangesInMargin mode: show shortened text content of a deletion in its (otherwise empty) Comment field. Change-Id: I1d19a4bf8225f536a635c6dd5062344c51e03b79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104350 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2020-09-30SwNode::GetDoc can return a reference insteadCaolán McNamara1-4/+4
and remove discovered redundant null checks Change-Id: I6b8bc9593434f38947e399a48888a8fa0d4f7e77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103640 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-07-31loplugin:flatten in sw/core/textNoel Grandin1-36/+36
Change-Id: I086860cefe9f26c3728fe0d8266c35dae37b9570 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99887 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-03(related: tdf#130685) sw_redlinehide: fix update of pLastNode/pParaPropsNodeMichael Stahl1-1/+2
If you Select All, Cut then move the cursor around a bit then paste, then this happens: sw/source/core/text/txtfrm.cxx:3461: void SwTextFrame::CalcAdditionalFirstLineOffset(): Assertion `pTextNode->IsNumbered(getRootFrame()) == pTextNode->IsNumbered(nullptr)' failed. The reason is this borked MergedPara, which really only has 1 node it's listening on, but pLastNode and pParaPropsNode point to a node that is actually part of a different MergedPara now. $6 = { listener = { m_rToTell = @0x6c02700, m_vDepends = std::__debug::vector of length 1, capacity 256 = {{ <SwClient> = { m_pRegisteredIn = 0x6af5f20 }, }} }, extents = std::__debug::vector of length 0, capacity 0, mergedText = "", pParaPropsNode = 0x6d1c390, pFirstNode = 0x6af5f20, pLastNode = 0x6d1c390 } The reason is that SwContentNode::DelFrames() doesn't update these members properly; at the time when it's called for the previous pLastNode, the offending node has Merge::NonFirst set already in the call of CheckParaRedlineMerge() so it sets the wrong new pLastNode. Fix this by iterating DelFrames() loop backward. (regression from sw_redlinehide) Change-Id: I508fd25af385a25ba9ed78d71aa3d1f02a7ac7a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91597 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-03-10tdf#128880 sw btlr: fix SwFrame::GetPaintArea() for the row span caseMiklos Vajna1-4/+5
To be specific, this focuses on the case where a single cell has btlr direction, but the containing row does not, and there is a row span. The old code that took the logical right of the cell frame served two purposes, it seems to me: - in the rare case where the 1st row is wider then a subsequent row, we make sure that as the cell frame is expanded downwards, we're still inside the table polygon - in the tb-rl ("Japanese") case, the logical right maps to physical bottom, and this way the cell frame is OK to render not only into its own row frame, but can expand also downwards. Given that btlr maps left to bottom, this mechanism is broken there. Be consistent with the working tbrl case, so just expand towards the logical left in the btlr case. The rest of the changes just make sure that SwAttrHandler::FontChg() calls SwFont::SetVertical() with the correct bVertLayoutLRBT parameter, which instantly fixes the actual position of the text. Change-Id: I9032e7c6de72cec704843f3aae3c7848e139ebfa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90241 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-28New loplugin:unsignedcompareStephan Bergmann1-1/+2
"Find explicit casts from signed to unsigned integer in comparison against unsigned integer, where the cast is presumably used to avoid warnings about signed vs. unsigned comparisons, and could thus be replaced with o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx) o3tl::make_unsigned requires its argument to be non-negative, and there is a chance that some original code like static_cast<sal_uInt32>(n) >= c used the explicit cast to actually force a (potentially negative) value of sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the cast to avoid a false "signed vs. unsigned comparison" warning in a case where n is known to be non-negative. It appears that restricting this plugin to non- equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=) is a useful heuristic to avoid such false positives. The only remainging false positive I found was 0288c8ffecff4956a52b9147d441979941e8b87f "Rephrase cast from sal_Int32 to sal_uInt32". But which of course does not mean that there were no further false positivies that I missed. So this commit may accidentally introduce some false hits of the assert in o3tl::make_unsigned. At least, it passed a full (Linux ASan+UBSan --enable-dbgutil) `make check && make screenshot`. It is by design that o3tl::make_unsigned only accepts signed integer parameter types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses which would in general be suspicious. But the STATIC_ARRAY_SELECT macro in include/oox/helper/helper.hxx is used with both signed and unsigned types, so needs a little oox::detail::make_unsigned helper function for now. (The ultimate fix being to get rid of the macro in the first place.) Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87556 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-02tdf#42949 Fix IWYU warnings in sw/source/core/[o-t]*/*cxxGabor Kelemen1-3/+1
Also drop a duplicated blacklist rule found with: grep :$ sw/IwyuFilter_sw.yaml | sort | uniq -cd Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ied72f3f086ed4c1eb7ff4bcdbcf8aee73ddd4f7c Reviewed-on: https://gerrit.libreoffice.org/83250 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-08-01tdf#118699 change tracking: don't number empty linesLászló Németh1-1/+1
after tracked deletions with numbering in Hide changes mode. Change-Id: I9a0c01d3aa00a2d54ffd37c8b85027eb2feeb841 Reviewed-on: https://gerrit.libreoffice.org/76335 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2019-08-01tdf#125319 sw_redlinehide: handle empty paragraphs more like WordMichael Stahl1-5/+5
Partially revert commit c20308f1b919ca5ce61233068946e5fddb7eadb3 Partially revert commit 4439427aadeaa0cb611011b46f0fa14bfa196f33 "#i100466# correction for showing and hiding redlines" This gets us somewhat closer to what Word does but not exactly the same; Word actually creates a separate formatting redline about paragraph property changes at the time when you merge the paragraphs, but Writer's formatting redlines are quite unhelpful. Unfortunately ODF documents from OOo 3.2 and later (possibly also pre-3.0, haven't checked that) will look different if they contain such redlines. Change-Id: I6ca67e45d805014dd0b94b0ff063780fce4207c6 Reviewed-on: https://gerrit.libreoffice.org/72425 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2019-05-23convert nsRedlineType_t to scoped enumNoel Grandin1-14/+14
and move the auto-format embedded flag to a separate field Change-Id: I02155702389178fbfdf874f592d47a29f8759974 Reviewed-on: https://gerrit.libreoffice.org/72771 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>