Commit graph

166 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
Nicolas Fella
12d8adef76 Enable highdpi for all executables 2022-04-02 14:32:54 +02:00
l10n daemon script
a09825c498 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-03-20 02:05:33 +00:00
Ryan Adolf
531418c7d2 Change tray icon so it is the right color on MacOS
## Summary

On MacOS the system tray icon is off-color because it uses the gray-colored `kdeconnectindicatordark` icon which does not match the rest of MacOS.

![image](/uploads/430933399d9570dc1c59807e4715e87b/image.png)

BUG: 430226

I've used two patches to fix this:
1. Always use the status `KStatusNotifierItem::Passive` on MacOS. `KStatusNotifierItem` will only mark the icon as a mask (which is needed to allow it to dynamically switch between light and dark theme) [if the status is passive](cff7c337ab/src/kstatusnotifieritem.cpp (L1079-1081)).
2. The above should theoretically be enough to fix the issue and I swear at one point it was all that was needed. However, to fix this issue in my dev environment I also needed to pass in a `QIcon` with `setIsMask(true)` instead of setting the icon by its name. And I also use the `kdeconnectindicator` instead of `kdeconnectindicatordark` icon.

## Test Plan

The icon now renders in the correct color, regardless of whether devices are connected:

![image](/uploads/5010a07cbb5f23a286ece641c6b3879c/image.png) ![image](/uploads/2ae5d3d8aa633ebafb260febe313057c/image.png)

## Future work

Once I've verified this PR is working in the right direction, I want to look into making the icon gray (and hopefully a much easier-to-see gray) when no devices are connected!

For example, WireGuard, when not connected, looks like this:

![image](/uploads/43c2ef6bc7261431e878c9c1c05174f9/image.png) ![image](/uploads/f7587190648606df77ad3e3dde84098f/image.png)

P.S. I've been testing off the v21.12.2 tag since the master branch doesn't compile for me, so I haven't tested this change on the latest dev commit. But there should be no conflicts.
2022-03-02 12:06:36 +00:00
Ryan Adolf
14543fcba5 Raise configuration window (MacOS bug)
## Summary

I've added a call to [`dialog->raise()`](https://doc.qt.io/qt-5/qwindow.html#raise) when launching the configuration dialog.

This is intended to fix a MacOS bug where the configuration window launches behind other open windows, but this call shouldn't harm operating systems as well.

BUG: 416050

## Test Plan

### Before:
Configuration dialog launches behind other open windows on MacOS.

### After:
Configuration dialog launches over other open windows on MacOS.
2022-02-26 10:23:20 +00:00
l10n daemon script
5b314846fe SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-02-20 01:45:04 +00:00
Alexander Lohnau
fd681e62ab Port deprecated KCMultiDialog methods & embed json metadata in KCM
This KCM will have to get installed installed in the new plasma namespace eventually.
But considering that this app is part of the release service, we should not
depend on changes in a not yet released Plasma version.

