summaryrefslogtreecommitdiff
path: root/sw/qa/uibase
AgeCommit message (Collapse)Author
7 dayscool#11064 sw lok: expose if layout pages have invalid contentMiklos Vajna
This is meant to help test writing on the LOK client side, for example this allows dispatching a command and once the poll callback of the LOK client is invoked, we can now check if the layout is fully done (slower) or the poll callback is invoked earlier (faster). Change-Id: I56ab4e6fe46f07a205a197c5b7aa5bb15b3ef676 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181619 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
9 daystdf#164685 Cleanup SfxItemSetFixed - Part 3rafaelhlima
This is the continuation of the cleanup of class SfxItemSetFixed, as described in the bug ticket. Change-Id: I567f985af181d326a6adb6c3d3af2a9e2fa8df34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180975 Tested-by: Jenkins Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
2025-01-31tdf#146549 sw: Make the formatting toolbar visibleTibor Nagy
when moving the cursor to an editable section in read-only mode. Change-Id: I7ed5837eb627a3db00b1b64516b790cc7a3aea01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180890 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2025-01-14Add unit tests for .uno:DeleteContentControl commandcodewithvk
- Added tests for deleting Rich Text, Checkbox, Dropdown, and Date content controls. - TODO: Add test for Picture content control. Change-Id: Icf423ab85d6a28c6c33412677fd1eb44d0ae94f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176068 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-12-20SW: extract transform DocPropertiesAttila Szűcs
Implemented Document Properties extraction, and transformation. For UserDefinedProperties Properties you can use add, and delete commands. If the property already exist, "add" will delete that, before adding the new UserDefinedProperty see the unittest for an example. Change-Id: I036b73bf1539bc25f454aea64c319241177e167a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178918 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-11-29tdf#146553 Enable additonal functions in editable section while in r/o modeOliver Specht
Insert/Edit table, insert lists, insert AutoText automatic spell checking Change-Id: Iccef3965316dc6079ea56a0283023c5a658512cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165031 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-11-25tdf#152839 remove paragraph spacing attributes in fill cellsOliver Specht
Invisible cells in Word are added to Writer tables to get regular tables. Borders of such cells are allready switched off. Now also paragraph spacing is removed to not determine the row height. Change-Id: I27d3d033de54f051527cf29e2655e7a564d1a5ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176219 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Tested-by: Jenkins
2024-11-24Turn SW_MOD macro to a functionMike Kaganski
Change-Id: Ide1f6fd2fc8a80b31353a14e416505a2349cea2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177071 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-11-19tdf#163956 calculate line height differently in FORMTEXTOliver Specht
Lines containing EN_SPACES only ignore character height while calculating line height. In FORMTEXT fieldmarks the character height of the default EN_SPACES is not ignored. Change-Id: I8a89f13875f61ed287ce1697a91b42f20bd17192 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176147 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Tested-by: Jenkins
2024-10-30SwModelTestBase: add getSwTextDoc and use it everywhereXisco Fauli
Change-Id: I09f132a9c79f0aa4c3f4d3ca5f2fed233d0dcb06 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175641 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-29UnoApiTest: rename load to loadFromURL and use it everywhereXisco Fauli
Change-Id: Ie67eebec74f783fa0c29acfb23bb83bc582812b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175724 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-25sw/qa: simplify a bitXisco Fauli
Change-Id: I5d75561f06ce4f981927afb333af5a99bd7ffe26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175645 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-25sw/qa: use getSwDocShell() when possibleXisco Fauli
Change-Id: Ia2e3dad4e62fb084c3a88564deb137cbcc7728b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175573 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-21Optimize JsonToPropertyValues a bitMike Kaganski
1. Make it take string view: helps to avoid extra string allocation e.g. in desktop::jsonToPropertyValuesVector, and will help more, when C++26 stringstream ctor taking string view is available. 2. Factor out a function taking boost::property_tree::ptree, making implementation simpler for [][]com.sun.star.beans.PropertyValue and []com.sun.star.beans.PropertyValue, without writing a child node to a JSON string, and parsing it again. Change-Id: I16ac2641633ea67a7c9c054c9df09a790500e6fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175361 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-18SW: extract transform charts (using dialog code)Attila Szűcs
Implemented chart data extraction, and transformation added insert/delete/modify row/column, and the ability to set resize data table setcolumndesc / setrowdesc .. for 1 descriptor, or with multiple descriptor to set set 1 cell value, or set the whole table cells values. it will resize the table, but you can still use partial arrays like "data": [ [ 1,2,3,4 ], [ 2,3,4,5 ], [ 3 ], [ 4,5,6,7 ], [ 2,2,1 ], [ 5,6,7,8 ] ], that means the 3. row 2,3,4th cell will not be overwritten. for insert column, it call codes from DataBrowserModel. (used by dialog code) added tests, fixed a contentcontrol date problem 2. commit (made by Caolan) squashed into 1. commit: WIP hack this to link move stuff from chartcontroller to chartcore and adjust visibility until it links at least Change-Id: I5529f4da33f046eef7e947d755e29486fa966274 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172849 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175121 Tested-by: Jenkins
2024-10-05Use good old string literals in assertXPath and friendsMike Kaganski
These are only sent to an external API expecting char*-like strings, or for comparison. Having every assertXPath having three of _[ou]str is too much syntactic noise, making the unit tests almost unreadable. Change-Id: Ic004a36ea75e7bfe0b96f405c40f926a957b51cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174416 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-09-03tdf#162507 sw floattable: fix not wanted join of two different split anchorsMiklos Vajna
Open the bugdoc, go to the end of the "Cannot press Delete here" paragraph, press delete, layout hangs. The trouble seems to be that this creates a doc model where multiple multi-page floating tables are anchored to the same paragraph, which is not something the layout supports. We explicitly avoid this at import time from DOCX since commit 01ad8ec4bb5425446e95dbada81de435646824b4 (sw floattable: fix lost tables around a floating table from DOCX, 2023-06-05), but there was no mechanism to prevent the UI creating the same unsupported doc model. Fix the problem by extending SwWrtShell::DelRight() to prevent joining 2 paragraphs in the unwanted case, interesting Word doesn't allow deleting at the end of that paragraph, either. Regression from commit 693ad3aadbf84afa750af73c330fe7e09b38a2e7 (tdf#120262 sw floattable, legacy: go outside body only for page frame vert pos, 2023-07-31), which restricted the amount of cases where some weird legacy behavior was performed, so good to keep that side as-is. Change-Id: I4d8a6702d8ac1689690fa464014c99fcd5ef7bd2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172780 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-08-09simplifyNoel Grandin
Change-Id: I7d8e8b13166537d0e9c60ff0be01f680a817ca5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171699 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-08-04simplify IMark hierarchy (6)Noel Grandin
merge IMark into MarkBase Change-Id: I5d3c648c950f97497c96912c25081906de434056 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171464 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-08-04simplify IMark hierarchy (5)Noel Grandin
merge into IFieldmark into Fieldmark Change-Id: Ide5c01fe49bae0be45746f6b581d72342da9c3a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171463 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-06-13loplugin:ostr in sw/qaNoel Grandin
Change-Id: Ib67997a3f491afaec380ef65bc60588362d9cc3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168812 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-05-23sw/qa: warning C6011: Dereferencing NULL pointerXisco Fauli
Change-Id: I2e84af9463b82600079660a1b136bc9a85d8eb0d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167925 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-13Revert "reduce symbol visibility in sw"Thorsten Behrens
This reverts commit 1a6711276f0c8abeb0028a47cc345a7453374a38. After some discussion and experiments, it turned out this rather fundamentally breaks clang's PCH build. Conclusion was: this change is not significant enough to warrant making life harder for developers. Excerpt of errors (affected were vbaswobj, msword & swui libs): - ld.lld: error: undefined symbol: SwFormat::~SwFormat() >>> referenced by fmtcol.hxx:37 (sw/inc/fmtcol.hxx:37) >>> core/workdir/CxxObject/sw/inc/pch/precompiled_vbaswobj.o:(SwFormatColl::~SwFormatColl()) - ld.lld: error: undefined symbol: SwFrameFormat::SetPositionLayoutDir(short) >>> referenced by precompiled_msword.cxx >>> core/workdir/CxxObject/sw/inc/pch/precompiled_msword.o:(vtable for sw::SpzFrameFormat) - ld.lld: error: undefined symbol: SwFrameFormat::SetLayoutDir(SwFrameFormat::tLayoutDir) >>> referenced by precompiled_swui.cxx >>> core/workdir/CxxObject/sw/inc/pch/precompiled_swui.o:(vtable for sw::SpzFrameFormat) Change-Id: I1dcf115cc191b1ebf1f8d5023c0c5015f891287a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167549 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-04-29tdf#160833 sw: add a DoNotMirrorRtlDrawObjs compat flagMiklos Vajna
The DOCX bugdoc has a circle shape anchored inside an RTL paragraph: this shows up on the right hand side in Word, but on the left hand side in Writer. What happens is that Writer implicitly mirrors draw objects anchored in RTL paragraphs, while Word doesn't do this. Start fixing the problem by adding a new layout compatibility flag that can be used by the DOCX import in the future, to leave the behavior unchanged for new & existing ODT documents. An alternative would be to do something similar to the DOC import's SwWW8ImplReader::MiserableRTLGraphicsHack(), but 1) we don't have the page margins by the time we import the shape and 2) as its name says, it doesn't feel like a clean solution, it's better to handle this difference at a layout level. Change-Id: I2ec067d86c7fbdbe57e4cd9547015fe25a9a56b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166820 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-04-11CppunitTest_sw_uibase_shells: turn on set_non_application_font_useMiklos Vajna
Similar to commit dc4d7500c9d283e26d1553ce11366a217cf1f69d (Fix CppunitTest_sd_import_tests-smartart non_application_font_use, 2023-10-23), got rid of 'MS 明朝' as suggested by the failing assert. Change-Id: I24dcf0bffa8c213f776c0483d53fdee64ff7a413 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165982 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-03-21CppunitTest_sw_uibase_uiview: turn on set_non_application_font_useMiklos Vajna
Similar to commit dc4d7500c9d283e26d1553ce11366a217cf1f69d (Fix CppunitTest_sd_import_tests-smartart non_application_font_use, 2023-10-23), replaced fonts as suggested by the failing assert. Change-Id: I528ba0bc7e463c09fb86b424918f7e645cdb552f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165091 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-03-13reduce symbol visibility in swNoel Grandin
Change-Id: Ib3edefc365d3c605c3024e160572fa4030100ef1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164724 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-06cool#8465 sw lok: classify anchored images as complex selectionMiklos Vajna
Regression from commit 7a8dc25defee31edbb75a2f8c35f92ee2d3f3a83 (sw lok: simplify SwTransferable::isComplex(), 2021-02-23), in case as-char imagse were part of a selection, we considered that complex, but at-char was considered as simple, which is inconsistent. This was not intentional, simply the rework to avoid copying the selection to a temporary document lost this functionality. Fix the problem by using CollectFrameAtNode() to find at-char images, which tries to use the layout, so is not meant to be too slow. An alternative would be sw::GetFlysAnchoredAt(), but that doesn't try to use the layout, so avoid that. Change-Id: I647d0f3934f9553de69afbf2de059631e2b5619c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164453 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-01-25CppunitTest_sw_uibase_frmdlg: turn on set_non_application_font_useMiklos Vajna
Similar to commit dc4d7500c9d283e26d1553ce11366a217cf1f69d (Fix CppunitTest_sd_import_tests-smartart non_application_font_use, 2023-10-23). - sw/qa/uibase/frmdlg/data/wrapped-math-object.docx: word/media/image1.wmf: old WMF used the System font, replaced this with a different WMF, as the preview gets updated before the first document render anyway. (Binary patching 'System' -> 'DejaVu Sans' is not easy.) Change-Id: I5282ec1708d3a52d1fd2795a283b5e96884409d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162551 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-01-11CppunitTest_sw_unowriter: turn on gb_CppunitTest_set_non_application_font_useMiklos Vajna
And the same for CppunitTest_sw_uibase_wrtsh, which found two places where font fallback happens for the checkmark glyph from the Liberation Serif font, so explicitly set the font name in those cases to avoid the font fallback at a glyph level. Similar to commit dc4d7500c9d283e26d1553ce11366a217cf1f69d (Fix CppunitTest_sd_import_tests-smartart non_application_font_use, 2023-10-23). Change-Id: If72e94a61ef38f2f52e677ac989f60ccdae27cd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161911 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-12-20tdf#68364 - Don't assume a database if only two dots are presentAndreas Heinisch
Additionally, a database table name (database.table.column) has to be retrieved from the database to be valid. Change-Id: I8949ae61d96043412425d634763d2ea33ce6a0f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160910 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2023-12-18tdf#158686 sw floattable: fix print preview crashMiklos Vajna
Regression from commit b8521d969ab5be4fc947e467d4afe969f9d3b563 (tdf#157263 sw floattable: prefer join over split after moving fwd, 2023-09-25), enabling Options -> Writer -> Formatting Aids -> Hidden Characters, then opening the bugdoc, finally Toggle Print Preview on the toolbar resulted in a crash. We have a memory corruption here: ==11968==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f0000734e0 at pc 0x7f473822d2ee bp 0x7fffdadd3660 sp 0x7fffdadd3658 READ of size 8 at 0x60f0000734e0 thread T0 #0 0x7f473822d2ed in rtl::Reference<FmXFormShell>::operator->() const /include/rtl/ref.hxx:216:9 #1 0x7f473821feeb in FmFormShell::IsActiveControl() const /svx/source/form/fmshell.cxx:1227:12 #2 0x7f46dad4d52a in SwView::SelectShell() /sw/source/uibase/uiview/view.cxx:296:40 #3 0x7f46dad496a6 in SwView::AttrChangedNotify(LinkParamNone*) /sw/source/uibase/uiview/view.cxx:572:13 ... #32 0x7f4748944cda in SfxViewFrame::SwitchToViewShell_Impl(unsigned short, bool) /sfx2/source/view/viewfrm.cxx:2552:32 #33 0x7f47488f4e3b in SfxViewFrame::ExecView_Impl(SfxRequest&) /sfx2/source/view/viewfrm.cxx:2637:29 freed by thread T0 here: #0 0x5568ff2f9a7b in operator delete(void*, unsigned long) /home/abuild/rpmbuild/BUILD/llvm-15.0.7.src/build/../projects/compiler-rt/lib/asan/asan_new_delete.cpp:164:3 #1 0x7f4738214346 in FmFormShell::~FmFormShell() /svx/source/form/fmshell.cxx:181:1 #2 0x7f4746b04b9d in SfxDispatcher::FlushImpl() /sfx2/source/control/dispatch.cxx:1412:13 #3 0x7f4746aff767 in SfxDispatcher::Flush() /sfx2/source/control/dispatch.cxx:157:26 #4 0x7f47489100dc in SfxViewFrame::PopShellAndSubShells_Impl(SfxViewShell&) /sfx2/source/view/viewfrm.cxx:1100:24 #5 0x7f47489441a3 in SfxViewFrame::SwitchToViewShell_Impl(unsigned short, bool) /sfx2/source/view/viewfrm.cxx:2538:13 #6 0x7f47488f4e3b in SfxViewFrame::ExecView_Impl(SfxRequest&) /sfx2/source/view/viewfrm.cxx:2637:29 I.e. a new SwPagePreview replaces the old SwView, but the order is that SfxViewFrame::SwitchToViewShell_Impl() starts with deleting the SfxShells of the old SwView in PopShellAndSubShells_Impl(), then it creates the new shell, finally deletes the old shell. Given that the new shell hides hidden characters and the old shell did not, this triggers a size notification for the half-deleted old shell and we crash. Seeing that SwView::AttrChangedNotify() already had code to delay the selection of an SfxShell in the old SwView, fix the problem by introducing a new flag that allows not selecting an SfxShell at all if the old view is known to be deleted in the near future anyway. An alternative would be to make sure that all relevant pointers are maintained using an SfxBroadcaster / SfxListener protocol, but after fixing some 4 of them and that's still not enough, probably it's better to handle this at a higher level. It's also a bit unclear how this "worked" in the past; looks like the old view didn't get the size change notification by accident. Change-Id: I423ff946f8235848cc3a870bc52fcf88a721fd2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160925 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-11-19Extended loplugin:ostr: swStephan Bergmann
Change-Id: I210f61f6d90776b086b7058fb1a831d235699fb7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159670 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-08sw floattable, insert UI: inherit fly width from selected table widthMiklos Vajna
Inline table width defaults to the body frame width, so a hardcoded 2cm default for the fly width is a bit poor. Leave the normal fly insert case unchanged, but if an entire table is selected, then change the default to the table width. Check for the table selection like SwFEShell::NewFlyFrame() does it, and determine if the entire table is selected like SwDoc::MakeFlyAndMove() does it. With this, a default table with a default frame keeps its width on frame insert. Change-Id: Iaf954395a4799222074acd83b5eae52ca75ae0ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159104 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
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-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-12sw floattable: add an AllowTextAfterFloatingTableBreak compat flagMiklos Vajna
Word and Writer normally only wrap the anchor text around the split fly frame on the last page, but as <https://bugs.documentfoundation.org/show_bug.cgi?id=61594#c33> points out, Word has an allowTextAfterFloatingTableBreak compat flag that allows wrapping on all pages. Map this to a Writer compat flag for now, which affects all floating tables in the document. The mailing list thread at <https://lists.freedesktop.org/archives/libreoffice/2023-July/thread.html#90670> suggests that possibly there will be demand to control this on a per-frame level: that's not something Word supports, but we could do an OR of the two settings in the future if wanted. This is just the compat flag itself, layout still has to actually handle it. This compat flag is probably quite rare, so only write it to documents if it's true (the default is false). Change-Id: Ibc431f7dc11710926c115d8e03f760b7f0784304 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157855 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-10-07loplugin:ostr: automatic rewriteStephan Bergmann
Change-Id: I2d09b2b83e1b50493ec88d0b2c323a83c0c86395 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157647 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2023-10-04tdf#157394 sw: fix inserting reference mark with existing selectionMiklos Vajna
Type "myword" in Writer, select it, Insert -> Cross-reference, set Name to "myname", click Insert. The body text now had "myword" twice, instead of creating a reference mark on the existing "myword" word. This went wrong in commit 16075474819696f920979969474aa8300f4af530 (sw, field insert: handle the Content param for refmarks and accept HTML there, 2022-12-21), because it assumed that in case the uno comand is dispatched with some reference text, then that has to be inserted at the cursor position and only then the refmark can be created on that range. It was not expected that the current Writer selection would show up as refmark text. Fix the problem by taking the refmark text from the uno command parameter only in case we don't have selection, which restores the old behavior on manual insert of a refmark and keeps the new uno command parameter working. Note that contrary to the bug title, inserting cross-references did work, but the trouble was the insert of the duplicated word. Change-Id: I1a8b002c2a6f196975a18e01f0e8c457cfb416bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157524 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-08-30tdf#77760 sw floattable: add support for footnotes, UIMiklos Vajna
Import filters could already create footnotes in floating tables, allow the same from the UI. Use IsFlySplitAllowed() as the check, because that already knows rejecting special anchor locations like footnotes/headers/footers in addition to actually decide if this is a split fly or not. Change-Id: Ib9bab7b29d1bea0c15f3d829d16c9edbf1455b6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156275 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-05-24sw floattable: add a DoNotBreakWrappedTables compat flagMiklos Vajna
RTF doesn't break floating table across pages, and there is a matching DOCX compat flag to handle such documents. We can ignore floating table info on the model as a workaround, but that would mean the info is lost on save, so that's not ideal. Instead add a new compat flag that disables fly split at a layout level, which allows both not splitting tables & retaining the model-level info. This commit does the doc model, UNO API, layout & ODT filter, the Word filters are not yet updated. This compat flag is probably quite rare, so introduce a mechanism to only write the compat flag when it's true: this way the majority of the documents don't need to say anything about it and we can assume "false" for them. Also fix two missing xmlTextWriterEndElement() calls in the xml dumper. Change-Id: I32321ec204d7bfe011fcf024b97c906da0db8aae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152190 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-05-15tdf#148979 Added option to update selected fieldTokieSan
Added Uno command UpdateSelectedField, FN_UPDATE_SEL_FIELD to support updating a single selected field Change-Id: Ia1a2387e137f8a672a24056b13234d4275a77ca4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150450 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-04-28Revert "Revert "introduce sw::SpzFrameFormat ...""Bjoern Michaelsen
apparently, in SwHistoryChangeFlyAnchor::SetInDoc, m_rFormat might actually reference a DrawFormat, not a FlyFormat, and that is likely fundamentally broken. But for now, lets just make m_rFormat a sw::SpzFrameFormat -- this already removes some pointless up and downcasting. This reverts commit 52acefd6024ec79f8333ba40eef83816eda3046f. Change-Id: I040d98548bf9ac1c25b93214224eb0812f8cb653 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151150 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
2023-04-27Revert "introduce sw::SpzFrameFormat ..."Stephan Bergmann
This reverts commit 09cdcb5f37bb4e42da7b28db6e757b9f2affed14. It broke at least CppunitTest_sw_uiwriter3 (<https://ci.libreoffice.org//job/lo_ubsan/2756/>), > /sw/source/core/undo/rolbck.cxx:938:46: runtime error: downcast of address 0x61300041fd00 which does not point to an object of type 'SwFlyFrameFormat' > 0x61300041fd00: note: object is of type 'SwDrawFrameFormat' > 00 00 00 00 70 83 cf 09 25 7f 00 00 00 83 47 00 30 61 00 00 40 e5 43 00 30 61 00 00 80 66 5d 00 > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'SwDrawFrameFormat' > #0 0x7f24fca9c5b9 in SwHistoryChangeFlyAnchor::SetInDoc(SwDoc*, bool) /sw/source/core/undo/rolbck.cxx:938:46 > #1 0x7f24fca880f3 in SwHistory::Rollback(SwDoc*, unsigned short) /sw/source/core/undo/rolbck.cxx:1208:15 > #2 0x7f24fcb47832 in SwUndoDelete::UndoImpl(sw::UndoRedoContext&) /sw/source/core/undo/undel.cxx:1031:33 > #3 0x7f24fcb703c2 in SwUndo::UndoWithContext(SfxUndoContext&) /sw/source/core/undo/undobj.cxx:225:5 > #4 0x7f2543b8b57c in SfxUndoManager::ImplUndo(SfxUndoContext*) /svl/source/undo/undo.cxx:712:22 > #5 0x7f2543b8c4f8 in SfxUndoManager::UndoWithContext(SfxUndoContext&) /svl/source/undo/undo.cxx:664:12 > #6 0x7f24fca6a074 in sw::UndoManager::impl_DoUndoRedo(sw::UndoManager::UndoOrRedoType, unsigned long) /sw/source/core/undo/docundo.cxx:696:32 > #7 0x7f24fca6b38f in sw::UndoManager::UndoWithOffset(unsigned long) /sw/source/core/undo/docundo.cxx:731:16 > #8 0x7f24fa830b18 in SwEditShell::Undo(unsigned short, unsigned short) /sw/source/core/edit/edundo.cxx:141:57 > #9 0x7f250088f448 in SwWrtShell::Do(SwWrtShell::DoType, unsigned short, unsigned short) /sw/source/uibase/wrtsh/wrtundo.cxx:45:26 > #10 0x7f24ff7f16e2 in SwBaseShell::ExecUndo(SfxRequest&) /sw/source/uibase/shells/basesh.cxx:651:27 > #11 0x7f24ff7eea14 in SfxStubSwBaseShellExecUndo(SfxShell*, SfxRequest&) /workdir/SdiTarget/sw/sdi/swslots.hxx:2203:1 > #12 0x7f2523fbc059 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) /sfx2/source/control/dispatch.cxx:254:9 > #13 0x7f2523fd1ced in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) /sfx2/source/control/dispatch.cxx:753:9 > #14 0x7f2523f61333 in SfxBindings::Execute_Impl(SfxRequest&, SfxSlot const*, SfxShell*) /sfx2/source/control/bindings.cxx:1060:22 > #15 0x7f252437496b in SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:688:53 > #16 0x7f2524377211 in SfxOfficeDispatch::dispatchWithNotification(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:266:16 > #17 0x7f24cad28dd6 in framework::DispatchHelper::executeDispatch(com::sun::star::uno::Reference<com::sun::star::frame::XDispatch> const&, com::sun::star::util::URL const&, bool, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/dispatchhelper.cxx:163:30 > #18 0x7f24cad27cb2 in framework::DispatchHelper::executeDispatch(com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/dispatchhelper.cxx:120:16 > #19 0x7f24cad29684 in non-virtual thunk to framework::DispatchHelper::executeDispatch(com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/dispatchhelper.cxx > #20 0x7f24e91d386d in unotest::MacrosTest::dispatchCommand(com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /unotest/source/cpp/macros_test.cxx:94:33 > #21 0x7f25319b2012 in testTdf132321::TestBody() /sw/qa/extras/uiwriter/uiwriter3.cxx:982:5 Change-Id: Ibeb181bc38cd6f88df76403cca8a15b45090633f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151027 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-04-24introduce sw::SpzFrameFormat ...Bjoern Michaelsen
- ... as a base class of frame formats allowed into the spz frame format container - with a private ctor and friends SwDrawFrameFormat and SwFlyFrameFormat so only these two classes derive from it - with that, switch over the SpzFrameFormats to only ever allow these types into the container - in followups, likely quite a bit of stronger typing can be introduced. - ultimately, it would be nice to have each SwDrawFrameFormats and SwFlyFrameFormats in their own strongly typed container in the end. Change-Id: Ic30efc1220aded701533c9ca5003d2aaf8bbdaec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150452 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
2023-04-24loplugin:unnecessarygetstr extend to more std::string checkingNoel Grandin
suggested by mike kaganski Change-Id: I5f5f254142767aca45a6101abdd84a0163ca6a34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150936 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-20Allow Copy Hyperlink Location in protected fieldsVojtěch Doležal
This change aims to make it possible to copy hyperlinks from protected fields. That includes showing command and fixing it's broken behaviour, which wasn't detectable because it was hidden. Change-Id: I119e7617fcd7261e437411c86d4c920931e9fe84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150070 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-04-17Remove some unused includesMiklos Vajna
Mostly com/sun/star/frame/Desktop.hpp is unused after inheriting from UnoApiTest. Change-Id: I71b75fa5c880337ff294583b96af09c90b5059c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150514 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-04-05fix leaks when using tools::JsonWriterNoel Grandin
Specifically in sd/source/core/annotations/Annotation.cxx We seem to end up fixing leaks here often. The current tools::JsonWriter API is just very hard to use correctly. So rather return an OString, which is cheap to copy, and push that down into the LOK code. AFAIK that seems to end up requiring less code and less adhoc copying of data (specifically the queueing code in init.cxx was creating copies when converting to std::string). Ideally, we could have some special API to avoid the new strdup() calls in init.cxx, but not sure how to prevent other people from accidentally using that. Change-Id: Ia33437c1bfd9cc2d54dfb99914d1b72db20335f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149963 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>