Age | Commit message (Collapse) | Author | Files | Lines |
|
While the VCL plugins are dynamically loaded and therefore just
load their depending toolkit libraries, the GStreamer avmedia
backend now links against Qt and GTK+. The GStreamer API itself
is toolkit agnostic and the toolkit setup just uses a single
GStreamer symbol to create the specific video sink.
So the toolkit binding can simply be moved into the VCL plugin.
At the point of the GStreamer toolkit setup call the GStreamer
library is loaded by avmediagst, so the dlsym lookup should
never fail.
I also dropped the special GtkWidget handling. Using g_object_get
will increase the refcount of the widget. A g_object_unref after
adding it to the container seems to destroy it correctly.
Change-Id: I693947e441bceb4b09bc38920e308e39142d0a35
Reviewed-on: https://gerrit.libreoffice.org/73849
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Treat all of QT5_CFLAGS, QT5_GLIB_CFLAGS and KF5_CFLAGS as
C++ flags, since those contain C++ flags in the first place.
Therefore, set them using 'gb_Library_add_cxxflags',
not 'gb_Library_add_defs'.
(Strictly speaking, those variables contain includes as well,
but handling that properly would require splitting this
up further, either in 'configure.ac' or see e.g. how it's done
in 'RepositoryExternal.mk'.)
This also prevents the values of those variables from ending
up in the wrong section in IDE integration generated by
gbuild-to-ide.
Handling them as includes previously resulted e.g. in 'vcl/vcl.pro'
(generated by 'make qtcreator-ide-integration') containing
DEFINES += BOOST_ALL_NO_LIB \
... \
VCLPLUG_GTK3_KDE5_IMPLEMENTATION -isystem /usr/include//KF5 -isystem /usr/include//KF5/KCoreAddons [...]
and Qt Creator would show a (rather unhelpful) warning like the
following when opening a header file inside 'vcl/inc/':
> Warning: The code model could not parse an included file,
> which might lead to incorrect code completion and highlighting,
> for, example.
>
> 4:9: error: macro name must be an identifier
Change-Id: I2bb0c37fdf1112650e8adc712f60737888a8169b
Reviewed-on: https://gerrit.libreoffice.org/73699
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
like this since initial commit but prolly just copy'n'pasta error
Change-Id: Id61c2d8ef1df496738575e4ee4879d71a40b4934
Reviewed-on: https://gerrit.libreoffice.org/71381
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
The separate filepicker executable 'lo_kde5filepicker'
used by the gtk3_kde5 VCL plugin needs the KF5 libraries
(in particular the 'KFileWidget' class) in order to
provide custom controls in the Plasma-native QFileDialog.
The gtk3 side ('lo_kde5filepicker') itself doesn't use
any functionality from KF5 libraries itself and therefore
didn't link against those.
When determining which VCL plugin to use on LibreOffice
start, a 'dlopen()' is used on the libraries of the
potential VCL plugins, which fails if linked libraries
are not available, so unsuitable VCL plugin are skipped.
This mechanism didn't work for the gtk3_kde5 VCL plugin
if KF5 libraries were not installed, since the 'dlopen()'
on 'libvclplug_gtk3_kde5lo.so' would succeed, but starting
the 'lo_kde5filepicker' process would later fail at runtime
due to the missing libraries.
To avoid this, make 'libvclplug_gtk3_kde5lo.so' link
against KF5 libraries as well to prevent gtk3_kde5 from
being used unless all required libraries are actually present.
Add a dummy KFileWidget use in Gtk3KDE5FilePicker to prevent
smart linkers from not linking unused libraries despite linker
flags.
While this is a hack, it seems to be acceptable, in
particular since gtk3_kde5 is more meant as a temporary
solution supposed to be dropped at a later point in time
in favor of the pure kde5 VCL plugin.
Change-Id: I3a37daaeb1307b4f24f6fd75d7b6ec5ffaade0fd
Reviewed-on: https://gerrit.libreoffice.org/71237
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Tested-by: Jenkins
|
|
Building against libstdc++ effectively always requires -pthread anyway (as
various standard C++ headers require it, see the comment added to
solenv/gbuild/platform/unxgcc.mk), so many explicit uses of -pthread/-lpthread
can be removed.
Doing a (partial) test build on Linux with Clang -stdlib=libc++ suggests that
libc++ indeed doesn't need -pthread as libstdc++ does.
The remaining uses of -pthread/-lpthread are mostly in configure.ac for the
various BSDs (which somebody else might want to clean up now), and related to
external projects. I tried to be careful to remove -pthread/-lpthread from
makefiles only when C++ object files are involved (so -pthread will now be
included on the link command line by default).
Change-Id: I936e082839cb9a434bd273ce5a1f187a4245dfa1
Reviewed-on: https://gerrit.libreoffice.org/71291
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I3a597c971fd51cba3b9b41b88c4bcc43355ffd79
|
|
Hopefully fixes broken tinderboxes.
Change-Id: I2297e5df9f18a444801ec2dc6dbbb098ed4d90c9
Reviewed-on: https://gerrit.libreoffice.org/54163
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
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.
Change-Id: I1a97cf7c272307a19ace4222d5f12253bc722829
Reviewed-on: https://gerrit.libreoffice.org/47718
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
|