summaryrefslogtreecommitdiff
path: root/sw
AgeCommit message (Collapse)AuthorFilesLines
2020-06-27Fixups to build on c++11-only compilersThorsten Behrens2-2/+2
This is a follow-up to: - a5a603aa83fbc6604952bd6bf9795ceed61978e9 - b93b2b974e003a2e6b8cf9852b7e7e4fb126fff0 - 5a7288901fad8bd833357f1672213bce8273ab3c avoiding breakage on gcc48 for CentOS6 baseline (which has no full c++14 support yet) Change-Id: I9654b057f792103e6934f19b97dc0d3c84d77852
2020-06-18tdf#133982 sw: fix Copy of document that starts with nested tableMichael Stahl1-1/+6
Started to assert with ef8427d12a63127a2eb867637699343d630545dd because a bookmark was created on the wrong node but this never worked. Change-Id: Ife01a3c8041b4c7d08b2d749dde77ced388f7215 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96556 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 4de190d55900387bc07971bac84f7cd52e329146) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96578 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 7866336f1ce3d5b686847e98a218e6b4d4ca9db5)
2020-06-04tdf#130804 sw: fix bookmark portions in line containing only as-char flyMichael Stahl1-1/+5
There were 2 problems: * due to the first bookmark portion, the line got an additional 55 twips of its descent added to its height in SwLineLayout::CalcLine(). * when called from SwTextFrame::CalcHeightOfLastLine(), SwLineLayout::MaxAscentDescent() is supposed to ignore FlyInCnt portions, but it didn't ignore the bookmark portion which had the same height, hence the resulting line spacing was 855 instead of 0 and the upper margin of the next paragraph increased similarly. (regression from 4ce8120f1e53f7b81e653b01d141643013bc69ab) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95438 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 97d77b670d1c2e5dd045130427c42a6b74d55889) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95423 Tested-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 4927143b6652ce2d19e6f476923112f0ab7fc273) Change-Id: I52b154a48c5d712b7e3e323d2e3e08f37bf1afd1
2020-06-04crashtesting: fix abi11870-2.odt assert in SwBookmarkPortion::Unchain()Michael Stahl6-17/+17
This m_pPrevious pointer is a bad idea, should just use FindPrevPortion() to find it, which shouldn't take that long to iterate all the portions in the current line. (regression from 4ce8120f1e53f7b81e653b01d141643013bc69ab) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91622 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit f68749054f36f070310e70e2dbf0a11c496539c0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95415 Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit deee67c566811189ee66d5766d0c9fc644a0120b) Change-Id: Ibb5f2bb28d959958547ed27c51e5084cc746d642
2020-06-04crashtesting: null dereference of reexporting abi12570.odt to odtMichael Stahl1-3/+5
FLY_AT_FLY shape is anchored on SwStartNode of fly section. (regression from ef8427d12a63127a2eb867637699343d630545dd) Change-Id: I4fe70237c060cc810af82657bc5791e7024db8f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91336 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 71ed878556422068041025668876fb3300c128df)
2020-06-04tdf#45589 sw: don't paint field shading for bookmarksMichael Stahl1-6/+1
Maybe it looks better without. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88039 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit c0b7fe8281319146c4a2e36e203cfd65633ce3bd) Change-Id: Id603fbef361574cafbe2ec9f625ac54fea27a0f6
2020-06-04tdf#45589 sw: create and paint text portions for bookmarksMichael Stahl14-27/+265
Add a new SwBookmarkPortion, derived from SwControlCharPortion. There is no character for the bookmark in the text so the portion has length of 0, which makes things quite a bit more tricky. Formatting: * SwBookmarkPortion is created last in WhichFirstPortion(). * In an empty paragraph the SwTextFrame::FormatEmpty() must be disabled. * If there's a bookmark at the end of a paragraph, SwTextFormatter::CalcAscent() must use the font of the previous character, not the paragraph font, because that could grow the line if it's higher. * The SwMultiPortion complicates matters, because it uses a nested SwTextFormatInfo and thus we need some extra steps to prevent duplicate SwBookmarkPortions; this is particluarly a problem for rotated text portions. - SwTextFormatter::BuildPortions() must advance the outer SwTextFormatInfo's bookmark position because BuildMultiPortion() has already created the SwBookmarkPortion. - If a SwBookmarkPortion is at the start of a SwMultiPortion, it will be created before the SwMultiPortion but must be painted inside the SwMultiPortion because its font is going to be initialised as inside the SwMultiPortion (e.g. it will be rotated) so its position must also be adapted to be inside, and only SwTextPainter::PaintMultiPortion() does the setup for that; add a hack to move it in SwTextFormatter::BuildMultiPortion(). Painting: * Using the original font seems rather difficult, hard to predict what some character is going to look like, and how it scales if the size is increased; use OpenSymbol instead. Unfortunately OpenSymbol doesn't have a good glyph that could be used for both the end of a bookmark and start of another bookmark at the same position. * SwLinePortion::PrePaint() wants to avoid moving the portion half-outside the frame but often it looks better that way (previously it was misaligned, now it's half-outside). * Not sure if it makes sense to draw a field shading in SwTextPaintInfo::DrawViewOpt() too; let's try it out, but dependent on the same IsViewMetaChars() setting as the bookmark character itself, not on the field shading setting. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87364 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 4ce8120f1e53f7b81e653b01d141643013bc69ab) Change-Id: I1ab94afb417221e278dbb3afd6c978a05fc78497
2020-06-04sw: fix rotation bugs in SwLinePortion::PrePaint()Michael Stahl2-3/+18
The sign was flipped for the 90° case, resulting in painting too far up the page, ever since this was added in 293ed704cf15107049578c2e6e5ed00dcac2d4fb. In SwControlCharPortion::Paint() rotation wasn't handled at all. Change-Id: I83a7eef8b2f6126e070d8c48f75378b6cf6d50e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87707 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 8029179e35fcda5867769d4ca6f7ee32bca3e9bc)
2020-06-04sw: reformat bit of SwLinePortion::PrePaint()Michael Stahl1-21/+20
Change-Id: Id088e3f73e6bda3c6b11d421a52c59c67446f8a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87706 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit ac443862c6b9599ae5776767c4a169c37e47477e)
2020-06-04tdf#45589 sw: split text portions at bookmarksMichael Stahl3-0/+17
Always create the portion, not just when the IsViewMetaChars is active. This has the advantage that nothing has to be invalidated when toggling, and the disadvantage that kerning at bookmark positions will never happen. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87363 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 2817f07fdd942cea6574043971534bf089b527ce) Change-Id: I78943f337eef5c64cff33f6df6ff1a10acb1b8bc
2020-06-04tdf#45589 sw: add bookmarks to SwScriptInfoMichael Stahl3-10/+236
Add a list of bookmark positions in the text frame to SwScriptInfo. Initialising this turned out to be more complicated than expected. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87202 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 46e04a712e97f9095ef4da7f0e52f50cf2bfbb32) Change-Id: I1738186b057b0eece80177097a03826365107589
2020-06-04tdf#45589 sw: invalidate on bookmark insertion/deletionMichael Stahl3-0/+45
Invalidate the text frames when a bookmark is inserted or deleted; also when MarkManager::repositionMark() changes the positions. The other calls of SetMarkPos()/SetOtherMarkPos() look like they're all from code that corrects positions after text insertions or deletions so no additional invalidate should be necessary there. It turns out that one WW8 document in sw_filters_test wants to insert a bookmark on a SwGrfNode; check for that in makeMark(). Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87157 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit ef8427d12a63127a2eb867637699343d630545dd) Change-Id: I293e6da9042bea5992cb27091b9cff77e5c7961d
2020-04-07Add uno cmd to protect bookmarks in a documentSamuel Mehrbrodt4-3/+35
Change-Id: I7cc0dfa2b129d69d49b555495d77c2c710689e94 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88586 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 4a5c627e61dc1bd67106a18319eabecb50b79658) Without the WriterCommands/UI changes. Change-Id: Ib1d28f96bd1c4a87ef644a376cefa2cf5c7e6728 Conflicts: officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu sw/sdi/_textsh.sdi sw/sdi/swriter.sdi
2020-04-07Add uno cmd to protect fields in a documentSamuel Mehrbrodt4-0/+43
Change-Id: Ifb9f757111a6fcbb283d2350ed2ccd42de19d5df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88585 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 087d9191ab642e4b00afb71571d83ffe04589769) Without the WriterCommands string/UI changes. Change-Id: I8f8a88bf7624438923b5f611549c703e304763b5 Conflicts: officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu sw/inc/cmdid.h sw/sdi/_textsh.sdi sw/sdi/swriter.sdi sw/source/uibase/shells/textsh1.cxx
2020-03-26sw: SwEditWin: for CUT of a read-only selection, pop up info dialogMichael Stahl1-1/+3
... as is already done for PASTE, so the user doesn't wonder why it doesn't work. Change-Id: I4c967fdf46bc76f0930d665cf84ca27ef92c00d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91142 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit b6fb2719170d1d96fc60305d73663ddd81d887e5)
2020-03-26tdf#119016 Editing a read-only section shall popup a dialogIlhan Yesil1-1/+7
While processing the key input, an additional if statement for the paste command (Ctrl+V) is added. Change-Id: If205589256855422ac93f8a5ed8a1ee394ca9310 Reviewed-on: https://gerrit.libreoffice.org/58360 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 66838c2418df4d016be0da0ef1c7e54934c03421)
2020-03-26sw: PROTECT_FIELDS should not protect placeholder fieldsMichael Stahl1-1/+3
The text placeholder field becomes totally nonfunctional, the other placeholder fields allow inserting but are then not deleted; just ignore protection for placeholder fields. Change-Id: Ic478a32d616464bfe7f24fc851c1998b5e01a23b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91140 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 3fc68fdc6f4ef04091db2fd46499a10396c3a4f2)
2020-03-25sw: Optionally disable bookmark manipulation GUIsKatarina Behrens4-17/+27
If the ProtectBookmarks bit is set, don't allow bookmark changes, neither via the bookmark dialog nor the navigator. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87361 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit cb5d18871b46ef4f7bc47eb4d71df5374d712575) Omit new strings for backport to 6.1 branch, was only shown as disabled context menu item anyway. Change-Id: I035faaf3871c7107dd1aac38c4e6867291827346
2020-03-25sw: read-only/protected content dialog was missing on Delete/BackspaceMichael Stahl1-0/+12
If SwWrtShell::DelRight()/DelLeft() are called without an active selection, they select 1 character to the right/left, but then they don't check if the selection is read-only, so then SwEditShell::Delete() calls HasReadonlySel() and silently returns. Pop up the dialog in this case too, for consistency. Change-Id: I3d72f136f4d132de3f8a6f3cc2aab493ced95a28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88055 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 0788ab19869aa2ae5f7fbef9e3c13ceb641f80ee)
2020-03-25sw: implement protection of bookmarks and fieldsMichael Stahl4-49/+145
SwPaM::HasReadonlySel() checks PROTECT_BOOKMARKS / PROTECT_FIELDS setting and checks if bookmarks or fields are selected for deletion. This should already be called by the UI code in all the right places, for the other content protection features, and cause a dialog to pop up. What's not ideal about this is that it's impossible to delete a character immediately before or after a point bookmark because that would delete the point bookmark too. The bookmark check is done by extracting a function out of MarkManager::deleteMarks() so both will use the same logic. The problem of DelContentIndex() duplicating that logic remains... Apparently the status bar at the bottom already displays "read-only" for such a selection. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87778 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 9e7b5c74b484fcfd3317db56745b26b10897047d) Change-Id: Id87999198a03ba847ef0eff5651fef3bd2517fae
2020-03-25sw: split into 2 settings ProtectBookmarks and ProtectFieldsMichael Stahl4-12/+37
On second thought, let's have 2 settings because there might be some use-case for protecting one but not the other. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87777 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 249b10c22f4a35672a7388d34b2ded1b76054dac) Change-Id: If8442b64adeeed80b25c8b69f607f2d4993786e4
2020-03-25Add ProtectBookmarksAndFields per-document optionKatarina Behrens4-1/+26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87360 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit a5cd4d39f09c3658c2b7cfff4ab6a74449d4f0c0) Change-Id: I8dac403ddea59026b5f52c132c8accc1bd0ada92
2020-02-04Unit test for stable at-page anchored fly positionJan-Marek Glogowski5-2/+54
This is the unit test for commit 5cee586a97a11c23dd252accc42099bd5e9b4187 ("sw: fix moving of at-page anchored flys to different page"). Originally the error was just triggered by toggling "View -> Field Names". Luckily it's also triggered by adding some text to page four, so no need for some UI test. Change-Id: I3a63b50dd898788607c3d24a848d8f43ae966377 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87776 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 5fed8bb5f6f65963fed27f96de3be14dff830d38) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87847 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 4db184ea279a2974679b05eaa8ca52ec087f68af) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87983 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-12-23sw: fix widow loop with as-char flys in text formattingMichael Stahl3-5/+7
The document has a paragraph with 4 as-character anchored flys depicting Zirbenholz; due to their size and an additional fly that is anchored at the paragraph, there are 3 lines that do not fit onto a single page. This situation causes a loop that proceeds like this: text frame 80 is the follow of text frame 21. when formatting 80: the 1 line violates the widow rule (>=2) and PREP_WIDOWS is sent to 21, invalidating its FrameAreaSize 80 validates its FrameAreaSize when formatting 21: PREP_WIDOWS_ORPHANS sent to 21 CalcPreps() sees IsPrepWidows() and sets a huge height and calls SetWidow(true) SwTextFrame::WouldFit() sees IsWidow() true and resets it false SwTextFrame::WouldFit() sees IsWidow() false and a huge but insufficiently huge height 21 validates its FrameAreaSize CalcPreps() sees IsPrepAdjust() FindBreak() calls TruncLines() and because of as-char fly invalidates FrameAreaSize of 80 The loop is most easily reproduced by printing via the API; it's possible to get a loop when loading the document in the UI, but typically the UI remains responsive even though the layout never finishes. As it happens, before commit ee299664940139f6f9543592ece3b3c0210b59f4 "SalInstance::DoYield: Don't drop SolarMutex when accessing user event queue" the loop on printing via API was broken by releasing SolarMutex; the result, however, was incorrect, with the last line of Zirbenholz that should be on the second page missing in the PDF. This loop is presumably a regression from commit f2e3655255db4032738849cd4b77ce67a6e2c984 "Avoid -fsanitize=signed-integer-overflow", which changed a magic number in SwTextFrame::CalcPreps(), but didn't adapt the poorly documented corresponding magic numbers in SwTextFrame::WouldFit(); in LO 5.1.6.2 the CPU is idle after loading the document. Change-Id: Ib6563c21edb68945c14a61b51ba34f0ee3f2544a Reviewed-on: https://gerrit.libreoffice.org/85623 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 68a5afaaabd0c75bba3439cfdff90fb75d1cdd3f)
2019-12-23tdf#126127: Make nTmp smaller still, avoid -fsanitize=signed-integer-overflowStephan Bergmann1-1/+8
...after f2e3655255db4032738849cd4b77ce67a6e2c984 "Avoid -fsanitize=signed-integer-overflow" had already reduced it from using LONG_MAX to TWIPS_MAX/2 in the past. This time, avoid the computation of > const sal_uInt64 nCurrentDist = sal_Int64(aDiff.getX()) * sal_Int64(aDiff.getX()) + sal_Int64(aDiff.getY()) * sal_Int64(aDiff.getY()); // opt: no sqrt in GetFrameOfModify (sw/source/core/layout/frmtool.cxx) from overflowing (where aDiff.getY() derives from nTmp and can be close to it in magnitude, so computing its square would overflow on platforms where TWIPS_MAX is a large sal_Int64 value). (The "empirically shown to be large enough in practice" in the comment is a successful `make check` on Linux 64-bit with UBSan.) Change-Id: Ic7f058bd6853ff04ccb50a150509e98f850d12d2 Reviewed-on: https://gerrit.libreoffice.org/74801 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Jenkins (cherry picked from commit 8723ac4e20eda87a82393f2f6c7d28ece8514238)
2019-12-10tdf#124986: docx: remove trailing quotation marks and spaces from set fieldsbrinzing2-0/+22
Reviewed-on: https://gerrit.libreoffice.org/81892 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport14.cxx Change-Id: I6390344b72b0148cff8e0ed5150d7abfc9490a2a Reviewed-on: https://gerrit.libreoffice.org/84793 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-11-20warn on load when a document binds an event to a macroCaolán McNamara8-4/+57
a) treat shared/Scripts equivalently to document scripts This doesn't automatically warn/block running those scripts when used in a freshly loaded document on its own however because DocumentMacroMode::checkMacrosOnLoading will see at... if ( m_xData->m_rDocumentAccess.documentStorageHasMacros() || hasMacroLibrary() ) that the document contains no macros and flip the allow macros flag to true so that potentially new uses of macros added by the user during the edit are allowed to run b) so, add an additional flag to indicate existence of use of macros in a document c) for odf import, set it when a script:event-listener tag is encountered d) for html import when registerScriptEvents or SwFormatINetFormat::SetMacroTable is called e) for doc import when Read_F_Macro or StoreMacroCmds is called as well for good measure f) for xls import when registerScriptEvent or ScMacroInfo::SetMacro is called g) for oox import when VbaProject::attachMacros is called Reviewed-on: https://gerrit.libreoffice.org/77387 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> (cherry picked from commit 35fe064a67b54b0680b4845477c9b8751edda160) Change-Id: Ic1203d8ec7dfc217aa217135033ae9db2888e19b
2019-10-11tdf#122198 don't remove db after closeSzymon Kłos1-0/+2
Change-Id: Ib652174148e6997c1aabe0251a62612f28243d6e Reviewed-on: https://gerrit.libreoffice.org/67200 Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Tested-by: Szymon Kłos <szymon.klos@collabora.com> (cherry picked from commit a4ac1a93b540ae22dd317d88b5c3da8a7678db24) Reviewed-on: https://gerrit.libreoffice.org/80554 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2019-10-11tdf#117480 fix crash in mailmergeSzymon Kłos1-363/+374
Catch exceptions and hide progress dialog. Reviewed-on: https://gerrit.libreoffice.org/65815 Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Tested-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/72280 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Tested-by: Jenkins (cherry picked from commit 4bba6c122c3bb3468bccd69d53d70d00fd00bdcc) Change-Id: Ie63c8d7e001c90f40cf7504fd8248a6742e9d244 Reviewed-on: https://gerrit.libreoffice.org/80553 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2019-10-11Avoid failing assert in SwDBManager::MergeMailFilesMike Kaganski1-6/+9
The failing assert reproducing scenario is the steps in https://bugs.documentfoundation.org/show_bug.cgi?id=116543#c0 rMergeDescriptor.nMergeType == DBMGR_MERGE_PRINTER; rMergeDescriptor.bPrefixIsFilename is true; rMergeDescriptor.sPrefix is empty. The failing assert is unrelated to the crash in tdf#116543. It looks like the assertion was incorrect; assert on empty prefix instead. Change-Id: Ibeedb90a9fac810124283fc06aa756777fa04720 Reviewed-on: https://gerrit.libreoffice.org/56863 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/80552 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2019-09-17sw: fix moving of at-page anchored flys to different pageMichael Stahl1-0/+2
The problem is that some flys are anchored at a page with Y pos 35k and are moved to a page with Y pos 17k, while retaining mbFrameAreaPositionValid=true and their existing Y position. The flys will never be painted or even invalidated again because their position is off-page. This is somehow a regression from commit 0b53f794ffb2550288610b9488f11fd21ab85aae - without the new mutation of an empty-page to a normal page due to at-page flys by resetting m_bEmptyPage in SwPageFrame::UpdateAttr_() on it the problem didn't happen. Due to the above commit, the page 3 is not an empty-page any more as it has 2 flys anchored on it; previously those flys were moved (only in the layout, not in the model!) to page 4 by some funny code in SwRootFrame::AssertPageFlys(), which at first glance seems like an improvement. Change-Id: Ia071931b26e64245f90233232dd2ac0d64365ce6 Reviewed-on: https://gerrit.libreoffice.org/75009 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 5cee586a97a11c23dd252accc42099bd5e9b4187) Reviewed-on: https://gerrit.libreoffice.org/75049 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-08-13tdf#123293 sfx2: fix metadata loss when loading from streamMichael Stahl2-3/+6
The problem is that when loading from a stream, there is no BaseURL and also no storage for the document. Due to the lack of BaseURL, the sfx2::createBaseURI() throws and loading RDF metadata fails, which also pops up an annoying warning dialog. Try to handle this in a similar way than a newly created document (see GetDMA()), by using the vnd.sun.star.tdoc scheme URL for the document; this however currently requires that the document has a XStorage, which is also not the case here. So add another UNO method to tdoc UCP's tdoc_ucp::ContentProvider, to split out the creation of the tdoc schema URL from the creation of the ucb Content, to get rid of the XStorage requirement. Change-Id: Ica62743f9d21db0b1464b70db1a62ebc61989ef8 Reviewed-on: https://gerrit.libreoffice.org/67882 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 0a5ca5768f56db481dd3b947b3dddaab7ed96450) Reviewed-on: https://gerrit.libreoffice.org/69101 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 98b99ef61c6d725962cdbaa05ff90c9d1aa72d57) Reviewed-on: https://gerrit.libreoffice.org/75963 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-07-29sw: fix use after free on tdf117215-1.odtMichael Stahl2-1/+3
Move the fix from 6d0ea082889c89eb8b408779f2de08da7441ff54 to SwFlyFrame::DestroyImpl() so we unregister every SwFlyFrame. ==1550==ERROR: AddressSanitizer: heap-use-after-free on address 0x615000383f56 at pc 0x7efcd70d5ab9 bp 0x7ffeb7ac7c40 sp 0x7ffeb7ac7c38 WRITE of size 1 at 0x615000383f56 thread T0 0 SwAnchoredObject::SetTmpConsiderWrapInfluence(bool) sw/source/core/layout/anchoredobject.cxx:743:32 1 SwObjsMarkedAsTmpConsiderWrapInfluence::Clear() sw/source/core/layout/objstmpconsiderwrapinfl.cxx:53:23 2 SwLayouter::ClearObjsTmpConsiderWrapInfluence(SwDoc const&) sw/source/core/layout/layouter.cxx:387:84 3 sw::DocumentLayoutManager::ClearSwLayouterEntries() sw/source/core/doc/DocumentLayoutManager.cxx:497:5 4 sw::DocumentStateManager::SetModified() sw/source/core/doc/DocumentStateManager.cxx:45:39 5 sw::DocumentContentOperationsManager::DeleteRangeImplImpl(SwPaM&) sw/source/core/doc/DocumentContentOperationsManager.cxx:3942:36 0x615000383f56 is located 342 bytes inside of 504-byte region [0x615000383e00,0x615000383ff8) freed by thread T0 here: 1 SwFlyAtContentFrame::~SwFlyAtContentFrame() sw/source/core/inc/flyfrms.hxx:159:7 2 SwFrame::DestroyFrame(SwFrame*) sw/source/core/layout/ssfrm.cxx:389:9 3 SwFrameFormat::DelFrames() sw/source/core/layout/atrfrm.cxx:2624:17 4 SwUndoFlyBase::DelFly(SwDoc*) sw/source/core/undo/undobj1.cxx:161:19 5 SwUndoDelLayFormat::SwUndoDelLayFormat(SwFrameFormat*) sw/source/core/undo/undobj1.cxx:403:5 6 SwHistoryTextFlyCnt::SwHistoryTextFlyCnt(SwFrameFormat*) sw/source/core/undo/rolbck.cxx:538:20 7 SwHistory::Add(SwFlyFrameFormat&, unsigned short&) sw/source/core/undo/rolbck.cxx:1083:50 8 SwUndoSaveContent::DelContentIndex(SwPosition const&, SwPosition const&, DelContentType) sw/source/core/undo/undobj.cxx:1020:39 9 SwUndoDelete::SwUndoDelete(SwPaM&, bool, bool) sw/source/core/undo/undel.cxx:229:9 11 sw::DocumentContentOperationsManager::DeleteRangeImplImpl(SwPaM&) sw/source/core/doc/DocumentContentOperationsManager.cxx:3939:55 Change-Id: Ia0c28c9d5792615cbb566e502374efd0f4056daf Reviewed-on: https://gerrit.libreoffice.org/75857 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit dea72ef111ee8a0b1b178f8cd48757514d5ca831) Reviewed-on: https://gerrit.libreoffice.org/75941 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 4b9324b93dcbd72c8c8949309d45790dd8f7d5fd) Reviewed-on: https://gerrit.libreoffice.org/76306 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-06-17More uses of referer URL with SvxBrushItemStephan Bergmann6-8/+28
Reviewed-on: https://gerrit.libreoffice.org/73643 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit b518882de8213ef71a8003f95fbdf7689069c06d) Conflicts: sw/source/core/text/porfld.cxx sw/source/core/unocore/unosett.cxx Change-Id: I04b524784df4ef453d8b1feec13b62f183a17e23 Reviewed-on: https://gerrit.libreoffice.org/73860 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 87c418a98650ab6e4a62a0b4b72e02fee358dced)
2019-06-17Remove Help menu donate entry for LTS versionThorsten Behrens9-27/+0
Change-Id: I78db5b1989dee9ab10d670f26d08237335ffcc29
2019-04-05tdf#114306: Revert commits fixing this issue ( 6.1 only )Xisco Fauli6-91/+21
Revert "tdf#114306 fix crash caused by special document 2" This reverts commit d30eefb677b446886f7b5bab6de93d489ba63529. Revert "tdf#114306 fix crash caused by special document" This reverts commit e4400f4c4e267f8528df3a7d5a09623c888bd10c. Revert "tdf#114306 fix unexpected page break in row-spanned table" This reverts commit 18765b9fa739337d2d891513f6e2fb7c3ce23b50 Change-Id: Ifff799616f12ee428a3f923f6510b20059f5bc71 Reviewed-on: https://gerrit.libreoffice.org/69848 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-04-03tdf#124272 use ClipRegion's geometry if not a rectangleArmin Le Grand1-2/+27
By error the ClipRegion's geometry was replaced by it's BoundRect expanded to PixelBounds. If the ClipRegion is not a rectangle, this will create wrong results. To do both - extend to PixelBounds and have the original geometry included - use the PolyPolygon topology as needed (see comment in code for details) Reviewed-on: https://gerrit.libreoffice.org/70146 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com> (cherry picked from commit 362c1cf2bd580f6dc8bf27bdcd79174111bc1b5c) Conflicts: sw/source/core/doc/notxtfrm.cxx Change-Id: If3f75223144eba8eb23909a7c701ad544346099b Reviewed-on: https://gerrit.libreoffice.org/70158 Tested-by: Xisco Faulí <xiscofauli@libreoffice.org> Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-04-02tdf#123705: avoid duplicate themeColorJulien Nabet3-0/+7
See http://bugs.documentfoundation.org/attachment.cgi?id=149585 + https://bugs.documentfoundation.org/show_bug.cgi?id=123705#c4 Change-Id: I3c6fb0a1ac46a62c75bb9daeaded1633889416eb Reviewed-on: https://gerrit.libreoffice.org/68398 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> (cherry picked from commit 42398e3860aafd6468688eda6c0da942323b7f82) Reviewed-on: https://gerrit.libreoffice.org/68614 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-03-29tdf#121456 sw: DOCX: fix loading of empty TOC titleSerge Krot2-0/+10
Change-Id: Ib241edd07e4c6781d80db274f73146bda310d8c0 Reviewed-on: https://gerrit.libreoffice.org/69827 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit e47a5543f4b8c9e317d1e43af8c0e5a732e461fd) Reviewed-on: https://gerrit.libreoffice.org/69903
2019-03-27Resolves: tdf#124142 don't deref nullptrCaolán McNamara1-1/+2
Change-Id: Ie14600e9f9a1e1c4e99c7a872f5d677453481888 Reviewed-on: https://gerrit.libreoffice.org/69666 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit ac7ce7a64ef903bad1476f5635a7b2a1e951a7a3) Reviewed-on: https://gerrit.libreoffice.org/69694 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-03-22tdf#124109: Revert "Only do kashida insertion with fonts that have non-zero ↵Khaled Hosny3-12/+11
width kashidas" This reverts commit c45b23377bb2fe44c26f1287ff38495344e4ca50. This commit breaks Kashida justification when a document is first opened (the kashida justification will be disabled and spaces will be used untill the text is changed). Probably it is checking for width of Kashida glyph too early. Also I'm not sure what the reverted commit was trying to fix since we already do kashida justification in fonts that has non-zero width Kashida and it has been the case for a long time. This does not fix the original issue in the document attched with the bug report, but if fixes kashida not being applied when opening the document. Change-Id: Ic95859bca94fa792793e3223d2adb465bc6d880f Reviewed-on: https://gerrit.libreoffice.org/69509 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> (cherry picked from commit 0a8e9cc5c1782f1cd50ef338ec2aa4f6776a4c0e) Reviewed-on: https://gerrit.libreoffice.org/69519 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2019-03-13tdf#123547: do the same as in lcl_DrawBullet from cui/numpages.cxxJulien Nabet1-5/+22
See bt https://bugs.documentfoundation.org/attachment.cgi?id=149389 It seems the method from cui/numpages.cxx takes more things into account At least, it doesn't crash for the attachment of this tracker Change-Id: I05ca0b019ac483890bea4acdbb695d73b660e638 Reviewed-on: https://gerrit.libreoffice.org/68033 Tested-by: Jenkins (cherry picked from commit 684fcf2fce915f3e3e553c67fb57bdbfc8f159d5) Reviewed-on: https://gerrit.libreoffice.org/68843 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 7f2322afea3b25bc45f438b8ae9d4977ac378c1c) Reviewed-on: https://gerrit.libreoffice.org/69172 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-03-12tdf#116195 sw: remove DisableOffPagePositioning handling from ODF importMichael Stahl1-7/+0
SwXMLImport::SetConfigurationSettings() needs to handle only those settings for which the default is different vs. old OOo/LO versions; DisableOffPagePositioning however defaults to false, so we can just rely on that default. The inverted bDisableOffPagePositioning check is wrong. (regression from fe3d5766fa3c42f6cf8d1ea47af820e0b1c1cf48) Change-Id: I300fa597f58b586b49089bb555a00a6923862abe Reviewed-on: https://gerrit.libreoffice.org/68801 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 8f3df3a5a1570eea4d931f737c474df8601377ec) Reviewed-on: https://gerrit.libreoffice.org/69037 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-03-06tdf#123829 Respect CollapseEmptyCellPara setting when reading odf docsSamuel Mehrbrodt3-0/+17
Commit 56b2cf0c10d9caa01ebae1d80465e342d046a85c introduced a "feature" which would hide an empty line after a table and only make it visible when the cursor is in it. So when loading an ODF doc, only enable this feature for which have the CollapseEmptyCellPara setting set. Change-Id: Ib4dfbbe8d45eb57547c51c7eee2f81331fc5300e Reviewed-on: https://gerrit.libreoffice.org/68742 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 0d2da0acfaa610c690bce552c0ed5df62d4c35cb) Reviewed-on: https://gerrit.libreoffice.org/68790 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-03-04tdf#121440 writerfilter: do not use imported style for foot/endnotesVasily Melenchuk3-0/+18
Extra style is causing editing problem near footnote/endnote references. This behavior is a side effect of eaa9cf6a3069fba3d82c046f0041bfb537d9e648, allowing emission of these "technical" styles. Change-Id: I1885b92814746e7b5cd19f3ddd7bc22eb691615e Reviewed-on: https://gerrit.libreoffice.org/68304 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 691ca4e1a3e510d54894a1e7df7fa4ad9f9cba11) Reviewed-on: https://gerrit.libreoffice.org/68583
2019-03-01tdf#116382 Replace old dialog in header and footer drop-down menuAditya1-39/+13
Remove the Background tabpage in "Border/Background" dialog accessed from Border and Background menu item in Header/Footer drop-down list and replace it with the tabpages "Area" and "Transparency" of the dialog accessed from Page Style > Header > "More.." button. The old dialog does not have the tabpages "Area" and "Transparency". In simpler words, the patch is to match both the dialogs when accessed in two different ways. Change-Id: Ib84435854389360eba41aecb8578a9a67a92ca1e Reviewed-on: https://gerrit.libreoffice.org/67483 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit 55042cb54fea5f7ad777c03af9bf8197127b6736) Reviewed-on: https://gerrit.libreoffice.org/68546 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-02-13Revert "tdf#121962 Update fields after layout has been calculated"Samuel Mehrbrodt1-3/+2
See tdf#123378 for the problem caused by this. I have a fix at https://gerrit.libreoffice.org/#/c/67754/ but I prefer to revert the fix on 6-1 branch since this is the last release in this series and I'm not sure if the fix has other side effects. This reverts commit d9f02548f29678b8b7fc3a6c714ab144bd728005. Change-Id: If9298b9cafaf6984ce25ba78b2c7a79171567840 Reviewed-on: https://gerrit.libreoffice.org/67755 Tested-by: Xisco Faulí <xiscofauli@libreoffice.org> Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-02-12tdf#116851: some rtf files provide param with "-" for "edmins"Julien Nabet1-0/+217
Change-Id: I2a2a189ee727a51aeef5601b39bb288d813fc8f3 Reviewed-on: https://gerrit.libreoffice.org/52610 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit c04c6c487e20730391cfc29dfe66b4558b7b4efb) Reviewed-on: https://gerrit.libreoffice.org/67708 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> (cherry picked from commit 08c98b7aba639e0d246f3662d7950885f8a81432) Reviewed-on: https://gerrit.libreoffice.org/67723
2019-02-11Resolves: tdf#123320 non-existing drop caps char styleCaolán McNamara1-2/+7
Change-Id: I416e3fcffe7da549ffd3b82cb912d78d1ca02339 Reviewed-on: https://gerrit.libreoffice.org/67684 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-02-07Resolves: tdf#123163 avoid null derefCaolán McNamara1-3/+4
one RemoveDrawObjFromPage is already null-deref protected, do the same for the other Change-Id: Ica5bb2df4a8dbffd8397df76b673adab75bb7aef Reviewed-on: https://gerrit.libreoffice.org/67457 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>