Commit Graph

87 Commits

Author SHA1 Message Date
Martchus abf1ad6c5a Support option for metered networks in Plasmoid as well 2024-02-19 18:34:36 +01:00
Martchus 29fad4918b Fix typos via codespell 2024-02-15 18:45:05 +01:00
Martchus 85c180d625 Fix checks for Plasma 6
The alpha defines the macros

```
#define PLASMA_VERSION_MAJOR 5
#define PLASMA_VERSION_MINOR 27
#define PLASMA_VERSION_PATCH 80
```

so the current version checks (which were created based on the macros from
a development build) are not working. I have no clue how these numbers are
crafted so it is supposedly the easiest to just check for Qt 6 as Qt itself
uses a sane versioning system.
2023-11-13 23:32:44 +01:00
Martchus 912dca1564 Port Plasmoid to Plasma 6
* Split QML part into distinct versions for Plasma 5 and 6 as there are too
  many differences and `#ifdef` is not possible
* Change API usage according to
  https://develop.kde.org/docs/plasma/widget/porting_kf6
* Port "contextualActions" to API documented on
  https://invent.kde.org/frameworks/plasma-framework/-/blob/master/src/plasma/applet.h
* Document testing
* Add FIXMEs/notes for remaining problems; there are likely many more,
  though
2023-07-13 01:01:02 +02:00
Martchus 13730ab933 Ignore "Forbidden" errors shortly after Syncthing start
Not sure why I'm getting

```
Fehler beim Abfragen der Syncthing-Konfiguration: Error transferring http://127.0.0.1:8384/rest/system/config - server replied: Forbidden
URL der Anfrage: http://127.0.0.1:8384/rest/system/config
```

one one of my setups but this kind of error can likely be ignored shortly
after the start similar to other types of errors.
2023-06-30 12:43:06 +02:00
Martchus 0c733837ce Fix showing directory errors in plasmoid 2023-04-26 20:30:23 +02:00
Martchus 58b8a4e540 Allow showing Syncthing UI in Chromium-based browser in "app mode"
See https://github.com/Martchus/syncthingtray/issues/178
2023-03-27 20:28:52 +02:00
Martchus 10c656cc5e Show error when settings cannot be restored or saved
* State the error type and location of the relevant file
* Help debugging problems related to settings
2023-02-17 19:20:10 +01:00
Martchus e9eeb76578 Fix displaying QR-code in wizard when built-in launcher is used
In this case the connection from the setup detection is not the correct
one. The connection used to apply the settings should generally be used for
querying the QR-code.
2023-01-09 16:01:37 +01:00
Martchus 31038135ad Show wizard on the first launch also for the plasmoid 2022-11-10 20:50:31 +01:00
Martchus 5fd07ee1c0 Allow opening wizard from Plasmoid 2022-10-08 23:42:29 +02:00
Martchus a0297f67ba Add setting to keep track whether it is the Plasmoid 2022-10-08 22:20:06 +02:00
Martchus d82bc710fd Allow using system icons instead of ForkAwesome icons
* Allow using icons from freedesktop.org icon theme for most ForkAwesome
  icons if available
* Let's not use it for the nested list of details in the models for now
* See https://github.com/Martchus/syncthingtray/issues/121
2022-10-07 00:20:50 +02:00
Martchus 99a7bd1a01 Hide tab texts in Plasmoid by default to avoid problematic overflow behavior 2022-09-05 22:54:28 +02:00
Martchus 8ea158aa23 Fix auto-detection of dark color theme in Plasmoid
* Remove `0 &&` in condition for making `QPalette` from Plasma theme
* Set `WindowText`/`Window` of `QPalette` in legacy case so
  `isPaletteDark()` works
* Set the icon manager's palette from the beginning (and not only if the
  Plasma theme changes)
2022-09-05 22:18:41 +02:00
Martchus 01f722c690 Unify code for about dialog image and attribution
It is the same for all components so define it at one place.
2022-08-25 20:35:02 +02:00
Martchus 788a5b2947 Allow opening dir in file browser if path contains tilde
See https://github.com/Martchus/syncthingtray/issues/148
2022-08-02 20:15:24 +02:00
Martchus 2139b204e3 Determine whether to use bright custom colors automatically 2022-07-16 19:28:31 +02:00
Martchus 8ec133e62d Make the Plasmoid's Fork Awesome icon coloring react to theme changes
* Make the Fork Awesome image provider URL a property and change its value
  if the Plasmoid's theme changes to cause Qt Quick to redraw images
* Turn caching of Image objects off so Qt Quick actually fetches the images
  again from the image provider
* Change the URL only back after returning to the event loop; otherwise Qt
  Quick apparently does not react to the property change
* See https://github.com/Martchus/syncthingtray/issues/126
2022-05-30 20:36:03 +02:00
Martchus be9d963a82 Add internal errors to menu/dialog even if the notification is disabled 2022-05-04 00:24:26 +02:00
Martchus db2740d36c Fix compilation against older Plasma versions 2022-03-02 12:22:57 +01:00
Martchus 3e38a9917e Use colors from Plasma theme in Plasmoid
One might configure a light color theme for applications and a dark theme
for Plasma (or vice versa) so this is an important difference, see
https://github.com/Martchus/syncthingtray/issues/126.
2022-02-02 22:38:36 +01:00
Martchus cb1071b3ad Improve Plasmoid to make it look more like official Plasmoids
* Use header (with integrated buttons when shown as part of the system tray
  Plasmoid)
