Commit graph

11 commits

Author SHA1 Message Date
Prajna Sariputra
383ad27b59 [plugins/mousepad]: Add support for the persistence feature of the RemoteDesktop portal
This allows us to avoid asking the user for permission for remote control on Wayland every time kdeconnectd is restarted for whatever reason (for example logging out or rebooting), at least in theory. The idea is that the SelectDevices call now also accepts a restore token, and if the user grants permission to persist a restore token will be returned in the response of the Start call.

Currently https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/265 is required for this to work at all with Plasma 6, and even then persistence only works in the same session (for example if I restart kdeconnectd then I only get the notification instead of the permissions prompt), if I reboot the system then the token gets invalidated and the permissions dialog appears again, not sure if the issue is with what I'm doing here or if that's a bug in the portal.

Things that need to be checked:
- What happens if the portal implementation only has v1 of the protocol and not v2 (the one with persistence)?
  - In particular what happens for the SelectDevices call if a restore token is given despite the portal not supporting it
    - Seems fine with xdg-desktop-portal 1.14.4 at least 
  - For the Start call we'll need to handle the case of the user denying the persistence request anyway
- Where and how should the restore token be stored?
  - ~~I used KConfig just so I have something to test, but the restore token isn't really a setting~~
    - Updated to use `KSharedConfig::openStateConfig`
  - Most of KDE Connect's settings and data appear to be for each connected device
  - The device name is a global setting, but it's implemented using QSettings rather than KConfig, and currently only setName and getName is exposed in `core/kdeconnectconfig.h`


BUG: 479013
2024-01-28 14:00:05 +00:00
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
75a8db1ec5 Use pragma once in plugins
For non-library code, this is simpler and more concise
2023-07-22 20:51:19 +00:00
Alexander Lohnau
0b99c3a637 Remove unneeded destructors from plugins
We already have a destructor from the baseclass and don't need to clean
up any resources in the affected plugins
2023-07-22 16:01:21 +02: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
Nicolas Fella
a918ffc0cb Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00: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
Nicolas Fella
87db95b22f Convert license headers to SPDX expressions 2020-08-17 09:48:10 +00:00
Nicolas Fella
3b8fedea1a Replace http GNU urls with https 2019-03-23 17:29:26 +01:00
Aleix Pol
4b261508ff wayland: support removing the fake input interface
If it can be removed, we better react to it.
2019-01-31 16:38:21 +01: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