diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2018-01-10 17:50:43 +0100 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2018-01-26 19:02:39 +0100 |
commit | f1ac3032415568b6c0d941d6e4f52c8a92793b07 (patch) | |
tree | adca150968513a7b705dc774f53c38b0e2651c24 /vcl/Module_vcl.mk | |
parent | f94a739923520be20778a536c35823feb06d9a25 (diff) |
Introduce gtk3_kde5 vcl plugin
This is a hybrid plugin which mostly wraps the GTK3 vclplug. Only
the file and folder picker are replaced by KDE dialogs. This gives
us a well-maintained GTK LO base with basic KDE integration with
minimum effort.
To prevent issues with nested event loops, the KDE dialogs are
launched from a separate process, the new lo_kde5filepicker helper
executable. A trivial stdin/stdout IPC mechanism transfers the data
between LO and the Qt/KDE helper. The usage of an external process
also allows us to copy'n'paste between LO and the KDE file dialog
without freezing the UI, as would happen when one would do this
in-process. This is in general also the architecture applied by the
kmozillahelper, which is used to integrate KDE file dialogs into
Firefox.
While the KDE dialog is shown, the GTK3 main window is disabled and
close requests are ignored. The KDE dialog in turn also sets the LO
window as transient parent. Together, this makes the illusion perfect
and the KDE dialog behaves like a modal dialog. This works properly
also with multiple LO main windows, and only individual windows will
get blocked as one would expect.
Functionality wise, most of the features of the KDE4 dialog are
supported. You can pick files and folders, and save files under a new
name. Some custom checkbox widgets are supported, but lists, buttons
and preview widgets are not yet implemented. Also, loading remote
files via KIO is not possible yet.
Reviewed-on: https://gerrit.libreoffice.org/47718
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
(cherry picked from commit ecb5fcff336c8b0e5ad2503f0880c439a6c323a5)
Change-Id: I1a97cf7c272307a19ace4222d5f12253bc722829
Diffstat (limited to 'vcl/Module_vcl.mk')
-rw-r--r-- | vcl/Module_vcl.mk | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk index 18b3ad95210d..7dc02b022a9c 100644 --- a/vcl/Module_vcl.mk +++ b/vcl/Module_vcl.mk @@ -81,6 +81,13 @@ $(eval $(call gb_Module_add_targets,vcl,\ Library_vclplug_kde4 \ )) endif +ifneq ($(ENABLE_GTK3_KDE5),) +$(eval $(call gb_Module_add_targets,vcl,\ + CustomTarget_gtk3_kde5_moc \ + Library_vclplug_gtk3_kde5 \ + Executable_lo_kde5filepicker \ +)) +endif endif ifeq ($(OS),MACOSX) |