Commit graph

78 commits

Author SHA1 Message Date
Alexander Lohnau
5a87000e3b daemon/kdeconnectd: Use QOverload with undeprecated signal
This will work in both KF5 and KF6
2023-07-20 11:16:04 +03:00
Albert Vaca Cintora
9c87393b28 clang-format pass 2023-07-16 16:20:34 +02:00
Albert Vaca Cintora
d3590c37eb Revert "Do not autostart the UI from the daemon on Windows"
This is here because the kdeconnect shortcut launches the
app, not the systray. The app launches the daemon via dbus
but without this, we don't have a systray.

Ideally the systray and daemon would be the same process.

Also ideally we would have a way to launch the daemon and
systray at boot, so people don't have to launch the app
just for the side effect of starting the daemon.

This reverts commit 1dcfaf5108.
2023-07-11 20:41:36 +02:00
Albert Vaca Cintora
1dcfaf5108 Do not autostart the UI from the daemon on Windows 2023-07-06 01:02:19 +02:00
Albert Vaca Cintora
0a0c990501 Fix daemon hanging on Windows when loading the window icon
I'm not sure why this started failing suddenly (or if it's only on my
machine), but changing the icon from svg to png solves the problem.
2023-06-28 00:03:11 +02:00
Albert Vaca Cintora
1ba446d1c5 Get the output when running kdeconnectd from the console on Windows 2023-06-27 23:52:48 +02:00
Albert Vaca Cintora
5a93a48973 Hide macos-only setting on non-macos 2023-06-07 21:46:20 +02:00
Albert Vaca Cintora
064ddfa3fe Refactor PairingHandler
We now have a single PairingHandler for all types of links.

The implementation now is more aligned with the one for Android.
2023-06-02 16:38:52 +00:00
Albert Vaca Cintora
6e2f218b55 Follow-up to my previous commit (fixes build) 2023-04-10 10:52:29 +02:00
Albert Vaca Cintora
74caaface0 Further KIO::AccessManager cleanup 2023-04-10 08:29:48 +00:00
Nicolas Fella
2c2e883288 Don't use KIO::AccessManager
The main thing it provides over QNetworkAccessManager is integration
with the CookieJar and using kio-http, but since we jsut exchange bytes
from another local device that's not interesting for us
2023-04-10 08:29:48 +00:00
Nicolas Fella
a918ffc0cb Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00:00
Nicolas Fella
ad01ef1695 Fix activating existing settings window on Wayland
Add the necessary bits for XDG activation to work

Move the code for launching the settings from the daemon to the respective processes so that we don't need to pass activation tokens over another process boundary
2022-07-06 12:55:39 +00:00
Weixuan Xiao
f1843cb492 Improve D-Bus implementation on macOS
Better patch to replace !218.

- Auto and quick detection of previous D-Bus instance;
- Remove private D-Bus compile definition, only use it on macOS without an existing D-Bus instance;
- Safe reboot after crashes because the indicator is not relating on the kdeconnectd to run a D-Bus session;
- Safe exit after clicking on `Quit` in the systray.


More details in commit logs:

Only enable private D-Bus on macOS because the other platforms do not
need them.
The app should be able to easily detect the session bus from the env
DBUS_LAUNCHD_SESSION_BUS_SOCKET from launchd through launchctl.
Because https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/dbus/dbus-sysdeps-unix.c#L4392
shows that it is the only probing method on macOS with launchd.

The D-Bus session bus can be easily found from launchd/launchctl
with DBUS_LAUNCHD_SESSION_BUS_SOCKET env. It can be an external one
(installed from HomeBrew) or an internal one (launched by a previous
instance followed by a crash).

The indicator helper on macOS can now automatically detect whether we can use a potentially
(with launchd/launchctl env set, or KDE Connect macOS
private_bus_address set) existed and usable session bus.
If previous bus is usable, just try to launch the kdeconnectd with us.
Otherwise, launch a private D-Bus daemon, export the launchd/launchctl
env, and run a kdeconnectd instance.

Everything works better and quicker now :)
2022-04-12 05:40:03 +00:00
Nicolas Fella
12d8adef76 Enable highdpi for all executables 2022-04-02 14:32:54 +02:00
Ahmad Samir
ad7b5b42b2 Use AccessManager from KIO::Integration
The same functionality, but a different namespace.

GIT_SILENT
2021-12-25 18:26:01 +02:00
Piyush Aggarwal
9031ccadc3 kdeconnectd: trigger indicator when daemon is spawned on Windows 2021-06-15 13:35:00 +05:30
Piyush Aggarwal
ee6e427137 daemon: link to custom icons for better fallback icon in notifications 2021-06-13 05:30:15 +05:30
Piyush Aggarwal
d773959a5d remove hardcoded window icon path in favour of fromTheme call 2021-05-23 10:42:29 +05:30
Nicolas Fella
5d037396ee Remove <br> from notification text
The notification spec does not specify that the server must support <br> and thus it can show up literally in the notification. Since we already have a \n we can simply remove it
2021-03-18 22:04:10 +01:00
Santhosh Anguluri
21db24c58c UseHighDpiPixmaps in kdeconnectd and kdeconnect-indicator 2021-01-29 20:34:51 +05:30
Albert Vaca Cintora
e7518493df Add a verification key that's displayed when pairing
The key is a sha256 of both devices' certificates. Both should generate the
same key, so hey user can check they are pairing against the right device.

