summaryrefslogtreecommitdiff
path: root/sw
AgeCommit message (Collapse)Author
2017-07-13Show document title for embedded documentsSzymon Kłos
Embedded documents had "Untitled" name. This patch shows "<root document> (Embedded document)" string in the title bar. Change-Id: I6283240415f9e0c07c4c69672732a7c14eea9f5d Reviewed-on: https://gerrit.libreoffice.org/39835 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-07-13Don't poll busy documents via idle taskJan-Marek Glogowski
Creates a very busy idle-loop, for non-task work like mail merge. Change-Id: If7be82e4675008f23e6f4f6be5c40df40a231a8b
2017-07-13Don't update document stats for non-idle viewsJan-Marek Glogowski
This functionality should be merged into the DocumentTimerManager, which itself should run the different document idle tasks via seperate jobs instead of a single idle, if they don't depend on each other. To implement a non-busy, suspendable Idle, this adds an AutoIdle class, which is automatically re-scheduled after being processed. It also adds a SwDocIdle, which isn't ready to schedule for busy documents. Change-Id: I185137ed3423ecaae0f7edb39018d26c4244d359
2017-07-13Reorganize Scheduler priority classesJan-Marek Glogowski
This is based on glibs classification of tasks, but while glib uses an int for more fine grained priority, we stay with our enum. 1. Timers start with DEFAULT priority, which directly corresponds with the previous HIGH priority 2. Idles start with DEFAULT_IDLE priority instead of the previous HIGH priority, so idle default becomes "really run when idle". As RESIZE and REPAINT are special, and the DEFAULTS are set, there is just one primary decision for the programmer: should my idle run before paint (AKA HIGH_IDLE)? If we really need a more fine-grained classification, we can add it later, or also switch to a real int. As a result, this drops many classifications from the code and drastically changes behaviour, AKA a mail merge from KDE is now as fast as Gtk+ again. Change-Id: I498a73fd02d5fb6f5d7e9f742f3bce972de9b1f9
2017-07-13Move scheduler task into its own headerJan-Marek Glogowski
Change-Id: I54534787b8cfa4c47dc09dde9c38a7893df9d367
2017-07-13improve useuniqueptr loplugin to find arraysNoel Grandin
Change-Id: I81e9d0cd4f430b11d20037054055683240792240 Reviewed-on: https://gerrit.libreoffice.org/39825 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-13loplugin:oncevar: empty strings: swStephan Bergmann
Change-Id: I38d5669078308b425d8e87090ef72279de96c6c9
2017-07-13Make tdf108545_embeddedDocxIcon test universalSzymon Kłos
Change-Id: Ie0d0520bb725c082710c08aa30ecfe18d0c6cc6b Reviewed-on: https://gerrit.libreoffice.org/39864 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2017-07-12tdf#108524 sw: allow frames in growable follow sects in SwFrame::IsMoveable()Miklos Vajna
In general the move of frames inside growable sections is not allowed, so that the behavior is deterministic: either the section grows or content is moved to a follow section frame. But in case of split sections it is necessary to allow the move of text frames inside growable section frames, otherwise it is impossible to move text frames from the last follow of a section frame to the previous one. This is necessary, but not enough to address the sub-problem described in comment 12 of the bug. At least now SwFlowFrame::MoveBwd() is invoked to consider moving the frame backwards, though. Change-Id: I0b79e9db72a4e335701491dd6f7745058901e176 Reviewed-on: https://gerrit.libreoffice.org/39873 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-07-12borderline: correct problems with border displayArmin Le Grand
Borderline display with direct paint and with primitive direct paint has quite some errors in the current state. Started to unify usages, check deeper with creation/usage. borderline: deep changes to BorderLine Found basic error in determining the offset values for BorderLinePrimitive creation, these were not centered on the lines. Corrected that. This makes it possible to remove the formally used clipping which seems to have been used to correct that. Also allows to go back to a 'normal' decomposition that creates line primitives as expected. That again can then be painted quite normally. Also added view-dependent case to the decomposition to guarantee a gap of one discrete unit (pixel). Removed the direct painter, too. Checked and corrected stroking. borderline: Adapted previews to primitives Added code to use the primitive representation in all dialogs and apps using tables. The edit views use these mostly, so the preview should do that, too. Currently missing is a good visualization of diagonals, but this is also true for edit views. Checked all apps and table usages to not get worse borderline: correct line dash visualization When a dashed line is used, a factor of 10.0 was applied in the original coded, added that. Also the orientation of vertical borders was inverted since it was simpler to exchange Start/End, but this also mirrors the line dash visualisation, corrected that Change-Id: I4c1b380a76cb37389fab1259a53fb7cc9da982d1 e95e246d5563360617a2a2213e4d5ec7d0e736b9 62369b4de58fb0264aeb710ec6983ceddca5701d 77418cc6c84ebb0632f8c3448976e82ce612d6b6 b4eb28dc86ce05eb89b26517167305b994158ef8 borderline: adapt cppunittest and clang
2017-07-12tdf#109053: DOCX: Multipage table is not imported properlyTamás Zolnai
An other use case when converting to a "floating table" is not a good idea. In this case we can check whether next to the table anything fits in the text area. If not then we can avoid floating table conversion. Change-Id: I798a2f4c7a9dfe6aecbe4a73e3162b49ea5f0adc Reviewed-on: https://gerrit.libreoffice.org/39811 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2017-07-12loplugin:unreffunJan-Marek Glogowski
Fix some HAVE_MORE_FONTS dependent tests. Change-Id: I79fec705d02b38222d66368759a95b667604335c
2017-07-12Related: tdf#107976 SwView_Impl::AddTransferable: remove dead weak referencesMiklos Vajna
So that the vector doesn't grow till document close without a reason. Change-Id: Iec06e47e39274df7de46c971692054f4f0bcbc96 Reviewed-on: https://gerrit.libreoffice.org/39840 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-07-12strip some linefeeds from the end of debug outputNoel Grandin
Change-Id: I2821969d86b7f8cee53404e6a0acfbebbe53b3ac Reviewed-on: https://gerrit.libreoffice.org/39824 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-11replace 'resize(size+1)' with emplace_backNoel Grandin
which is considerably faster if we're dealing with a std::list, and just easier on the eyes if we're dealing with a std::vector Change-Id: I373689205ebc048689f29ab80a7ee8551b20cc96 Reviewed-on: https://gerrit.libreoffice.org/39816 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-11simplify some OUString::concat usageNoel Grandin
Change-Id: Ifa150dc9d694981ffe03c254ea8c3fd820c99795 Reviewed-on: https://gerrit.libreoffice.org/39812 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-11tdf#109063 DOCX import: consider wrap space for multi-page floattablesMiklos Vajna
Follow-up to commit 78d1f1c2835b9fae0f91ed771fc1d594c7817502 (fdo#68607 bnc#816593 DomainMapperTableHandler: don't always start a frame, 2013-09-03), turns out in case there is little space between the table and the edge of the body area, then there is no wrapping performed in Word, so we should not convert to floating table, either. The limit seems to be 266 twips (mm100 unit is used in the code), and this seems to be constant: it does not change if both the table and the page width is changed, nor does it change when the empty paragraph to be wrapped has a different paragraph mark size. For the majority of the documents this means no change as usually there is either no space available for wrapping or there is a lot more available. Change-Id: Ibbf7409065ba958854514f23b360be56677c8fe3 Reviewed-on: https://gerrit.libreoffice.org/39808 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-07-11loplugin:useuniqueptr in swNoel Grandin
Change-Id: I50c8697d51c480c668c66a1cdc2c670575a1ec37 Reviewed-on: https://gerrit.libreoffice.org/39804 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-11ofz#2538: avoid oomCaolán McNamara
and merge together checkSeeks Change-Id: I341a09404280fb8d4acfbe2abaed47e2830af55f Reviewed-on: https://gerrit.libreoffice.org/39800 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-07-11simplify calls OUString::copy in foo.copy(x, foo.getLength() - x)Noel Grandin
Change-Id: I20318c77dcc3bc2a64336541ef5a3f412bfd9483 Reviewed-on: https://gerrit.libreoffice.org/39803 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-11tdf#106132 DOCX import: fix handling of nested textbox marginsMiklos Vajna
drawingML shapes are independent, and having a separate parser for each shape is a good thing, so that when we have an XML fragment like this: <wps:wsp> <wps:txbx> ... </wps:txbx> <wps:bodyPr .../> </wps:wsp> where <wps:txbx> may contain nested <wps:wsp> tags, we apply the properties specified in <wps:bodyPr> to the correct shape. In contrast, doing the same for VML is not a good idea, see commit 476316bfc9dd36c0613327c20822a193b5ca8d9b (do reuse shape context, 2012-05-22). So conditionally (for DML) maintain a stack of shape parsers, this way the outer <wps:bodyPr> is parsed and the result is applied to the correct shape, at the end resulting in correct inner margin for the outer shape in the bugdoc. This requires moving the context setup code from the OOXMLFastContextHandlerShape ctor to setToken(), as only then we know if this shape context will be used for VML or DML purposes. This should be OK, given that writerfilter::ooxml::OOXMLFastHelper::createAndSetParentAndDefine() calls setToken() right after allocating the context. Change-Id: I8c0d2f49cac76589fe269230698b203b5ca6996c Reviewed-on: https://gerrit.libreoffice.org/39798 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-07-11simplify some OUString::copy callsNoel Grandin
Change-Id: Ifa228ca02ea79a1309e1875414028aade7e5f12d Reviewed-on: https://gerrit.libreoffice.org/39801 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-11use more range-for on uno::SequenceNoel Grandin
Change-Id: Ifad32425d79be5a22d33d721bdc5fb993f699759 Reviewed-on: https://gerrit.libreoffice.org/39763 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-10UI Wrap InBackground: transition to wrapthru transparency toggleJustin Luth
The UI for placing a frame in the background is confusing because: -in menus, the icon looks like a checkbox, but functions as a radio button -it isn't obvious that "in background" is the opposite of "wrap through" -it doesn't act like the checkboxes below it like "First paragraph" -in dialog boxes, it is actually implemented as a checkbox toggle. So it looks like a checkbox, and you can enable the checkbox, but once enabled it can never be disabled. (The currently designed way is to select wrap off/page/optimal/through in order to disable in background.) This patch creates FN_FRAME_WRAPTHRU_TOGGLE to replace most uses of the previous function. Change-Id: Ia46ddbd47899e8ca569bf3adb2b1c4ad7cfa1920 Reviewed-on: https://gerrit.libreoffice.org/39673 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Heiko Tietze <tietze.heiko@googlemail.com>
2017-07-10sw: prefix members of SwDrawViewMiklos Vajna
Change-Id: I8d18efcc609dfc2d5154bfae8799f3517bc3e48f Reviewed-on: https://gerrit.libreoffice.org/39738 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-07-10teach unnecessaryparen loplugin about identifiersNoel Grandin
Change-Id: I5710b51e53779c222cec0bf08cd34bda330fec4b Reviewed-on: https://gerrit.libreoffice.org/39737 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-09Added margin feature to the Draw's SideBarpv2k
Change-Id: I53b5430d1563fcceae29418fd5907ac42ea856e7 Reviewed-on: https://gerrit.libreoffice.org/37626 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
2017-07-08tdf#108973 writerfilter: allow textboxes to be in the backgroundJustin Luth
Word appears to use negative z-indexes to indicate behind-text zordering and positive numbers for in-front placement. This was added for shapes in LO4.3, now applying to textboxes also. Change-Id: I3b06fb231329f151ca978f3a68b4d4e89bc28515 Reviewed-on: https://gerrit.libreoffice.org/39671 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Justin Luth <justin_luth@sil.org>
2017-07-08tdf#108545 show an icon (DOCX inside DOCX)Szymon Kłos
If DrawAspect is equal "Icon", show an icon not document preview Document is opened in the separate window, not in-place. Change-Id: I3a8d81e7340b29d247f8ac440c06b0420bb65644 Reviewed-on: https://gerrit.libreoffice.org/39440 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2017-07-07remove nullptr checks on STL search result iteratorsJochen Nitschke
results are in the range of first_iterator to last_iterator. If one of those is nullptr the algorithm would fail anyway. This removes some impossible checks in sw/source/core/unocore/unochart.cxx: SwChartDataProvider::detectArguments. A sorted range still holds the same values and has the same length as the original range. Replacing raw pointers eases reading this code. Change-Id: If96bd11e9167488346a57e9e08507ac42338d3cd Reviewed-on: https://gerrit.libreoffice.org/39683 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-07rhbz#739252 sw: fix crash on split tables inside nested sectionsMiklos Vajna
Commit b5e0a143308e976b4165ff6181f4dccc3db0bd31 (tdf#108524 sw: attempt to split section frames inside table cells, take two, 2017-07-03) checked for tables in SwFrame::GetNextSctLeaf() when it considered looking up the next "follow" cell frame. But this is too general, in practice it is only necessary to look for follow cell frames in case the frame in question is in a table, but not in a table-in-section. This at the same time avoids a crash with tables inside nested sections, as it happens in the bugdoc. Change-Id: If648cb477be5492c7158f89934435ca7021a6a63 Reviewed-on: https://gerrit.libreoffice.org/39692 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-07-07sw: convert SwTextAnnotationField OSL_ENSUREs to assert() and simplifyMichael Stahl
Change-Id: Ica69cd4527f36edd7480d897a28ff814ecbe97a9
2017-07-07sw: WW8 import: avoid inserting annotation mark without SwPostItFieldMichael Stahl
SwFltControlStack::SetAttrInDoc() will insert a RES_FLTR_ANNOTATIONMARK without checking that there is actually a SwPostItField at that position, which triggers the assertion "<AnnotationMark::InitDoc(..)> - annotation field missing!" in AnnotationMark::InitDoc(). This happens when loading "crash-7.doc" which has a different kind of field - a SwPageNameField - at that position. In the WW8 filter, the SwPostItField is inserted in Read_And(), the AnnotationMark in Read_AtnBook(), which look quite orthogonal. Since it doesn't look like a valid document model to have the AnnotationMark without its field, avoid inserting it in the filter. Change-Id: I960d346601522b1a4d8644e538cde174763e99ff
2017-07-07simplify ooxmlw14export codeNoel Grandin
no need to do c_str() everywhere, when we can just work with OString's Change-Id: I4c9e80200c7c4d36abc541ab47b3f3cf1b42e2fb
2017-07-07Revert "use std::vector in BigPtrArray"Noel Grandin
which is causing crashes in the crashtesting in ooo119635-3.docx and ooo119568-2.docx It is definitely some kind of use-after-free error, but the compress and delete logic for BigPtrArray is too hairy for me to debug right now. This reverts commit 1eee0abd459a508a6dcf9e71cbf2c1be3725faa7. Also revert commit 4f743419a04375160437a910254c45dea396f70d "gdb pretty-printers: fix BigPtrArrayPrinter after recent std::isation" Change-Id: Id870876432a060f9347aafb43bf0df692ea24464 Reviewed-on: https://gerrit.libreoffice.org/39684 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-07sw: convert SwTextInputField OSL_ENSUREs to assert() and simplifyMichael Stahl
Change-Id: I86df59e4b77d2ddc479144f32342113a6e29a725
2017-07-07tdf#108995: take xml:space attribute into accountMike Kaganski
See paragraph 2.10 of XML 1.0 specification and 17.3.3.31 of ECMA-376-1:2016 Change-Id: I7f19d3b9cf2ccce88a5fa03022beeb99facc04fe Reviewed-on: https://gerrit.libreoffice.org/39682 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2017-07-07tdf#77219 writerfilter: allow shapes to be in front of textJustin Luth
In LO4.3, commit 2496eaa5c4535b88b44e4ac034aae6af0c08de0e forced every shape to be "in background". That is not correct. Word appears to use negative z-indexes to indicate behind-text zordering and positive numbers for in-front placement. Change-Id: I4083ae67ef76152e1c0a894d810950d249ac13b4 Reviewed-on: https://gerrit.libreoffice.org/39670 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-07-07loplugin:unnecessaryparen handle parens inside call exprNoel Grandin
stick to single-arg function calls, sometimes parens in multi-arg calls might be there for clarity Change-Id: Ib80190c571ce65b5d219a88056687042de749e74 Reviewed-on: https://gerrit.libreoffice.org/39676 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-07coverity#1414682 unnecessary dynamic_castCaolán McNamara
Change-Id: I7a1a7b5601f474fda84eef53009f4d45ae35b158
2017-07-07tdf#108714: Also support paragraph-level (line) breaksMike Kaganski
Change-Id: Ida55015363cac3ae29b82a60a9b9a5f1b39086a2 Reviewed-on: https://gerrit.libreoffice.org/39675 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2017-07-07C++11 remove std::binary_function bases from functorsJochen Nitschke
std::binary_function is deprecated since C++11 and removed in C++17 90% done with regexp magic. removed obsolete <functional> includes. The std::binary_function base class was used by deprecated std::bind2nd, this was solved in individual commits. The members first_argument_type and second_argument_type were used in chart2/source/controller/dialogs/DataBrowserModel.cxx: DataBrowserModel::implColumnLess and are inlined in this commit. Change-Id: I60ded60a8d4afd59e15ac15a58e18d2498c9be5a Reviewed-on: https://gerrit.libreoffice.org/39659 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-06sw/README: document lists and outlineMichael Stahl
Change-Id: I1f6a7a29a308e13c20e5987902d148ee8d466e31
2017-07-06sw: convert SwNumberTree::IsSane to assert() and simplifyMichael Stahl
Change-Id: Ib2087a53d2a22f5fdafa5c3d0d058dd0ad8ed643
2017-07-06sw: enable some SwNumberTree sanity testing codeMichael Stahl
__SW_NUMBER_TREE_SANITY_CHECK isn't defined anywhere. Change-Id: Ieb8c47d12c47a8a1ffcad0616382e4d2b55024a0
2017-07-06sw: comment cosmeticsMichael Stahl
Change-Id: I572bf8b28738e82e2f207b5201a0c27d9d9b623d
2017-07-06i#61225 sw: fix layout loop with growable single-column sectionsMiklos Vajna
Commit 6ade80cf142664e78954c7544534e9436ceb90c7 (tdf#108524 sw: allow move of frame inside section without columns, 2017-06-16) relaxed lcl_IsInSectionDirectly() used in SwFrame::IsMoveable() to allow move for all section frame contents if it has a single column. That looked safe, as the multiple column case was already allowed. There is one situation where this still causes a problem: when the section has a single column and the section frame is growable -- as in that case we should grow the section frame, not move the contents. So go back to unconditionally allowing multi-column section contents and allow single-column section contents only in case the section frame is now growable. With this, ooo61225-1.sxw from the crashtesting corpus can be opened again without a layout loop. Change-Id: Ib2d3702a33da8e62b9bbf468d558ae16db8aa94b Reviewed-on: https://gerrit.libreoffice.org/39653 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-07-06crashtesting: 554 crashing documents on export to .docCaolán McNamara
regression from... commit d72e0cadceb0b43928a9b4f18d75c9d5d30afdda Date: Mon Jun 19 15:32:16 2017 +0200 Watermark: tdf#91687 correct size in the .doc hopefully this fix is correct Change-Id: I17512ffdd4db605e79b3adb97551e6f4e3816f2f Reviewed-on: https://gerrit.libreoffice.org/39661 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-07-06ofz#2469 docshell leaks if progress bar is not stoppedCaolán McNamara
Change-Id: I2595833dd3c6c9e05a32b70c880444128d66c4d3 Reviewed-on: https://gerrit.libreoffice.org/39643 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-07-06nLCode is signed, so check for > 0Caolán McNamara
Change-Id: I2e40d020d088679a8f9d197485a782d511012bd5 Reviewed-on: https://gerrit.libreoffice.org/39657 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>