* Use less space so it fits into the system tray plasmoid (at least on a
  full HD screen with 96 dpi)
* Show action for internal errors only if there are internal errors (like
  in the Qt Widgets based GUI)
* Port away from deprecated tab bar (which is not used in official
  Plasmoids anymore as well)
* Simplify code for ensuring the minimum size as configured (still does
  not work within the system tray Plasmoid)
2021-11-30 19:43:26 +01:00
Martchus 0651323da4 Use ForkAwesome consistently in Plasmoid as well 2021-10-15 22:18:30 +02:00
Martchus 3bf50fb414 Use Syncthing icon from ForkAwesome for buttons/menus
This should look more consistent than abusing the state-specific "idling"
icon.
2021-10-10 20:44:22 +02:00
Martchus f384d2a496 Use "qrcode" icon from ForkAwesome
It fits better than "view-barcode" from the icon theme. This also tests
using ForkAwesome icons via the custom icon engine. Unfortunately this
does not seem to work within the Plasmoid so far.
2021-09-15 20:37:21 +02:00
Martchus 66448a0774 Adapt to changes in qtforkawesome 2021-09-11 16:45:09 +02:00
Martchus 43fcb9f71b Migrate to ForkAwesome
* FontAwesome uses a propritary build system so let's move to its fork
  ForkAwesome similar to Syncthing
    * See https://github.com/syncthing/syncthing/pull/5237
* Bundle the font file instead of having the SVGs directly within
  Syncthing Tray's own repository
2021-09-11 02:20:38 +02:00
Steve Wills 0976b9d6b7 Fix build with systemd disabled 2021-07-15 10:01:38 -04:00
Martchus 975e86c895 Allow backend libraries to be used from other projects
So far the backend libraries' include paths were relative within this
repository. This means the header files could not be used at their
installed location.

This change replaces them with "<>" includes to fix that problem and adds
a new include directory so building everything at once still works.

With this change it should be easier to actually split some parts into
another repository if this one would become too big.
2021-01-25 19:48:11 +01:00
Martchus 57e9865ace Sort devices by name 2020-10-20 19:36:02 +02:00
Martchus 3e1beaa11d Sort directories by name/ID
* Use the name as sorting criteria and fall back to the ID if there's no
  name
* Use new SyncthingSortFilterDirectoryModel also for Plasmoid's filtering
* See https://github.com/Martchus/syncthingtray/issues/75
2020-10-18 15:48:02 +02:00
Martchus e62a69a2a9 Enable High-DPI scaling/pixmaps in plasmoid
* Fix too small icons, see
  https://github.com/Martchus/syncthingtray/issues/71
* Still needs testing on a real 4k screen
* Hopefully this does not distrub the rest of the shell
2020-07-23 18:47:35 +02:00
Martchus c0e2e0bce1 Apply clang-format 2020-07-12 21:17:34 +02:00
Martchus 5b2147a874 Apply scaling in renderSvgImage() similar to QIcon::pixmap() does 2020-07-12 02:38:57 +02:00
Martchus e8952e77d1 Fix connecting autom. in plasmoid when systemd integration is used 2020-05-25 20:30:39 +02:00
Martchus ed4d1fc213 Use idle status icon for button to open Syncthing web UI
That looks more consistent, especially when using a dark color theme
where the default Syncthing icon doesn't fit in very well.
2020-04-12 23:16:26 +02:00
Martchus 6921f9aa89 Configure bright colors for recent changes model 2020-02-29 13:17:38 +01:00
Martchus 6026339c83 Show recent changes 2020-01-18 16:43:13 +01:00
Martchus 32f78b74fd Overhaul systemd integration, support system-wide units
* Lazy initialize systemd interface and don't initialize it
  at all if the unit name is empty
* Allow to supervise/control system-wide units in addition to
  user units (see https://github.com/Martchus/syncthingtray/issues/61)
* Avoid redundant code
2019-12-18 00:18:46 +01:00
Martchus 1982d26295 Remove code duplication in SyncthingApplet 2019-08-01 19:08:58 +02:00
Martchus 2363e9a7d4 Update status icon and tooltip when changing settings
Required because the reconnect interval which might be included
in the tooltip might have changed.
2019-08-01 19:07:58 +02:00
Martchus 353f1e2463 Allow to distinguish icon colors within UI and system tray
This is useful because sometimes the background color of the system
tray is dark but the overall system UI still uses a light theme.

For the Plasmoid this should never be the case, though. Hence the
extra settings are not available there.
2019-07-31 20:16:43 +02:00
Martchus 335913c8ca Fix build without systemd support 2019-07-13 13:21:02 +02:00
Martchus 2112b00347 Allow to show start/stop button for launcher 2019-07-12 20:32:55 +02:00
Martchus 6ac633366e Don't use functions obsoleted in Qt 5.13.0 2019-06-25 14:37:14 +02:00
Martchus 64473df5ba Adapt to changes in c++utilities 2019-06-10 22:48:26 +02:00
Martchus 0e7cc8ba9b Apply changed status colors without restart 2019-05-19 23:11:50 +02:00
Martchus 72b72b26ae Don't abuse scanning icon to get default logo 2019-05-19 18:04:28 +02:00
Martchus 05da0465a7 Allow customizing status icon colors 2019-05-19 17:57:37 +02:00