Task: https://phabricator.kde.org/T14501
2021-12-15 08:24:22 +01:00
l10n daemon script
5c76528250 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-11-24 01:36:30 +00:00
l10n daemon script
c630a3de90 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-11-04 01:16:42 +00: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
l10n daemon script
61b2e607b4 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-09-26 01:12:22 +00:00
Nicolas Fella
c9bdf625c0 Set breeze as fallback icon theme for all executables 2021-07-27 23:03:51 +02:00
Piyush Aggarwal
db675eb7b2 connectivity_action: replace manual ifs with code 2021-07-13 23:25:02 +05:30
Piyush Aggarwal
296de907b5 indicator: fix single-click to open app and remove unnecessary capture 2021-07-12 05:35:25 +05:30
Piyush Aggarwal
e683dd218a indicator: add singleClick to open main app interface 2021-07-02 23:09:47 +05:30
Piyush Aggarwal
c647de6ab7 connectivity_action.cpp: remove stray qDebug() 2021-06-29 07:03:56 +05:30
Piyush Aggarwal
4d868a2e92 deviceindicator: add path to look in for kdeconnect-handler.exe 2021-06-25 14:15:02 +05:30
Weixuan XIAO
6f342d3ec2 Fix exit due to too early D-Bus call on macOS
Move D-Bus call related code after daemonHook.
This should also keep compatibility on Windows.
2021-06-22 15:03:46 +02:00
Piyush Aggarwal
8356cf4e5b systray_actions: add license 2021-06-22 15:24:05 +05:30
Piyush Aggarwal
e10b098ed3 systray: add photo plugin to systray actions 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
3273cea4c8 systray: add separator 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
fc4a19dee0 systray: disable status actions - battery and connectivity - since they don't have any 'on-Click action' bound to them anyways 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
98077b86d6 indicator: replace send file invocation with urlhandler 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
de02b9b50e systray: add dynamic icon support for connectivity action 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
f4cb713c71 indicator: status-aware battery action icon 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
fe3d79ccbc indicator: add connectivity action 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
94d4a9c1c2 indicator: move systray action class to own folder 2021-06-17 15:03:21 +00:00
Piyush Aggarwal
ad35ae75d9 indicator: move KDBusService::Unique call to make sure it works on Windows 2021-06-15 13:48:39 +05:30
Piyush Aggarwal
62e02180df indicatorhelper_win: make sure we kill all kdeconnect executables when Quit is triggered 2021-06-15 13:34:17 +05:30
Piyush Aggarwal
82c7a8080d add KColorSchemeManager instance to install auto dark theme on Windows 2021-06-13 13:51:28 +05:30
Piyush Aggarwal
360f540ffe indicator: add icon to quit option in systray menu 2021-06-12 05:22:54 +05:30
Piyush Aggarwal
13a99a7e99 Set program logo in KAboutData and trigger KIconLoader plugin in the process 2021-06-08 02:34:26 +05:30
Piyush Aggarwal
02ed0699ff set app style to breeze explicitly on Windows 2021-06-03 03:15:35 +05:30
Piyush Aggarwal
61de9ba315 deviceindicator: add comments to mark each menu entry 2021-06-02 05:37:44 +05:30
Piyush Aggarwal
aee2b593de icons: add qrc for device status icons 2021-06-02 00:02:35 +00:00
Piyush Aggarwal
7b56c1d340 indicatorhelper: move terminateProcess calls to IndicatorHelper dtor 2021-05-29 00:12:26 +05:30
Piyush Aggarwal
f012610ba4 indicatorhelper: fix incompatibility warning for PROCESSENTRY object 2021-05-27 12:00:20 +05:30
Piyush Aggarwal
e7c3c4fb7b indicator: open Configure menu on double click 2021-05-23 11:05:21 +05:30
l10n daemon script
f4211e0431 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-04-22 01:12:28 +00:00
l10n daemon script
cd1d047a3c SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-02-15 07:07:57 +01:00
Santhosh Anguluri
21db24c58c UseHighDpiPixmaps in kdeconnectd and kdeconnect-indicator 2021-01-29 20:34:51 +05:30
l10n daemon script
a558af4dd3 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-01-16 06:40:31 +01:00
l10n daemon script
38afb807bf SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-12-07 06:11:38 +01:00
Piyush Aggarwal
671046888f re-add pre-baked PNG icons for kdeconnect-indicator.exe.
commit 5210d1ae removes PNG icons from the codebase which were needed by the windows build.
2020-10-31 14:46:13 +00:00
Piyush Aggarwal
06d81412b6 reliably kill dbus-daemon and kdeconnect-daemon using WinAPIs 2020-10-31 11:31:51 +00:00
Piyush Aggarwal
28b7ad0a5d add logging category KDECONNECT_INDICATOR to indicator 2020-10-31 11:31:51 +00:00
Piyush Aggarwal
f4a960a631 use kdeconnect-tray icon from breeze-icon set in windows build 2020-10-27 20:28:36 +05:30
l10n daemon script
e57fd79f26 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-09-19 06:10:24 +02:00
l10n daemon script
b7bdc75ff9 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-09-17 06:15:05 +02:00
Nicolas Fella
f90d6a019f Rework the battery plugin
Instead of having the DBus stuff in a separate class expose the plugin class itself like we do for the other plugins.

Replace the method-based API with properties.

Change the path to <device>/battery for consistency with other plugins
2020-08-27 15:04:40 +00:00