With LibreOfficeKit (LOK) headers in place, it would be possible to
create C++ applications that can access LibreOffice functionality
without building LibreOffice, only by installing SDK and build tools.
Change-Id: I8efc8ac1cec7b3b89e4d7eb2c8d15afeb595672c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134863
Tested-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
if the paragraph, which uses transformation (Arch, Circle, etc.),
contains multiple texts and the first text is only a space character,
then we use the transparency value of the following text.
Change-Id: Ia87242e34b495802cbecf5dc0dd13d490312f435
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169351
Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de>
Tested-by: Jenkins
Previous patches [1] and [2] introduced a contrast white line to the selection overlay that was supposed to affect only Calc, but it ended up affecting other areas of LO, such as the star math editor as well as Writer.
This patch makes sure the changes only affect cell selection in Calc.
[1] dc243f0122
[2] 3c0db89809
Change-Id: Ie910120e4b71c55ad8c00a905e1204e291a711f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169292
Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
Tested-by: Jenkins
This commit adds an --enable-cli/--disable-cli switch to autoconf to
control generation of the old CLI bindings (Windows only). It is
enabled by default, to not be a breaking change to users just yet.
Over time, when the old bindings are deprecated in favor of the new
.NET bindings, it could be set to disabled by default.
Change-Id: Ib60b372459cb0c735275ed17d004d037279357eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168751
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
When using the qt5 or kf5 VCL plugins on X11/XWayland
(as can be forced using QT_QPA_PLUGIN=xcb on Wayland),
ensure that a QWindow exists for the QtObjectWidget
created in the QtObject ctor, as that is needed for
OpenGL rendering.
This makes OpenGL Impress slide transitions like the
"Tiles" one work.
Don't force native windows on Wayland, as that causes
other issues, see also QtFrame::ResolveWindowHandle
and the bugs referenced in there.
Change-Id: I8fac34d2f1cc7cc723ad4570546276a05641dd88
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169348
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
As described at [1], "QWindow supports rendering using
OpenGL [...]".
Using a QWindow for OpenGL rendering had been introduced
in
commit 56b19f9a81
Date: Fri Dec 14 12:44:20 2018 +0300
tdf#121247, tdf#121266 KDE5: Add basic support for OpenGL
, but then
commit 4366e06052
Date: Tue May 24 11:34:59 2022 +0200
tdf#148864 Qt switch QtObjectWindow to QWidget
had switched from QWindow to QWidget, and OpenGL slide
transitions like the "Tiles" one stopped working.
At least for qt6, which now uses QtMultimedia for video
playback (see the tdf#145735 commits), issues like tdf#148864
("Kubuntu 22.04 LTS LibreOffice Impress 7.3.3 Fails to Play Embedded
Videos") and tdf#125517 ("LO Impress: Can't stop presentation
with video and go to the next slide") related to video playback
appear to be no problem, so switch back to using QWindow there.
Explicitly set the window background to transparent
in `QtOpenGLContext::ImplInit`, as not doing so
caused slide content in presentation mode to not
be updated properly when testing with the attachment 183972
from tdf#149461 on Wayland.
(This was not an issue when running on XWayland, i.e.
with QT_QPA_PLATFORM=xcb).
With this in place, OpenGL transitions work with qt6.
With QT_QPA_PLATFORM=xcb, it looks all fine in my tests
on Debian testing.
With QT_QPA_PLATFORM=wayland, the slide text from attachment 183972
sometimes incorrectly showed up for a fraction of a second after
the slide transition finished, then disappeared again until
it was triggered to show as it should (e.g. by pressing the right
arrow key), s. screencast attachment 194899 in tdf#149461.
A multitude of warnings like the following are shown on stderr
in that case, which don't show up for xcb:
warn:vcl.opengl:47352:47352:vcl/source/opengl/OpenGLHelper.cxx:709: GL Error 0506 (invalid framebuffer operation) in file /home/michi/development/git/libreoffice/slideshow/source/engine/opengl/TransitionImpl.cxx at line 398
That looks like a separate issue to me, however which would
need further analysis.
Keep using the QtObjectWindow approach for qt5 to
not regress on video playback.
[1] https://doc.qt.io/qt-5/qtgui-index.html#opengl-and-opengl-es-integration
Change-Id: I6e1eb989254e2cbbfada6f719ee0518571df4c42
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169347
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Move setting the layout for the QtObjectWidget
from the QtObjectWidget ctor to the QtObject ctor,
in preparation to also use that for QWidgets other
than the QtObjectWidget.
Change-Id: Ifbb0d853659bc8099bed40db2bbe8a8778077aa2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169346
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
so we have the implementation in one class, instead of bouncing
back and forth between two.
Change-Id: I851578ff553b01fb7d48cf5aa8f7a2d795496751
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169340
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
SvxAutoCorrDoc::ChgAutoCorrWord() implementations: correct multiple patterns
* include/editeng/svxacorr.hxx, editeng/source/misc/svxacorr.cxx:
- Add classes SvxAutocorrWordList::{Iterator,WordSearchStatus}.
- Make SvxAutocorrWordList::SearchWordsInList() return WordSearchStatus
so the search can be continued with the added
SvxAutocorrWordList::SearchWordsNext() method.
- Make SvxAutoCorrect::SearchWordsInList(), and its lcl_SearchWordsInList()
companion, return WordSearchStatus propagated from
SvxAutocorrWordList::SearchWordsInList().
- SvxAutocorrWordList::WordMatches():
The existing mechanism of preventing collision of patterns like in
tdf#83037 (→ and ← and ↔ autocorrect collisions) was by storing
the matched string of wildcard pattern back to the list without
overwriting existing one. If the matched string was found in the list,
it would just be treated as no matching.
While this worked well for collision prevention, it caused failure
on the new exhaustive wildcard pattern visiting method when autocorrecting
the second text chunk with the same content. In such situation,
all intermediate stages of corrections of the first text chunk would be
recorded into the list. And, in the second chunk, the first stage would
just be applied from the recorded pattern, but all the next stages
would be refused due to the "collision" with the recorded patterns.
Moreover, the new method would cause the list to grow more quickly
as the autocorrections are done.
To solve the problem, just "peek" for the collision instead of
actually storing it. And SvxAutocorrWordList::ContainsPattern()
is added for this purpose.
* editeng/qa/unit/core-test.cxx:
- Modify TestAutoCorrDoc::ChgAutoCorrWord() to iterate through all patterns,
instead of finishing at the first one.
* editeng/source/editeng/edtspell.cxx:
- Ditto for EdtAutoCorrDoc::ChgAutoCorrWord().
* sw/source/core/edit/acorrect.cxx:
- Ditto for SwAutoCorrDoc::ChgAutoCorrWord().
- SwAutoCorrDoc::ChgAutoCorrWord(): Remove old dead code for autocorrection
on text with redlines.
* sw/qa/extras/uiwriter/uiwriter6.cxx,
+sw/qa/extras/uiwriter/data/tdf158454.odt:
- Add unit test "testTdf158454".
Change-Id: I8fb4a628a977b79b0ed2f239fd3749f15823b5df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160160
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
we need to transform the location of the wallpaper rect to match where
we want the wallpaper to start tiling from.
regression from
commit 3cbe3a0259
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Mon Jun 14 15:05:59 2021 +0200
tdf#101083 speed up SVG rendering with pattern fill
Change-Id: I624edd63135875fdc9526015f0f5642d5c694934
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169332
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Currently it reports pretty much everything as
"The specified device is invalid."
but clearly we can do better.
Try not to change the public API of libcmis too much; it has 2 string
members in libcmis::Exception, add a bunch more type values such as
"dnsFailed", "connectFailed", "connectTimeout", "transferFailed".
Also there were 2 HttpSession functions that convert libcmis::Exception
to CurlException - very odd, was apparently done to appease Coverity,
but the exception specifications that caused Coverity to complain were
removed from libcmis anyway; let's remove that, every caller of these
functions i looked at would immediately convert it back to
libcmis::Exception anyway.
Change-Id: Iee853af8bb541e6b071b75d593b6c031f67a886d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169335
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
This change fixes an issue causing Writer to corrupt layout for vertical
text following a fly-out. This bug manifested as overlapping or
incorrectly-reordered lines of text, sometimes appearing many pages
after the initial fly-out.
Change-Id: I05abdbf3ff122398b995220ec4e410434931fdf9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169307
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
At some stage needs an SwFormat::dumpAsXml() but that's not yet done
here.
Change-Id: I10d2e0f653fc6d0e351bc0aa17f98de8f01766fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169337
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
in the Style inspector.
Set the cursor at the end of the highlighted text.
Change-Id: I68af50d5bcf91c3cfe603aeef9e88c088b391590
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169259
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
This allows to send status messages separately from statechanged;
this is needed in Impress to notify about any mode update, not only
masterview-related.
Also send SlideMasterPage updates automatically from core.
Change-Id: I0a50dbe61a5f2f28cd418eb4416819a6a76810b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169314
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Show this in the dialog, which requires extending DAVException to store
2 strings for this case.
Store it in the Exception::Message member of
InteractiveNetworkConnectException, which appears to be unused.
Add another UI string ERRCODE_INET_CONNECT_MSG so that the text can be
shown optionally in the dialog.
Change-Id: Iaf139d77051e7480113eb4df82ef40eb498f329e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169278
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
...with a new Module.catchUnoException JS function that can be used in a JS
catch block to provide the thrown UNO exception as an Any. (For a non-C++
exception, it rethrows the exception, and for a non-UNO C++ exception it maps it
to css.uno.RuntimeException.)
The implementation reuses parts of bridges/source/cpp_uno/gcc3_wasm/, which have
been moved to a new StaticLibrary_emscriptencxxabi.
Change-Id: I708fe6121c43a1b9736de5dff449f6c4f32a45f3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169325
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Set accessible names for the items in the "Borders"
control in the Calc Sidebar, "Properties" deck, section
"Cell Appearance". Use the same text as is used for the tooltip.
With this in place, Orca now announces what each item
is about when using the gtk3 VCL plugin, instead of just saying
"Button".
Move the gla11y suppressions to the .false file, as they
have been dealt with now, see doc at [1].
[1] https://wiki.documentfoundation.org/Development/Accessibility
Change-Id: Id1856e4b116acad9bf6d14132bc6d9c91a01ae06
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169321
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Add API to set the accessible name of toolbar items
and implement it for the VCL, gtk3 and gtk4 implementations.
This will be used in an upcoming commit to set a11y names
for the border items in Calc's sidebar.
Change-Id: I958390d8736da8f1281f91586cacbefb5975e229
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169320
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Export the bugdoc to PDF, the orange "date" lost its font color.
This went wrong in commit 82d90529dc (sw
content controls, rich text: add initial PDF export, 2022-09-12), we
export the content control as a PDF form widget by default since then.
Various properties like checkbox status and dropdown items were handled
already, but not text color.
Fix the problem by mapping the SwFont color to the widget descriptor
color, this fixes the color of the already filled in content of the
widget.
Note that given this is a property of the form widget, the color is
correctly applied also to strings filled in via PDF readers, interacting
with the form.
Change-Id: Id3e8611e415c0d571afe1cd14561c97b8a910ce9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169317
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
XMATCH functions.
Introduce a value "3" for parameter Match_mode for Regular Expression mode
in XMATCH and XLOOKUP, to seperate the original Match_mode value "2",
which was used for both, Wildcard and Regular Expression mode as well.
Note: "The ODF TC will follow that in the specification of these functions and
at the same time specify, that the host dependent properties HOST-USE-REGULAR-EXPRESSIONS
and HOST-USE-WILDCARDS (file format table:use-regular-expressions and table:use-wildcards)
will be ignored by these functions."
https://issues.oasis-open.org/browse/OFFICE-4154
Also Microsoft Office will introduce this new value for Match_mode in XLOOKUP and XMATCH:
https://insider.microsoft365.com/en-us/blog/new-regular-expression-regex-functions-in-excel
Follow-up commit: 0ca20dca33
(Related: tdf#127293 Add unit test for xlookup regex search mode)
Change-Id: Ibcbfa4cf227ab9a9d317d94c1bab8254b1f91822
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169275
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Tested-by: Jenkins
The method itself clears its own guard; the caller still holding the
guard results in hangs seen in some Java code.
See also commit e2bfc34d14 (Reimplement
OleComponentNative_Impl to use IGlobalInterfaceTablem 2024-03-11).
Change-Id: Ib22e71e7500ccceb946f7b1d6606f8f61ae2afe8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169315
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Fix typo on variable RID_SVXSTR_TABLE_PRESET_OUTER and move comments
about consolidating border tooltip strings to solenv/sanitizers/ui/modules/scalc.suppr
See comments on Gerrit for more information: https://gerrit.libreoffice.org/c/core/+/169052
Change-Id: Ic5283e568e13023242858850dbce8922e2c80d8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169308
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
<https://github.com/emscripten-core/emscripten/>
system/lib/libcxxabi/src/cxa_exception.h has two different definitions of that
struct, a short one for when __USING_EMSCRIPTEN_EXCEPTIONS__ is defined, and a
long one for the other case. In 7175431a4b
"Implement exception catching", I had naively copied the short version, assuming
that __USING_EMSCRIPTEN_EXCEPTIONS__ was something that sounded like it would be
defined with --enable-wasm-exceptions. But some debugging of actual exception
handling now showed that the assumption had apparently been wrong (though I
still have no idea about the semantics of that __USING_EMSCRIPTEN_EXCEPTIONS__
define, and when it would or would not be defined), and that I had copied the
wrong version.
The relevant test code
> try {
> const ret = invoke.invoke('throwRuntimeException', params, outparamindex, outparam);
> console.assert(false);
> ret.delete();
> } catch (e) {
> const [type, message] = getExceptionMessage(e);
> console.assert(type === 'com::sun:⭐:reflection::InvocationTargetException');
> console.assert(message === undefined); //TODO
> //TODO: inspect wrapped css.uno.RuntimeException
> decrementExceptionRefcount(e);
> }
in unotest/source/embindtest/embindtest.js had apparently happened to not cause a
crash with the wrong version of __cxxabiv1::__cxa_exception, but had also
happened to not detect the mistake due to the relevant parts being commented out
with TODO (because, in turn, proper UNO exception catching is still lacking in
our Embind-based JS binding).
Change-Id: I718087c7ed2c17808696267ece17237d5cdf2f54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169305
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
OUStringToNSString() returns an autoreleased NSString so it
needs to be retained for the life of maOfficeOnlyTypes.
Change-Id: Ic3777f818b7cada8e88e97965531fc0a7f2e825c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169284
Tested-by: Jenkins
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
...after 4eb9cde4db "libxslt: uprade to 1.1.41",
> external/libxslt/ExternalPackage_libxslt.mk:28: *** file workdir_for_build/UnpackedTarball/libxslt/libexslt/.libs/libexslt.so.0.8.21 does not exist in the tarball. Stop.
at least during an Emscripten cross-build
Change-Id: I7fcde7f8708fba68d5d9b751420e402c5da41f3d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169280
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins