Commit Graph

56 Commits

Author SHA1 Message Date
Martchus 1b72e61c86 Allow to use a window without titlebar
This might look better than a popup on Windows 11 because we'd still get
the round window corners.
2023-02-18 21:27:09 +01: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 3132c006c5 Allow configuring thickness of status icons 2022-12-20 18:29:05 +01:00
Martchus 24a9e63005 Apply clang-format 2022-12-10 12:06:07 +01:00
Martchus 6c89b2dc0a Allow disabling positioning at fallback coordinates
This just turns the "Otherwise assume …" label into a checkbox allowing to
disable the fallback behavior completely.
2022-11-29 23:33:28 +01:00
Martchus 71c56edfd8 Allow showing Syncthing Tray as normal application/window
* Remove experimental pinning feature again and instead allow using a
  normal window
    * Pinning made it inconvenient to close the (frameless) window again
    * Pinning required hiding/showing the window which didn't look very
      nice (and setting flags directly via `QWindow` didn't work as well)
* As normal application/window positioning issues on Wayland are less
  problematic (and those aren't going to be fixed any time soon, if at all)
2022-11-29 23:06:15 +01:00
Martchus 328417d1f3 Fix compilation without systemd support 2022-10-24 15:37:53 +02:00
Martchus 77cea5aead Tie suppressing notifications to "reconnect integrations" of launcher/service
So suppressing notifications by either the launcher status or service
status can be enabled/disabled together with the re-connect tweaking. This
makes more sense than having it unconditionally enabled and makes the
presence of the feature (and when it is effective) also more visible to
users.
2022-10-22 12:32:24 +02:00
Martchus ec85052c20 Allow enabling devel modes via env variables
Using CLI args is not possible for plugins (such as the Plasmoid).
2022-10-08 22:44:00 +02:00
Martchus 9220d66add Allow pinning tray menu (still experimental) 2022-10-07 22:59:17 +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 3f5bc4d772 Fix inclusion of Connection::addConfigFromWizard() 2022-10-04 14:15:58 +02:00
Martchus 99872b262e Move setting connection config from wizard into its own function 2022-10-02 14:41:28 +02:00
Martchus 66948336d5 Allow to disable tab texts (to shown only icons anymore)
When configuring a smaller size for the Qt Widgets based UI it might be
preferred to show only the icons instead of having the tab buttons
overflow.
2022-09-05 21:56:22 +02:00
Martchus c9ac1c794b Allow portable configuration via `QtUtilities::getSettings()`
See https://github.com/Martchus/tageditor/issues/88
2022-08-20 16:19:08 +02:00
Martchus 2139b204e3 Determine whether to use bright custom colors automatically 2022-07-16 19:28:31 +02:00
Martchus 4b174eae20 Add option to ignore folder "out-of-sync" errors for overall status
* Add option to ignore unread notifications as well to cover all those
  extra cases
* See https://github.com/Martchus/syncthingtray/issues/141
2022-06-07 10:42:22 +02:00
Martchus 1fad0baa0d Avoid non-POD global static in `widgets/settings/settings.cpp` 2022-06-07 10:10:12 +02:00
Martchus 4c6315b450 Terminate Syncthing gracefully via REST-API on non-UNIX platforms (2)
A follow up to 0faacaa7c8 to cover the stop button within the launcher
and terminating Syncthing on shutdown/exit. To find the relevant connection
the connection settings are searched for a local URL where the port matches
the port from the Syncthing process log.
2021-07-15 02:38:26 +02:00
Martchus ac033517cc Allow configuring rendering size of status icons
The default of 32 px should be fine in most cases and when the UI is scaled
it is also automatically scaled. However, if one has a tray area or Plasma
panel with extraordinarily big icons like latte-dock it might still be
required to render icons at a higher resolution. This is hard to determine
programmatically so I'm just adding a manual setting.
2021-04-21 18:23:20 +02:00
Martchus 8ec9038b2c Better decouple syncthingwidgets from libsyncthing if libsyncthing is disabled
Before this change syncthingwidgets unconditionally included the header
from libsyncthing so it couldn't be used as stand-alone library if
libsyncthing was disabled.
2021-02-03 00:01:34 +01: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 7a5cd3c65f Fix clazy warning about detatching Qt container 2021-01-04 18:52:23 +01:00
Martchus c656f6fba0 Load/save status compution flags from/to settings 2020-12-31 03:08:08 +01:00
Martchus 28a8391f2b Update libsyncthing to v1.5.0, support setting data directory 2020-05-05 19:01:05 +02:00
Martchus a744ea642e Remove hash<QString> implementation from settings.cpp 2020-03-02 16:14:53 +01:00
Martchus 94753de797 Fix start/stop button tooltip for system-wide systemd service 2020-02-02 19:51:16 +01:00
Martchus 0b377c263b Avoid code duplication in settings.cpp 2020-01-23 19:36:20 +01:00
Martchus 677644a17a Apply clang-tidy 2020-01-23 19:35:35 +01:00
Martchus 309ff054a0 Add option to connect automatically on startup 2020-01-23 19:09:51 +01:00
Martchus 287ec5542b Allow setting log level when using libsyncthing 2020-01-20 22:30:42 +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 37893f77cb Fix compilation with Qt >= 5.14.0 2019-10-20 03:37:44 +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 972f7b2776 Stop libsyncthing when stopping the application 2019-07-29 16:00:41 +02:00
Martchus 1bdba31c70 Improve behavior under Wayland
* Add workaround for using QCursor::pos()
* Set window flags and parent of TrayMenu to it is shown
  like a context menu
2019-07-27 15:04:14 +02:00
Martchus fb3c9e9635 Adjust launcher/service apply yet another time
* Only reconnect later if the launcher/service is actually running
* Don't try to reconnect if systemd unit is not available
2019-07-26 16:36:48 +02:00
Martchus 1ce8ec9c5f Consider systemd status only relevant if unit is available
If the unit is not available is is not possible to tell whether the
service is running or not so the systemd status should not be
considered yet. As soon as the status changes Systemd::apply() is
executed again and the status possibly considered.
2019-07-25 18:32:52 +02:00
Martchus 038225936e Base libsyncthing on official library refactoring 2019-07-17 17:53:36 +02:00
Martchus fe332078f1 Improve taking the launcher status into account when connecting
* Take the time the launcher is active into account (in the same
  way as it is done for the systemd service)
* Fix case when systemd service would be relevant but configured
  to consider the launcher status
2019-07-13 17:59:48 +02:00
Martchus c521e2f808 Apply clang-format 2019-07-13 13:21:25 +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 31bb92da89 Show notifications about launcher errors 2019-07-12 20:25:24 +02:00
Martchus 64473df5ba Adapt to changes in c++utilities 2019-06-10 22:48:26 +02:00
Martchus 05da0465a7 Allow customizing status icon colors 2019-05-19 17:57:37 +02:00
Martchus 988765f2ba Show new dev/dir notifications in usual tray icon and Plasmoid 2018-05-01 22:27:03 +02:00
Martchus 0d635e5ad5 Refactor launcher
* Pass program and arguments directly
    * Prevent failure on white space in executable path
    * Use own parser for arguments
* Make libsyncthing accessible from launcher
2018-04-18 23:27:45 +02:00
Martchus 0ceb8d5e79 Add high-level abstraction for launching Syncthing
Add new SyncthingLauncher class which lauches Syncthing
under the hood via external SyncthingProcess or using
libsyncthing.

Note: Launching via libsyncthing is still experimental.
2018-04-11 23:16:00 +02:00
Martchus 6d155d3d63 Make considering launcher for reconnects configurable
Similar to the systemd configuration
2018-04-03 00:11:55 +02:00