The RDF stuff is sloooooooow, so (a) add some caching and (b) fold a
very hot UNO_QUERY call.
To add the caching we need to add a new UNO interface, since
XEnumeration is not amenable to being cached.
Add an optimised getStatementsGraph_NoLock2 that skips the intermediate
enumeration object, and consequently a lot of locking/unlocking.
Cache by OUString key, to avoid expensive OUString<->OString conversion
when looking up entries in the cache.
For the test document in tdf#125706, this takes the time from 7s to 5s for me.
For the test document in tdf#125665, this takes the load time
from 60s to 7s for me.
Change-Id: I207387e975b4f107834edd0974134c481fb4012d
Reviewed-on: https://gerrit.libreoffice.org/74740
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Without that, the system's time zone was used which on DST
transition dates leads to non-existent times when switching
to/from DST. As the calendar use and number parser/formatter nor
conversions or calculations are time zone aware, using not DST
afflicted UTC is the better choice.
Change-Id: I3303c6620d8c4b9d081555c8293954fb1bd67895
Reviewed-on: https://gerrit.libreoffice.org/74386
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
This patch adds two new underlining styles:
- BOLDWAVE: a thicker version of the default WAVE style
- BOLD: a thick straight line
No default setting changed. It's up to the grammar checkers to specify
the underlining style they want.
This contribution to LibreOffice is licensed under the MPLv2/LGPLv3+ dual license.
modified : include/vcl/outdev.hxx
modified : offapi/com/sun/star/text/TextMarkupDescriptor.idl
modified : sw/source/core/inc/wrong.hxx
modified : sw/source/core/txtnode/fntcache.cxx
modified : vcl/source/outdev/textline.cxx
modified : vcl/workben/outdevgrind.cxx
Change-Id: I5629253905ba40c51cc748a7ceeb84170ef5d94c
Reviewed-on: https://gerrit.libreoffice.org/73412
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
This is similar to commit 6bb241ccc6 (ODT
export: fix lost <text:user-field-decl> for fields in tables in headers,
2019-05-29), but here the container we want to ignore (between the
header and the field) is a text frame, not a table cell.
Change-Id: I6e8006fbd666802070cfeb88ca4528c66cc6d559
Reviewed-on: https://gerrit.libreoffice.org/73205
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
The problem was that XMLTextFieldExport::ExportFieldAutoStyle() assumed
that the text of a field anchor is always the toplevel XText, which is
true in case of body vs header text, but false in case header text vs
text-in-table-in-header.
So add an UNO property which exposes the parent of a table cell, this
way text in header (regardless of it's in a table or not) will have the
same XText, leading to writing the necessary <text:user-field-decl>
element for the matching <text:user-field-get> definition.
Change-Id: I077b8d7e9dfae4062539894318637e266b925382
Reviewed-on: https://gerrit.libreoffice.org/73176
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Property "PickListEntry" is available since LO 5.1 but not
mentioned in css.document.MediaDescriptor.
original change has been committed with tdf#95095.
Change-Id: I684e4c76f79c9646af3cac9670790d2b2c3eca97
Reviewed-on: https://gerrit.libreoffice.org/72553
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Such ID is not meant to be presented to the user, but to be an ID
which is stable over application development. Typically, this is
the gtkbuilder ID. Such an ID can then be used to identify a given
well-known accessible object independently from the current locale,
user-visible labelling, or dialog structure. This can then be used
for tailored screen reading (e.g. automatically announcing the
content of a well-known object), or for automatic regression testing
(to check the behavior of well-known objects). Uniqueness within
the window is thus desirable when returning a non-empty string.
This adds XAccessibleXContext2 to augment XAccessibleXContext with
getAccessibleId(). The VCL implementation just takes Window::get_id(),
i.e. the gtkbuilder id, which is enough for most use cases for now.
atk_object_wrapper_new then passes it to
atk_object_set_accessible_id() for AT-SPI technologies to pick it up.
Change-Id: Iea0ad08d036e539dbcfec1a9be026c8da8d17357
Reviewed-on: https://gerrit.libreoffice.org/71743
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
So wall clock time formats less likely display a one-off value,
duration formats are too rarely used if the expected duration is
less than 24 hours.
Change-Id: I9b0872420699b17e3ed3f20993f8cfe02761f862
Reviewed-on: https://gerrit.libreoffice.org/71909
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
Change indefinite article "an" to "a" before
the word unique and some variants.
Change-Id: Ia14a6f3b9ec6b257ad8bed3b089faa9b6f07d44f
Reviewed-on: https://gerrit.libreoffice.org/70174
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
even if it's larger than max sidebar width (increase max sidebar width in that case).
Change-Id: I2efbd546596f756df205196fae3e545beddd2f7c
Reviewed-on: https://gerrit.libreoffice.org/69551
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Adds a visitor for svgio for visiting svg nodes and create something
useful from them.
Basic draw commands - a tree of draw commands (with sub-pixel
precision support) just to store a simple definition for drawing.
Adds a svg draw visitor and create draw commands from the svg
structure and expose the commands through UNO API.
Change-Id: I073e891a2cffdd76d4e3b838590e3a19c998e9bf
Reviewed-on: https://gerrit.libreoffice.org/68770
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
The problem is that when loading from a stream, there is no BaseURL and
also no storage for the document.
Due to the lack of BaseURL, the sfx2::createBaseURI() throws and loading
RDF metadata fails, which also pops up an annoying warning dialog.
Try to handle this in a similar way than a newly created document (see
GetDMA()), by using the vnd.sun.star.tdoc scheme URL for the document;
this however currently requires that the document has a XStorage, which
is also not the case here.
So add another UNO method to tdoc UCP's tdoc_ucp::ContentProvider,
to split out the creation of the tdoc schema URL from the creation of
the ucb Content, to get rid of the XStorage requirement.
Change-Id: Ica62743f9d21db0b1464b70db1a62ebc61989ef8
Reviewed-on: https://gerrit.libreoffice.org/67882
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
btLr is not a writing mode that would be used by any natural language,
the reason it makes sense to support this is that the Word UI makes it
easy to rotate text 90 degrees counter-clockwise for Latin (lrtb) text,
which then triggers this feature. This is common in the first column of
tables to create text that looks like a row header.
An import-time workaround to handle <w:textDirection w:val="btLr"/> was
added in commit c2d1ab7316 (tentative fix
for fdo#30474#, 2010-11-26), but rotating text at a text portion level
has various unwanted side effects, just counting my own fixes, I had 7
workarounds on top of that workaround to hide problems where the root
cause is this missing writing direction in sw core.
This commit just extends the sw core doc model, everything else is to be
done in follow-up commits.
Change-Id: I89e02cd4b40de78699dbf14885fc128e870de3b8
Reviewed-on: https://gerrit.libreoffice.org/67717
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Do it similar to SwXTextView::getSelection(), so that
SwView::GetShellMode() determines when an image is selected (and
otherwise assume text selection).
Change-Id: I717e1358428daba842309260b54f82b62a0aaec1
Reviewed-on: https://gerrit.libreoffice.org/66879
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
The use-case is that the user pastes content and custom postprocessing
is necessary for the pasted content. This is not easy by default, since
the cursor is at the end of the pasted content, so the start is not
known -- even if you intercept the paste UNO command.
Precisely tracking the start is possible when using the internal API,
SwReader::Read() does something similar already to track the undo range.
Only expose the text selection after paste (as a start), but design the
API in a way so that other pasted content type (e.g. image) can be
added in a backwards-compatible way later.
Change-Id: If35bda4244cc417e4858124fb75f7608b95fc556
Reviewed-on: https://gerrit.libreoffice.org/66807
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
By mistake EmbedLatinScriptFonts, EmbedAsianScriptFonts and
EmbedComplexScriptFonts properties were using the type short in
the Settings.idl, but everywhere in the code the props were already
using the type bool as intended. This change fixes this.
Change-Id: Idc717b592477ada3ea968e08a5f2593b92d2f454
Reviewed-on: https://gerrit.libreoffice.org/65886
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Default unset bit now does not accept/skip group separators in
numbers.
See .idl description comment for why this is incompatible and how.
This actually uncovered a "bug" (or at least unexpected) in the
Math parser that parsed "0," as one entity instead of "0" followed
by ",". As obtaining the text form appends a blank after each
entity the sw/qa/extras/rtfexport/rtfexport.cxx testMathEqarray()
testcase had to be adapted.
Change-Id: I2b605742ab3d8a9bb81ad6880faf050535dc80fa
Reviewed-on: https://gerrit.libreoffice.org/64270
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
...and has always represented the time of day in 100th of seconds. When
tools::Time had been changed to 64 bit nanoseconds in
9830fd36db "date/time IDL datatypes incompatible
change", conversion between the two has apparently been forgotten, so that
CppunitTest_desktop_lib under (new-in-Clang)
-fsanitize=implicit-signed-integer-truncation failed with
> xmlsecurity/source/component/documentdigitalsignatures.cxx:536:38: runtime error: implicit conversion from type 'sal_Int64' (aka 'long') of value 192536379741069 (64-bit, signed) to type '::sal_Int32' (aka 'int') changed the value to 1585795981 (32-bit, signed)
> #0 in DocumentDigitalSignatures::ImplVerifySignatures(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, DocumentSignatureMode) at xmlsecurity/source/component/documentdigitalsignatures.cxx:536:38 (instdir/program/libxmlsecurity.so +0x488319)
> #1 in DocumentDigitalSignatures::verifyDocumentContentSignatures(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&) at xmlsecurity/source/component/documentdigitalsignatures.cxx:296:12 (instdir/program/libxmlsecurity.so +0x484ea6)
> #2 in non-virtual thunk to DocumentDigitalSignatures::verifyDocumentContentSignatures(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&) at xmlsecurity/source/component/documentdigitalsignatures.cxx (instdir/program/libxmlsecurity.so +0x4890fa)
> #3 in SfxObjectShell::ImplAnalyzeSignature(bool, com::sun::star::uno::Reference<com::sun::star::security::XDocumentDigitalSignatures> const&) at sfx2/source/doc/objserv.cxx:1368:47 (instdir/program/libsfxlo.so +0x3866a04)
> #4 in SfxObjectShell::ImplGetSignatureState(bool) at sfx2/source/doc/objserv.cxx:1397:74 (instdir/program/libsfxlo.so +0x3869118)
> #5 in SfxObjectShell::GetDocumentSignatureState() at sfx2/source/doc/objserv.cxx:1575:12 (instdir/program/libsfxlo.so +0x3863e57)
> #6 in SfxObjectShell::CheckForBrokenDocSignatures_Impl() at sfx2/source/doc/objmisc.cxx:974:38 (instdir/program/libsfxlo.so +0x3812535)
> #7 in SfxObjectShell::CheckSecurityOnLoading_Impl() at sfx2/source/doc/objmisc.cxx:924:5 (instdir/program/libsfxlo.so +0x38120bc)
> #8 in SfxObjectShell::FinishedLoading(SfxLoadedFlags) at sfx2/source/doc/objmisc.cxx:1072:9 (instdir/program/libsfxlo.so +0x3818a89)
> #9 in SwDocShell::LoadingFinished() at sw/source/uibase/app/docsh.cxx:1200:5 (instdir/program/libswlo.so +0xcfd4f08)
> #10 in SwDocShell::Load(SfxMedium&) at sw/source/uibase/app/docshini.cxx:582:13 (instdir/program/libswlo.so +0xd091a39)
> #11 in SfxObjectShell::LoadOwnFormat(SfxMedium&) at sfx2/source/doc/objstor.cxx:3053:20 (instdir/program/libsfxlo.so +0x3895e54)
> #12 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:725:40 (instdir/program/libsfxlo.so +0x389bdd5)
> #13 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1795:36 (instdir/program/libsfxlo.so +0x3a40e1e)
> #14 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at sfx2/source/view/frmload.cxx:688:28 (instdir/program/libsfxlo.so +0x40c30c0)
> #15 in framework::LoadEnv::impl_loadContent() at framework/source/loadenv/loadenv.cxx:1149:37 (instdir/program/libfwklo.so +0x1520131)
> #16 in framework::LoadEnv::startLoading() at framework/source/loadenv/loadenv.cxx:383:20 (instdir/program/libfwklo.so +0x1510b16)
> #17 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/loadenv/loadenv.cxx:169:14 (instdir/program/libfwklo.so +0x150c7c8)
> #18 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx:619:12 (instdir/program/libfwklo.so +0x166f1ce)
> #19 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx (instdir/program/libfwklo.so +0x166f3da)
> #20 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unotest/source/cpp/macros_test.cxx:50:60 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x8f176)
> #21 in DesktopLOKTest::loadDoc(char const*, LibreOfficeKitDocumentType) at desktop/qa/desktop_lib/test_desktop_lib.cxx:215:19 (workdir/LinkTarget/CppunitTest/libtest_desktop_lib.so +0xf2ca0)
> #22 in DesktopLOKTest::testGetSignatureState_Signed() at desktop/qa/desktop_lib/test_desktop_lib.cxx:2254:37 (workdir/LinkTarget/CppunitTest/libtest_desktop_lib.so +0x185a42)
[...]
Change-Id: I935f2e37ce6bcb0448f89e75a4f34f78ba54f58d
Reviewed-on: https://gerrit.libreoffice.org/63136
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Recognized parameters of aExtraFontProperties were not implemented as
documented. Update the document to reflect current implementation.
Change-Id: I001beb8843161c7633830b7ec64a79695ea0f091
Reviewed-on: https://gerrit.libreoffice.org/62510
Tested-by: Jenkins
Reviewed-by: Mark Hung <marklh9@gmail.com>
Also needed to extend XCertificateCreator with a new method
"addDERCertificateToTheDatabase".
Change-Id: I7b4df65365893bd5a0628aeec30b3156584849fe
Reviewed-on: https://gerrit.libreoffice.org/62273
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
new XCertificateCreator interface which can be used to create a
certificate and a associated private key, both in DER format
Change-Id: I24caf053f1f2b7357a836047b88b4ce418470eac
Reviewed-on: https://gerrit.libreoffice.org/61912
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
This will write log messages as plain text (no timestamp and other stuff
like PlainTextFormatter).
Warnings and errors will be prefixed accordingly.
Change-Id: Id82512d7dd3907a4c7cd69a963a375966189dc20
Reviewed-on: https://gerrit.libreoffice.org/62370
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Based on implementation, explain the definition of logical
advancements for RTL and LTR case and remove incorrect part.
Logical advancements are distances to the edge instead of
widths of characters, so summing all do not yield the
total.
Change-Id: I437f490e5025c2124238e8cad506a966d7bc792c
Reviewed-on: https://gerrit.libreoffice.org/61461
Tested-by: Jenkins
Reviewed-by: Mark Hung <marklh9@gmail.com>