summaryrefslogtreecommitdiff
path: root/offapi
AgeCommit message (Collapse)Author
2024-09-13[API CHANGE] XDocumentDigitalSignatures: remove deprecated / unused functionsMiklos Vajna
Some functions were already a stub and only aborted on calling them. The *Package* functions were added in commit c9ed2f359a9e899c3046c8151c831e24250fddbb (INTEGRATION: CWS xmlsec08 (1.4.24); FILE MERGED 2005/02/22 13:07:19 mt 1.4.24.1: #i36682# Accept separate Stream for signatures..., 2005-03-10), but it seems nobody called them. This also means that DocumentSignatureMode is now never set to DocumentSignatureMode::Package, so remove that as well. It seems to be unlikely that this non-published service was used by 3rd-party code, since it was specific to the needs of sfx2/ code, not generic functionality that could be useful in other contexts. Change-Id: Icfed9a0e6568f6eb21f9236901af01f1915bf2f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173313 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-10Demonstrate that Embind is not multi-threading capableStephan Bergmann
Enabling the line commented out with "TODO" in embindtest.js would fail with something like > Aborted(Assertion failed: invalid handle: 8) > worker.js onmessage() captured an uncaught exception: RuntimeError: unreachable > RuntimeError: unreachable > at soffice.wasm.__trap (http://localhost:6931/soffice.wasm:wasm-function[446445]:0x8f952b3) > at ___trap (blob:http://localhost:6931/7e945427-df90-49c0-a2b5-28c5ecfbe1a5:16657:54) > at abort (blob:http://localhost:6931/7e945427-df90-49c0-a2b5-28c5ecfbe1a5:1091:5) > at assert (blob:http://localhost:6931/7e945427-df90-49c0-a2b5-28c5ecfbe1a5:731:5) > at HandleAllocator.get (blob:http://localhost:6931/7e945427-df90-49c0-a2b5-28c5ecfbe1a5:7212:11) > at Object.toValue (blob:http://localhost:6931/7e945427-df90-49c0-a2b5-28c5ecfbe1a5:7270:30) > at __emval_call_void_method (blob:http://localhost:6931/7e945427-df90-49c0-a2b5-28c5ecfbe1a5:10183:22) > at soffice.wasm.the_wrappers::com::sun::star::task::XJobExecutor::trigger(rtl::OUString const&) (http://localhost:6931/soffice.wasm:wasm-function[77042]:0xafbb24) > at soffice.wasm.(anonymous namespace)::JobExecutorThread::execute() (http://localhost:6931/soffice.wasm:wasm-function[243534]:0x43250b5) > at soffice.wasm.non-virtual thunk to salhelper::Thread::run() (http://localhost:6931/soffice.wasm:wasm-function[87641]:0xdff5cf) Change-Id: I4e35dc19c5c0f97de7158bf9c07fd31716ffff84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173132 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-09-10cool#9992 lok doc sign: async DocumentDigitalSignatures::ImplViewSignatures()Miklos Vajna
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case to show the signatures dialog read-only, as only that is async. The next step is to make DocumentDigitalSignatures::ImplViewSignatures() async, though that requires all callers of the function to be async, so make DocumentDigitalSignatures::signScriptingContent() async as well. There is also DocumentDigitalSignatures::signPackage(), but turns out that's dead code, so just remove it. Once this is in place, we had a problem that the callbacks tried to interact with libxmlsec, but the dialog was still alive in DocumentDigitalSignatures::ImplViewSignatures() by the time the callback was running, so there were two DocumentSignatureManager instances at the same time, and both assumes it should call the global libxmlsec init/uninit, which resulted in failing to verify the just created signature. Fix this similar to how Tomaz fixed the same problem around pdfium in commit 067a8a954c8e1d8d6465a4ab5fb61e93f16c26c2 (pdfium: only init pdfium library one and destroy on LO exit, 2020-06-03). Change-Id: I3fb63c06195564732e1576dbd755157e676fb762 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173117 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-09cool#9992 lok doc sign: async DocumentDigitalSignatures::signDocumentContent()Miklos Vajna
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case to show the signatures dialog read-only, as only that is async. The next step is to make DocumentDigitalSignatures::signDocumentContent() async, but passing an std::function via the UNO API is tricky. Notice how DocumentDigitalSignatures in xmlsecurity/ also implements sfx2::DigitalSignatures, add a new SignDocumentContentAsync() there and adapt all uses of signDocumentContent() to go with that instead. This requires introducing some lambdas for code after signDocumentContent() in general and for ODF/OOXML specific code in particular, to avoid code duplication. Change-Id: If771ced711041364988af45ad9dd0dd1a2a8660d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173060 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-08-19tdf#161347 Harmonise API docs for UserDefinedAttributes a bitIlmari Lauhakangas
Change-Id: I85ce6e42d292b85ca0a54652dd733b14137afe9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172033 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2024-08-18Add missing property to com.sun.star.graphic.MediaProperties serviceMike Kaganski
An omission from commit 8484e52675052848d2d3ffe07378ce2ad29fd288 "tdf#117427 missing API for determining and loading linked graphic", 2018-05-12, that introduced it. Change-Id: Ibf4c754931f813c5234daa5f7b7c907ed84efdef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172008 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-08-18Emscripten: Clean up SolarMutexStephan Bergmann
...before disappearing through the QApplication::exec() hole, or else the SolarMutex would remain locked forever on the application's main thread. This requires changing SalInstance::ReleaseYieldMutexAll() to SalInstance::ReleaseYieldMutex(bool all). (Further recursive locking of the SolarMutex via SolarMutexGuard instances that would be present on the call stack leading up to the call to QApplication::exec() would be released during the stack unwinding, so just undo the one acquiring done in InitVCL, not all of them.) Change-Id: I9ef57abb7da7f840999700e4eaeeefd2da784645 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171956 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-08-16Fix some copypaste errors in IDL documentationMike Kaganski
Change-Id: I1f35df106ac4e41a7cce244b89b05407d7a14651 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171942 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-08-16Clarify that XText::insertTextContent only accepts range that belongs to itMike Kaganski
This is a widespread error; even out wiki has it. Change-Id: Ia5a8b90a9b69bd868167ed1cfae86572c56e451c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171943 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-08-13tdf#161909: make showing GPG keys only an explicit functionalityMoritz Duge
Before this change, selecting only GPG keys for ODF encrpytion relied on the fact, that all X.509 implementations (nss+mscrypt) implement listing public keys (getAllCertificates) as a stub. See previous change Ia6b8ecb9 Change-Id: Icb36a4cefd60b94407129ff73fe62f9250bfbee5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171639 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-08-09a11y: Clarify XAccessibleHyperlink docMichael Weghorn
The API looks like it was modeled after IAccessible2's `IAccessibleHyperlink` [1]. The doc was saying > /** Returns an object that represents the link anchor, as appropriate > for that link. for both, `XAccessibleHyperlink::getAccessibleActionAnchor` and `XAccessibleHyperlink::getAccessibleActionObject`. However, `XAccessibleHyperlink::getAccessibleActionObject` can be used to get the link target, not the anchor, i.e. is the equivalent of `IAccessibleHyperlink::anchorTarget` while `XAccessibleHyperlink::getAccessibleActionAnchor` is the equivalent of ` IAccessibleHyperlink::anchor`. [1] https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible_hyperlink.html Change-Id: I7e28ac648f698592afb031fcb433f385f902c6a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171635 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-02Expose WorkWindow fullscreen mode via new XTopWindow3Stephan Bergmann
...deriving from the existing XTopWindow2. (Exposing this functionality via UNO is useful e.g. for some embedded LOWA example application.) Change-Id: Ib92f75510b7a2ca26933ea35afcc78882a7804fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171403 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-07-30More exhaustive org.libreoffice.embindtest.StructStephan Bergmann
Change-Id: I91085ef8cd7cd80852c0d0ab4f87fd3226a10a00 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171236 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-07-30Embind: Missing support for UNO polymorphic struct typesStephan Bergmann
Change-Id: I6bb29a951e6e5a3ed7d825172ba7b92ef95a5619 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171228 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-07-29Resolves: tdf#159343 Implement TableRef API token conversionEike Rathke
Change-Id: I1b0d9e002d267e62dc7cbbbfc9f5c5c728374345 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171165 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2024-07-27In embindtest, also test Any included in StructStephan Bergmann
Change-Id: Id268692c750873629c1ceaf232e1e61912164872 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171078 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-07-24tdf#159040: add sign with default certificate to save dialogSarper Akdemir
Include X.509 certificates under Tools->Options->UserData among the keys for signing. Add a new checkbox to Save file dialog, to sign with that selected key easily. The checkbox is disabled if there's no matching key found. Change-Id: I9fc16790c479819cd1f35bcad040d0ebc7c4bdef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170619 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de>
2024-07-21tdf#82716 Add initial implementation of the Histogram Chartvarshneydevansh
- Add the Histogram selection to the UI - Histogram bars showing with No Gap - Convert X and Y axis to group data into bins and frequency - Adjusted failing UI test (tdf138556) as a new chart type was added Change-Id: Id1f161adac943ead5e17c7fbb7e14c9ab7f1655e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167068 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-07-16Add test code for UNO attributes implemented in JSStephan Bergmann
Change-Id: I74f5ef53e7850ab783ae4cd94525a55c63512bd3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170544 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-07-16a11y: Clean up XAccessibleAction docMichael Weghorn
The `XAccessibleAction::getAccessibleActionDescription` and `XAcccessibleAction::doAccessibleAction` doc mentions that an `IndexOutOfBoundsException` exception is thrown when the index is invalid, which is indeed the expected behaviour. However, they mentioned in addition that false or an empty string is returned, which doesn't make sense when exception gets thrown, so drop that. Also slightly improve wording at 2 other places. Change-Id: Idcc1fd669f32ff5a160cb35d2fbf6c2d23f65ab9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170567 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-07-12Turn org.libreoffice.embindtest.Test from singleton to serviceStephan Bergmann
...so that testing its StringAttribute stars out with a known state. And which revealed that the test code in unotest/source/embindtest/embindtest.js was actually wrong in assuming that that UNO attribute would be represented by a JS accessor property, when actually it is represented by a pair of get-/setStringAttribute member functions. Change-Id: I1a6e7c9f26e9a08cd089b7972a23f4c608c6b1bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170414 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-07-11Fully implement the Wasm UNO bridge cpp2uno directionStephan Bergmann
...after 875997c8962da7f6b72950b201186a19b3c20d3a "Properly implement cppu::throwException for Emscripten" had implemented only those parts that were absolutely necessary for that exception throwing. As detailed in the commit message there, wasmcallgen has been extended to additionally generate all the required vtable slot call trampoline code (which cannot be generated on the fly for Wasm, as would be done for other platforms). Consequently, some of the "callvirtualfunction"-centric file names have been changed to "generated" as the output of wasmcallgen is now more general. (And wasmcallgen itself should also be renamed, in a follow-up commit. And when adding to the wasmcallgen code here, some existing parts of its implementation have been cleaned up, too.) There is no direct way to test this half of the Wasm UNO bridge directly from unotest/source/embindtest/embindtest.js, so a new org.libreoffice.embindtest.BridgeTest singleton has been added, which triggers new test code in unotest/source/embindtest/embindtest.cxx that tests the bridge in a way similar to testtools' bridgetest machinery. Change-Id: I521a1d6c2160aedc814f7603b0b99861e5fbd1eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170374 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-07-10sd: slideshow render interface and implementationMarco Cecchetti
Interface and implementation to expose the ability to render the slide's layers to a bitmap. Change-Id: I3da48585e498354592e163d84bd29659b233c255 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170214 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-06-27Improve documentation on key and mouse handlers and listeners.Moritz Duge
Change-Id: I443fd0c53f1fb11df3b4e13806771c2c649cae23 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169473 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Tested-by: Jenkins
2024-06-19Fix typoAndrea Gelmini
Change-Id: Ic182dcf4a1e258d9a7cd450ca45f514a7fb7f262 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169175 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-05-30Implement attribute handlingStephan Bergmann
Change-Id: Ic30d2de582f952555ec672984da78a07a9319443 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168224 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-05-13tdf#157657 - sc: add option to make data validity case-sensitiveBalazs Varga
Add option to check data validity with case sensitive and case insensitive. The default set would remain the original case insensitive mode for data validity. Change-Id: Ic4fe56e2b31b7fc348b742f3b95fb44cd35bc49d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167280 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-05-08Emscripten: Towards a working C++ UNO bridgeStephan Bergmann
...by making the general UNO -> C++ function call case work (modulo handling exceptions, which I'll look into later). Wasm call_indirect unfortunately needs to statically know the call target's signature, so we statically need to know all possible signatures. So introduce wasmcallgen helper to scan the existing UNOIDL API upfront and generate the relevant callvirtualfunction-wrapper.cxx and callvirtualfunction-inst.s code. (The good thing is that the number of different signatures is somewhat limited, each parameter can only be one of i32, i64, f32, or f64. So even if 3rd-party extensions bring along new UNOIDL interface methods, chances are relatively high that the signatures needed for them would already be covered by the existing ones.) Testing this can nicely be done in unotest/source/embindtest/embindtest.js via css.script.Invocation (which internally exercises the relevant code). (Instead of adding individual org.libreoffice.embindtest.StructLong/String etc., it would be nicer to introduce some polymorphic StructOne<T>, but the Emind UNO binding does not support polymorphic structs, so the embindtest.js code would not work.) Change-Id: If829c9e3772bfd27561f3ad743d38a71d11545b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167308 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-04-30Embind: Fix out-param handlingStephan Bergmann
...by using UnoInOutParam in all cases. Some types whose Embind mappings don't employ any smart pointers (like any and sequence) would have worked directly with pointers, but others (like string and type) would have caused Embind errors at runtime. So consistently use UnoInOutParam in all cases (and generate bindings for all the used cases in embindmaker). Change-Id: If26551bf4e99d10748aec1597d6e99f994dfd86e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166854 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-04-24[API CHANGE] a11y: Use XAccessible for relation targetsMichael Weghorn
Use a Sequence of XAccessible rather than its base interface XInterface for AccessibleRelation's TargetSet. As the targets are accessible objects as well, anything other than XAccessible doesn't make much sense. Using XAccessible right away makes that clearer and avoids the need to query the XAccessible interface. (The winaccessibility bridge was already using `static_cast`, relying on the fact that the objects are XAccessibles.) The a11y UNO API is not published, so an API change should be unproblematic. Change-Id: I7f08e98d1ec303d5343d9a7954187cdd71495ebc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166586 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-04-24a11y: Drop note about API being "not yet published"Michael Weghorn
The note about `XAccessibleMultiLineText` being "not yet published" can be misleading, as there's no plan to publish it. All a11y API was unpublished in commit 70626249cd247d9acdad417b8eaf252bae22c059 Date: Thu Nov 29 00:27:03 2012 +0100 API CHANGE a11y unpublishing and add/removeListener rename. The a11y API has never really been picked up by tools vendors, let's not tie ourselves up here for no good reason. This unpublishes all css::accessibility, and dependend API. With that, we can change the rather unfortunately-named add/ removeEventListener to be add/removeAccessibleEventListener, thus not conflicting with the XComponent methods of the same name. Change-Id: I595598c3a8e46415f80b2780f333333174865fe4 There's currently no plan to change that, so drop that note. (Public a11y API is the corresponding platform a11y API and it's LO's responsibility to bridge to that.) Change-Id: I72a3d3be71f68663497364747f143e856d0b80ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166587 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-04-23Fix XAccessibleSelection::getSelectedAccessibleChild docMichael Weghorn
The valid indices to pass as params to `XAccessibleSelection::getSelectedAccessibleChild` depend on the the number of selected children, i.e. the return value of `XAccessibleSelection::getSelectedAccessibleChildCount`. The previously mentioned `XAccessibleRelationSet::getAccessibleChildCount` doesn't even exist. Change-Id: Iaabbc9e3972c7a8274495e19978db9eae36077fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166466 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-04-20Embind: Test and Fix out-param handlingStephan Bergmann
(the types that are meant to be passed directly by pointer will need more thought, to make them actually work) Change-Id: Ia0f2e6f5335fad1140629477e89fc96121c2927e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166318 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-04-19Embind: Consistently represent empty interface references as JS nullStephan Bergmann
The existing code had two issues: For one, e.g. calling a function that returned a null interface reference mapped that to JS null, while querying an object for a non-supported interface via `new css.uno.X...(y)` mapped that to an "empty" JS object instead. (So checking for a non-null reference needed to be done as either `x !=== null` or as `x.is()`, depending on context.) And for another, while calling $is() on a non-"empty" object worked fine, it failed on such an "empty" object (as the Embind internals of that object lacked the $$ property). So change the querying mechanism from the `new css.uno.X...(y)` constructor to a `css.uno.X....query(y)` function call syntax, which now returns JS null when querying for a non-supported interface. (And drop the broken $is method.) Change-Id: I8fa488ab2892423f2a461d9b72db47e1d4df3b8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166255 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-04-12Embind: support .implement()-based JS UNO objectsStephan Bergmann
Change-Id: I3a8bf5986b91b886547cfe57e49275f7c79ddc11 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166020 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-04-11Move org.libreoffice.embindtest from udkapi to offapiStephan Bergmann
...so it will be able to use e.g. css.task.XJob in its tests Change-Id: I15e50c07ee4b1b315d2687dc7e7ea0c00ccc638c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165998 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-04-11tdf#132599 cui offapi sw xmloff: add hyphenation-keep-typeLászló Németh
Support XSL attribute "column" and CSS 4 attribute "spread", stored in loext:hyphenation-keep-type, to give better control over hyphenation-keep. E.g. spread: both parts of a hyphenated word shall lie within a single spread, i.e. when the next page is not visible at the same time (e.g. the next page is not a right page of a book). – css::style::ParaHyphenationKeep is a boolean property now, importing hyphenation-keep = "page" as true. – type of ParaHyphenationKeep, including the new non-ODF types is stored in the new ParagraphProperties::ParaHyphenationKeepType. – default value of ParaHyphenationKeepType is COLUMN for interoperability. – Add checkboxes to Text Flow -> Hyphenation Across in paragraph dialog: * Column (previously: Hyphenate across column and page) * Page * Spread – enabling/disabling them follows XSL/CSS 4/loext, i.e. possible combinations: * No Hyphenation across (hyphenation-keep = "page" and loext:hyphenation-keep-type = "column") * Hyphenation across [x] Column (hyphenation-keep = "page" and loext:hyphenation-keep-type = "page") * Hyphenation across [x] Column [x] Page (hyphenation-keep = "page" and loext:hyphenation-keep-type = "spread") * Hyphenation across [x] Column [x] Page [x] Spread (hyphenation-keep = "auto") – Add ODF import/export – Update DOCX import – Add ODF unit tests Note: recent implementation depends on widow settings: disabling widow handling allows hyphenation across columns and pages not only in table cells. Note: RTF import-only, but not used bPageEnd has been renamed to bKeep. Depending on the RTF test results, likely it will need to disable the layout change, e.g. GetKeepType()=ParagraphHyphenationKeepType::AUTO, if PageEnd uses obsolete hyphenation rule, i.e. shifting only the hyphenated word to the next page, not the full line. More information: – COLUMN (standard XSL value, defined in https://www.w3.org/TR/2001/REC-xsl-20011015/slice7.html#hyphenation-keep) – SPREAD and ALWAYS (CSS 4 values of hyphenate-limit-last, equivalent of hyphenation-keep, defined in https://www.w3.org/TR/css-text-4/#hyphenate-line-limits). Follow-up to commit 9574a62add8e4901405e12117e75c86c2d2c2f21 "tdf#132599 cui offapi sw xmloff: implement hyphenate-keep" and commit c8ee0e8f581b8a6e41b1a6b8aa4d40b442c1d463 "tdf160518 DOCX: import hyphenation-keep to fix layout". Change-Id: I3ac6d9e86d0ed1646f105de8607c0e8ebc534eaa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165954 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2024-04-04a11y: Fix XAccessible{Editable,Multiline}Text docMichael Weghorn
Fix typos and slightly improve wording. Change-Id: Ib58dcb4d6039a55ade76d12d5fed33f4eac84776 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165792 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-03-28Correct typo in commentPatrick Luby
Typo was added in commit 6a049e417b029f3733fcee05f99a3e8875aefdb8. Change-Id: Icfe61fde3b199505ae2107f1b790cf94ac98c456 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165462 Tested-by: Jenkins Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
2024-03-28fix comparison of UIObject's inside UITestsNoel Grandin
using == to compare them doesnt work, because we return a new one with every call to getTopFocusWindow and similar. So add a equals() method to the UNO interface to do the comparison. Change-Id: Ie909fe9b4e84fe07f4ca87bbebf65b56d3da8f78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165436 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-26Consolidate on @since LibreOffice MAJOR.MINOR tagsStephan Bergmann
...so even if 6a049e417b029f3733fcee05f99a3e8875aefdb8 "tdf#160184 ask user if they want to trust an untrusted certificate" gets backported to libreoffice-24-2 towards LO 24.2.3, better keep @since tags consistent and only officially announce it for LO 24.8 Change-Id: I32be31893823ef116603b98df7ce9ec305a96e6e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165306 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-03-26tdf#160184 ask user if they want to trust an untrusted certificatePatrick Luby
gpgme contexts uses the "auto" trust model by default which only allows encrypting with keys that have their trust level set to "Ultimate". The gpg command, however, gives the user the option to encrypt with a certificate that has a lower trust level so emulate that bahavior by asking the user if they want to trust the certificate for just this operation only. Also, abort saving if no certificates are selected which is an indication that the user cancelled the Select Certificate dialog. Change-Id: I20951b1e31b2dcf8adb82243742f8c00fbaca8c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165260 Tested-by: Jenkins Reviewed-by: Patrick Luby <guibomacdev@gmail.com> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-03-20tdf#158885 cui offapi sw xmloff: fix hyphenation at stem boundaryLászló Németh
Add new hyphenation option "Compound characters at line end", equivalent of libhyphen's COMPOUNDLEFTHYPHENMIN, to limit bad pattern based hyphenation of compound words using morphological analysis of Hunspell. * Add checkbox to Text Flow in paragraph formatting dialog window * Store property in paragraph model: css::style::ParagraphProperties::ParaHyphenationCompoundMinLeadingChars * Add ODF import/export (loext:hyphenation-compound-remain-char-count) * Add ODF unit tests Note: slower Hunspell based hyphenation is used only if ParaHyphenationCompoundMinLeadingChars >= 3 (we assume that libhyphen hyphenation patterns cover the smaller distances correctly). Hunpell based hyphenation doesn't introduce new hyphenation breaks, only detects the stem boundaries from the libhyphen based hyphenation breaks. Follow-up to commit c899d3608d30f3ab4c2bc193c1fcd765221614a4 "tdf#158885 sw: don't hyphenate right after a stem boundary", replacing hyphenation zone dependence with the new "Compound characters at line end". Note: preset COMPOUNDLEFTHYPHENMIN values aren't loaded yet from hyphenation dictionaries. Note: the suffix of the last stem of the compound is always hyphenated, i.e. the distance limits only hyphenation inside the stem, not inside its suffix or at the end of the stem before the suffix. Change-Id: I46a0288929a66f7453e3ff97fbc5a0c6a01f038f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164983 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2024-03-06Create an UNO service to do the symbol lookup in swNoel Grandin
which means I can remove one usage of gb_Library_set_plugin_for, which is blocking linking the sw module into --enable-mergelibs=more Change-Id: I8c199421c66de2dcf339ccc2d5cb9340d3bea914 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164429 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-05Keep recently introduced UNOIDL entity unpublished for nowStephan Bergmann
Change-Id: I635e08898bc2627dada89fed5a834a6145915ac9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164431 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: Jenkins
2024-03-05Create an UNO service to do the symbol lookup in sdNoel Grandin
which means I can remove one usage of gb_Library_set_plugin_for, which is blocking linking the sd module into --enable-mergelibs=more Change-Id: I90dae749f777446f67342d121e4dc29b974cb9b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164423 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-05Create an UNO service to do the symbol lookup in scNoel Grandin
which means I can remove one usage of gb_Library_set_plugin_for, which is blocking linking the accessibility module into --enable-mergelibs=more Change-Id: I389fcafd80f1a450befbffdc252be497ba20f6d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164415 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-04tdf#132599 cui offapi sw xmloff: implement hyphenate-keepLászló Németh
Both parts of a hyphenated word shall lie within a single page with ODF paragraph setting fo:hyphenation-keep="page". The implementation follows the default page layout of MSO 2016 and newer by shifting the bottom hyphenated line to the next page (and to the next column, see last note). Note: this is a MSO DOCX interoperability feature, used also in DTP software, XSL and CSS. * Add checkbox/combobox to Text Flow in paragraph dialog * Store property in paragraph model (com::sun::star::style::ParagraphProperties::ParaHyphenationKeep) * Add ODF import/export * Add ODF unit tests New constants of com::sun::star::text::ParagraphHyphenationKeepType, containing ODF AUTO and PAGE (borrowed from XSL), and for the planned extension ParaHyphenationKeepType of ParagraphProperties: – COLUMN (standard XSL value, defined in https://www.w3.org/TR/2001/REC-xsl-20011015/slice7.html#hyphenation-keep) – SPREAD and ALWAYS (CSS 4 values of hyphenate-limit-last, equivalent of hyphenation-keep, defined in https://www.w3.org/TR/css-text-4/#hyphenate-line-limits). Note: the implementation truncates only a single hyphenated line, like MSO does: the pages can end in hyphenated lines (i.e. in the case of consecutive hyphenated lines), but less often, than before. Clean-up hyphenation dialog by collecting "Don't hyphenate" options at the end of the hyphenation settings, and negating them (similar to MSO and DTP), adding also the new option "Hyphenate across column and page": [x] Hyphenate words in CAPS [x] Hyphenate last word [x] Hyphenate across column and page Note: ODF fo:hyphenation-keep has got only "auto" and "page" attributes, while XSL defines also "column". Because of the interoperability with MSO and DTP, fo:hyphenation-keep="page" is interpreted as XSL "column", avoiding hyphenation at the end of column, not only at the end of page. Change-Id: I5c6b7adc0671a5a790568e7bf1d33256e607f85f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164158 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2024-03-01Update the reference rdbs to libreoffice-24.2.0.3Stephan Bergmann
.../master/instdir/sdk/bin/unoidl-read --published \ .../libreoffice-24.2.0.3/instdir/program/types.rdb \ >.../master/udkapi/type_reference/udkapi.idl .../master/instdir/sdk/bin/unoidl-read --published \ .../libreoffice-24.2.0.3/instdir/program/types.rdb \ .../libreoffice-24.2.0.3/instdir/program/types/offapi.rdb \ >.../master/offapi/type_reference/offapi.idl Change-Id: I276ea47ae755a2ce641eef3f508ce1dc5f6af4ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164162 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-29Create an UNO service to do the symbol lookup in toolkit::AccessibilityClientNoel Grandin
which means I can remove one usage of gb_Library_set_plugin_for, which is blocking linking the accessibility module into --enable-mergelibs=more Change-Id: I8664ae1d2da4526cc7eab79b36e1589eb391d7c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163680 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>