Commit graph

196 commits

Author SHA1 Message Date
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
Albert Astals Cid
3df8fcf8b0 GIT_SILENT Upgrade release service version to 22.07.70. 2022-03-12 13:25:49 +01:00
Alexander Lohnau
e365e1b35c Port from KPluginSelector to new KPluginWidget class
Task: https://phabricator.kde.org/T12265
2021-12-15 08:24:22 +01:00
Nicolas Fella
1e113a44de Fix build by lowering KDE_COMPILERSETTINGS_LEVEL 2021-12-14 23:06:12 +01:00
Méven Car
5d970ddd48 Port clipboard plugin to KGuiaddons KSystemClipboard 2021-12-13 15:06:25 +00:00
Heiko Becker
ac770becbb GIT_SILENT Upgrade release service version to 22.03.70. 2021-11-08 20:59:07 +01:00
Albert Vaca Cintora
2d8fd766c8 Keep APPLE_IN_APP_BUNDLE, remove PRIVATE_DBUS_ENABLED 2021-10-19 18:43:34 +02:00
Albert Vaca Cintora
0ebe9db019 Fix MacOS build
If neither  PRIVATE_DBUS_ENABLED and APPLE_IN_APP_BUNDLE weren't set,
DBusHelper::macosUnsetLaunchctlEnv() wasn't declared.
2021-10-19 18:29:55 +02:00
Nicolas Fella
5ec83ba223 Don't build Plasmoid and KIO slave on macOS 2021-09-10 20:22:27 +02:00
Piyush Aggarwal
76eb784cfc CMakeLists.txt: find optional KF5 components really optionally 2021-08-04 22:45:43 +05:30
Aleix Pol
cf8ada2b5d app: make it possible to lock the mouse when using the remote input
It makes it possible to use normal touchpads and mice
2021-07-30 23:25:30 +00:00
Nicolas Fella
ab7b805da1 Use KPackage macro for installing plasmoid
The macro does some extra stuff under the hood, like converting the metadata.desktop to json, which makes loading the plasmoid a bit faster
2021-07-29 16:00:29 +02:00
Nicolas Fella
e641aa5596 Remove redundant CXX standard definition 2021-07-27 22:57:58 +02:00
Weixuan Xiao
0eb736607a Add APPLE_IN_APP_BUNDLE flag 2021-07-25 06:16:22 +00:00
Nicolas Fella
3ba219da0f Merge branch 'release/21.08' 2021-07-16 23:31:58 +02:00
Andreas Sturmlechner
eaec8888ad
Add missing KF5WindowSystem dependency
Added in commit a45bfe36d5 w/o searching for it.

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-07-16 23:26:52 +02:00
Albert Astals Cid
1d666fcea0 GIT_SILENT Upgrade release service version to 21.11.70. 2021-07-10 20:28:23 +02:00
Albert Astals Cid
5023862bb2 GIT_SILENT Upgrade release service version to 21.07.80. 2021-07-10 19:09:11 +02:00
Laurent Montel
ee40d1aea8 Make it compile with last ecm
(With
https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/145
we have disabled the C and C++ specific compiler extensions.)
2021-06-28 08:19:09 +02:00
Nicolas Fella
89f52af438 Disable kpeople qml module finding
https://mail.kde.org/pipermail/kdeconnect/2021-June/007223.html
2021-06-16 21:42:00 +02:00
Piyush Aggarwal
f33fed6fa1 windows: fix support for WIN_SDK < 19041
inspired by : https://gitlab.kitware.com/cmake/cmake/-/blob/v3.17.3/Modules/InstallRequiredSystemLibraries.cmake#L339-358
Since CMake doesn't really has a way of providing the Win10 SDK's version ( see: https://gitlab.kitware.com/cmake/cmake/-/issues/20773 )
we read the XML file set up by the SDK and filter the SDK version out of it
2021-06-16 17:29:45 +05:30
Piyush Aggarwal
a6de73d437 add compilation check for WIN_SDK_VERSION 2021-06-15 18:06:03 +05:30
Nicolas Fella
dcda6b3cea Add support for generating qmltypes file 2021-05-09 19:34:22 +02:00
Aleix Pol
c07315282f Bump C++ standard usage to 17
This way we can use std::make_unique
2021-04-07 00:43:51 +00:00
Bharadwaj Raju
a45bfe36d5 Fix notification reply window activation and focus
Ensures the reply window is raised using Qt::WindowActive state. This
properly raises the window reliably (including from plasmoid, which
didn't work at all before) and focuses the reply textbox.
2021-03-20 21:50:42 +01:00
Nicolas Fella
3e7ac98f28 Default to qqc2-desktop-style and add it as runtime dependency
On Plasma qqc2-desktop-style is used automatically, but not on other
DEs. Set it as a default and allow overriding it via environment
variables.

Also add it as a runtime dep so distros actually ship it.
2021-03-18 23:47:22 +00:00
Nicolas Fella
2fef3b925d Make use of KNotification's quick reply feature
It can make use of Plasma's native quick reply. If that is not available then it get's turned into a regular action that we hook up with
2021-03-17 14:29:08 +01:00
Albert Astals Cid
7437d87950 GIT_SILENT Upgrade release service version to 21.07.70. 2021-03-13 22:27:42 +01:00
Albert Astals Cid
56e70904c9 GIT_SILENT Upgrade release service version to 21.03.70. 2020-11-08 19:04:04 +01:00
Piyush Aggarwal
011758530b segregate icons into different folders 2020-10-31 14:46:13 +00:00
Nicolas Fella
0c9bfadb62 Follow release service version numbers
Ever since joining the release service we never increased our version number on release.
I've seen distros automatically apply the release service version scheme (20.0X) to the package,
but when running e.g. kdeconnect-cli -v we'd still get 1.4.

This way the version is automatically adjusted by the release tooling so we don't need to care about and cannot forget it any longer.
2020-10-15 12:24:27 +00:00
Nicolas Fella
79164ca8ba Replace manual include dir handling with interface target
We use kdeconnect-version.h in several places and therefore it needs to be in the include path. We currently do this by setting target_include_path in a few places. Replace this with an interface library that we can link against that sets up the correct include path. IMO it is cleaner this way.
2020-07-30 10:53:48 +02:00
Simon Redman
b1276795a1 Bump Frameworks version to 5.71 as required for Kirigami.Avatar 2020-07-05 12:31:07 +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
Tobias Fella
303a5c09fa Link to invent instead of phabricator 2020-05-17 14:43:38 +02:00
Nate Graham
a9d0cb64b7 [applet] Port to Kirigami.PlaceholderMessage
This new Kirigami component was just introduced with
https://phabricator.kde.org/D29057.

ref T13021
2020-04-22 22:49:26 +00:00
Heiko Becker
03a1357a24 Merge remote-tracking branch 'origin/release/20.04' 2020-04-16 18:26:30 +02:00
Heiko Becker
fba0c2d55f Fix previous commit
KDE_INSTALL_DATADIR already points to PREFIX/share of course.
2020-04-16 18:26:00 +02:00
Nicolas Fella
cdcf3400dd Merge branch 'release/20.04' 2020-04-16 18:01:26 +02:00
Heiko Becker
f1da4b4850 Use KDE_INSTALL_DATADIR 2020-04-16 10:48:11 +02:00
Philip Cohn-Cort
c315170be5 Finally, we have support for sending out Battery information.
## Summary

The core idea is as follows:

1. When a Link loads the BatteryPlugin, we query Solid for a list of batteries.
    1. If the list is empty, we print a warning message and return quickly
    2. Otherwise, we connect *two signals* to every object in that list
2. We send out a single new NetworkPacket as soon as we've processed that list
3. When either of those two signals emits, we send another new NetworkPacket

### Multi-battery Support

BUG: 357193

To handle devices with multiple batteries (requested in that bug), we average
together the battery percentages. This also includes a new field in the packet for
'number of batteries' called `batteryQuantity`. For backwards compatibility, we can
assume it has a default value of one.

This should ensure we support
- devices with no batteries at all (like many desktop machines)
- devices with hot-pluggable batteries (like those laptops with detachable screens)

### Concerns

Note that the implementation isn't perfect.
We'll need some new localizable text to make it clear that we now support sending
battery status information.

Then there's a rather significant question: maybe we should have two battery plugins
on each client, like we do for the `findmyphone`/`findthisdevice` plugins?

## Test Plan

We need to ensure that other clients (including those using the Android codebase)
will respond correctly. The main things to look at are
1. are these new packets sent when the plugin is enabled, and not sent when it's disabled?
2. is the charge percentage accurate?
3. is the charge state (charging, discharging, or full) accurate?
and
4. do we see the correct number of warnings for low-battery?
2020-04-13 05:54:11 +00:00
Nicolas Fella
483047f590 Mark QtQuick.Particles as runtime dependency
BUG: 417340
2020-03-17 17:13:12 +01:00
Richard Liebscher
bb5539c8c3 Make plugins work in SailfishConnect 2020-03-01 20:00:40 +00:00
Nicolas Fella
1a2315cdf7 Move settings app into own folder and make it a KDBusService 2020-01-17 01:32:56 +01:00
Nicolas Fella
894898ec0d find kpeople qml module 2020-01-16 17:11:10 +00:00
Richard Liebscher
b61cf6b28c Build DBus interfaces library for SailfishConnect 2020-01-06 19:28:36 +00:00
Richard Liebscher
ba34672cbd Make build for SailfishConnect possible 2019-12-09 22:14:19 +00:00
Nicolas Fella
173e388177 Bump version number for 1.4 release 2019-12-07 18:14:56 +01:00
Nicolas Fella
fdda1cd0d6 Require recent KF5 version
We require a recent-ish Kirigami version for the app
 # Please enter the commit message for your changes. Lines starting
2019-12-07 18:09:56 +01:00
Nicolas Fella
3f574a8488 Don't build runners 2019-12-07 16:10:18 +00:00