Files
loongoffice/sd
Justin Luth da86bfd89e tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode
A temporary (ugly, but appropriate) icon has been assigned.

The toggle can be customize-assigned to keyboard, menu, and toolbar,
and can be found by searching for "Dark Mode".

In the menu, it is checked when in Dark mode,
and in the toolbar it is "depressed" or highlighted as active.

Dark mode has been added to the view tab of notebookbar.ui.
I added it as NOT VISIBLE, for several reasons.
- dark mode is rather new and not so stable, so don't over-promote it.
- notebookbars cannot be infinitely customized by the end user,
  so developers have to add all items. Users only enable or disable.
- toggling dark mode really ought to be done at the OS level,
  and typically should be a one-time setting,
  therefore not appropriate to waste precious toolbar space.

The primary benefit of making it available in the menu
is for QA testers who want to easily switch back and forth.
WARNING: by customizing the notebookbar, you prevent seeing
any future NBB changes made to the program
(until you reset to defaults or blow away the user profile).

Dark Mode can easily be added to a menu, toolbar or keyboard shortcut
by the end user, so I didn't bother adding it anywhere else.

To avoid completely cluttering up this commit,
I only added Dark mode to the main notebookbar.
Once this commit has been finalized,
the other writer-apps and notebookbars can
also gain this command.

Change-Id: Ia7594ad81e305ead922abd0ad7b41d6fc0413053
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166781
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2024-05-03 17:58:15 +02:00
..
2024-02-15 08:57:53 +01:00

LibreOffice Impress / Draw Application

The core directory for the impress/draw applications.

Think of impress as a hack on top of draw.

sd module contains impress/draw specific code, non-shared UI and part of ppt and pptx filter, few other filters too.

the slideshow UI lives here as well, the slideshow engine is in slideshow module though (including the 3D transitions engine slideshow/source/engine/opengl).

the most used filters are ODF's odp, binary ppt and OOXML's pptx. their locations are listed below:

  • odp import and export filters are in xmloff module (mostly xmloff/source/draw)

  • ppt import is in sd/source/filter/ppt (big shared chunks are also in svx)

  • ppt export is in sd/source/filter/eppt (big shared chunks are also in svx)

  • pptx import is in oox/source/ppt (and uses a lot of oox/source/drawingml and oox/source/*)

  • pptx export is in sd/source/filter/eppt (mostly in pptx-* source files) and shared part is in oox/source/export

PPTX Export / Import Filters

PPTX export filter is split into 2 parts. Impress related part is in sd/source/filter/eppt/pptx-* and the other part is in oox/source/export/ because it contains mostly code related to DrawingML, which is shared with writer and calc ooxml export.

The export filter was written in 2009 IIRC and was not much extended feature-wise lately.

Future Works

Add custom shapes export (see below). enhance text output, we don't write text style for indentation levels now, need to export a:lvl1pPr, a:lvl2pPr, ... elements.

PPTX import was written by Sun/Oracle and then extended in LibreOffice a lot during bug fixing. It is located in oox/source/ppt and oox/source/drawingml. The areas with most bugs (at least until today) were shape placeholders and text style inheritance.