Commit Graph

87 Commits

Author SHA1 Message Date
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 0ef3b80447 Fix typos found via `codespell --skip .git -w` 2021-07-03 19:29:49 +02:00
Martchus 0faacaa7c8 Terminate Syncthing gracefully via REST-API on non-UNIX platforms
If there's a configured and local Syncthing connection and we're on a
non-UNIX platform which doesn't support SIGTERM (basically Windows) it
makes sense to use the REST-API instead. That's likely better than just
terminating the process forcefully.

This doesn't cover the stop button within the launcher settings yet because
from this context is isn't clear which connection is relevant as there can
be multiple tray icons/widgets but only one settings page.
2021-06-21 23:18:51 +02:00
Martchus 1bc52ebb0f Improve Boost.Process-based SyncthingProcess
* Implement member functions required to run tests
* Add documentation
* Add minor tweaks
2021-06-17 20:32:40 +02:00
Martchus 9ce9b11ba4 Use Boost.Process for launcher to cope with further sub processes
* Use a process group / job object via Boost.Process to be able to
  terminate sub processes as well
* Do not try to stop the process gracefully under Windows by posting
  WM_CLOSE because this has no effect on Syncthing anyways
* See https://github.com/Martchus/syncthingtray/issues/94
2021-06-16 22:44:48 +02:00
Martchus 93f59ebf8a Apply clang-format 2021-05-27 18:16:56 +02:00
Martchus 5a39b6bc91 Improve displaying errors 2021-05-21 22:35:28 +02:00
Martchus 8c4e2168bc Avoid misplaced/clipped dialogs when default dialog size doesn't fit screen
https://github.com/Martchus/syncthingtray/issues/89
2021-03-24 14:40:59 +01:00
Martchus f75966aadc Fix warnings 2021-03-20 22:39:40 +01:00
Martchus c84865acc1 Apply clang-format 2021-03-06 16:25:56 +01: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 da911c6350 Refactor overall status compution
* Allow configuring the information to consider for computing the overall
  status via SyncthingStatusComputionFlags
    * Add flag to allow considering the status of remote devices for
      https://github.com/Martchus/syncthingtray/issues/74
    * Show only plain "idle" status when no flags are present for
      https://github.com/Martchus/syncthingtray/issues/76
* Set the default flags to keep the default behavior as-is
2020-12-31 02:48:18 +01:00
Martchus 4445659d2b Simply use isConnected() in StatusInfo::updateConnectedDevices()
instead of explicitely listing all "connected" states.
2020-12-31 02:15:12 +01:00
Martchus a18ade7a36 Consider more error types when ignoring disconnects
See
https://github.com/Martchus/syncthingtray/issues/79#issuecomment-716136144
2020-10-26 17:39:10 +01:00
Martchus a6727b0fa7 Show the connection config name in tooltip when displaying multiple icons 2020-10-19 18:33:10 +02:00
Martchus 3b49e9e312 Support Qt 6 (commit 174154b) 2020-09-04 01:09:18 +02:00
Martchus 28a8391f2b Update libsyncthing to v1.5.0, support setting data directory 2020-05-05 19:01:05 +02:00
Martchus 133dbacb5d Use consistent order for visibility attribute 2020-01-29 18:51:10 +01:00
Martchus 287ec5542b Allow setting log level when using libsyncthing 2020-01-20 22:30:42 +01:00
Martchus db16727956 Show launcher log also before opening settings dialog 2019-08-02 17:05:48 +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 02971698cf Show libsyncthing version as tooltip 2019-07-28 22:01:30 +02:00
Martchus d8f35aceaf Don't use deprecated QProcess::finished() overload 2019-07-27 15:07:26 +02:00
Martchus 61958c5046 Polish libsyncthing
* Adapt tests
* Remove duplicated code
* Stop Syncthing from a different thread since
  it blocks until Syncthing has stopped
2019-07-18 17:21:53 +02:00
Martchus 972b062fb1 Fix build without libsyncthing 2019-07-17 23:14:24 +02:00
Martchus 038225936e Base libsyncthing on official library refactoring 2019-07-17 17:53:36 +02:00
Martchus 4b246d4b4d Improve SyncthingProcess and SyncthingLauncher
* Add documentation
* Remove leftovers
* Ensure all members are initialized
* Improve coding style
2019-07-13 16:42:19 +02:00
Martchus c521e2f808 Apply clang-format 2019-07-13 13:21:25 +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 59d71aa6a5 Fix killing Syncthing from launcher settings 2019-07-11 17:18:07 +02:00
Martchus 61716687c9 Handle QProcess::errorOccurred 2019-07-07 14:31:09 +02:00
Martchus a43e5bfc66 Apply clang-format 2019-07-07 12:16:34 +02:00
Martchus 35386804a6 Define "logLevelStrings" only if required 2019-07-07 12:13:55 +02:00
Martchus 6ac633366e Don't use functions obsoleted in Qt 5.13.0 2019-06-25 14:37:14 +02:00
Martchus d02bcad77b Set application name in DBusStatusNotifier 2019-06-16 17:36:26 +02:00
Martchus dc7d9b815f Adapt to changes in c++utilities 2019-06-14 19:15:26 +02:00
Martchus 64473df5ba Adapt to changes in c++utilities 2019-06-10 22:48:26 +02:00
Martchus 25ece5b401 Fix icons in DBusStatusNotifier 2019-05-26 23:13:43 +02:00
Martchus a30853cfeb Apply cmake-format and clang-format 2019-05-04 22:10:37 +02:00
Martchus d763a755ac Fix typo in 'Connected to ...' 2018-11-13 18:00:30 +01:00
Martchus 4a42a3f0c0 Fix and refactor directory error handling
* Rely not only on the FolderErrors event
* Request pull errors when opening the dialog
* Use "pullErrors" from FolderSummary
* Move code for directory error dialog into
  its own class

This should fix that sometimes obsolete errors
were still displayed or actually present errors
missing.
2018-11-03 21:30:17 +01:00
Martchus 930691ebdc Rename ErrorViewDialog to InternalErrorsDialog 2018-11-03 18:15:10 +01:00
Martchus cdff9fd974 Allow forwarding JS console of web view to stderr 2018-10-28 17:03:23 +01:00
Martchus 2e67e6b2de Use signals for logAvailable() and qrCodeAvailable() 2018-10-20 22:08:25 +02:00
Martchus 533a5d0939 Use override 2018-10-10 21:26:46 +02:00
Martchus 7dde61987a Clear the right status in StatusInfo::updateConnectionStatus() 2018-09-05 17:14:14 +02:00
Martchus 45ef2518e8 Apply clang-format 2018-08-04 15:47:43 +02:00