Commit graph

92 commits

Author SHA1 Message Date
Albert Vaca Cintora
bbcbec7709 Refactor macOS startup code
Moves all the stuff that is needed to start DBus on macOS (which for some reason it needs several steps, involving the use of `launchctl`) into a single `startDBusDaemon()` function. Before, it was spread into `kdeconnectconfig.cpp`, `indicatorhelper_mac.cpp` and `dbushelper.cpp`.

It also removes checking for an existing DBus daemon and always starts our own, since in most cases we couldn't connect to it anyway. This, together with removing the sleep in the retries when polling for the DBus daemon from 3s to 100ms, makes the startup much faster, so I removed the loading splash screen.
2024-09-21 09:27:24 +00:00
Albert Vaca Cintora
6374d863d2
Fix clang-format 2024-09-13 17:10:59 +02:00
Albert Vaca Cintora
da07bce897
Split DesktopDaemon into its own files 2024-09-13 00:44:38 +02:00
Nicolas Fella
75bd1c694e Enable KCrash for all executables 2024-08-01 11:23:02 +00:00
Albert Vaca Cintora
af4ce1c33c Show pairing keys everywhere and always shorten to 8 chars
The previous key was 64 freakin characters long which made it more prone
to being ignored, and thus less secure.
2024-05-18 20:26:48 +00:00
Aleix Pol
5921ab6f2a Drop Qt5-only code branches 2024-04-27 17:46:39 +02:00
Alexander Lohnau
fd3de36d0b Do not rely on KIO source-code compat code
Instead, explicitly include the needed job headers

Needed for https://invent.kde.org/frameworks/kio/-/merge_requests/1525 to land
2023-12-27 14:37:29 +01:00
Rob Emery
4dba3394a7 Bluetooth support improvements #1 (!600)
Android counterpart: https://invent.kde.org/network/kdeconnect-android/-/merge_requests/399

Bluetooth support is now enabled by default.
2023-11-20 18:09:13 +00:00
Nicolas Fella
0343c9401d Port to new KNotifications action API 2023-11-04 13:40:22 +01:00
Alexander Lohnau
e598a997e7 Use initializer list syntax where appropiate 2023-08-07 19:28:37 +02:00
Alexander Lohnau
87c9032ab9 kdeconnectd: Make QByteArray->const char* conversion explicit
With latest ECM settings, this gives a Qt6 error
2023-07-25 18:29:38 +02:00
Alexander Lohnau
e957f8f90e Fix kdeconnect daemon quitting in Qt6 2023-07-25 18:29:38 +02:00
Alexander Lohnau
f3998e4b5f Fix windows build issues
- Add dummy args param to QProcess::startDetached
- Remove logging category from inline snippet. This was removed due to
  being unused in non-windows builds.
2023-07-22 19:12:28 +02:00
Alexander Lohnau
1ee75463e0 Get rid of QOverload/static_cast for overloaded signals
By exclusing deprecated API in the KF5 build, the deprecated signal no
longer cause an ambiguity
2023-07-22 16:17:24 +02:00
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