I had to replace "scheherazade" with "Noto Naskh Arabic", which
is a similar font, in vcl/source/font/PhysicalFontCollection.cxx
in order to avoid the following assert in gerrit_linux_clang_dbgutil
(not reproduced locally):
[_RUN_____] testBtlrCellChinese::TestBody
WPSDocument::isFileFormatSupported()
warn:sal.file:2772196:2772196:sal/osl/unx/file_misc.cxx:397: Invalid directory URL
warn:basic:2772196:2772196:basic/source/uno/namecont.cxx:949: Cannot access extensions!
warn:sal.file:2772196:2772196:sal/osl/unx/file_misc.cxx:397: Invalid directory URL
warn:basic:2772196:2772196:basic/source/uno/namecont.cxx:949: Cannot access extensions!
cppunittester: /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/vcl/source/gdi/impglyphitem.cxx:318: void checkGlyphsEqual(const SalLayoutGlyphs &, const SalLayoutGlyphs &): Assertion `l1 == l2' failed.
Change-Id: I26cd80cee639cf0e17d7e71c3abdc49bf984de9c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202933
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Library_simplecanvas contains the SimpleCanvasImpl
class, which implements the XSimpleCanvas UNO interface
and is the implementation for the
"com.sun.star.rendering.SimpleCanvas" service,
defined in the component file.
However, none of these are actually used anywhere.
Therefore, drop the simplecanvas library altogether.
Change-Id: I301b3a42dfb6eacf6a9ef3a4851ed1d38f16ec66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208852
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
In the past, LibreOffice cross platform .NET support could correctly
build binding files, but these files were not shipped. This patch fixes
the issue, and ships these files, as described below:
$ ls instdir/sdk/dotnet/
LibreOffice.Bindings.0.1.0.nupkg
nuget.config
$ ls instdir/program/dotnet
net_basetypes.dll
net_bridge.runtimeconfig.json
net_uretypes.dll
net_bridge.dll
net_oootypes.dll
Change-Id: I947aafbf45436855dfdb7ab5f3268f42b8a66511
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208294
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
Adds an XBrowseNode implementation for JavaScript scripts using the
QuickJS bindings so that JS files can be found and executed from the
macro organizer. Unlike in Python macros, the entire source file becomes
a single macro instead of trying to find function definitions in the
source.
Change-Id: I73d0c6e6fc6bb7ffd4f6164d1f1887d03bfdfe62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203219
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Somewhat loosely based on <https://github.com/allotropia/zetajs>.
Main part that is still missing from this WIP commit is implementing UNO objects
in JS. (And there are a number of TODOs throughout, mostly regarding error
handling.)
===
Comments from Neil Roberts:
This patch was cherry-picked from
1cd8ad398b38763cb3578f1305a28e7774163714 in Collabora’s repo. The
following changes were made in order to get it to pass the CI:
* The unit test has been modified to continue using embindtest instead
of testuno.
* The name of the external library is quickjs instead of qjs because a
different patch is used to add the external QuickJS package.
* The asserts on argc that were captured in the lambda function have been
moved outside of the lambda function in order to avoid having an unused
capture on release builds. The argc parameter has then been marked as
[[maybe_unused]].
* The constructors for JSClassDef have been changed to consistently use
{ } brace initialisers because otherwise it fails to build on macOS.
===
Change-Id: I8810e43fe5f3e4b1a53a654070fe87e95f51231a
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/190
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203963
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Adds a set of helpers to implement a script provider where the script
files are the entire macro. The provider only needs to make a subclass
of the abstract SingleScriptFactory class to provide the filename
extension, language name and a method to convert the contents of a file
to an XScript. The parts about handling file browsing and reading the
file contents are in the shared helper code.
This is based on the script provider from Luno.
Change-Id: Id39f3a07e887898650b0d77ec493011fb5acc858
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203216
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
commit 430f603c6a
Author: Tor Lillqvist <tml@collabora.com>
Date: Tue Feb 25 19:52:15 2025 +0200
Make --enable-headless possible also on Windows, for CODA-W
[...]
In the --enable-headless case, freetype, fontconfig and cairo are
built. For now, cairo is built as a Library (DLL), but fontconfig and
freetype as StaticLibrary. Possibly should change these to DLLs,
too. (See preceding commits.) Do not build the vclplug_win.
had introduced support for --enable-headless on
Windows.
As described in the commit message, using the
--enable-headless autogen switch would result in vclplug_win
(i.e. the VCL plugin that provides the UI on Windows)
automatically getting disabled unconditionally.
As described in tdf#170932, this e.g. prevents using
headless mode for document conversion while still
allowing to start LO with a UI with the same build.
Separate the two features:
No longer disable vclplug_win automatically anymore when
--enable-headless is used.
Instead, introduce a new separate --disable-win
autogen switch to explicitly disable the win vcl plugin
(similar to other existing autogen params like
--disable-gtk3 to disable the gtk3 VCL plugin on Linux).
Add that new --disable-win switch to the
CODAWindows distro config, to achieve the original
goal of both enabling headless and disabling vclplug_win
for that build configuration.
Change-Id: I54bc34981327244aa1c8b0aa5b6277ffd1fb4531
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202043
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@iki.fi>
Manually replace GentiumBasic with NotoSans in tdf66597-3.odt
Test testTdf66597_3 still fails if
commit d337222359
Author: Khaled Hosny <khaledhosny@eglug.org>
Date: Sun Apr 29 01:00:20 2018 +0200
tdf66597: Fix a typo in detecting cluster start
is reverted with
Test name: (anonymous namespace)::testTdf66597_3::TestBody
equality assertion failed
- Expected: 4
- Actual : 0
- Number of ActualText entries does not match!
Change-Id: I6634ce703e1db81d44ea12d745464e8881fa2e7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199086
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
- Introduce 'SvxAutoFormat' which combines the common funtionality of
Writer and Calc Autoformats.
- Replace module specific 'AutoFormat' dialog and preview with shared
dialog and preview in 'svx'.
- tdf#49437: Load and Save Autoformats through XML instead of
'autotbl.fmt'.
- New Dialog to edit and create table styles shared b/w Writer and Calc.
Change-Id: I7fa108e527141c05703e0e14298eea818fd10378
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190024
Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
We variously look at both ENABLE_HEADLESS and USE_HEADLESS_CODE to
check for the --enable-headless case. Are both really needed?
In the --enable-headless case, freetype, fontconfig and cairo are
built. For now, cairo is built as a Library (DLL), but fontconfig and
freetype as StaticLibrary. Possibly should change these to DLLs,
too. (See preceding commits.) Do not build the vclplug_win.
Windows-specific fixes to the headless vcl code, and headless-specific
fixes to some Win32 vcl code. Use <tools/UnixWrappers.h> where
appropriate instead of <unistd.h>, <sys/mman.h>, etc.
fontconfig already has code for Windows, but likely things will break
on machines with a non-ASCII name for the Windows fonts directory, or
for funky font names. Should eventually make it use the new
<tools/UnixWrappers.h>.
Change-Id: Id3a1313083b1c7c44b0b26819c1ffb5138e15bc4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194573
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196980
Tested-by: Tor Lillqvist <tml@iki.fi>
Reviewed-by: Tor Lillqvist <tml@iki.fi>
Implements LibreOffice extension providing Rust language binding for UNO API
using opaque pointer FFI architecture with type-safe handles.
Extension Features:
- User-controlled execution via "Rust UNO → Example" menu
- Optional installation/removal through LibreOffice extension system
- Complete Writer document manipulation example
Technical Implementation:
- Generated Rust wrappers for all UNO types via rustmaker
- C++ extern "C" bridges with proper UNO integration
- Type-safe opaque handles (XTextDocumentHandle, etc.)
- Extension architecture following LibreOffice standards
- Menu integration via Addons.xcu and ProtocolHandler.xcu
Architecture:
- Rust RAII Wrappers ↔ C++ extern "C" Bridges ↔ LibreOffice UNO
- Extension packaging with rust_uno-example.oxt
- Integrated build system with CustomTarget and Library makefiles
Build Commands:
./configure --enable-rust-uno
Extension Structure:
- rust_uno/example/ - Extension source files
- workdir/Extension/rust_uno-example.oxt - Packaged extension
- Automatic installation during LibreOffice build
Runtime Validation:
Successfully demonstrates complete UNO integration:
- Desktop service creation and XComponentLoader interface
- Writer document loading via loadComponentFromURL
- Text manipulation through XTextDocument and XSimpleText
- Proper interface querying and method invocation
GSoC 2025: Rust UNO Language Binding
Change-Id: I5cecb8ebd05aab396f444488c0ee2a9d483a9f62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186425
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
The rustmaker provides comprehensive support for converting UNO type definitions into idiomatic Rust code with proper memory safety and type system integration.
Also adds the RustFile, RustOptions, and RustProducer classes to handle
Rust code generation, file management, and command line option parsing
for various UNO type kinds such as enums, structs, and interfaces.
Change-Id: Iaf87af13352c55e81c1745ef7a8f591c3e61e0a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188088
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
This commit introduces the 'pythonmaker' executable, a new tool in the
codemaker module.
pythonmaker generates Python type stub files (.pyi) from UNO IDL type
libraries (.rdb files). This enables static type checking and modern
IDE features like auto-completion for developers writing Python scripts for LibreOffice.
This commit includes the complete, feature-complete tool capable of handling all major IDL entity types (enums, constants, typedefs,
structs, exceptions, interfaces, services, and singletons).
Change-Id: I52f783aa982e1de04a207a9a884aee207f99d193
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185498
Tested-by: Jenkins
Tested-by: Hossein <hossein@libreoffice.org>
Reviewed-by: Hossein <hossein@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
...to enable "the UNO parts (types and servie implementation) of the embindtest
framework (which can also be used independently of the Emscripten build)." And
which e.g. both last year's Lua GSoC project and this year's Rust GSoC project
(<https://gerrit.libreoffice.org/c/core/+/186425> "Add core UNO types for Rust
language binding") enabled locally in their respective dev builds.
Change-Id: I8cf917fbcdaf73e244bd84689a1f29f3aa95f923
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189363
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
This will allow creating instances of the C++ classes
involved in XML export directly from rpt instead
of going via the UNO service constructors/abstraction
to do so (currently in OReportDefinition::WriteThroughComponent).
Writer also doesn't split the core model and XML export logic
in into separate libraries (see sw/Library_sw.mk).
rpt pch was updated using this command:
./bin/update_pch reportdesign rpt --cutoff=9 --exclude:system --include:module --include:local
Change-Id: I40a0fbe4bb3ef679b2255f891e8a6b67d442fd5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187910
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
those were from a time where there was 64bit Windows, but no 64bit
builds of LibreOffice/OpenOffice.org - now the only usecase for 32bit
LibreOffice is to use it on 32bit-only machines…
Change-Id: Icf1eacafd9e157788e8ec5a035716327492f5c2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185565
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
makefile stuff anymore, there's still code that can be removed from the
actual code (partly reverting 8f6b5370be
that added support for using 64bit Internet Explorer with 32bit Office
Change-Id: Id0c59e2ef2f4c87a04f18ea54ed04f4337ea6c73
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185564
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
So the vclcanvas backend is in worse shape than I thought. It will
take too long to get it into shape to be sure of making the next
release, so revert this for now, and I will have to find another
approach.
This reverts the following commits
commit fbefe07e4c
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Feb 20 09:42:14 2025 +0100
qt: Remove now unused vcl/inc/qt6/QtSvpSurface.hxx
commit 595354ab7e
Author: Julien Nabet <serval2412@yahoo.fr>
Date: Wed Feb 19 21:13:49 2025 +0100
Remove also canvas/cairo in gtk4, qt6 and gtk3_kde5
commit d539f6e99e
Author: Noel Grandin <noelgrandin@gmail.com>
Date: Wed Feb 19 18:15:30 2025 +0200
fix "local variable is unused" warning
commit 704f61b1bd
Author: Noel Grandin <noelgrandin@collabora.co.uk>
Date: Wed Jan 29 15:35:21 2025 +0200
remove canvas/cairo and canvas/gdi and canvas/directx backends
Change-Id: I0492dabf7da8c42a15720c868f161919e8dc7ae4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181984
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
These were originally created to better support alpha/transparency
in slideshows, but vcl can do that these days.
Mostly, removing these makes the path to better backends (e.g. GDI+)
in vcl considerably easier.
If regressions are detected, it would be better to improve vcl
to perform better, or render better, since that will both fix
the regression and improve other output from LibreOffice.
Also remove various bits of vcl backend that were only being
used by the canvas stuff.
Change-Id: Ic5276d57e696f3dcbeaed2cc149b8fc09c5816f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181843
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
There is no point to bundle it, because
1) it is an old version
2) since LibreOffice 7.5 there are built-in number formats in
Calc with the same functionality (using libnumbertext FWIW)
Change-Id: I8cfb24f7e6f045bd51fea620aca6a61269dba77a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180996
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Implement simple Quick Look plugins that generate a preview and/or
thumbnail image using Apple's latest Quick Look APIs. The approach
is to load and render any thumbnail images that may have been
embedded in .od* files when they were last saved.
Fortunately, LibreOffice, OpenOffice, and NeoOffice have been
saving thumbnail images by default in .od* files since at least
the mid-2000s so this approach should work with most unencrypted
.od* files.
Note: the plugins appear to work in unsigned builds using the
following steps to enable them:
1. Install LibreOfficeDev.app from an unsigned .dmg (e.g. nightly
master builds) but the plugins in instdir/LibreOfficeDev.app
in a local build are not usable.
2. Launch LibreOfficeDev.app to register the plugins.
3. Launch the System Preferences application, navigate to the
Login Items & Extensions panel, and in the Extensions section,
click on the icon next to the Quick Look entry to see a list of
installed extensions.
4. If macOS has successfully found and loaded the plugins, there
should be two extensions listed under LibreOfficeDev. If they
are disabled, enable both.
5. Press Command-Option-Escape, select the Finder in the dialog
that appears, and press the Relaunch button.
The Finder should now display the thumbnail images in .od* files.
Change-Id: I094afbc56b684cc85b12ed996e060818bfe8ad46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178393
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Now that the accessibility module no longer
depends on toolkit and svtools and there's
therefore no more cyclic dependency, merge it
into the vcl library, where the vcl widgets are located,
for which the classes in the accessibility
module (primarily) provide the a11y classes.
Initially, take over the existing UNO service
"com.sun.star.accessibility.comp.GetStandardAccessibleFactoryService"
to vcl as is. It used to be necessary to break the cyclic
dependency between the vcl, svtools, toolkit and
accessibility module. (vcl is the lowest and
accessibility used to be furthest up in the dependency
chain; yet vcl needed it to create the objects
providing the XAccessible/XAccessibleContext
for its widgets.)
Further simplification can happen in upcoming commits.
Change-Id: Ib46c87446dc9121d3b8e735e0e5a40594da73cc5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178647
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
...not just --enable-dbgutil ones, which gives more flexibility in using that
infrastructure downstream. (The unotest/source/embindtest/embindtest.js code is
still only included in desktop/Executable_soffice_bin.mk for --enable-dbgutil
builds, though.)
Building unotest/source/embindtest/embindtest.cxx also outside of
--enable-dbgutil, and thus implicitly --enable-assert-always-abort, builds
required moving from assert() to some hand-crafted verify().
Change-Id: I3f0fa00feee25b4ea6e7866c22a5b4a4d40cb3d0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178361
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
There is no simple "Windows is 10 or newer" check in MSI, with the
Microsoft policy of "you don't need to know real Windows version".
See also https://developercommunity.visualstudio.com/t/detect-a-windows-version-from-msi/412198
The values that MSI sees (e.g. on my Win11) are:
Property(C): VersionNT = 603
Property(C): VersionNT64 = 603
Property(C): WindowsBuild = 9600
So those can't be used for the check. I use the WINMAJORVER that is
read from registry (Software\Microsoft\Windows NT\CurrentVersion).
There is no more need to check and install UCRT; it was dropped.
Change-Id: Ic02d6aeb965e9684bafd4357f969980f77000e73
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178049
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
The "minweld" is a minimal standalone vcl application that uses the
LibreOffice vcl weld framework to display the "tip of the day" dialog on
the screen. Upon clicking on the "Next Tip", a counter is incremented
and the text label containing its value is displayed/updated in the
center of the dialog box.
One can run the application by invoking:
./bin/run minweld
This example uses cui/ui/tipofthedaydialog.ui for the UI, but only uses
a few elements of it.
Change-Id: If304c60ddb262182cf23438ed1f83dba85e66391
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176610
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Formats like Aportisdoc can be opened via
org.libreoffice.comp.Writer.EBookImportFilter instead.
It doesn't look like there will be any support implemented for Nokia
9210 Communicator PsiWord. No particular burning demand for that
anymore apparently.
Removal of the filters that used xmerge took place at:
commit a5783fe922
CommitDate: Sun Mar 3 19:19:26 2013 +0100
remove stale javafilters
Change-Id: I0a0087fb2ee015de42c1802b5e9bc6dc42a5efe1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174563
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins