Commit graph

29 commits

Author SHA1 Message Date
Albert Vaca Cintora
59adbc2da4 Move all generated dbus interfaces to kdeconnectinterfaces exclude them from clazy
* Moves the XML definitions of DBus interfaces and code generation from the different plugins
  to kdeconnectinterfaces. Before each plugin had their own, some of them duplicated.
* Appends `// clazy:skip` to the generated interface files, so Clazy doesn't emit warnings
  about them because they are missing the NOTIFY/CONSTANT keywords on Q_PROPERTIES.
* Makes kdeconnectinterfaces static on Qt5 as well (removes a difference with Qt6).
* Moves the generated files to a `generated` directory and updates the includes so they are
  easily distinguished from other header files.
2023-07-24 12:18:47 +00:00
Alexander Lohnau
4e7764f328 Adjust includes/linking for QX11Extras 2023-07-20 11:15:46 +03:00
Alexander Lohnau
c5bfc4a5b0 Allow building against Qt6/KF6 2023-07-20 11:15:41 +03:00
Albert Vaca Cintora
495e3019e4 Reduce number of optional dependencies
Change some optional dependencies from being optional to being mandatory
or being mandatory but behind on-by-default cmake flags. Eg: instead of
only compiling Wayland support if we find the appropriate libraries, we
always require the libraries unless the user specifies WITH_WAYLAND=OFF.

Optional libraries are hard to discover by packagers (since they don't
see an error once we add them) and create lots of possible build flavors
with a different features that can confuse users.
2023-07-19 17:08:03 +00:00
Aleix Pol
5d4b074ef5 Drop dependency with PlasmaWaylandProtocols
Now that we are using the RemoteDesktop XDP, we don't need FakeInput
anymore.

BUG: 465767
2023-02-17 07:48:45 +00:00
Aleix Pol
851e456210 Use the RemoteDesktop portal to input from wayland
Cross-desktop approach to moving the cursor remotely on wayland. Should
work on X11 too, so we can consider drop the other one as well.

It adds support for receiving full text as well, which didn't use to be
possible.
2023-01-16 18:14:47 +01:00
Volker Krause
002848efa8 Adapt build system to also support Qt 6
This is complicated by the Qt 5.6 requirement of SailfishOS, hopefully
that didn't get broken by this.
2022-10-29 16:51:41 +02:00
Nicolas Fella
7704726857 [plugins/mousepad] Port away from KWayland
Use QtWaylandScanner to implement the protocol directly
2022-05-02 20:15:43 +02:00
Alexander Lohnau
30d895d868
Clean up unneeded JSON parameter in kcoreaddons_add_plugin
The moc process already rebuilds the plugin when the JSON file changes, consequently the additional parameter is not needed.

Task: https://phabricator.kde.org/T14649
2021-06-28 20:33:52 +02:00
Nicolas Fella
bb619baa18 Fix build with libfakekey 2020-11-17 14:34:20 +01:00
Nicolas Fella
8b82a30d40 CMake cleanup
Remove all include_directory calls

They are either unnecessary or can be done better
2020-11-16 12:21:07 +00:00
Weixuan Xiao
273c2e937a Just keep CMakeLists as it was
until Wayland supports macOS or Apple brings back X11
2019-07-21 22:49:07 +00:00
Heiko Becker
4a4e8216aa Use OPTIONAL_COMPONENTS to search for KF5Wayland and DocTools
Summary:
Otherwise cmakes complains when invoked with
-DCMAKE_DISABLE_FIND_PACKAGE_KF5Wayland=TRUE: "CMake Error at
/usr/share/cmake/Modules/FeatureSummary.cmake:459 (message):
feature_summary() Error: REQUIRED package(s) are missing, aborting
CMake run."

Reviewers: #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D12141
2018-04-12 12:08:03 +02:00
Albert Vaca
bda995b832 Make Qt X11Extras not a hard dependency
Should fix the CI build
2018-04-08 19:21:02 +02:00
Albert Vaca
f1f19eb01b Split platform-specific code from mousepad plugin
Summary:
Windows no longer needs a separate plugin, and X11 and Wayland are now in
separate files instead of having lots of ifdefs.

Test Plan: Tested on X11, Wayland and Windows.

Reviewers: #kde_connect, apol, nicolasfella

Reviewed By: #kde_connect, apol, nicolasfella

Subscribers: apol, nicolasfella

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D11692
2018-04-04 22:38:16 +02:00
Friedrich W. H. Kossebau
cfe83bb69d Revert accidental hard dependency on KF5Wayland 2018-03-22 17:34:15 +01:00
Friedrich W. H. Kossebau
bb3ab8b631 Clean-up requirements: cmake 3.0, qt 5.7, use min versions, deduplicate KF5
Summary:
* cmake 2.8.12 is really outdated, 3.0 is minimum in plasma & kf5
* cmake_minimum_required should be at begin of toplevel CMakeLists.txt
* bump qt version to 5.7, matching the min Qt version of kf5 5.42
* with ecm being part of kf5 since early versions, share ${KF5_MIN_VERSION}
* use QT_MIN_VERSION & KF5_MIN_VERSION also for separate find_package calls
* deduplicate all KF5 components searched for in unconditionally included
  subdirs

