152 Commits
Author SHA1 Message Date
Michael Weghorn 8bf40d62b6 Move QueryDialog to svtools
Move QueryDialog from cui to a public svtools header.
This is in preparation of using the class directly
and dropping the AbstractQueryDialog abstraction
altogether.

The dialog can e.g. be triggered like this:

* start Writer
* Ctrl+Shift+S for "Save As"
* select "Text (.txt)" for the file type
* press OK

(Resetting the profile ensures the dialog gets shown
in case the "Don't show again" checkbox has been ticked
previously.)

Change-Id: I57bdade32c21c7ab40c5a4c90bd86e8dea5d2fad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210136
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-08-27 23:36:10 +02:00
Michael Weghorn 3aad0eac0e tdf#172275 tdf#172831 cui: Drop unused CustomNotebookbarGenerator
This class is unused now after

    Change-Id: If15d1519cea179596bd72aaf5354d01f89ccb9e7
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Jul 27 13:38:37 2026 +0200

        tdf#172275 tdf#172831 cui: Drop unused SvxConfigPage::m_s{App,File}Name

Drop it.

Change-Id: Ic670d1db42f2262ee67d87b84819bf0aab8d9c30
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208673
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-28 23:20:51 +02:00
Michael Weghorn 968bc97a37 tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage
SvxNotebookbarConfigPage is unused since

    commit 7312d7d3c9
    Date:   Wed May 20 15:28:42 2026 +0200

        Relates tdf#166641 - Add category labels to Writer's Tabbed Notebookbar

        * gla11y-conform
        * consistent IDs (gd*/lb* and btn*/bx*)
        * consistent layout with grids
        * defined spacing of 3px
        * defined margins of 6px
        * category labels
        * redundant Insert sections from Home and Forms from Tools removed
        * customization of Notebookbars removed since the new position
        of commands is not properly found

and its ctor was dropped in

    commit 00aebb5e88
    Date:   Fri Jun 26 18:55:24 2026 +0200

        loplugin:unusedmethods

. Drop the class altogether, along with the code
commented out since the above commit that would
have used it.

Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208668
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-28 23:20:07 +02:00
Heiko Tietze 382b6f118c Resolves tdf#172375 - Revert "uno:Translate with DeepL API"
This reverts commit e20d2de783

* DeepL is just one platform, and not open
* The function requires an account
* Implementation is experimental and not maintained
* Better solution via extension exists
* Decision to revert made at ESC on 2026/Jun/11

Change-Id: I74974671b1fbed6b3299f3532bd6f9263d65927f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206367
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2026-06-21 06:51:52 +02:00
Neil Roberts ab62d5b78c cui: Combine the two copies of getDocumentModel into one util
Both SvxScriptOrgDialog and CuiConfigGroupListBox had a copy of a
function called getDocumentModel which looks up an XModel given the name
of a document. This patch combines them into one shared utility
function.

Change-Id: I25cafd7658760a1cf02a7bcef9a38e63b02979ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206149
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-06-09 11:45:05 +02:00
Michael Weghorn 11a5d3766d Move SvxPresetListBox from svx to cui
SvxPresetListBox is only used in the classes
defined in cui/source/inc/cuitabarea.hxx,
for the "Area" tab page.

Move the class from a top-level svx header
to a local cui one.

This prepares for further refactoring and for
eventually porting it from using this as a ValueSet
subclass to use weld::IconView instead.

Change-Id: Icf9ab165dd3cb8352858af2a61e049366ff43aa5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203489
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-14 07:22:27 +02:00
Michael Weghorn 7c42839f7b tdf#158280 Move SvxNameDialog etc. from cui to svtools
tdf#158280 suggests to replace all uses of
the sfx2 InputDialog with SvxNameDialog.

For uses in sfx2 itself however
(e.g. sfx2/source/doc/templatedlg.cxx, see work-in-progress
change [1]), this poses the problem that even the existing
AbstractSvxNameDialog abstraction is not sufficient
to avoid a cyclic dependency because the
SvxAbstractDialogFactory required to create
an instance is in the svx module, which is
still above the sfx2 module in the dependency chain.