Thanks Matthias Gerstner <mgerstner@suse.de> for reporting this.
2020-11-26 11:28:49 +01:00
Piyush Aggarwal
101bda832d setWindowIcon: add fallback window icons 2020-11-11 17:28:37 +05:30
Nicolas Fella
1060c1a81a Add API for opening the KCM to daemon
We have a few places that open the KCM, with different arguments.

Centralize the implementation in one place.

This makes it easier to switch to invoking systemsettings5 in the future (once https://invent.kde.org/plasma/systemsettings/-/merge_requests/11 is in).

It also makes sure the relevant device is selected when clicking on a pairing notification.

The function is exposed to DBus for the Plasmoid and potential third-party users.

CCBUG: 425660
2020-10-18 18:40:48 +00:00
Nicolas Fella
4dec116edf Use non-deprecated QProcess method 2020-09-19 15:26:39 +02:00
Nicolas Fella
87db95b22f Convert license headers to SPDX expressions 2020-08-17 09:48:10 +00:00
Antonio Larrosa
1d36164230 Use ecm_qt_declare_logging_category to declare the logging categories
This automatizes the generation of logging categories so a
kdeconnect-kde.categories is generated and installed to
/usr/share/qlogging-categories5/ so kdebugsettings can use it.

Also, sets the default logging level to Warning. So now the logs
of users won't be filled with debug messages but they can
modify the configuration easily with kdebugsettings.
2020-05-26 18:55:47 +02:00
Piyush Aggarwal
5000ae2cf6 update icon address for windowIcon 2020-04-10 22:42:04 +05:30
Nicolas Fella
eac1e07e29 Revert "Make default name and device type customizable"
This causes a crash described in https://invent.kde.org/kde/kdeconnect-kde/-/merge_requests/206#note_37534

This reverts commit a39a2d562d.
2020-03-21 21:13:41 +01:00
Richard Liebscher
a39a2d562d Make default name and device type customizable 2020-03-01 20:55:40 +00:00
Nicolas Fella
7ce7eaced6 Open kdeconnect-settings when clicking on pairing notification 2020-01-17 01:33:03 +01:00
Albert Vaca Cintora
02f7e3f16e Hide notification after it's no longer possible to accept pairing 2020-01-05 16:31:06 +01:00
Rajdeep Roy Chowdhury
646aecc47b Pairing Notification is made persistent 2019-12-01 12:01:41 +05:30
Nicolas Fella
724a5a14a8 Don't use KIO in core when building for Sailfish 2019-10-27 19:35:18 +00:00
Piyush Aggarwal
118d91ae78 add title to pairing request notification 2019-09-30 20:53:46 +00:00
Piyush Aggarwal
607d643d8c add windowIcon to daemon for better support on Windows 2019-08-19 18:57:45 +00:00
Nicolas Fella
4cccacca49 Fix indentation 2019-08-18 17:26:16 +02:00
Nicolas Fella
0d7c504cf0 Rename DbusHelper => DBusHelper 2019-08-14 17:36:19 +02:00
Fabian Vogt
2a687146ab Add detectPlatform to always use wayland in a wayland session
Summary:
It's possible that Qt uses the xcb platform by default even in a Wayland
session, so detect such cases and switch to wayland instead to enable
proper support for remote input. Copy code from libkworkspace to not
introduce a dependency.

Test Plan: Started kdeconnectd, uses wayland platform now. Remote input works.

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D22562
2019-07-21 20:56:25 +02:00
Matthijs Tijink
eabdb1ea37 Fix --replace option of daemon 2019-07-20 19:53:17 +02:00
Weixuan Xiao
5e827917a5 Close kdeconnectd from kdeconnect-cli with DBus 2019-07-20 09:17:03 +00:00
Nicolas Fella
0d0ca2e5ff Fix daemon component name 2019-06-20 16:48:35 +02:00
Weixuan Xiao
4f4b6c309f Allow to use private DBus 2019-06-18 01:21:31 +00:00
Weixuan Xiao
5431073844 Add wrapper for macos dbus connection 2019-06-09 15:28:49 +00:00
Nicolas Fella
8da22b90ab Disable session management 2019-06-02 14:01:42 +00:00
Nicolas Fella
8bdafd9730 [daemon] Set componentname to match desktop file name 2019-05-19 18:33:38 +00:00
Nicolas Fella
c029ae2bc2 add --replace option to kdeconnectd 2019-05-14 22:31:52 +02:00
Nicolas Fella
4b3f8a734d Install desktop file for kdeconnectd 2019-05-10 22:19:52 +00:00
Albert Vaca Cintora
8c65f093cb Fix build 2019-05-09 00:03:59 +02:00
Albert Vaca
3fc7df550b Better error handling when loading cert and key
BUG: 405207
2019-05-09 00:03:59 +02:00