summaryrefslogtreecommitdiff
path: root/vcl/Module_vcl.mk
AgeCommit message (Collapse)Author
2024-11-29pdf: R6 hash algorithm and test, introduce PDFEncryptorR6Tomaž Vajngerl
This adds PDFEncryptorR6 and adds R6 hash implementation and makes sure it is correct with a test. Change-Id: I11ca746a6b676bb294723b4ef76069f1d4f3a182 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177384 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins
2024-11-15Add minimal vcl weld example applicationHossein
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
2024-09-25add a rtf to pdf fuzzerCaolán McNamara
Change-Id: Ib805b2e8245903f63096cc21f511ba7ae0a4f488 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173466 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-18tdf#162072 vcl, fontconfig: consider font-family-generic for substituteMiklos Vajna
Open the bugdoc, it has two paragraphs: first with a sans font, second with a serif font. These fonts are missing, but their metadata clearly state that they are sans vs serif. Still, Writer renders both as sans. Investigating a bit, the ODT case imports the "font-family-generic" of these fonts fine, but in the Linux case the fontconfig code ignored this info when building the search pattern for the font fallback. Fix the problem by extending vcl's PrintFontManager::Substitute() to also take the vcl-level "family type" into account, which is about sans vs serif (roman vs swiss). Note that FC_FAMILY is a string list, so once the actual font name is added to the pattern, the next "add" will append to this list, not drop the already added font name. The same problem is still there with the DOCX equivalent. Change-Id: I61f31ae73e524471a5261ac9426e5b566454a09c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170681 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-05-22tdf#161209 - Reverts WhatsNew/Welcome dialogHeiko Tietze
dd889b290304b73f96a9a8e6e0f144d3aa2ba7e1 Change-Id: Idf0594c546e4d9ca263272ed1534b27948e8e930 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167956 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins
2024-03-27Resolves tdf#159573 and tdf#137931 - WhatsNew or Welcome dialogHeiko Tietze
To test the new dialog, change org.openoffice.Setup > Product > ooSetupLastVersion to some lesser value for the WhatsNew dialog or clear the entry for the Welcome version. Change-Id: Iec6de50edba0e5430e82f1db85e61d1e4501771d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163739 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-03-20add a sc-html fuzzerCaolán McNamara
Change-Id: I0d74859e276bfa98d8abf7b2e66600f849971468 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164956 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-19fods2xls fuzzerNoel Grandin
Change-Id: I095178b1b3c61829abf5c08b8b81cd7415e3e795 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162747 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-02-20merge desktop_detector library into vcl libraryNoel Grandin
Noting that the main feature of using a separate library - avoiding linking against SM and ICE - is no longer a thing, since we have not used those in some time. Change-Id: I9ecd6758e97f0fa19b224346aa577a04b46793b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163638 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-12-28vcl: add test for an invalid index in OutputDevice::GetTextBreak()Chris Sherlock
Change-Id: I0b534e42e041972ad2f92e789fc757e949a33d4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158394 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-10-31CppunitTest_vcl_pdfexport: split into twoXisco Fauli
It already has 109 tests Change-Id: Ic16c5ee68f020c2ee1662354786fb82aada62e0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158667 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-09-15Make svptest VCL example build on all platformsHossein
Previously, svptest VCL example was not built on all paltforms. Now, svptest is built on Windows and elsewhere. To run, one can invoke: ./bin/run svptest Change-Id: I915a4ef9748e2248d2d209969d1fef079ee06cff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156972 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2023-07-27vcl gtk3: Introduce AT-SPI2 tests for the GTK3 accessibility layerColomban Wendling
Add tests for the GTK3 accessibility platform layer. These tests compare the internal LO representation with what is visible to the platform, and thus the user's accessibility tools. In most cases the tests are fairly trivial as LO's internals are not far off AT-SPI2's expectations. There are however notable exceptions like for example the text attributes, that have a wildly different representation and require more complex checks matching what LO's platform layer does, the other way around. These tests use libatspi2 directly, but as the C API is awful to work with regarding resource management, there are wrappers to handle the complexity using RAII. The resulting API is fairly trivial to use. As these tests require using the GTK3 VCL plugin and for the a11y tree to be visible to AT-SPI2, they are run under XVFB using a separate dbus session through dbus-launch. Working on this has already lead to reporting and/or solving some issues: * https://gerrit.libreoffice.org/c/core/+/151303 * https://gerrit.libreoffice.org/c/core/+/151650 * https://gerrit.libreoffice.org/c/core/+/152456 * https://gerrit.libreoffice.org/c/core/+/152457 * https://bugs.documentfoundation.org/show_bug.cgi?id=155625 * https://bugs.documentfoundation.org/show_bug.cgi?id=155705 * https://gerrit.libreoffice.org/c/core/+/152748 Only a subset of the a11y APIs are covered for the moment, but the current state should make it easy to extend upon. Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-06-22kf6: Add a kf6 VCL pluginMichael Weghorn
Add a "kf6" VCL plugin that uses the KF6 (KDE Frameworks 6) libraries to provide a native KDE/Plasma file chooser, just like the kf5 VCL plugin does for KF5. Building the plugin is disabled by default and can be enabled by autogen option '--enable-kf6'. Selecting the VCL plugin can be done by starting LO with environment variable 'SAL_USE_VCLPLUGIN=kf6' set. The kf6 VCL plugin reuses the kf5 VCL plugin code. (The kf6 headers and sources for now just `#include` the kf5 ones.) This was quickly tested on KDE Neon unstable, which provides a daily snapshot of Plasma 6 and the KF6 libraries. (Regarding a potential release date, [1] mentions: "Plasma 6 is built on top of Qt 6 and is tentatively planned to be released in late 2023 or early 2024.") [1] https://community.kde.org/Plasma/Plasma_6 Change-Id: I4c2b7e3be8e60f1d8cf60119f6f3f642b71349f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153438 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-04-29add a fodt to pdf fuzzerCaolán McNamara
Initially give it a fairly tiny input size limit. Change-Id: Iabc2611174e88f1f6050edb21da4f28694bac4a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151151 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-26add a svg fuzzerCaolán McNamara
Change-Id: I9662d91d2761b4f160858897f19f31f474dccbed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151051 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-25add a fuzzer to test zip recovery modeCaolán McNamara
Change-Id: I25f82cd83afae0fb3b0cfc3f1586e28323369f8a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150978 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-25Remove lock file fuzzerCaolán McNamara
this found nothing in 12 months and exists to try and follow up on a confusing report which went nowhere in the end Change-Id: I7f3c6a5e2ccedad2e7b925b3c15b076cd22f1ce4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150972 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-01-28Make minvcl and svdemo VCL examples build on WindowsHossein
Previously, minvcl and svdemo VCL examples were not built on Windows. With this patch, both of the minvcl.exe and svdemo.exe are built on Windows. To run, one can invoke: ./bin/run minvcl and: ./bin/run svdemo Change-Id: I43bfb314b41c662250615486a3ca783fc6d82600 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146264 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2023-01-12Don't bother building the vcldemo executable for WASM unless using Qt5Tor Lillqvist
Reduces build time a bit. Sadly, we do need to build soffice.wasm also when not using Qt5, because wasm/Makefile.am in online uses its .linkdeps file. Change-Id: I48f67598050208220e63e3a0ff627f6420ff837f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145353 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2022-11-25vcl: list the glyphs and bound rects of a specified fontChris Sherlock
Change-Id: Ia635d83a5d3dd257948777e9f6976fecfeb4ee98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141526 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-09-01we have one CJK text test that explicitly attempts to use not bundled fontsCaolán McNamara
add "allow" to NON_APPLICATION_FONT_USE= =abort to crash and burn if there is font/glyph fallback, and =deny to just restrict to the bundled fonts for the test =allow to explictly denote a tests want to attempt to search for and use some specific system-side installed font. note: currently this only affects fontconfig using platforms Change-Id: Iadc8a70531ac363b4c3f0c52d9f7bd79191b0139 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139148 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-20add a fuzzer for our lock filesCaolán McNamara
Change-Id: Iaf28aa4455ea9d798d9e2649e1e7c6f1216846f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136194 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-05-06vcl: test ImplAnimViewChris Sherlock
Change-Id: I1f17dce097810e4507a9feae1675ff486260657a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121698 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-03-28Drop support for OpenGL denylist on X11Stephan Bergmann
...which appears to have become even less relevant with db89f53c31af997b9bf422b0e784afba8d62a42e "remove OpenGL VCL backend code". And the vcl/unx/glxtest.cxx machinery that it is based on is (a) known to cause issues like <https://gitlab.freedesktop.org/mesa/mesa/-/issues/3957> "LibreOffice's OpenGL version detection code hangs when running inside a flatpak container with a different mesa version", and (b) is one of the two reasons why an soffice that uses Wayland nevertheless also requires Xwayland during startup (the other reason being oosplash). So getting rid of the glxtest machinery is beneficial. The remaining two potential uses of OpenGL on X11/Wayland are the obscure css.rendering.SpriteCanvas.OGL service implementation (about which db89f53c31af997b9bf422b0e784afba8d62a42e states that "it seems has never been finished or enabled (or so it most probably should be dumped too)") and some slideshow transitions. About the latter, Caolán stated on IRC: "I think we grew this set of stuff to check for dodgy opengl primarily for the case where vcl used opengl for ordinary UI optimizations; but I think that use is gone now so I wonder does it make sense to just drop all of that entirely; for just slide transitions we apparently survived fine without the denylist for ages". (And in any case there is still the WatchdogThread support with OpenGLZone::hardDisable in VCLExceptionSignal_impl, vcl/source/app/svmain.cxx, should any OpenGL code run into problems.) (The removal of gb_LinkTarget_use_glxtest from gb_LinkTarget_use_vclmain, which indirectly brought in gb_LinkTarget_use_libraries,*,vcl, revealed that an explicit use of vcl was missing from various Executables etc., which thus had to be added now.) Change-Id: Ifa5220fd09910a4459ca546d9655e479a2e38f1e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131943 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-31support for the WebP image format (tdf#114532)Luboš Luňák
This commit implements a WebP reader and writer for both lossless and lossy WebP, export dialog options for selecting lossless/lossy and quality for lossy, and various internal support for the format. Since writing WebP to e.g. ODT documents would make those images unreadable by previous versions with no WebP support, support for that is explicitly disabled in GraphicFilter, to be enabled somewhen later. Change-Id: I9b10f6da6faa78a0bb74415a92e9f163c14685f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128920 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-01-20WASM --enable-wasm-strip now skips lots of LO codeArmin Le Grand (Allotropia)
... resulting in a stripped-down, Writer-only build to decrease the resulting WASM bytecode size. It removes the following code from the build: * All other major modules: Base, Calc, Chart, Draw, Impress and Math and related writerperfect filters * The premultiply tables * The (auto-)recovery functionality * All accessibility (but not the accessibility document checker) * The LanguageGuess component * EPUB support * The start center / BackingWindow * The TipOfTheDay functionality * The splash screen communication Currently crashs with anything different then soffice --writer. Closing the document also still crashes. FYI: many of these features are now behind ENABLE_WASM_STRIP_* defines, but they normally don't work on their own, globally! That's because we started with stripping the main components. Change-Id: Ib9c0f9452815910c0a2aceaf142ba1ad4a9cb0d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126182 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-19WASM more initial bits and piecesJan-Marek Glogowski
All the small stuff, which is needed for the WASM build, but is not really worth an extra patch. * No soffice.sh script needed for WASM * WASM soffice.bin executable extension is html * Some small additional SAL_LOG output * Default to colibre icon theme * Test for qt5 even without X11 * Remove emconfigure artefacts at the end of the configure run * No oosplash for WASM * Disable the Office IPC thread * Suppress -Wno-enum-conversion for Cairo builds * Fix libnumbertext by using gb_EMSCRIPTEN_CPPFLAGS * Map EMSCRIPTEN to LINUX nls * No extra newlines for missing icon theme images * Print the missing dependency in some gbuild error messages * Copy Qt WASM loader, HTML template and SVG logo for binaries * Especially build the vcldemo for Emscripten Change-Id: I356370c72cc09357411e14d0c00762152877a800 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128584 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-12gbuild: build static LO / link static executablesJan-Marek Glogowski
This allows to build a complete static LibreOffice on Linux, except for linked externals. Since LO's static build implies disabled dynamic loading, one must select one VCL backend to be compiled in. See the (large) comment in solenv/gbuild/static.mk trying to explain, why this implementation was chosen (spoiler: seems there is no other way) and what is actually implemented. This will collect all libraries, statics and externals of executables. If the executable uses components, it will get linked to all static components. While it works with any Executable, it just makes sense for soffice.bin, because the static component map sucks every dependency in, bloating most other binaries. In theory on could generate the dependencies based on the list of used components (see gb_CppunitTest_use_components), then generate a specific static constructor map, directly include it in the exe's cxx code and then link the minimal dependencies. The static LO should build on Linux with: --enable-customtarget-components --disable-dynamic-loading Tested VCL plugin config is: --disable-gtk3 --disable-gen --enable-qt5 The partial build support is split into a 2nd patch. Change-Id: Iafc95752fae9e88095f54a21f1e30a4f080815e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126790 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-08vcl: Create listfonts utilityChris Sherlock
The listfonts utility gets the details of all available fonts on the system. It prints out the information, or stores it in a text file, if a file name is passed to it as an argument. An example invocation to store the information in a file named fonts.txt is: ./bin/run listfonts fonts.txt To get the correct font metrics, you actually have to get the font metric from the system, and then set it as the current font of OutputDevice, then get the font metric (which corrects a variety of things like the orientation, line, height, slant, etc. - including converting from logical coords to device coords). The information is reported for each font family. On the top is the family name, and then comes other details. Here is a report for an example font: FreeSans Family type: swiss Style name: Regular Weight: normal Italic: none Pitch: variable Width type: normal Alignment: top Charset: UCS2 (aka Unicode) Symbol font? no Ascent: 13 Descent: 3 Internal leading: 0 External leading: 2 Line height: 16 Slant: 0 Bullet offset: 0 Fullstop centered? yes Orientation: 0 degrees Quality: 18477 There is a -v (or --verbose) option that output font features. Change-Id: Icfc4da96459bea47c4233a5509496566c04d460c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127365 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-01-05vcl: migrate AddGradientActions() from OutputDevice to GradientChris Sherlock
Change-Id: I815fb3ce366c93b81f60d19eeed906dc7288708a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127030 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-01-03Drop / merge some Haiku special build casesJan-Marek Glogowski
Just don't test gtk3, so it's also not enabled. This way we can also rename the kde install module to haiku on demand. The kf5be1 is kept kde-only; no idea if that is intentional. Change-Id: Id93b15fc6057a50da59efd655e1fc7d5f416c6de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127894 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-30Minimal vcl applicationHossein
Created a minimal vcl application inside vcl/workben in ~55 loc in which creates a window and paints a simple text inside it. One can run the application by invoking: ./bin/run minvcl Change-Id: If648666ff25c4b66089a37c8d8164752663fa225 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125124 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2021-12-25oss-fuzz: convert to static cross-buildJan-Marek Glogowski
This way we can get rid of the pre-generated locale data and the special fuzzers target, which invokes a full gbuild make for every prereqisite, always parsing the whole tree, taking ages. This also reverts: - commit d0780b21cfe235c4446adf649eb690f9c1771dd5 ("fix oss-fuzz build") by adding epubgen and revenge dependencies. - commit ff25d6a123beb42476bf42d189b3033a86835b2a ("ofz#41602 fix more build failure"), which shouldn't happen anymore since commit d47628f287f4377394c4ff488c433bfe254b6abe ("don't want to link to system static libs for DISABLE_DYNLOADING") Change-Id: I3aed9ec62da507254b42e4e7470bae1097b4bc8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127031 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-16drop ui-previewerCaolán McNamara
the need for this is gone now the transition from src to ui is completed. I certainly don't use this anymore. Change-Id: I5bf9c8bc4f00152977091f466c2e808b824acb44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126925 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-12-13Refactor some buildsytem stuff (mostly whitespace)Jan-Marek Glogowski
Change-Id: Idfca786ecc7251e08525bd5b45936143727c43d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126731 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-06Drop ENABLE_FUZZERS from config_host.mk.inJan-Marek Glogowski
... and just convert the last user to $(BUILD_TYPE). Change-Id: Iaf6361b0be47594e5c1ac08a8183460b7ada92f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126410 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-09-29qt6: Add a qt6 VCL pluginMichael Weghorn
This adds a new "qt6" VCL plugin based on Qt 6. Building the plugin is enabled by autogen option '--enable-qt6' (and optionally setting 'QT6DIR' as needed). Use the 'SAL_USE_VCLPLUGIN=qt6' environment variable before running LO to select this VCL plugin. Taking qt6 into account at all relevant places certainly still requires follow-up changes, but this builds and runs with a self-compiled qtbase from the 'dev' git branch as of commit 3ce0672143d2eb3c3809f82998a4d71c5800d77a. I didn't see anything obviously broken in a quick run, but didn't test much. This reuses and shares the qt5 VCL plugin code; the qt6 headers and sources for now just '#include' the qt5 ones. Version checks are used for the code places that need different handling to be built against Qt 6. The build system parts in this commit were mostly done by copying the qt5 equivalents, then adapting as needed. Some notes on things I came across while porting to qt6: 1) At least in my self-compiled Qt versions, 'moc' (the meta-object compiler) is located in the 'libexec' subdirectory in 'QT6DIR', while the Qt 5 equivalent is located in the "bin" subdirectory of 'QT5DIR', so the configure.ac check uses the former. 2) moc does not process classes from the included headers. Since the headers in 'vcl/inc/qt6' just '#include' the ones from 'vcl/inc/qt5', running moc on the qt6 headers doesn't work, so moc is currently run on the qt5 headers for qt6 as well (s. 'vcl/CustomTarget_qt6_moc.mk'). That will have to be adapted in case the qt6 VCL plugin uses "own" headers instead of just including the qt5 ones at some point. 3) QX11Extras has been removed from Qt 6. [1] says: > Changes to Qt X11 Extras > > The QX11Info class has been removed. > > Clients that still rely on the functionality can include the private > header <QtGui/private/qtx11extras_p.h> as a stopgap solution. To enable > private headers use QT += core-private with qmake, or add a project > dependency to Qt::CorePrivate with CMake. I didn't take any closer look, just dropped the use of QtX11Extras for qt6 for now. 4) XCB_ICCCM is no longer needed. It is only used in qt5 to workaround a Qt bug fixed in Qt 5.12, s. commit fe2baf9e84e0ca9aeaa683e37076f57fa3f38dca Author: Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> Date: Tue Dec 3 08:32:58 2019 +0100 Qt5 fix missing XCB_ICCCM_WM_HINT_WINDOW_GROUP 5) X11-specific code is still used for key modifier handling. Therefore, still check for the XCB headers when 'USING_X11' is set in configure.ac, and use a 'QT6_USING_X11' define (as qt5 uses 'QT5_USING_X11'). 6) There's currently no Qt 6 video sink for GStreamer. As of today, qt-gstreamer is unmaintained and there is no Qt 6 version. The project's README [2] says: > 0. Maintenance Notice > --------------------- > > This code is unmaintained. You can use it at your own risk. > > If you want to integrate video display in your QML-based UI, > you should consider using 'qmlglsink', from gst-plugins-good. > This is a well supported video sink that uses the generic > gstreamer-gl stack and is in many ways superior to 'qtquick2videosink' > that is provided by qt-gstreamer. You can use this code as an example: > https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/qt/qmlsink > > If you are not interested in using QML in your UI, then you > may use one of the other elements provided by this module > (see below). If you do that, it would be helpful to let us > know that this code is still useful to you. We may consider > adding these elements in one of the core gstreamer modules. > > If you are here for the Qt-style bindings, I'm sorry to disappoint you. > The alternative is to use the C API, or the GStreamermm C++ API. > Qt-style bindings are cool, but unfortunately they are very hard > to maintain because they are written by hand. If you are interested > in continuing this project, you are welcome to implement a > generator for them, probably based on GObject-Introspection. > I am happy to provide directions if you want to pursue such a thing. Therefore, the Qt video sink handling is qt5-only and the corresponding handling for GOBJECT (used for the GStreamer video sink handling) was not taken over for qt6. This presumably means that video playback in Impress presentations does not work when using qt6 with they Qt Wayland plugin, s. tdf#125219 for the corresponding bug for qt5/kf5. (I did not build the qtwayland module to actually test this, though. Video playback with the Qt xcb plugin in a Wayland session works.) [1] https://doc-snapshots.qt.io/qt6-dev/extras-changes-qt6.html [2] https://cgit.freedesktop.org/gstreamer/qt-gstreamer/tree/README Change-Id: Ib105ccfb2c3630ec5d5403793a3cd9ba31d85bdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122808 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-25add dbffuzzerCaolán McNamara
which requires dropping ---disable-database-connectivity Change-Id: I5b3a2027916a3cf844cefd90629c3fe918ead31e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122591 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-24vcl: create drawmode functionsChris Sherlock
Change-Id: I3cb0325dc16db84ad58de28aa9110e9c7a0b9697 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115372 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-05-24add vcl unittests for basic text renderingLuboš Luňák
These just check rendering of one character (normal or vertical) both in horizontal or vertical orientation, and with scaled width. It'd make sense to add more tests, apparently we almost do not have unittests for text rendering. Change-Id: I279314f0e946731dd38261ea030ea42be9fad572 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115621 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-05-10bodge a gtk4 starting point into existenceCaolán McNamara
this is not supposed to work or anything even close to that Change-Id: I46b4fed6a1e6cfc885cb4f7c24660bb6438d5101 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115293 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-22tdf#138801 vcl: fix lazy-loading of GIF images with logic sizeMiklos Vajna
Regression from commit edda1e5fc8113aa4744e32f97c96a3cc311485ca (DOCX import: lazy-read images without external headers, 2018-04-20), the immediate problem is that GIF images from docx are now lazy-loaded. The deeper problem is that GIF images normally only have pixel size and can have an optional logic size as well (LO-specific extension). The bugdoc in question is a DOCX file, which contains a .png stream, which is in fact a GIF image, with that STARDIV extension in it. Now the initial parsing (that only extracts the metadata) didn't read the logic size, so the preferred map mode was pixels, but later when the actual read happened, the preferred map mode changed to mm100. Thid does not play nicely with writerfilter/ code that sets a different wrap polygon depending on if the (assumed to be final) map mode is pixels or not. Fix the problem by reusing the "is this an animation" GIF parser to also extract the logic size of the GIF image, if it has one. This way we still lazy-load the GIF image, but the preferred map mode won't hange from pixels to mm100 during the real read. Change-Id: Ia6c66e1c4fa0cb23a1daf537e7179b081ef90def Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108125 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-12-07remove OpenGL VCL backend codeLuboš Luňák
It is by now practically unmaintained, even bugreports in bugzilla have been already closed for it. AFAICT this used to be really used only on Windows, where it's no longer the default. There's still some OpenGL code left, because there are still two other places that use OpenGL. One is OpenGL slideshows, which reuse some of the base OpenGL code (and I've checked they still work even after this removal). Second one is OpenGL canvas, which it seems has never been finished or enabled (or so it most probably should be dumped too). Change-Id: I7ea5aef77ec252eb8e712d167db591209be84a13 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107290 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-10-07Resolves tdf#117463 - Dialog to show UI optionsHeiko Tietze
* New dialog to pick and apply one of the UI variants * Tip-of-the-Day enhanced to execute UNO commands in order to advertise the UI chooser on first start Change-Id: I5e5c4a8e0fb11d11bafc99cc37b7ec244a993781 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99957 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2020-10-01add CppunitTest_vcl_skia to do Skia-specific testsLuboš Luňák
Change-Id: I7b5c1637aaf0fc070391f08800cd44308b4db0b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103710 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-07-21Bypass CppunitTest_vcl_pdfium_library_test unless we have PdfiumTor Lillqvist
Change-Id: Ic93b2bf66ded948009a9d2d045d98a4bde9ee249 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99119 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99123 Tested-by: Jenkins
2020-07-10replace usage of blacklist with denylistThorsten Behrens
.. and a few cases of instead doing blacklist->excludelist where that made more sense. Background and motivation: https://tools.ietf.org/html/draft-knodel-terminology-02 [API CHANGE] officecfg::Office::Canvas::DeviceBlacklist -> DeviceDenylist [API CHANGE] officecfg::Office::Canvas::BlacklistCurrentDevice -> DenylistCurrentDevice [API CHANGE] officecfg::Office::Common::Misc::OpenCLBlackList -> OpenCLDenyList Change-Id: Ia35e25496bf0cc0692d5de4cb66bfc232d3a869e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98180 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-06-25sd signature line: place shape on the correct pageMiklos Vajna
PDFDocument::Sign() had this hardcoded to always place the signature widget on the first page, add a way so that xmlsecurity/ can tell the pdf signing code to put it on an other page. This way in case the user created the signature line shape on the Nth page, it'll end up on the Nth page of the PDF result as well, as expected. Change-Id: I63decba98774151e9634ea924c2fed0f7814cb28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97045 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-06-20vcl: wrap PDFium types in c++ classes to ease lifecycle managementTomaž Vajngerl
Change-Id: Idd33dfe752a22b6628750c06f02e9467a69802bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96753 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>