Move SvxNameDialog and the other common dialogs
defined in the same header down into svtools and
make the header a global svtools header,
so it can be used directly in sfx2 and
elsewhere.

Existing uses of AbstractSvxNameDialog can be
simplified to directly use SvxNameDialog in
separate commits.

[1] https://gerrit.libreoffice.org/c/core/+/198880

Change-Id: I26023712b09bcd7c303053e88cce40a3e1cae964
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199550
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-02-17 17:41:58 +01:00
Heiko Tietze a4341164a1 Resolves tdf#38850 - Allow configuration of toolbars
Toggle on/off for visibility, locked state, and sensitivity,
the latter behind ExperimentalMode as it works only to suppress
the toolbar but not to make it always visible

Change-Id: Ia65a27045472d42fc013970bf9de64320f2dbcdc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195836
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2026-02-14 08:36:52 +01:00
siddhisalunkhe1998 1c6eb5324d tdf#147630 Transform Hyperlink dialog into a standard SfxTabDialog
Adds new hyperlinkdialog ( class HyperlinkDialog : public SfxTabDialogController )
and tab pages - internet, mail, document, new document

Change-Id: I1d8c27d4da340f22f76df9046ab781d94477121f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195201
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-02-02 17:35:21 +01:00
Michael Weghorn 89ad9eec8b tdf#169505 Move ColorPickerDialog from cui to vcl
... and simplify a bit to no longer use the dialog
factory logic which was needed previously to break
a dependency cycle because the cui module is above vcl.

Further simplification will follow in upcoming commits.

Change-Id: Ie3b0d1090300e249e40e1479a40d01caabbdf573
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195094
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-12-06 08:40:06 +01:00
Sahil Gautam 6af18367f0 tdf#151144 remove opencl tab page
Change-Id: I3b50fff0c32becbd9b5b79d02c6921129adae009
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191422
Tested-by: Jenkins
Reviewed-by: Sahil Gautam <sahil.gautam@collabora.com>
2025-10-11 14:38:49 +02:00
Heiko Tietze 043b186d10 Related tdf#158880 - [API CHANGE] Rename ToolbarModeDialog to UIPicker
The scope of this dialog has changed with 98d1ac254bd62dff9d0aa9c72ba879d1d52495ef
and it's not just an UI for the ToolbarMode namespace

* Toolbarmodedlg* renamed to UIPIckerdlg*
* UNO command ToolbarModeUI renamed to UIPicker
* SID_TOOLBAR_MODE_UI renamed to SID_UI_PICKER

Change-Id: Id4d617aeee83ae1800d4b9a2d207d28c391dcdb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185789
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2025-05-28 14:48:35 +02:00
Heiko Tietze 4ab26f4ea0 Resolves tdf#158880 - Let users select multiple toolbars at once
Tab added to the UIPicker aka ToolbarModeDialog showing
all toolbars likewise in the main menu

Change-Id: I71d52ca88dc14012a70911c20f9252e578798a74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185788
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2025-05-26 17:10:44 +02:00
Heiko Tietze 9d90a1733b Resolves tdf#137931 - Show a Welcome dialog on first start-up
With tabs for introduction (and later perhaps also as what's new
info), appearance, and UI picker.

Run ./soffice --safe-mode to test but make sure to start the app
next in normal mode

Change-Id: Ia12ba44c8796fb53f2ec1dbaf46dd25a6ec113cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184195
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2025-05-11 14:58:42 +02:00
Heiko Tietze ec04856ff1 Turn UI picker dialog into a SfxTabDialog
Prerequisite to 6fa44178cad838fe126e64c87c873a1ee181f542

Change-Id: I8612658bddc79682b9b63c60eb8e4bf72021b50e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184714
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2025-04-30 19:00:43 +02:00
Heiko Tietze 35487636da More flexible query dialog
Modifies and reverts a52bc9b5d6
and 8b84691d5e

Prerequiste for tdf#164586

Change-Id: If35a94ce25c634a6d583aeb8188d2f9ed75bc0fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180547
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2025-01-22 11:40:06 +01:00
Sahil Gautam ddeeca35d9 tdf#163620 [API CHANGE] Add UI for libreoffice themes
Instead of Color, we have Light and  Dark in the registry. So each theme extension
will specify  dark and  light color  values for  each "customizable  element" like
DocColor etc. Under appearance we have three radio buttons - light/dark/system. If
system  is selected  then light/dark  colors are  switched based  on the  system's
theme.  if  explicitly light/dark  is  selected  - that  color  is  used from  the
registry.

