Bug 166128 - Recreate splash screen with VCL weld
Summary: Recreate splash screen with VCL weld
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: difficultyInteresting, easyHack, skillCpp, skillDesign
Depends on:
Blocks:
 
Reported: 2025-04-10 14:07 UTC by Hossein
Modified: 2025-04-11 04:52 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hossein 2025-04-10 14:07:06 UTC
Description:
LibreOffice splash screen uses a custom widget for creating splash screen. It is good to implement something better using VCL weld mechanism and a UI file designed in Glade.

Why:
The current implementation has various drawbacks:

1. It does not always scale to the same size as the main LibreOffice Window.
2. The style of the progress bar is a bit different from other UI elements, looks mostly like Gen interface.
3. It needs custom paint code.
4. It does not conform to the dark/light theme.
5. It is not easily localize-able.
6. It is a separate binary (oosplash)

Code pointers:
Most of the code for the current implementation resides in:
desktop/source/splash/splash.cxx

The SplashScreenWindow class has an custom paint method, SplashScreenWindow::Paint(), which draws the bitmap, and also the progress. A new UI file is needed for this purpose. You may look into some dialogs like tip of the day to get some insight:

Easyhacking: How to create a new “Tip-Of-The-Day” dialog
https://design.blog.documentfoundation.org/2019/06/26/how-to-create-a-new-dialog/

It would be interesting to avoid a separate binary, but it is fine to keep things as is, and just change to use .ui file.

You may also use ideas from a minimal weld application here:

VCL weld: create LibreOffice GUI from design files
https://dev.blog.documentfoundation.org/2024/11/22/vcl-weld-create-libreoffice-gui-from-design-files/