Age | Commit message (Collapse) | Author | Files | Lines |
|
remove ExperimentalMode checks
Change-Id: Ie098eda0840bbd3231696cae43cc572ad61379fc
|
|
This assert is wrong, because there may be a legimate need to query
a position that is currently hidden.
However, oddly enough, we haven't found a legitimate document yet that
triggers this, and it has pointed us to several interesting functions
that needed adapting to merged frames... so keep it a little while and
remove it (and return something other than COMPLETE_STRING from mapping
functions) later...
Change-Id: Ide2abf0c2ce054b75c917063a5d5aa8d13430426
|
|
There's a test for that, testRedlineFlags() in sw_globalfilter
Change-Id: I9c821732910298d74271d95f0bfd0e902af84dbd
|
|
Change-Id: Ief227f3f5b03ec186178f4d68c3a415969d65507
|
|
Change-Id: I78cfca1cd629bf518f8294450a34ee228a360ef9
|
|
* rename the only user, some UpdateFields() overload, to UpateOneField()
* restrict it to search for non-formatting hints; the FindAttrsImpl()
should be used for formatting hints instead
Change-Id: I15002610a287fcdcd76777733a277d2ce64904bc
|
|
Iterate over merged nodes, and iterate over extents in them, so the
complex attribute-finding logic doesn't need to be changed.
Change-Id: Id72ca9247165a0c93f0cf2a38b7a0249771ca2eb
|
|
When redlining is enabled, the result will be a delete redline for the
existing text, and an insert redline for the new text; that much is
obious (and ReplaceRange can deal with a selection larger than one
SwTextNode easily, since it mostly adds redlines).
For the case when redlining is disabled, there are 2 options,
and i don't really know which is preferrable from UX point of view:
One approach is to reuse GetRanges() to ignore delete redlines in
the replace range; move its declaration to different header.
Another approach is to DeleteAndJoin() the existing delete redlines,
which is the same as the previous model based Hide mode,
which calls DeleteRedline() to remove the hidden redlines.
Also change ChgAutoCorrWord() to call DeleteSelImpl() directly.
Change-Id: I5974409d09eb39e04cc0b5dfc20d4db510e1cf58
|
|
Generally speaking, the find functions should find the strings that are
visible in the document view. However, they may also be called from
SwXTextDocument functions, where they ought to find the strings that are
actually in the document model.
So concoct some funny helper types and adapt this so it can handle both
cases; it's not pretty but maybe it even works.
Change-Id: I1917398ff928e922673353e75e8fb724dc042031
|
|
Also, some of these don't really make much sense as member functions of
SwPaM, so make them plain functions instead.
Also, some pointer parameters are never null, but there is code to
handle that case in MakeRegion(); simplify that.
Change-Id: I822e814b0cab14f7f31cfa33478ed15774405a61
|
|
... so use it only once. The problem is that the second time it will
call DelFrames() on every non-first node, which then empties the first
frame's newly created MergedPara instance.
This can be reproduced by toggling Edit->Tracked Changes->Show in
tdf99766-2.odt.
Also change some function parameters on e.g. SwTextFootnote::DelFrames()
to SwRootFrame to make it obvious that these don't actually need a
particular SwTextFrame.
Change-Id: I129be5db4a30546905c24c5e8820a5f105a33109
|
|
... for now, because this is the only thing that deletes existing
sw::MergedPara instances.
Change-Id: If092df52e63de28de38129f0aa11ad08156855c4
|
|
The nTFIndex is used to insert into the merged string; the correct index
is at the position corresponding to itInsert in the extents array.
Once the itInsert is found, the nTFIndex is no longer used inside the
loop, so just stop updating it.
Change-Id: Idc073cc758bad42b0d8b44d15f0f8e732eeb2a25
|
|
It turns out that there was a small problem in the interpretation of
sw_JoinText(), or rather, its caller,
SwRangeRedline::DelCopyOfSection(), which, since about OOo 3.2 and
i#100466, passes in bForceJoinNext, so the result is that the first node
wins always, not just for RES_BREAK/RES_PAGEDESC items.
This means that pParaPropsNode and pFirstNode are the same thing really.
Another little problem is that the SwAttrIter was initing the font
wrongly: the relevant items are the items in the *current* node's item
set on top of the item set of the paragraph style, i.e. the *first*
node's style.
Simple reproducer: ooo79457-1.odt
Change-Id: I06ef3c1695b8f3cdbded238864a60d5eb9ce4c44
|
|
The iteration was stopped as soon as the first start-node of a table
cell was reached, because the SwTableNode case didn't skip over the
table section in the nodes-array. As seen in ooo67621-1.odt.
It looks like the same problem can't happen with sections or flys
because only tables have nested SwStartNodes and the Fly's nodes
can hardly all be in a delete redline.
Change-Id: Ib21a758c588d5dc8193ba171353f872de71bd65a
|
|
As seen in ooo50225-1.sxw.
Change-Id: I9f0bc0838cbf216b9a73e3ce6bc06b4340064077
|
|
SwCursorShell::GotoMark(), GoNextBookmark(), GoPrevBookmark() check
visibility of mark in layout.
SwWrtShell::GotoMark() returns whether it was successful.
EnhancedPDFExport skips marks that are not visible when creating links.
Change-Id: I36c0706c18a5f861b15eaf451a97daec04104056
|
|
SwEnhancedPDFExportHelper should not create links to things that are
hidden by the layout:
* SwCursorShell::GotoFormatField() skips deleted fields
(this triggers an assert in GetCharRect() with ooo69593-1.odt)
* SwEditShell::GetINetAttrs() skips deleted INet attributes
(which, as an additional bonus, hides then in the Navigator too)
* SwDoc::GotoOutline() skips outline nodes where we know they have
been deleted (as seen in ooo66088-9.odt)
* SwFlyFrameFormats are skipped by EnhancedPDFExportHelper itself
* footnotes dito
Change-Id: Ife77dc7724688631d20cbaf8531b3c826a8ece94
|
|
moz55970-4.odt has a delete redline containing
<text:p text:style-name="Standard"> </text:p>
which the silly whitespace normalisation of course imports as an empty
SwTextNode.
A delete redline containing no text (or at least a fly?) appears quite
useless as the user can't do anything with it, so just delete it on import.
Change-Id: I657eeb627235adf90d7d7c1e44f505e2c6eacd46
|
|
It must use the start position that GetNextRedln() returned, not the
start of the end redline that GetNextRedln() returned, obviously.
This triggers an assert in CanSkipOverRedline() in ooo31961-27.odt.
Change-Id: I40b9647e0b8be9768e49047d309dd22470e658bd
|
|
This is really stupid...
Change-Id: I487ded0c0268ee9b7426e08109a9e8d447a0dfac
|
|
As seen in ooo95711-1.odt, the ODF import may create a redline that
starts on a SwTableNode - though i haven't been able to figure out how
such an odd creature might arise from UI actions.
Try to fix the obvious places so we don't crash easily; there might be
more trouble elsewhere though with code that assumes that a redline
starts on a SwTextNode.
Change-Id: I8431c1416ac4503ff0209a946398656f1c28366d
|
|
This was another IsDelLastPara() redline in ooo27109-1.sxw.
Change-Id: I1f4198a4bcbed7bdd52991af3cb3322ebacc65fe
|
|
CheckParaRedlineMerge(): Fully deleted SwTextNode followed by a table,
as seen in ooo81405-1.odt and ooo31961-16.sxw.
Also avoid creating an extent for the node in which it starts,
e.g. ooo31961-27.odt.
Change-Id: I2a7d935a9cedcb66aeaa9dce418b1fab758f1784
|
|
SwPostItMgr needs to hide the comments that are in delete redlines.
Also notify SwPostItMgr when redlines are created/removed.
SwPostItMgr is owned by the ViewShell but there is currently only one
layout so SwRootFrame still needs to broadcast to all of them.
Also an EndListening call was missing in
SwPostItMgr::CheckForRemovedPostIts() which caused asserts.
Change-Id: Ic0fccde50f6fdaa449afb535476c00c41ba94287
|
|
Clearly this is wrong, the first node might be deleted; triggered e.g.
by ooo69593-1.odt.
Change-Id: I8f491372fcc375e68f2f7611924d8d4c7f673f17
|
|
fixing leak in SwGlobalTree::DialogClosedHdl
Change-Id: I4a8e883bfe62181d4e332b3a0bbb85bbb332f711
Reviewed-on: https://gerrit.libreoffice.org/65333
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
With this patch the text break is allowed for column chart
X axis if the text is rotated with 0, 90 or 270 degree.
(The MS Office only allowed the text break of X axis
text when the rotation is 0, 90, or 270 degree.)
Change-Id: I0914f6208d5a5c0c864dc0227032ef858b044445
Reviewed-on: https://gerrit.libreoffice.org/65165
Tested-by: Jenkins
Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
|
|
Regression from commit 22e94ab1860b1bdea8d107d4e8824f63c6b1c8c5
Change-Id: I66a6e0b5069fe459b887a52f1ea26904dfc2d37b
Reviewed-on: https://gerrit.libreoffice.org/65303
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
It wouldn't be terrible to duplicate headers/footers
unnecessarily, but it is terrible to have them disappear.
If the last SectPr has no idea about the section start,
it can't know whether it is continuous or started with
a page break. In that case, just ensure that the
header and footer are explicitly written out.
This seems to be a DOCX problem only. I think that
doc and rtf both write the section information at the
BEGINNING of the section, but DOCX writes it at the END.
So, sharing code between these two opposite approaches
is difficult.
A followup commit can try to make it smarter about
knowing the start of the section (because usually
pPDNd is zero).
Another followup commit can add the missing page breaks.
Change-Id: Iff54ed097b4f8692d7d7764089002b00fbde4f51
Reviewed-on: https://gerrit.libreoffice.org/64821
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Regression from commit d5c934d150cb6cea5f96cbbee4fb5e8312bf027e
(n#792778 DOCX import: parse group shapes in oox only, 2012-12-14),
where where manual wordprocessingML -> drawingML translation did not
handle this character property.
Change-Id: I87481bc9c26651fd15dd39a58a92f467e8311256
Reviewed-on: https://gerrit.libreoffice.org/65289
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: Id62a2e4cd2d8d8b6aa79e43448513a9791a55d91
Reviewed-on: https://gerrit.libreoffice.org/65302
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
tabbed and groupedbar_compact add context-form support
Change-Id: I4a59d4b71bbbc253ee4188c4c15a7353e623e2f1
Reviewed-on: https://gerrit.libreoffice.org/65295
Tested-by: Jenkins
Reviewed-by: andreas_kainz <kainz.a@gmail.com>
|
|
Commit 8051bb7e18ccae0f639e65dfa86bcc18a5fb9108 had removed its "String"
counterpart.
Change-Id: Id873a259e7f4b2794e94dec83d08ed6b57298beb
Reviewed-on: https://gerrit.libreoffice.org/65299
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
If a section is hidden or not does not depend on whether it's linked
or not. Clearing the Hidden flag made all linked sections not hidden
in DocumentLinksAdministrationManager::EmbedAllLinks() during mail
merge.
Existed since commit 84a3db80b4fd66c6854b3135b5f69b61fd828e62
initial import
Change-Id: If347008e4cf48ab1327eb04db9fdf69750ce8fa5
Reviewed-on: https://gerrit.libreoffice.org/65286
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
based on the OLE object size, instead of applying
different scales for the bad (non-imported) VisibleArea
settings.
Change-Id: I3f246b779afd145fe260af83173c1944df21fb1a
Reviewed-on: https://gerrit.libreoffice.org/65244
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Change-Id: I788e97ce1f6422ba95a478fb1618773c850764f5
Reviewed-on: https://gerrit.libreoffice.org/65262
Tested-by: Jenkins
Reviewed-by: andreas_kainz <kainz.a@gmail.com>
|
|
...as flagged with -Werror=deprecated by trunk GCC in -std=c++2a mode. But
C++17 forbids "this" in combination with a capture-default of "=", so in such
cases list any entities explicitly that shall be captured by value.
Change-Id: Ic228cd20682277a0f93e3e75798356d0fbbb80d4
Reviewed-on: https://gerrit.libreoffice.org/65241
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Id6bb554c0e165c6d1f9c28c48fdbcd7156f42316
Reviewed-on: https://gerrit.libreoffice.org/65256
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
cleanup of various nonsense that I ran across.
Change-Id: Ib0a2f7bbe1096b36df88bf77de0eb90405c9f677
Reviewed-on: https://gerrit.libreoffice.org/65246
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
|
|
Change-Id: I82d5e2ad7373fb9d39aa087426ea80ca4559b556
Reviewed-on: https://gerrit.libreoffice.org/65245
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I000c534d1c9740dcb0dfbbe9fc71f18a503874f3
Reviewed-on: https://gerrit.libreoffice.org/65243
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Ifb3cc0e62b88562fdf4050186b51a56316a15d07
Reviewed-on: https://gerrit.libreoffice.org/65240
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Paragraph justification can be specified either absolutely
(in old versions or with eWW8:Jc80) or relatively (with eWW8:Jc).
The last processed SPRM wins (I assume).
The WW8 format seems to ALWAYS specify Jc80,
and that is overwritten by an optional Jc SPRM.
I haven't seen Jc be processed before a Jc80 SPRM,
but if it does, then the justify would need to be treated as absolute.
If for some reason neither of these exist, BiDi will adjust by default
only if it is the newer WW8 format. Again, that is an assumption
because I haven't seen such a document to test.
Change-Id: I966077d743f1d148fe2fb9faba87fbdd8f3507f3
Reviewed-on: https://gerrit.libreoffice.org/63591
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I62306962317a4801b2f6a83a96fa3645e652e80f
Reviewed-on: https://gerrit.libreoffice.org/65238
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Ic4a49494652dab416ddb1545da02eb8a7f533828
Reviewed-on: https://gerrit.libreoffice.org/65126
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
The anchor can move to other pages if the frame is moved.
To avoid removing the contents of the frame, exclude this case.
This resolves a regression introduced by
8d62b79f168180c6992eb483ec864d473050635f
Change-Id: Ie7acd3c58ef9055cbe449ec15d337f03a02e0edd
Reviewed-on: https://gerrit.libreoffice.org/62987
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: If17d2984831b0881d39101648206accdadde12aa
Reviewed-on: https://gerrit.libreoffice.org/65163
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
race in SwDoc::CreateNumberFormatter on thread unsafe mpNumberFormatter.
thread 1:
SwDoc::CreateNumberFormatter
SwDoc::GetNumberFormatter
...
sw::DocumentTimerManager::DoIdleJobs
Timer::Invoke
thread 2:
SwDoc::CreateNumberFormatter
SwDoc::GetNumberFormatter
SwXTextDocument::GetNumberFormatter();
SwXTextDocument::queryInterface
...
SvXMLExport::setSourceDocument
SvXMLNumFmtExport::SvXMLNumFmtExport
Change-Id: Iad9aa9514c9de61eb40256b954d0444d9fc9d81e
Reviewed-on: https://gerrit.libreoffice.org/65034
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
In LO 4.3, Feb 2014 commit a31fbb53dba76736b37213b98b64937f05929a67
totally changed the logic of the FormatBreak function, affecting
doc and rtf even though the focus was only on docx. This was quickly
patched for some specific cases, but the careless changes weren't fully
reversed.
Doing that now, because reading the code it just seems all wrong.
As I understand it, there seems to typically be two passes - a valid
pass for bBreakBefore and then a separate PageAfter pass. When DOC changed
to prefer a breakBefore sprm, it removed the bBefore flag, did nothing
on the bBreakBefore pass, and on the after pass, nC wasn't defined,
so it did nothing extra.
Dropping the bBefore flag probably broke the docx case.
Docx commit a31fbb53dba76736b37213b98b64937f05929a67 just blew that all
away, and swapped when SectionBreak was called.
Another 2014 patch restored the DOC PageBefore behaviour (nC not defined,
so nothing happens), but didn't restore the PageAfter behaviour
so SectionBreak was still swapped.
So what logically seems to be needed is to restore the bBefore flag
(prior to DOC's preference for breakBefore sprm), restore writing
PageBreak_After in after pass, and ignore the FollowPageDesc
(because it didn't seem to be included purposefully).
PageAfter only seems to be UI possible in a table's text flow. So it is
VERY uncommon (no instance at all in existing unit tests.) And, not
surprisingly, it doesn't export a page break after the table in
doc or docx format anyway. At least now it won't put the break BEFORE
the table in docx.
This will restore these previous behaviours:
-doc/rtf: PageAfter no longer written in bBreakBefore stage
-docx: -PageAfter no longer written in bBreakBefore stage
-PageBefore not affected by FollowPageDesc.
PageBefore is generally unaffected by this change, and now the
test for page/column break matches again, as would be expected.
Change-Id: I265541a04be49e6b60bfbd84c33ab5783b454058
Reviewed-on: https://gerrit.libreoffice.org/64983
Reviewed-by: Justin Luth <justin_luth@sil.org>
Tested-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|