ColorConfigValue now has three entries  nColor, nLightColor, nDarkColor. nColor is
used as a cache for the color being used at the moment. This is to avoid otherwise
expensive  function calls  + hundreds  of modifications  in the  codebase just  to
change nColor. nColor  is cached either when  the theme is loaded  or when changes
are committed in `ColorConfig_Impl::ImplCommit()`.

Now, if  Automatic theme is selected  then themes is disabled  and the application
uses the system  colors. If some other scheme is  selected like "CustomTheme" etc,
then LibreOffice themes/UI color customization is enabled and the theme colors are
used.

Instead of a scroll window, now we have  a combobox for the registry entries and a
single  color dropdown  to select  the  color value.  This color  dropdown is  for
convinience in case the user wants  to change some specific color that's bothering
him. For themeing, theme extensions should be used.

API CHANGE
+ remove Color in favour of Light and Dark
+ AppBackground has additional two - BackgroundType and Bitmap
+ remove officecfg::Office::Common::Misc::Appearnce in favor of
  officecfg::Office::Common::Appearance::ApplicationAppearance
+ move LibreofficeTheme under officecfg::Office::Common::Appearance

UI
+ it looks like https://i.imgur.com/UMxjfuC.png which is a little
  different from how the [mockup] on the ticket describes it, and that's
  because of lack of time due to upcomming feature freeze.

+ system/light/dark allow the user to switch between light/dark modes
  based on either the system theme (system) or by manually specifying
  light/dark.

+ ui themeing and color customization is disabled when automatic theme
  is selected, and enabled otherwise.

[mockup]: https://bug-attachments.documentfoundation.org/attachment.cgi?id=197469

Change-Id: I1a7f70dfe44b81f863814f87e8d46e146c0e3d5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174835
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
Reviewed-by: Sahil Gautam <sahil.gautam.extern@allotropia.de>
2024-12-18 16:24:08 +01:00
Sahil Gautam c4962247e4 tdf#163620 [API CHANGE] remove persona/appearance-toggle related code
- remove ui and source files related to app colors and personalization tabs
- remove persona entries from registry
- remove functions related to persona settings from StyleSettings, vcl..
- remove ui and code related to tools - options - view - appearance combo box

Change-Id: I98f0c38dc1facddd0e8dd03197c61a92287fdbc4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176836
Tested-by: Jenkins
Reviewed-by: Sahil Gautam <sahil.gautam.extern@allotropia.de>
2024-12-18 16:23:39 +01:00
Caolán McNamara d7736eb6ae fix --disable-scripting build
Change-Id: I0b0113d5e3a1652280e0d84c1beba7c572ded191
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177736
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-12-03 15:23:45 +01:00
Jim Raykowski 55e86edcb3 tdf#120658 - Reworking of dialogues Organize macros
(make from 5 existing only one)

Much of what makes up this patch is adapted from existing code that is
used to organize and select macros and to assign macros to shortcut
keys. Comments in the patch say where code is borrowed from.

Known issues:

+ Scripting framework library rename for BeanShell, Java, and JavaScript
always returns fail when there are no macro entries in the library even
though it actually succeeds. The same thing happens using
SvxScriptOrgDialog::renameEntry.

+ Deleting Basic macros from the Macro Manager dialog is not implemented
yet.

Change-Id: If4da04549f8b39675910cbbd1f94dd9a6b73c31a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176254
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-12-02 07:13:00 +01:00
Heiko Tietze 1bd9747a12 tdf#161209 - Reverts WhatsNew/Welcome dialog
dd889b2903

Change-Id: Idf0594c546e4d9ca263272ed1534b27948e8e930
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167956
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2024-05-22 21:19:46 +02:00
Heiko Tietze dd889b2903 Resolves tdf#159573 and tdf#137931 - WhatsNew or Welcome dialog
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-27 09:41:44 +01:00
Noel Grandin 47bfbbdb73 Create an UNO service to do the cui symbol lookup in vcl
which means I can remove one usage of gb_Library_set_plugin_for, which
is blocking linking the cui module into --enable-mergelibs=more

