Commit graph

72 commits

Author SHA1 Message Date
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
Nicolas Fella
0692295ae7 s/Q_NULLPTR/nullptr/ 2019-05-05 15:45:50 +02:00
Nicolas Fella
6dda515f29 Move Desktopdaemon object from heap to stack 2019-05-05 12:58:11 +00:00
Nicolas Fella
3b8fedea1a Replace http GNU urls with https 2019-03-23 17:29:26 +01:00
Heiko Becker
fab782d91c Use KAboutData to set information about the daemon
Summary:
I noticed this when the daemon crashed and drkonqi refused to submit
a bug report, complaining about a missing bug reporting address.
Additionally, using KAboutData also saves initialising some
properties of QCoreApplication manually.

Test Plan:
sent SIGSEGV to kdeconnect, could've reported the crash
with drkonqi; checked with GammaRay that the properties of
QCoreApplication are initialised.

Reviewers: #kde_connect

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D18542
2019-01-25 23:00:31 +01:00
Adam Pigg
ebc316f703 Add a method for creating simple notifications
Summary:
Add a helper function to the daemon interface, which must be subclassed
by the implementations, which creates a simple notification.

For more complex needs, involving interacting with the notification, it
will still be nescessary to use KNotification directly, but this allows
for other future implementations to create a simple notification without
ifdef'ing the code.

Reviewers: kdeconnect, apol

Reviewed By: apol

Subscribers: kdeconnect

Differential Revision: https://phabricator.kde.org/D11104
2018-03-18 12:52:22 +01:00
Fabian Vogt
0667c6556f Merge branch '1.x' 2017-07-12 11:37:41 +02:00