Test Plan: Still configures and builds with all options OFF & ON

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella

Differential Revision: https://phabricator.kde.org/D11418
2018-03-17 23:34:33 +01:00
Aleix Pol
e7578cc129 Refactor capabilities together with Albert
He is committing a similar patch to kdeconnect-android
2016-05-31 17:16:01 +02:00
Alexander Potashev
ca1d99e261 plugins/mousepad: At least KF5::Wayland 5.3.90 is required
Fake input interface was added to KF5::Wayland only a couple of weeks
ago, it has not been released yet with this feature.

CCMAIL: mgraesslin@kde.org
2015-07-21 04:48:29 +03:00
Martin Gräßlin
2506f0e78a [mousepad] Integrate with KWayland for fake input support
KWayland provides a FakeInput interface which KWin as a compositor
supports. This can be used to fake input events on Wayland. As it's
a KWin specific interface it won't work with other Wayland compositors.

If the compositor does not support the required interface, the
module just doesn't do anything. Support in the implementation is
completely optional.

Adding fake input events circumvents the Wayland security model.
Because of that the interface is designed in a way that the security
decision can be done by the compositor and can be delegated to the
user.

On first input event kdeconnect tries to "authenticate" with the
compositor. This gives the compositor the possibility to e.g. ask
the user whether it should be allowed. It's not done on startup or
of load module as that would show such a message way to early and
the user would not be able to connect it with his action on the
smartphone.

REVIEW: 124238
2015-07-09 10:48:00 +02:00
Martin Gräßlin
ab5438d338 [mousepad] Use QX11Info to get the Display
Don't open a second Display, we can use the one used by Qt.
Advantages are: we are on the correct Display, we don't open a Display
connection on e.g. Wayland (it would succeed but not work as a connection
to Xwayland would be opened) and we can drop the copy of fixx11h.

It's also a prerequisite to properly split the implementation to support
Wayland in a later change.

REVIEW: 124230
2015-07-03 09:43:01 +02:00
Aleix Pol
509ab4ce02 Remove unneeded dependency link 2015-04-10 18:03:49 +02:00
Aleix Pol
c7cee37330 Port away from KServiceTrader
Uses KPluginLoader+KPluginMetadata instead.
Describes plugins in json instead of desktop files. These desktop files are
then embedded into the .so file. All the plugins will be in a kdeconnect/
directory, and those will be the ones to look for.

Note it doesn't drop the KService dependency as KIOCore is a KDE Connect
dependency as well.

REVIEW: 123042
2015-03-19 16:36:53 +01:00
Aleix Pol
21ab5a4f81 Merge branch 'master' into frameworks
Mostly kDebug -> qCDebug
Also some KCmdLineArgs -> QCommandLineParser

Conflicts:
	cli/kdeconnect-cli.cpp
	core/CMakeLists.txt
	core/backends/lan/lanlinkprovider.cpp
	core/daemon.cpp
	core/pluginloader.cpp
	interfaces/CMakeLists.txt
	kio/kiokdeconnect.cpp
	plugins/mousepad/CMakeLists.txt
	plugins/mousepad/mousepadplugin.h
	plugins/mpriscontrol/mpriscontrolplugin.cpp
	plugins/sftp/sftpplugin.cpp
2014-11-04 19:12:29 +01:00
Àlex Fiestas
74382f09d2 Port mousepad to CMake that does not need KDELibs4Support 2014-09-23 19:45:08 +02:00
Àlex Fiestas
dbea3171bd Make kdeconnect core compile without KDELibs4Support
This meant to add a lot of dependencies to each plugin since we had
KDELibs4support as PUBLIC link meaning that anything linking against
kdeconnectcore was linking at the same time to mostly all frameworks.

Now each plugin has more or less its dependencies in the CMake some
still depend on KDELibs4Support.

For the mousepad plugin I needed to add a fixX11.h file that basically
undefines/defines again some stuff xlib has that conflcits with normal
C++ and Qt.

Before it was not conflicting because some lib within KDELibs4Support
was including this file, but now we have to do it ourselves.
2014-09-22 02:40:51 +02:00
Christophe Giboudeaux
5bf93af31e Add FindLibFakeKey.cmake.
The build system cannot guess that a new build dependency was added.
2014-08-27 15:35:21 +02:00
Albert Vaca
ea5d9c8eca MousePad: Added support for any UTF character and more special keys.
I've also removed modifiers like Shift and Ctrl by now.

LibFakeKey is now a dependency of this plugin, as it allows us to send UTF
characters as X11 keys in a simple and convenient way. Internally it uses a
convention in Xlib, that allows to pass UTF characters as keycodes just by
adding 0x01000000 to the keycode number.

CCMAIL: saiarcot895@gmail.com
2014-08-14 21:35:23 +02:00
Ahmed Ibrahim Khalil
d14b4411cd Implementation of mousepad plugin
CCMAIL: ahmedibrahimkhali@gmail.com
2014-06-27 15:43:34 +02:00