Commit Graph

1087 Commits

Author SHA1 Message Date
Martchus 69f466be66 Fix crash when systemd unit status changes when settings page has already been destroyed 2021-07-15 02:21:18 +02:00
Martchus e9a278a248 Update libsyncthing to v1.18.0 2021-07-06 15:32:18 +02:00
Martchus 44c372c78e Update translations 2021-07-03 19:34:08 +02:00
Martchus 0ef3b80447 Fix typos found via `codespell --skip .git -w` 2021-07-03 19:29:49 +02:00
Martchus 9f7a19eabc Update translations 2021-07-03 18:50:59 +02:00
Martchus 9fc96a847a Add button to show Syncthing releases/downloads in launcher 2021-07-03 18:44:37 +02:00
Martchus 1ccac1e145 plasmoid: Use `data-error` icon instead of the old `emblem-important`
Loading the icon for the button from resources ceased to work (maybe when
switching to `PlasmaComponents3.ToolButton`). This change works around the
problem and the old icon no longer needs to be bundled.
2021-07-01 18:26:09 +02:00
Martchus 5463b15a29 State dependency to `Boost.Asio` explicitely 2021-07-01 17:45:29 +02:00
Martchus 1acfb8c896 Consider directories still out-of-sync if there are pull errors
Syncthing can report an "idle" status despite pull errors. This still means
the directory is out-of-sync. With this change the out-of-sync status is
only cleared when reading a "FolderSummary" event without pull errors (or
temporarily if the directory is e.g. scanning).
2021-07-01 17:40:23 +02:00
Martchus fdc73bed60 Query only one event at the beginning (to find the ID of the latest event)
Syncthing's official web UI also does the first query for events like this.
This should make loading times a bit faster and removes the possibility of
picking-up obsolete events (which was always problematic).
2021-07-01 17:37:47 +02:00
Martchus 6cfa8a96b6 Do not buffer further output when `readData()` is called on empty buffer
See comment; otherwise calls to `readAll()` with no `bytesAvailable()`
like done in the `syncthingctl` tests fail sporadically as async read
operations are started concurrently.
2021-07-01 17:32:49 +02:00
Martchus 695696bb00 Add linebreak before Syncthing's output in `syncthingctl` test 2021-07-01 17:25:45 +02:00
Martchus 7508e59379 Update translations 2021-06-27 18:59:26 +02:00
Martchus 17f394c118 Add missing library ws2_32 required by Boost.Asio under Windows 2021-06-27 18:54:43 +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 04c82e3ec4 Make logging of process exit an info message 2021-06-21 22:32:51 +02:00
Martchus 900dac793d Silence clazy warnings
For some reason clazy thinks `QIODevice::aboutToClose()` is not a signal.
2021-06-21 22:30:26 +02:00
Martchus 765a323b47 Use a queued connection to handle SyncthingProcess::finished 2021-06-21 22:23:18 +02:00
Martchus eac3b31727 Link against threading library when using Boost.Process 2021-06-21 17:44:43 +02:00
Martchus d91448dfb4 Avoid using `QProcess::ProcessError` to avoid `QMetaMethod::invoke` error
Otherwise `QMetaMethod::invoke` wouldn't be able to handle it:
```
QMetaMethod::invoke: Unable to handle unregistered datatype 'QProcess::ProcessError'
```
2021-06-17 21:17:21 +02:00
Martchus e972cd5b29 Mention the (transitive) dependency to `Boost.Filesystem` 2021-06-17 21:04:12 +02:00
Martchus f7b977d919 Fix SyncthingTestInstance 2021-06-17 21:01:06 +02:00
Martchus ae99dd284c Bump patch version 2021-06-17 20:33:18 +02:00
Martchus e829ff6e00 Document Boost.Process dependency 2021-06-17 20:33:09 +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 303cea3658 Avoid exporting symbols for internal functions declared within libsyncthinginternal.h 2021-06-16 22:52:38 +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 7f55afc51c Update translations 2021-06-04 16:26:35 +02:00
Martchus 986959c8b2 Avoid reading reply data if the reply isn't open
This might be the case when the request has been aborted. Reading from the
reply in this case would result in an unwanted log message from Qt.
2021-06-04 16:26:09 +02:00
Martchus 3e28db37e8 Update libsyncthing to v1.17.0 2021-06-01 20:53:27 +02:00
Martchus 93f59ebf8a Apply clang-format 2021-05-27 18:16:56 +02:00
Martchus 0c475f5b7e Update translations 2021-05-27 18:16:22 +02:00
Martchus 5a39b6bc91 Improve displaying errors 2021-05-21 22:35:28 +02:00
Martchus 7ad82c9dfe Emit time stamp parsing errors like other parsing errors 2021-05-21 22:34:42 +02:00
Martchus 62e7797558 Allow enabling logging of libsyncthingconnector at runtime
* Remove compile-time switches to enable logging
* Enable logging if certain environment variables are set
* Allow logging all API responses
2021-05-18 18:21:48 +02:00
Martchus fbb7685f4b Fix warnings about detatching Qt container via for loop 2021-05-18 00:08:21 +02:00
Martchus 239f750028 Improve timestamp parsing/handling
* Use local time consistently for timestamps which might get displayed
  within the UI, e.g. the dir status was in one case set to the local time
  and in other cases GMT was used which could lead to discarding status
  updates
* Print warning when timestamp parsing fails (instead of ignoring it
  silently)
* Set directory status from folder status response even when parsing the
  timestamp fails
* Catch possible exception when printing log timestamps in syncthingctl
2021-05-18 00:08:21 +02:00
Martchus 91c24753e6 Polish appearance settings tab a little bit 2021-05-07 00:26:51 +02:00
Martchus d1f0519411 Avoid expanding info text in connection settings 2021-05-07 00:12:05 +02:00
Martchus cbecf9ccf2 Add an icon for every settings tab 2021-05-07 00:06:25 +02:00
Martchus 180b425e8b Fix typo in README.md 2021-05-04 12:05:45 +02:00
Martchus 803fa7f2e0 Update libsyncthing to v1.16.0 2021-05-04 12:05:28 +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 b5aa29c98b Update translations 2021-04-07 20:01:07 +02:00
Martchus 1bf579e1d1 Apply cmake-format 2021-04-07 20:00:27 +02:00
Martchus 46099abc0c Assign empty completion when receiving 404 response 2021-04-07 19:55:47 +02:00
Martchus 9ae7f4a265 Avoid requesting completion for paused devs/dirs after remote index changed 2021-04-07 19:53:16 +02:00
Martchus a5f629d710 Avoid crash when start time can not be parsed 2021-04-07 19:42:07 +02:00
Martchus 31ad8b979c Do not request completion for paused directories
See https://github.com/Martchus/PKGBUILDs/issues/132
2021-04-07 15:12:28 +02:00
Martchus 9dc5ad7ceb Add target to build syncthing executable (like the syncthing library) 2021-04-07 15:11:40 +02:00