office-gobmx/vcl/README.vars.md
Michael Weghorn a2f5b75047 tdf#130857 qt weld: Make opt-in for now
Except for the simple message dialogs created in
QtInstance::CreateMessageDialog, disable the use
of native Qt dialogs by default for now, and only
use those if the user explicitly opts in to use
them by setting the SAL_VCL_QT_USE_WELDED_WIDGETS
environment variable.

While those dialogs declared as supported in
QtInstanceBuilder::IsUIFileSupported are meant to be
fully functional, they are only a small subset
of all LO dialogs and not all properties for
widgets are evaluated by QtBuilder at this point in
time (e.g. not all spacing, margins, text formatting
properties,...).

Therefore, default to VclBuilder again for now in order
to have a more consistent visual appearance for dialogs
with the Qt-based VCL plugins.

This can be reconsidered in the future, but at least for
25.2, sticking to VclBuilder by default seems reasonable
to me.

Change-Id: I7b275d3d3759093a6680327faeb3b86d7c623cea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176013
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-11-05 08:21:03 +01:00

3.6 KiB

Environment variables in VCL

General

These are the general environment variables used in the VCL:

  • SAL_USE_VCLPLUGIN - use a VCL plugin

  • SAL_RTL_ENABLED - Enable RTL UI

  • SAL_NO_NWF - disable native widgets

  • SAL_FORCEDPI - force a specific DPI (gen, gtk3/gtk4, qt5/qt6/kf5/kf6 plugins only)

  • SAL_FORCE_HC - force high-contrast mode

  • SAL_USE_SYSTEM_LOOP - calls std::abort on nested event loop calls. Currently just for Qt with many crashes. WIP.

  • SAL_NO_FONT_LOOKUP - disable font search and fallback and always use a hard-coded font name (for some unit tests)

  • SAL_NON_APPLICATION_FONT_USE - control use of non-bundled fonts, values are deny or abort; for now only works on platforms using fontconfig (i.e., on Linux, but neither on macOS nor on Windows); also see gb_CppunitTest_set_non_application_font_use for using it in unit tests

  • SAL_ALLOW_DEFAULT_HINTING - use default font hinting for the platform. Enables medium/full hinting style which is otherwise reverted to (s)light.

  • LO_COLLECT_UIINFO - enable the uitesting logging, value is expected to be a relative file name that will be used to write the log under instdir/uitest/.

  • VCL_DOUBLEBUFFERING_AVOID_PAINT - don't paint the buffer, useful to see where we do direct painting

  • VCL_DOUBLEBUFFERING_FORCE_ENABLE - enable double buffered painting

  • VCL_DOUBLEBUFFERING_ENABLE - enable a safe subset of double buffered painting (currently in Writer, not in any other applications)

  • VCL_DEBUG_DISABLE_PDFCOMPRESSION - disable compression in the PDF writer

  • SAL_DISABLE_WATCHDOG - don't start the thread that watches for broken GL/Vulkan/OpenCL drivers

  • SAL_NO_MOUSEGRABS - for debugging - stop blocking UI if a breakpoint is hit

Gtk+

  • VCL_GTK3_PAINTDEBUG - in debug builds, if set to 1 then holding down shift+0 forces a redraw event, shift+1 repaints everything, and shift+2 dumps cairo frames to pngs as /tmp/frame<n>.png
  • GDK_SCALE=2 - for HiDPI scaling (just supports integers)

Bitmap

  • VCL_NO_THREAD_SCALE - disable threaded bitmap scale
  • VCL_NO_THREAD_IMPORT - disable threaded bitmap import
  • EMF_PLUS_DISABLE - use EMF rendering and ignore EMF+ specifics

OpenGL

  • SAL_DISABLEGL - disable OpenGL use
  • SAL_GL_NO_SWAP - disable buffer swapping if set (should show nothing)
  • SAL_GL_SLEEP_ON_SWAP - sleep for half a second on each swap-buffers.

Skia

  • SAL_DISABLESKIA=1 - force disabled Skia
  • SAL_ENABLESKIA=1 - enable Skia, unless denylisted (and if the VCL backend supports Skia)
  • SAL_FORCESKIA=1 - force using Skia, even if denylisted
  • SAL_SKIA=raster|vulkan|metal - select Skia's drawing method, by default Vulkan or Metal are used if available
  • SAL_DISABLE_SKIA_CACHE=1 - disable caching of complex images
  • SAL_SKIA_KEEP_BITMAP_BUFFER=1 - SkiaSalBitmap will keep its bitmap buffer even after storing in SkImage

OpenGL,Skia

  • SAL_WITHOUT_WIDGET_CACHE - disable LRU caching of native widget textures

Qt

  • QT_SCALE_FACTOR=2 - for HiDPI testing (also supports float)
  • SAL_VCL_QT_NO_FONTCONFIG - ignore fontconfig provided font substitutions
  • SAL_VCL_QT_NO_NATIVE - disable QStyle'd controls
  • SAL_VCL_QT_USE_QFONT - use QFont for text layout and rendering (default is to use cairo)
  • SAL_VCL_QT_USE_WELDED_WIDGETS - enable use of welded Qt widgets also for dialogs created from .ui files
  • SAL_VCL_QT_NO_WELDED_WIDGETS - disable the use of welded Qt widgets completely (also for simple message dialogs), reverts to previous VCL widget behavior

Mac

  • SAL_FORCE_HIDPI_SCALING - set to 2 to fake HiDPI drawing (useful for unittests, windows may draw only top-left 1/4 of the content scaled)