summaryrefslogtreecommitdiff
path: root/sw/source/core/inc/DocumentRedlineManager.hxx
AgeCommit message (Collapse)Author
2021-01-20tdf#138666 sw: fix enable/disable of ChangesInMargin modeLászló Németh
by hiding/showing the existing deletions inline. Change-Id: I643c23b3008c3d58bd4631aa40bec375d811bd5e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109555 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2020-11-09tdf#83419 sw change tracking: clean-up autocorrectLászló Németh
fix of commit ac84cf7dda4a5150ff23e112ee16f00b8de8ec7c (tdf#83419 sw change tracking: fix bad autocorrect). Now automatic sentence capitalization and correction of two initial capitals are allowed again, if there is a tracked deletion in the same paragraph before the modified word. Change-Id: I8c583df2f14468b47079019009e7937f559b652b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105477 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2019-10-18lopligin:virtualdead unused params in IDocumentRedlineAccessNoel Grandin
Change-Id: I60b343d5e7acb6310e5a0f501f8cfb78dc4ea7a8 Reviewed-on: https://gerrit.libreoffice.org/81015 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-01tdf#125990 change tracking: remove text join workaroundLászló Németh
at wholly deletion of paragraphs, disable failing unit tests related to the temporary regressions. This partially revert commits commit 22639148ae5400bac98f32a75d7431b857c80195 "tdf#54819 change tracking: keep paragraph style after full deletion" commit 8acc15b5113c798ecdbeed91456a92e7b0c1334e "tdf#118699 DOCX import: don't add numbering." commit caeb6ff68d49e1b1ca911cf3f63371b855ee935d "DOCX import: clean-up FinalizeImport() of change tracking" etc. Change-Id: Ia42749fd9f22f3bc1c7c2f38b604b1926631fc77 Reviewed-on: https://gerrit.libreoffice.org/76324 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2019-05-28DOCX import: clean-up FinalizeImport() of change trackingLászló Németh
FinalizeImport() could be triggered by accident while editing the document. Now we set it by checking PROP_REDLINE_REVERT_PROPERTIES used only in OOXML import. This is a clean-up of the commit 8acc15b5113c798ecdbeed91456a92e7b0c1334e "tdf#118699 DOCX import: don't add numbering." Change-Id: Ib1f4ee41ba94d640788396037b668b85b800f9d0 Reviewed-on: https://gerrit.libreoffice.org/73043 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2019-05-23convert nsRedlineType_t to scoped enumNoel Grandin
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>
2019-05-15tdf#118699 DOCX import: don't add numberingLászló Németh
after a tracked deletion of a numbered list to the next not numbered paragraph. Note: we remove the numbering of the first item of the deleted numbered list to import the actual text content correctly, giving correct numbering after accepting the changes or in the Hide Changes mode. Change-Id: I98767937bc783cb5e8ecb05558a5ad05a57ff281 Reviewed-on: https://gerrit.libreoffice.org/72001 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2019-05-03The -fvisibility-ms-compat hack is no longer needed for UBSan on Linux...Stephan Bergmann
...with latest Clang trunk towards Clang 9. All the no-longer necessary hacks are made conditional on new NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY, which is still set for UBSan builds with older Clang on Linux (but which should eventually be purged). Various classes needed additional SAL_DLLPUBLIC_RTTI annotations, as building with UBSan instrumentation can generate references to RTTI symbols from additional places like outside a dynamic library that used to hide those symbols by default (but used to not hide them for old UBSan builds thanks to the -fvisibility-ms-compat hack). The odr-violation suppressions in solenv/sanitizers/asan-suppressions (which is not referenced from anywhere in the code base, but meant to be included in an ASan/UBSan build's ASAN_OPTIONS env var) are also no longer needed when NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY is false. Change-Id: I24ec3e388b0cbab50dbe2bf008d9569bff7bf25a Reviewed-on: https://gerrit.libreoffice.org/70829 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-12-18sw_redlinehide: fix tdf#113479 by removing nag dialogThorsten Behrens
No need to suggest showing redlines beyond 250 changes anymore. Change-Id: Ia219a4eb3af64079979538b8ab4aaf2a94ec19c8 Reviewed-on: https://gerrit.libreoffice.org/65294 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2018-09-28sw layout-level redline hiding: add more doxygen documentationMiklos Vajna
Thanks Michael Stahl for the conference talk that was the input for these. Change-Id: Ia48248f4739218ee7832559353aab06183a934d7 Reviewed-on: https://gerrit.libreoffice.org/61079 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins
2018-09-19sw_redlinehide_2: add *another* flag to DocumentRedlineManagerMichael Stahl
Sadly the SwRootFrame is created too late, so we have to store the "ShowRedlineChanges" value that is imported from ODF settings.xml somewhere, and we can't store it in SfxBaseModel::setViewData() because it's not in "Views" map. Change-Id: I30eefcb0262048f7141a719917aff77182765946
2018-09-07tdf#119019 DOCX track changes: fix invisible delete and insertLászló Németh
during editing in a paragraph with tracked paragraph formatting, by accepting the old formatting change automatically in the actual paragraph before text deletion/insertion. Note: it's not possible to reject paragraph formatting changes in LO, but showing them is a minimal requirement. Now they are still visible in change tracking dialog and by the vertical line before the related paragraphs until there are no new text deletions and insertions in those paragraphs. Change-Id: I526daad8dd96212ac73a10627128553452e4d31c Reviewed-on: https://gerrit.libreoffice.org/60101 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2018-04-10tdf#114523 Make inline tooltips for changes optionalheiko tietze
Revert redline shenanigans from change 46971; option is now set with view Change-Id: I55fcfef8a40ad621630dfcefed9e50fdafa94005 Reviewed-on: https://gerrit.libreoffice.org/52586 Reviewed-by: Heiko Tietze <tietze.heiko@gmail.com> Tested-by: Heiko Tietze <tietze.heiko@gmail.com>
2018-01-25sw: uninitialised DocumentRedlineManager::bHideLinineTooltipsMichael Stahl
(regression from 86e3f95cff4d3dad48d64e50e0c4b05034fa7064) Change-Id: I48db6f070d7cf5ef0071952ad34822f75d472a21
2018-01-22tdf#114523 Make inline tooltips for changes optionalheiko tietze
Tooltips on tracked changes are not shown when Show track changes is switched off; additional property introduced at Tools > Option > Writer > Changes to disable the inline tooltip completely Change-Id: I5b54895bb22d167a383b06627c69326c3c2f5b02 Reviewed-on: https://gerrit.libreoffice.org/46971 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Heiko Tietze <tietze.heiko@gmail.com>
2017-11-08sw lok: add Accept/Reject All tracked changes, tdf#101977Henry Castro
Change-Id: I04d747343e24cb498a621c965d034d0791411d83 Reviewed-on: https://gerrit.libreoffice.org/44311 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Henry Castro <hcastro@collabora.com>
2017-10-27use std::unique_ptr in DocumentRedlineManagerNoel Grandin
Change-Id: Iba073b3a251827fefaba790e33dfc7c01b0b2154 Reviewed-on: https://gerrit.libreoffice.org/43897 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-27ofz#3301 sw: DeleteAndJoin found yet another way to delete new redlineMichael Stahl
Not only can that happen in CompressRedlines(), it can also happen in the SwComparePosition::Outside case when the DeleteRedline() decides in particular circumstances to split up the inserted new redline. Arguably it's wrong to split up the new redline in this case; not sure if that ever happens in a legitimate use case though. Avoid this by removing the hack to temporarily insert the new redline and instead create a temporary SwUnoCursor that will be corrected on behalf of the new redline, while the new redline is parked on a safe node. This not only avoids the crash on this file but also makes the "corrupted redline table" assertions go away. Change-Id: I478f4cfc53a19d2cf2f0937f631962f80b1815ff Reviewed-on: https://gerrit.libreoffice.org/42322 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-08-25tdf#109267 sw: fix confusing return value of AppendRedline()Michael Stahl
AppendRedline() has a boolen return value which is rather unclear and confusing: most callers don't even check it, but SaveMergeRedline::InsertRedline() expects "true" to mean that its redline hasn't been deleted, whereas makeRedline() expects "true" to mean that the redline was somehow "valid", even if it has been deleted and merged with an existing one. The "bMerged" variable in AppendRedline(), which is the source of the confusion, was introduced with commit 81286906d0b76a3b6c4443378877828290c3e5f0 "docx import fixes for: redlines". Split these differing expectations into different return values of a new enum type. Change-Id: If81631bde49ee52a249f5ba1dd64ab8e92fffaf7
2017-07-17extend loplugin useuniqueptr to OUString pointersNoel Grandin
Change-Id: Ieb5bab3895e1edaff497c4a1a88303ccac097edc Reviewed-on: https://gerrit.libreoffice.org/39948 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-01ofz#1262 sw: DeleteAndJoin could delete proposed new redlineMichael Stahl
... because that calls CompressRedlines, which may combine the new redline with a previous one. In that case, the part of the new redline that follows the currently handled overlap cannot be checked for overlaps with subsequent existing redlines. So prevent this with a new flag m_isForbidCompressRedlines and instead call CompressRedlines() at the end of AppendRedline(). Change-Id: I7567962c31366ded9a433a13232d3db985745e43 Reviewed-on: https://gerrit.libreoffice.org/36901 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-03-16Clean up integers representing "redline authors"Stephan Bergmann
Unlinke in previous such clean-up commits, there appears to be no sufficiently exposed container type whose size_type could be used throughout, so resorting to the generic std::size_t in this case. Change-Id: I3cfbcbe5cce1bfcff2efbb4f8a509fe80ab12151
2017-03-02Complete the transition of SwRedlineTable::size_typeStephan Bergmann
...from 9ca8a63fff65acf2ea13b391495ad232f4636548 "Use consistent integer types in the SwRedlineTable interface". This all started as an attempt to reduce the number of places a to-be-committed improved loplugin:loopvartoosmall complains about. Lets see where it ends... SwRedlineTable::size_type is now the size_type of the underlying std::vector, no longer sal_uInt16 from ancient times. I tried hard to find all places that are affected by this change, changing types of affected variables and non-static data members as needed. Some notes: * The original code used USHRT_MAX as a "not found" value. I replaced that with a new SwRedlineTable::npos, of type SwRedlineTable::size_type but still for now of value USHRT_MAX. This should eventually be changed to something more sensible, like std::numeric_limits<SwRedlineTable::size_type>::max() (which is best done after we have constexpr support in all toolchains, so that npos can be constexpr). It is important that the value of npos is towards positive infinity, as many places in the code use for (i = f(); // may return npos i < table.size(); ++i) table[i] ... * There are some borders where values of SwRedlineTable::size_type are converted into different types, for various reasons. But all of those other types should be large enough for practical purposes (at least 32 bits wide): MakrEntry::m_nIdx: long int SvxRedlinTable::InsertEntry: sal_uIntPtr nPos SwRangeRedline: size_t SwRedlineItr: sal_Int32 SwVbaRevision::GetPosition: sal_Int32 SwXRedlines: sal_Int32 * .uno:TrackedChangeIndex= transports textual representations of such values. libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx treats them purely as strings, while SwTiledRenderingTest converts them to int. * TODO: The one place I'm unsure about is SfxUInt16Items with IDs FN_REDLINE_ACCEPT_DIRECT, FN_REDLINE_REJECT_DIRECT, and FN_REDLINE_NEXT_CHANGE in sw/source/uibase/uiview/view2.cxx. For now, I kept those as SfxUInt16Items and take care to "map" USHRT_MAX to npos when reading from those items. But I have no idea where instances of those items would actually be created, and what it would mean to change those items' types? Change-Id: Ib7a14dc67e2b970766966e43f4732abd9f045ff8 Reviewed-on: https://gerrit.libreoffice.org/34775 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-09-13loplugin:override: No more need for the "MSVC dtor override" workaroundStephan Bergmann
The issue of 362d4f0cd4e50111edfae9d30c90602c37ed65a2 "Explicitly mark overriding destructors as 'virtual'" appears to no longer be a problem with MSVC 2013. (The little change in the rewriting code of compilerplugins/clang/override.cxx was necessary to prevent an endless loop when adding "override" to OOO_DLLPUBLIC_CHARTTOOLS virtual ~CloseableLifeTimeManager(); in chart2/source/inc/LifeTime.hxx, getting stuck in the leading OOO_DLLPUBLIC_CHARTTOOLS macro. Can't remember what that isAtEndOfImmediateMacroExpansion thing was originally necessary for, anyway.) Change-Id: I534c634504d7216b9bb632c2775c04eaf27e927e
2016-09-08convert nsRedlineMode_t to typed_flagsNoel Grandin
including fixing a bug in SwXMLExport::exportDoc where it was ORing with a constant from a different type: nsRedlineType_t::REDLINE_INSERT Change-Id: I2bb154c9a35d106e64fd1a8b6e928d0384c9fafe
2016-03-24sw: replace boost::noncopyable with C++11 deleteMichael Stahl
Change-Id: I67d8d06012ac8835d957c77b122c8f0cda84a712
2015-11-06com::sun::star->css in sw/source/coreNoel Grandin
Change-Id: I30016977f1be8fb53dd239367d043de92a9467d9
2015-10-12Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY codeStephan Bergmann
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-07-10do not include boost/utility.hppMichael Stahl
It just includes a bunch of other boost headers; mostly we need boost/noncopyable.hpp so include that directly. This eliminates 831 MB(!) of boost/preprocessor/seq/fold_left.hpp completely, which is the 2nd biggest header after ustring.hxx. Change-Id: I3df55770adcb46e56f389af828e8ba80da2dc1f2
2015-05-20bin/rename-sw-abbreviations.shlibreoffice-5-0-branch-pointChristian Lohmaier
renames the most annoying abbreviations in Writer (and partially in the shared code too). Change-Id: I9a62759138126c1537cc5c985ba05cf54d6132d9
2014-11-16Remove sal_True/sal_False from code and comments in sw includesMatteo Casalin
Change-Id: Icfbbae898749196e27199802ec728417d5205bc5
2014-11-03sw: s/m_rSwdoc/m_rDoc/gMichael Stahl
... because i can type m_rDoc but "m_rSwdoc" always comes out m_rSwDoc. Change-Id: Id50888012da6cf3cf7aebc52e8c70fc359c6e073
2014-08-12Refactored IDocumentRedlineAccess out of SwDoc.Valentin Kettner
Into the new class DocumentRedlineManager. Added an non const version of GetRedlineTbl to the interface. Also Moved SetAutoFmtRedlineComment which is not part of interface. Change-Id: I600d5821d5d5831557f5fc5375fb1203fe67a295