Change-Id: Ic6cd48377627f94747037c7247a1cd398738b390
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163820
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-25 14:45:55 +01:00
Caolán McNamara 52ba1fea03 move CharMap out of cui
remove CUI_DLLPUBLIC from stuff which is not exported
then drop the cui/include dir which is then empty and
the places we link to cui where we now don't need to

and restore cui back to a lib containing stuff that
doesn't need to be explictly linked to in keeping
with original #i106421# idea

Change-Id: I21894e6f8529dd3306df345fb52dbf5009015f3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162798
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-31 20:52:19 +01:00
Sarper Akdemir cdcff8c341 tdf#157518: add password strength meter to setmasterpassworddlg
Moves PasswordStrength bits that provide utility functions from cui to svl,
merging them with PasswordHelper there.

Adds password strength bar for the set master password dialog.
(accessible via Tools -> Options -> LibreOffice -> Security -> Passwords for Web
Connections)

Change-Id: I8dc1090a041f8388c2e139beb1d0d9a0beb8acb0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159370
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2023-11-15 19:48:38 +01:00
Sarper Akdemir b1e24664de tdf#157518: add password policy and strength meter to save with password dialog
Introduces new configuration options PasswordPolicy and
PasswordPolicyErrorMessage.

PasswordPolicy takes a regular expression. When set, it only
accepts passwords that match that regular expression.

PasswordPolicyErrorMessage is the label displayed when the
password does not meet the PasswordPolicy.
In the ideal case, it should contain an explainer of the
PasswordPolicy, so the user is aware of the requirements.

Save with password dialog had maximum password length enforcing
bits depending on the requirements of the saved file format.
These are still applicable in combination with the password
policy.

Also introduces a visual password meter under the password
entries. If the password policy isn't satisfied the password
strength meter is capped at 70%.

The entropy bits to password quality is taken as a linear range.
Where the range of [0, 112] entropy bits is mapped to percentage
[0, 100]. Entropy bits ≥ 112 are mapped to 100% since, according
to KeePass' info page, ≥ 112 entropy bits correspond to a strong
password: <https://keepass.info/help/kb/pw_quality_est.html>

Change-Id: I2e70adacf271916661219f702dfc217292a1b59f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158453
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2023-11-06 09:03:47 +01:00
Gabor Kelemen c17d369230 Use less epoxy external headers dependency
Change-Id: If5d4e5a65a0fcea6bd67cdba48742f6aaec0811d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156556
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
2023-09-23 10:38:36 +02:00
Bayram Çiçek a4633dadb4 tdf#49895: Add search functionality to Options dialog
- Search field added.
- Dialog names of all treeview nodes with their parent names
  were included in searching.
- Strings of labels, check buttons, radio buttons,
  toggle buttons, link buttons and buttons were
  included in searching.

Change-Id: Idf67c160519402ee390d94b1b3135b56324f3990
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152519
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2023-08-29 18:01:40 +02:00
Tomaž Vajngerl f4ed90bcad sd: remove theme tab page
Change-Id: Iffb3d0f6d6933891333da68fa4569a3638ba18f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156123
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-08-26 23:19:57 +02:00
Tomaž Vajngerl bd0f526f2d introduce docmodel comp., model::ThemeColor, use it in SvxColorItem
Added a new component docmodel, that has the document model types,
which only depend on other basic components. This is needed so the
types can be used in every relevant component - xmloff, oox, svx,
editeng,...

Introduces model::ThemeColor, which is a class used to store the
theme color data, including transformations (svx::Transformation).
For UNO use XThemeColor is added, and the implementation UnoThemeColor
which wraps svx::ThemeColor, so it can be tranported around.

Reactor all the code and tests to accomodate for this change.

Change-Id: I7ce6752cdfaf5e4d3b8e4d90314afa469dd65cfc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144847
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-01-12 23:15:58 +00:00
Michael Stahl ce4c154e8b svx: fix unmaintainable TypeConstant definition
Add one new token and every test in CppunitTest_sd_import_tests-smartart
fails.

