summaryrefslogtreecommitdiff
path: root/sw/inc
AgeCommit message (Collapse)Author
2023-12-07simplify and modernise ScopedBitmapAccessNoel Grandin
(*) Make all of it use a "Scoped" paradigm (*) pass by value, no need to allocate on heap (*) make all of the construction go via the *Access constructors, instead of it being some via the constructors and some via the Acquire*Access methods. (*) take the Bitmap& by const& in the constructor, so we can avoid doing const_cast in random places. Change-Id: Ie03a9145c0965980ee8df9a89b8714a425e18f74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160293 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-12-05sw: document SwFormatRefMarkMiklos Vajna
Explain where this can appear, who owns it and where it can be found on the UI. Change-Id: I4096bc51ef03e50c65261e7356a4e593d1ba4c48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160323 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-12-01sw: fix issue with copying stashed frame formatTomaž Vajngerl
When the PageDesc is copied from one document to another, we don't make sure the stashed FrameFormat(s) are also properly copied to the new document (which can happen at copy/paste). This can cause a crash if the stashed FrameFormats are accessed or destructed after the original document is destroyed. This fixes the issue so that when we detect the PageDesc belong to different documents, the stashed FrameFormats are copied just like the non-stashed FrameFormats (used for headers and footers). Change-Id: I948068dba4d39bb47c3725dfa8491c53c5833c7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160065 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-11-28sw: document SwFormatRubyMiklos Vajna
Who owns it, where is the UI, which contain can have this. Change-Id: I78bf968f2f887131fe49e5ca56b9a86a2539adc6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160004 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-11-25Convert SwHashTable to std::unordered_mapNoel Grandin
Change-Id: I88b082dc61c05761fd162ea4cf1d30940c2dfccd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159941 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-24tdf#148389 sw: fix Delete Undo/Redo of bookmark positionsMichael Stahl
The main problem is that in SwUndoSaveContent::DelContentIndex() if the selection start/end is equal to the bookmark start/end, the bookmark is not deleted and no SwHistoryBookmark is created, hence on Undo the bookmark positions are not restored. Since deleting bookmarks in more situations might cause user complaints, let's just extend the creation of SwHistoryBookmark to these cases, which means we need to take care both here and in SwHistoryBookmark::SetInDoc() that there is now a situation where all bookmark positions are saved and restored but the bookmark still exists in the document because it wasn't deleted. The next problem is that using Backspace/Delete keys sets the ArtificialSelection flag which is stored in SwUndoDelete, but when used multiple times the SwUndoDelete::CanGrouping() extends an existing SwUndoDelete, and if it previously would not delete a bookmark, the extended range might fully contain the bookmark and thus delete it on Redo, so check if there are saved bookmark positions and prevent grouping in that case. Another problem is then that SwUndoDelete::RedoImpl() deletes the bookmark anyway, as already indicated with a FIXME comment. This can be prevented by passing the now-existing m_DeleteFlags into DelBookmarks() from DeleteRangeImplImpl(). Change-Id: Id5eb1a58927aaa6e7e8b75be82d7f854d8057cfc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159875 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-11-24sw floattable, per-frame wrap-on-all-pages mode: add UNO APIMiklos Vajna
This exposes the internal property SwFormatWrapTextAtFlyStart on the UNO API. We need this, because otherwise the ODT filter can't read/write it. Change-Id: I67d3c28e3531b19183f8361a6df87b7a4ca84294 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159888 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-11-23tdf#158336: Only Change current tableXisco Fauli
For that, use the same logic as TryBoxNmToPtr Regression from 0c008ab081aa5bbf53f8562e95e547deae5afc2e "tdf#157132: restore behaviour for TBL_RELBOXNAME" Change-Id: I8f93ad3a9686001fd6bd7226400925e43b81ec23 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159865 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-11-23sw floattable: add per-frame wrap-on-all-pages modeMiklos Vajna
Currently the wrap-on-all pages mode is off by default and a document-level setting can enable it for all split flys. Allowing this at a per-frame level (and not only per-doc level) is suggested in <https://issues.oasis-open.org/browse/OFFICE-4150>. Given that this floating table proposal is coming from us, it makes sense to also support this additional attribute from the proposal, even if it's not supported by Word. Fix this by adding a new SwFormatWrapTextAtFlyStart property on fly frames: this is meant to be enabled when wrap-on-all-pages is wanted for this fly, but it's disabled at a per-doc level. Unlike SwFormatFlySplit, this is meant to be easy at a layout level, since SwFlyAtContentFrame::IsWrapOnAllPages() is already a per-frame function, it is just backed with a per-doc setting. Change-Id: I8f562102c2bc366a36c08895b681c4a2ab256bd9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159847 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-11-21sw: document SwFormatFrameSizeMiklos Vajna
Where this can appear, size type, percent relations. Change-Id: I7afddd033e8a8842c99dcb3d9604a2cb75ad6d92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159743 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-11-21tdf#117651 Add AutoCorrect support for italic and strikethroughMatt K
The AutoCorrect "Apply" command calls SwAutoFormat::AutoCorrect in sw/source/core/edit/autofmt.cxx, as mentioned in the bug comments. This change just adds new cases for "/" (italic) and "-" (strikethrough), so that when "Tools" -> "AutoCorrect" -> "Apply" is invoked it changes any text between 2 "/"s or 2 "-"s (assuming your AutoCorrect options enable the setting for this). The new code is just mostly copied from the case statement above it (for bold and underline), and the only additional changes that were needed were to add the comment strings for the 2 new cases. Change-Id: I02238690a40fd0113e3e9acbecf93ef5c34e0785 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154207 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-20tdf#158136 - UI: Part 31 - Unify lockdown behavior of Options dialogBalazs Varga
for Writer - AutoCaption Page. Change-Id: Ia3c37510477542556c3302d2013fe10a4ae00545 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159594 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2023-11-20c++20: use std::erase(_if) instead of std::remove(_if)+erase (sw)Julien Nabet
Change-Id: I67c231441b56f05da001beab5b893bc6a6a6a392 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159704 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-17we can have just one LoadURL for writerCaolán McNamara
Change-Id: Ia0162ee1c275292fcf200bad4662e4c2c6b7b972 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159557 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-17sw floattable, delete UI: add an uno command to unfloat frame from context menuMiklos Vajna
Word has an easy UI to turn floating tables into inline ones. Writer had a similar button, but that had a few shortcomings: 1) It was only visible if a non-split frame was too large to fit the page. 2) It was a separate VCL widget, so invisible to LOK clients. 3) It only worked for frames which had a single table in them. Researching the problem, it's interesting how deleting a frame always deletes its content as well, but e.g. deleting a section just removes the container but leaves the content in the body text. Fix the problem by adding a new menu item in the context menu that always allows converting the frame to inline content at the anchor point. This can share a bit of code with the old unfloat button. The undo/redo still needs fixing, in a follow-up change. Change-Id: I8ce05c9f958b08cb599fd5d2a27e770182f28cc7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159550 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-11-16combine these hyperlink dispatchers into one callCaolán McNamara
Change-Id: Icb7822e811013de648ccf2fbb23a5f0be9e29bb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159489 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-16tdf#157789 Comment size wrong behavior when zooming documentNoel Grandin
Revert commit 8d18b5af883bb6b56e758801ee730a08bb88a8f5 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Tue Jun 13 10:11:08 2023 +0200 speed up rendering annotatins, cache meta height Change-Id: Ib0bae3fd9020200d09c5b37baf5ae882c8532e58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159496 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-15loplugin:unusedmethodsNoel Grandin
Change-Id: I1e125bbd388953491b3f869641484fea737d39ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159423 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-14sw: document SwFormatCharFormatMiklos Vajna
What it does, it refers to what, who is the owner. Change-Id: Ieb8a41ba6c47e5f24d43465f323b660cbf4afdeb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159394 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-11-13tdf#135266 - Remember last used entry level depending on the index typeAndreas Heinisch
Change-Id: I4fe9342c28fc9135b73286e67464b16a1d910a9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159217 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2023-11-09loplugin:fieldcast in SwDocShellNoel Grandin
Change-Id: I81739c24ae1174ff9f889490b8152dda7b61f328 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159171 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-09loplugin:fieldcast in Num_InfoNoel Grandin
Change-Id: I9d839c22579e5bc5fe6250a8aab0285ca9e0a4c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159170 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-09loplugin:fieldcast in SwGrfNodeNoel Grandin
Change-Id: I95411fa20c38238d1ee74e8d73dd0a9553b9ad45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159169 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-09loplugin:fieldcast in SwSelPaintRectsNoel Grandin
Change-Id: I62471db74c30baf8bd42a3679624c767c68c66f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159137 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-08tdf#43784 tdf#158114 sw accessibility: check missing linked graphicLászló Németh
Show missing linked graphics and their abbreviated paths, (and as tooltips, full paths) in the accessibility checker. Change-Id: Ia378f4ea3260251d1b2530fadc48aea6e0323a08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159150 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2023-11-08fix spelling, Attribut -> AttributeNoel Grandin
Change-Id: Iac208ec7d7bf0b03dd957bbe547e42822c5e4c90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159107 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-07use more concrete *PoolItem types in SwLanguageIteratorNoel Grandin
rather than casting Change-Id: Ic134c30490fea7ae42bbf3194532ae0aad4c61c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159057 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-04tdf#114441 Convert use of sal_uLong to better integer typesEMartinGube
Return type of GetColumnFormat() is changed to sal_uInt32. All the values from the function calls inside GetCloumnFormat() which were involved in the return value seem to be positive right now. Change-Id: Id19b2982d8372e10fee5fc0fd4233576076ec3df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155680 Tested-by: Hossein <hossein@libreoffice.org> Reviewed-by: Hossein <hossein@libreoffice.org>
2023-11-02tdf#156565 sw: PDF/UA export: split Link SE at line breakMichael Stahl
There must be one Link SE per Link Annotation, so ensure that a new one is created for a new line. (regression from commit 4c5283a3a11008a06a995c49ed777734dc1f6066) Change-Id: I2585d9e22a435d7716f48fec89a78149c129f71d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158775 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-10-30Improve HIDE_NON_NUMERICAL compatibility with WordSkyler Grey
The previous implementation of REFFLDFLAG_STYLE_HIDE_NON_NUMERICAL had some major incompatibilites with Word. In particular, it stripped letters even if they were included in the "numbering" system. This commit fixes a lot of the flaws in the previous implementation, so it's now a lot closer to Word. Change-Id: Ifaa67fbc2d53b0d4fb85e7305b2dbdf78cf0a1ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158451 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-10-30Fix incorrect marginal STYLEREF content in docxSkyler Grey
STYLEREF fields were previously not importing with the correct content when loading a docx document. This is because they were not updating when the document had finished loading- only partway through, and where a STYLEREF field is in relation to everything else in the document can change its content. This commit fixes that issue by adding STYLEREF fields to be refreshed whenever other fields that can change based on pages (e.g. page number) fields are updated. I suspect this could lead to double updates in some cases where both reference and page fields are being updated. I consider this a relatively minor issue in comparison to incorrect field content when specific documents are loaded, but a followup could be made improving this. This commit also fixes a minor typo in reffld.cxx where m_sText is always the filtered text when updating fields, even if we are updating m_sTextRLHidden instead. Change-Id: Iecd3e83a6bd3f8c2c6adba5c7eba9ee55b773510 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158450 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-10-30Enable STYLEREF flag export/import with OOXMLSkyler Grey
This commit enables exporting the following STYLEREF flags with OOXML - Search from bottom to top - Hide non numerical After this commit, the following steps have been implemented - The document model (I7d8f455ffe90cface4f3b1acf6b9bef6a045ed19) - The layout (I7d8f455ffe90cface4f3b1acf6b9bef6a045ed19) - The UI (I7d8f455ffe90cface4f3b1acf6b9bef6a045ed19) - UNO - DOCX filter Change-Id: Ib664fec059aa1f7f130acc76c253d5d298fa59f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158350 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-10-30Fix typoAndrea Gelmini
Change-Id: I0ea74d87f66554cedf1b1bff86e58bb3e78a3010 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158634 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-10-30sw: Drop superfluous template class definitions to avoid linker failure on armRico Tzschichholz
workdir/CxxObject/sw/source/core/access/accdoc.o:(.data.rel.ro+0x41c): multiple definition of `typeinfo for sw::FrameFormats<sw::SpzFrameFormat*>'; workdir/CxxObject/sw/source/core/access/acccontext.o:(.data.rel.ro+0x1d8): first defined here Change-Id: I1ba9db69a73bd205a9a90cc11259abcadf62a082 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156737 Tested-by: Jenkins Tested-by: René Engelhard <rene@debian.org> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2023-10-30tdf#157663 SW: fix redline continueing a moveAttila Szűcs
Subsequent moves generated new MoveID's, like if they were separete moves. That cause moves to forgot their other parts. Now, if we move a redline that was moved by us it will re-use its moveID as if it was just the continue of the previous movement. It does not work if we move more then 1 of our own movement redlines Note: There are complex cases what it cannot handle.. in those case it just use the new ID, so the newly moved part, will forgot its relation with the old move oroginal parts. Complex case is like.. if we move 2 of our own move redlines, that means there will be 2 MoveId we would want to continue, but only 1 insert redline to write that MoveID. But as long as we moved only 1 of our redlines it will work, even if there are more text redlines, even move redlines of other author. Other move redlines will be separate move anyway. Note2: In complex cases, we may could connect movements. Or we could split the new inserted move part. but those are design questions, they may be not good idea.. and the split one is probably more work to implement. Change-Id: Icb2adf43272181c6a63a4a84750352f4b163383a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158473 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158615 Tested-by: Jenkins
2023-10-30SW: fixed redline SwPosition update problemAttila Szűcs
When nodes are removed, SwPosition nNode is updated, but its nContent is not. If nNode change from a non-ContentNodo to a ContentNode, then it is a problem, as nContent 's m_pContentNode remains nullptr, so the Position seems to be inconsistent. Now when redline remove nodes, it check what redlines may effected it, and update them after the node deletion happened. Probably this bug should be handled deeper, as this problem probably effect every SwPosition.. not sure if it can be a problem elsewhere. A special case when it happens, if there is a Table between 2 text. And there are 2 redlines.. 1: any redline positioned 'text start'-'table start' 2: delete redline: 'table begin'-'table end' now if we accept the 2. redline .. that remove the table the 1. redline position will change to: 'text start'-'next text start' but its end's nContent.m_pContentNode remain nullptr so lcl_CheckPosition(...) will assert Change-Id: I2981fd0218a375994d3f55cb5d3463b17ca35849 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158456 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158614 Tested-by: Jenkins
2023-10-29tdf#157663 SW: Tracked change improve moveAttila Szűcs
Made accept/reject handle move redlines other pair, (moveto-movefrom) and handle the whole move redline, even if it is split into small pieces that separated from each other. Added unique ID to every move redline to help find their other parts. This move ID is generated in case of: move recognition moveing a paragraph. (directly create move redline with unique id without calling the recognition it is faster and more stable) (there are other cases that could be improved to not use recognition, but generate ID directly, like moveing selected partial text with mouse) Implemented the odt export/import of this move ID. it is a tag like this: "<loext:move-id>4</loext:move-id>" next to creator/date Improved the docx import to generate this move ID, so move redlines can find their other parts (Not changed Docx export... it works a bit, but far from perfect) Improved move reckognition: It can find them even if they are split into multiple parts differently. (like "ab"+"cd" == "a"+"bcd") Disabled this because of probably performance issue. made a complex unit test for it. Note: Left the move recognition on every place, to avoid as much regressions as possible.. but in the future, we may can disable it in some cases. Note2: We will have to keep move recognitnion, because there are documents from past, saved without any move informations in the file, and users expect to see move redlines there. (generated by the recognition.) Change-Id: If968d4235b676c5e538cfaf4187a4482a86eae9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157740 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158611 Tested-by: Jenkins
2023-10-27Add flags to STYLEREFSkyler Grey
This commit is part of an implementation for the following STYLEREF flags - Search from bottom to top, which sets the STYLEREF field to search downwards first, or from the bottom of the page in marginals - Hide non numerical, which hides all characters that are not either numbers or punctuation commonly used as delimiters. For example, if your STYLEREF said "Chapter 2.1", this setting would make it say "2.1" This commit implements: - The document model - The layout - The UI Change-Id: I7d8f455ffe90cface4f3b1acf6b9bef6a045ed19 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158349 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-10-25tdf#139141: Add UNO commands for variable date/time fieldsXisco Fauli
Impress already has both options in the menu Also re-enable test disable with fa569930a0968cdeba4441e19a68e7d78aa25cb4 "Revert "Resolves tdf#139141 - Make variable date/time field the default"" Change-Id: I1cec89b5901073555ffa31d2be24e1e62fbbdcb3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158391 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins
2023-10-25DBG_UTIL implementation differs only by never-wrong assertMike Kaganski
Change-Id: Ifb879d6536c80f00da61707fb0aa0700dcd19bcc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158288 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-10-25vcl,sw: PDF/UA export: produce Ruby and Warichu SEsMichael Stahl
These need to generate multiple elements in SwTextPainter::PaintMultiPortion() and it's not altogether obvious. Change-Id: Ib5fd36c3ea8e15dff93a87bb231c3cc4f78b0089 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158398 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-10-25Use std::signed_integral conceptStephan Bergmann
...which, unlike std::is_signed, also requires that T is an integer type, not just any arithmetic type, but which appears to fit well here anyway. But LLVM 12 libc++, which is apparently used by Android builds, only provides a bare-bones <concepts> that lacks std::signed_integral (among others), so for now introduce o3tl/concepts.hxx providing what's missing (incl. std::integral and std::unsigned_integral, for some kind of consistency). Change-Id: I1c37d37fa1b57b5e3bf24c9e44f3973003905cb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158406 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-24tdf#156565 sw: PDF/UA export: only one Link ILSE per linkMichael Stahl
The problem is that for a hyperlink, multiple Link SEs are created, but only one Link annotation; the Link SEs all point to the annotation but the annotation can only point to one Link SE. So try to create only one Link SE for a hyperlink, similar to commit ee3c3fcf5c48964f7bc1d64484409f072c614866. This could be further subdivided by Spans when formatting properties change but it looks complicated and rarely needed. Change-Id: I7d158b599ec744b03e78eeca88d717183f2ba1dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158387 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-10-23Revert "Resolves tdf#139141 - Make variable date/time field the default"Heiko Tietze
This reverts commit e37f06f534ac864f9fe8cd20b07a85c36e697d41. and ui test from Ia1a2387e137f8a672a24056b13234d4275a77ca4 Reason for revert: tdf#157337; macros rely on fix field values Change-Id: I7a638330aac9b71432556454c0104479fcd05b4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158041 Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2023-10-23Extended loplugin:ostr: Rewrite some O[U]StringLiteral -> O[U]StringStephan Bergmann
...in include files. This is a mix of automatic rewriting in include files and manual fixups (mostly addressing loplugin:redundantfcast) in source files that include those. Change-Id: I1f3cc1e67b9cabd2e9d61a4d9e9a01e587ea35cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158337 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-21Related: tdf#89178 Add an option to avoid converting some fields into textMike Kaganski
... during mail merge. In some modes (generating individual documents; creating PDF) the mail merge process converts all fields into text. But sometimes it is undesirable for fields not involved into mail merge itself: * It is inconsistent with how MS Word behaves; * The generated editable documents could benefit from having other fields kept as fields; * Some fields, when exported to PDF, produce different results: e.g., placeholder fields are output as empty spaces, not as placeholder text. An expert boolean configuration option is added: Office/Writer/FormLetter/ConvertToTextOnlyMMFields; it is false by default, in which case, the behavior is unchanged. When true, all fields in the mail merge document, except for database fields and hidden text fields, are not converted to text during mail merge process. Change-Id: Ibdb505ed3f2762db063bb0a91b674d27ecbc2e7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158306 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-10-21Make ConvertFieldsToText privateMike Kaganski
Change-Id: Ie3d22b63260d2b2b05a46c5b2a6ca915cf9d4bcd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158304 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-10-20sw floattable: remove now unused FloattableNomargins compat flagMiklos Vajna
This was noop since commit 626fe9ab5ebebc4ef36e35f4aa597c03a3564d22 (tdf#157573 sw floattable: fix incorrect lack of left margin after table, 2023-10-18). Change-Id: I89a197313ac4ffbcff9bbff534e5411085282ac8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158237 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-10-20tdf#86790: Add support for a word-style stylerefSkyler Grey
STYLEREF is a field type in Word which changes its content based on nearby paragraphs. For example, upon creating a styleref referencing "Heading 1" you will see the text of the nearest "Heading 1"-styled paragraph that is above the field. This patch implements STYLEREF in Writer as a cross-reference. By using "insert>cross-reference>styles" you'll be presented with a list of styles. Selecting one and clicking "insert" will create a field which has text from the "most relevant" instance of the style. To find the most relevant instance we first search up for paragraphs with the style, and if there are any we take the closest. If there weren't any, we search down for paragraphs with the style. This patch also updates our use of STYLEREF for chapters exported to docx by using it for all chapters not only those in headers and footers. This allows us to approximate more chapter field functionality even when moving between Writer and Word. Finally, this patch adds some tests for STYLEREF: - testTdf86790 tests that the "sample file with STYLEREF" document from tdf#86790 has the correct fields - testStyleRefSearchUp tests that the STYLEREF searches up when there are bits of text both above and below it - testStyleRefSearchDown tests that the STYLEREF searches down when there are bits of text below it only - testMarginalStyleRef tests that the STYLEREF searches from the page top when it is placed in a footer - testFootnotetyleRef tests that the STYLEREF searches from the reference mark when it is placed in a footnote Still TODO: - [ ] Update documentation - [ ] Implement reverse-searching (\l) and nondelimiter suppression (\t) - Probably these 2 will be in a followup patch Change-Id: I25dd7a6940abee5651a784b9059fe23b32547d6c Signed-off-by: Skyler Grey <skyler.grey@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157456 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-10-18tdf#156114 UNO commands / menu entries to enable PS/CS spotlightJim Raykowski
Change-Id: I2796b595ef961c477dea85c337ad343599aea7cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158055 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>