Commit Graph

29 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 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 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 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 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 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 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 35386804a6 Define "logLevelStrings" only if required 2019-07-07 12:13:55 +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 cdff9fd974 Allow forwarding JS console of web view to stderr 2018-10-28 17:03:23 +01: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 c7418431f5 Use new libsyncthing interface in launcher
Not tested yet
2018-04-15 20:20:30 +02:00
Martchus b7dbd2c72b Fix build without libsyncthing 2018-04-12 16:14:09 +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