Change-Id: I0d79a5000fc2ef9b699ffca3d75199e9479cf561
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143834
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-12-09 12:08:47 +00:00
rash419 ba5e0013e7 jsdialogs: added WidgetTestDialog to test different vcl widgets in online side
Signed-off-by: rash419 <rashesh.padia@collabora.com>
Change-Id: I27cbb72b4ccd486b58934503b1d3d5d7ff47cbfe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132865
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142970
Tested-by: Jenkins
2022-11-20 10:40:16 +01:00
Mert Tumer e20d2de783 new uno command uno:Translate with deepl api
New Uno command added for translation
right now it is only using deepl translation api

There's a section in the options > language settings
for setting up the api url and auth key

uno:Translate is a menu button under Format tab
which will bring up Language Selection dialog for translation.

DeepL can accept html as the input for translation, this new
feature leverages that by exporting paragraphs/selections to
html and paste them back without losing the formatting (in theory)
This works good in general but we may lose formatting in very complex
styled sentences.

Translation works in two ways;
1) Whole document
when there is no selection, it assumes that we want to translate whole
document. Each paragraphs is sent one by one so that the output timeout
can be minimum for each paragraph.
2) Selection

Change-Id: Ia2d3ab2f6757faf565b939e1d670a7dedac33390
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140624
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-10-12 16:52:03 +02:00
Mert Tumer d952df361a LanguageTool Grammar Checker implementation
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I275cbea668afc5beb5147370119631df8b6a2d46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135178
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-06-10 13:52:17 +02:00
Armin Le Grand (Allotropia) 02140554ee WASM --enable-wasm-strip now skips lots of LO code
... 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-20 12:28:54 +01:00
Jan-Marek Glogowski a6fae99466 Disable epoxy test with --disable-gui
Instead of always testing for DISABLE_GUI, just disable the epoxy
test and handle !ENABLE_EPOXY in RepositoryExternal.mk.

Change-Id: I38213ffa77353bc93f32caa1b4164c5fa88170ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127999
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-05 18:00:59 +01:00
Miklos Vajna 64fcf27883 sd: add initial theme UI for master slides
Click Sidebar -> properties -> slide -> master view, then launch the
Slide -> Slide properties menu item, this adds a new Theme tab page
there.

This is just an initial UI, only the theme name can be edited as a
start.

Change-Id: Ia2faa828c57a0e858881fb8640431f046b5739a8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126798
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2021-12-14 11:13:45 +01:00
Stephan Bergmann db3a61cd95 Generally determine Rdb content from gb_*_set_componentfile calls
...instead of by listing the content somewhat redundantly in the Rdb_*.mk
files, to avoid duplication of logic for components that are only built
conditionally (and thus should only be included conditionally in the
corresponding Rdb).  To achieve that, add an "rdb" parameter to
gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros
that internally call gb_ComponentTarget_ComponentTarget), which is used to make
the appropriate gb_Rdb_add_component call internally from within
gb_ComponentTarget_ComponentTarget.  (As a special case,
gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that
has already been done by the corresponding gb_Library_set_componentfile call, so
allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to
support that special case.)

Most Rdb_*.mk files are thus mostly empty now.  One exception is
i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as
needed during the build in CustomTarget_i18npool/localedata.

1c9a40299d "gbuild: create services.rdb from built
components" had already tried to do something similar (in addition to other
things) under a new --enable-services-rdb-from-build option.  However, that
approach had four drawbacks that this approach here addresses (and which thus
partly reverts 1c9a40299d):

1  Rdb_services shall not contain the component files of all libraries that are
built.  While that commit filtered out the component files that go into
Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files
that go into others like Rdb_postgresql-sdbc
(connectivity/Rdb_postgresql-sdbc.mk).

2  The code added by that commit to Makefile.gbuild codified the knowledge that
there is an Rdb_services, which is brittle.

3  The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge
(for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle.

4  Introducing an --enable-services-rdb-from-build option needlessly provided
two different ways how the content of Rdb_services is assembled.

The changes done here would leave --enable-services-rdb-from-build as a
misnomer, as it no longer controls how Rdb_services is assembled.  I thus
renamed it to --enable-customtarget-components, as that is apparently what it
still does now.

Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-12-10 08:14:24 +01:00
Jan-Marek Glogowski ed583bf8d5 gbuild: introduce plugin + loader concepts
This introduces two concepts: a plugin and its loader (library)

LO currrently has dependency cycles for some libraries. There is
scui, which depends on sc, while sc dlopen's scui. There are the
various vclplug_*, i18npool plugins, filters/gie, acc, etc.

Usually these plugins link to their loader library, because they
use its symbols. But as a result there is no sensible way to
express the runtime dependency of loaders on the plugins.

In GNU libtool plugins are called modules and they are implemented
in an IMHO more sensible way by allowing missing symbols at link
time. This way you can have a dependency from the loader library
to its plugins, as the plugins don't depend on the loader, but you
lose the link time detection of missing symbols.

While this is in theory possible in LO too, LO currently has
plugins, like acc (accessibility), loaded by tk (toolkit), which
depends on svt (svtools), which itself depends on tk, so dropping
the tk dependency for acc on its own doesn't help :-(

And while the dependency of the plugins on their loader is fine
for the shared / DYNLOADING build, for the "static" builds you
must (somehow) link the plugins into the executables.

I also codeified a few rules into the build system along with it:
* just plugins are allowed to depend / link other plugins
* plugins aren't allowed to be linked into the merge lib
* plugin loaders are "limited" to libraries

At the high level, this is implemented via new gbuild calls:
* gb_Library_set_plugin_for,lib,loader: declare a library to be a
  plugin of a loader library and add a dependeny from the plugin
  library to the loader library
* gb_Library_set_plugin_for_nodep,lib,loader: ^^^^ without adding
  the library dependeny
* gb_Helper_register_plugins_for_install: "plugin" replacement for
  gb_Helper_register_libraries_for_install to implement some
  additional checks in the build system

In the end this patch just adds a bit syntactic sugar and nothing
changes for any build.

Change-Id: I7b01d9c384cbc5838bd2cc93aff18e4868939d6e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126163
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-01 18:37:23 +01:00
Deb Barkley-Yeung 44db9f0807 tdf#139654 Font feature sensativity
Disable font preview's "Features..." button if there are no features

Change-Id: Ibcf6b34abe55818a3b938a65f4fd720ed724c8ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118965
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-16 09:02:28 +02:00
homeboy445 3057ee8ba0 Added support for viewing results in the VCL tests UI box
The user can now easily view the result of any VCL test
by just clicking on it - which would show them the resultant
bitmap of that corresponding test.

Change-Id: I57c0c2ab3662a9abec45ba7fc230c9299dcd9279
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117657
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-07-10 00:34:38 +02:00
homeboy445 df3ed584b0 Added a UI dialog box for running the VCL backend tests
The UI dialog box will allow the user to run the VCL graphics tests
and will allow them to view the results as well.

Change-Id: Ice289444ff425496a3e400a4c2bc06c307168c62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117384
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-29 06:14:59 +02:00
Mike Kaganski c4f615b359 editengine-columns: Create document model and dialog page
Change-Id: I056aad9474ca18134d1f1686a53618cc9ab3d525
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116038
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-08 14:50:33 +02:00
Matt K 6a6cd129f3 tdf#45735 New UI dialog at app startup to check default file formats
On Windows only, and only on a non-admin installation, check on application
startup whether the file formats ".ods", ".odt", and ".odp" are registered
to be opened by LibreOffice by default.  If any of the formats are not
default, show a UI dialog informing the user which formats are not default
and ask the user to set the defaults.  If the user selects "OK" to set
defaults then the Windows UI corresponding to the user's Windows version is
opened for selecting defaults per program.  There is also a checkbox on the
dialog to select whether checking is performed on application startup.

Also, in Tools -> Options -> General, add a UI checkbox for performing this
check on application startup, and refactor the existing button "Windows
Default apps" to use the same Windows UI Launch APIs.

Change-Id: I5e7258d111ff7da8f68805e60405aec064ddcf7c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112370
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-04-01 06:30:36 +02:00
homeboy445 cdeb5046be tdf#139778 Switch to ZXing for generating QR code
Change-Id: Ief944266d5183bb862afe99ec6b0bdaca4956938
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112534
Tested-by: Jenkins
Tested-by: René Engelhard <rene@debian.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-03-20 21:35:48 +01:00
Stephan Bergmann db6c7a4863 Use UCB instead of cURL to download https files
Since 7dc6fc32eb "uitest: Check the more icons
dialog opens" started to test the AdditionsDialog code, some ASan builds started
to report use-after-poison from within SearchAndParseThread::execute ->
curlGet -> curl_easy_perform -> ... -> https_connecting -> ... ->
secmod_ModuleInit -> pemC_Initialize -> ..., see the comments starting at
<https://gerrit.libreoffice.org/c/core/+/98226/
10#message-2a55980ab2477e41dc7515e4aeabc7234afc2053> "tdf#133026: Tight
integration of extensions - Adding thread structure".

The exact cause for that ASan use-after-poison is not quite clear to me.  First,
I thought it was due to liberal use of curl_easy_init (without a central
curl_global_init) in a multi-threaded process; see
<https://curl.haxx.se/libcurl/c/curl_easy_init.html> for this being considered
"lethal".  But then, another issue could be that most of the nss libraries like
instdir/program/libnss3.so (implementing the "... -> secmod_ModuleInit" part)
come from LO's bundled --without-system-nss while /lib64/libnsspem.so
(implementing the "pemC_Initialize -> ..." part) comes from the system, and
there could be some mismatch when mixing these (esp. if the former are built
with ASan).

So whatever the actual cause, the right fix should be to use LO's UCB instead of
directly calling into cURL anyway.

That required a version of utl::UcbStreamHelper::CreateStream that uses a given
XInteractionHandler (which may be null to indicate no interaction handling,
instead reporting all interaction requests as exceptions) instead of internally
creating an XInteractionHandler using the GUI, and which would cause deadlock
in 7dc6fc32eb618da6defb8a9f330978fa019677b8's UITest_sw_options.  (And
introducing that additional utl::UcbStreamHelper::CreateStream overload required
css::awt::XWindow to be a complete type now in
vcl/source/graphic/GraphicLoader.cxx, for

> include/com/sun/star/uno/Reference.h:277:18: note: in instantiation of variable template specialization 'std::is_base_of_v<com::sun::star::task::XInteractionHandler, com::sun::star::awt::XWindow>' requested here
>             std::is_base_of_v<interface_type, derived_type>
>                  ^

)

(The removed code in cui/source/dialogs/AdditionsDialog.cxx should have been the
last remaining use of curl in Library_cui.  Apparently,
e1e9e2aa16 "Kill Mozilla personas" had forgotten
to remove it from cui/Library_cui.mk the last time Library_cui had become
curl-free, before the introduction of the AdditionsDialog code.)

(I did not remove the #undef ABSOLUTE FIXME from
cui/source/dialogs/AdditionsDialog.cxx.
c4bee547b0 "tdf#133026: Additions: Better Search
Function" does not tell whether it had been added to mitigate a macro definition
from the (now removed) #include <curl/curl.h>.)

Change-Id: I1fec7488d36df81c3543d12d97da1291f77712fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104938
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-10-28 19:15:28 +01:00
Heiko Tietze ed8df0ec6e Resolves tdf#117463 - Dialog to show UI options
* 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-07 18:02:06 +02:00
Heiko Tietze 705226338b Resolves tdf#97918 - Individual UNO commands for distribution options
New UNO commands added, SID_DISTRIBUTE_DLG bend to dropdown, ui removed
Menus and toolbars adjusted

Change-Id: Ic0a3cc299f745a1a0cd18edead1f410ff57a1f1f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102272
Tested-by: Jenkins
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2020-09-18 01:11:18 +02:00
Noel Grandin 29c5e1ccbe cui,cppcanvas: create instances with uno constructors
See tdf#74608 for motivation

Change-Id: Id603bc26f95d3da86b8c7360a7bde8eee97049ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98141
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-06 12:25:13 +02:00
Tor Lillqvist 9eb3aabbf4 No need for the AdditionsDialog if --disable-extensions
Change-Id: If1ed6c860256e656846a1516e8170fb0dbd20499
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97346
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-06-28 20:18:36 +02:00