Commit Graph

1757 Commits

Author SHA1 Message Date
Martchus 1ea029f2a2 Avoid use of non-standard escape sequence 2023-05-11 23:43:18 +02:00
Martchus f1bcd20a83 Update translations 2023-05-11 17:57:46 +02:00
Martchus d3a559446f Apply clang-format 2023-05-11 17:57:22 +02:00
Martchus 35eb90e88c Ignore deprecation warning of `wait_for`
This function might not be completely reliable but it is
supposedly good enough for the use cases of
`SyncthingProcess::waitForFinished()`.
2023-05-11 17:57:04 +02:00
Martchus 0240f2a9a3 Improve recent autostart-related changes further
* Improve function documentation
* Improve regex to better handle quoting
* Avoid using function only available as of Qt 6.3
2023-05-11 17:50:16 +02:00
Martchus e94f2c3bcc Update translations 2023-05-11 01:16:26 +02:00
Martchus eb1b81a8d4 Enable auto-connect via the wizard
This setting should normally not hurt and is likely a better default.
2023-05-11 01:13:05 +02:00
Martchus 603ba1206e Avoid warnings about unused variables when compiling without systemd support 2023-05-11 00:55:12 +02:00
Martchus 29ada0f040 Override existing startup entry in wizard; show remark about it in summary 2023-05-11 00:54:42 +02:00
Martchus 878e973c9d Improve auto start setting
* Do not blindly override existing auto start entry
* Warn if an auto start entry exists but points to a different executable
    * Allow removing such an entry explicitly
2023-05-11 00:11:34 +02:00
Martchus e703ddd524 Allow overriding single instance ID via env variable 2023-05-03 21:18:03 +02:00
Martchus 9de830adcd Update title of section about dark mode under Windows
The phrase "missing support" is at this point no longer fitting.
2023-05-03 20:11:15 +02:00
Martchus 884ead9760 Improve startup code further to fix problems showing expecially on Windows
* Avoid overriding argv/argc via `CMD_UTILS_CONVERT_ARGS_TO_UTF8` in
  Windows-specific code when processing arguments from a 2nd instance
* Move the other startup code to main as well as they are not needed when
  processing arguments from a 2nd instance
* Improve debug logging
* Use `waitForBytesWritten()` instead of `flush()` when passing args as
  recommended by the documentation
* Avoid use of `bytesAvailable()` as it doesn't work as expected in this
  situation on Windows (likely it doesn't really work reliably on all
  platforms); calling `readAll()` works and is simpler anyways
* Tested that `--replace` works as well; also the
  `waitUntilGone && QFile::exists(fullServerName)` block is entered and if
  the previous instance is taking some time it really waits until it is
  gone
2023-05-01 21:10:09 +02:00
Martchus 208391acf7 Ensure `_WIN32_WINNT` is set for Boost.Process
Apparently is is not always set when using MSVC (not sure in which cases it
is missing).
2023-05-01 20:58:40 +02:00
Martchus e9135d735a Update translations 2023-04-29 21:08:29 +02:00
Martchus c9cd81311d Improve startup/shutdown behavior; add `--replace` CLI option
* Make functions in `main.cpp` static as they are not used by
  other units
* Delete the `TrayIcon` via an extra parent object that is
  deleted before the `QNetworkAccessManager` is deleted; otherwise
  the destruction of `SyncthingConnection` (which aborts pending
  replies) might access dangling `QNetworkReply` objects
* Improve error handling in `SingleInstance` code
* Allow to replace the current instance via the new `--replace`
  argument; this may be useful when creating an installer/updater
2023-04-29 21:07:30 +02:00
Martchus 0c733837ce Fix showing directory errors in plasmoid 2023-04-26 20:30:23 +02:00
Martchus 081ce235bf Improve coding style in SyncthingFileItemAction 2023-04-19 22:48:56 +02:00
Martchus ae6b8712cb Re-connect if Syncthing appears to be restarted
* This is now required after 843f164d which uses event IDs
  instead of time stamps and event IDs reset when Syncthing has
  been restarted.
* It is likely a good idea to cleanly re-connect anyways.
* This change re-introduces the previously uneffective and hence
  removed code (see 8c74b240). It fixes the code to effectively
  make sure a re-connect is continued once it has been started.
  So this change should fix the re-connect not working in
  certain cases.
2023-04-15 22:51:55 +02:00
Martchus c6a5b40a1d Re-connect when event ID is decreasing 2023-04-15 22:25:12 +02:00
Martchus c07f9345b1 Improve wording of comment 2023-04-15 22:25:07 +02:00
Martchus 8c74b24045 Remove uneffective code when handling reply
Calling `handleAdditionalRequestCanceled();` when `handleAborting`
is true is useless because then also `m_abortingAllRequests` is true
and therefore `handleAdditionalRequestCanceled();` always returns
early doing nothing.
2023-04-15 22:02:43 +02:00
Martchus d510b34abb Update translations 2023-04-15 20:36:18 +02:00
Martchus d2bbbab4f2 Remove remark about default browser when built-in web view disabled
This is now misleading as it depends on the general web settings. The
presence of this new settings tab alone should make it clear what will
happen instead so the sentence can just be dropped.
2023-04-15 20:35:24 +02:00
Martchus fc8ab2e845 Improve coding style
Improve coding style, mainly in SynctingConnection, for better
consistency with more recently added code.
2023-04-15 20:28:51 +02:00
Martchus d3901cee37 Don't reset last event IDs when connecting again
When connecting again, no data is cleared. Since we now keep
track of event IDs and not just timestamps it makes sense to not
forget what the last event IDs were. To still run into the
"limit" case the flags for having events at all can be used
(which is also reset on just `connect()`).
2023-04-15 20:08:21 +02:00
Martchus 843f164df1 Avoid potentially losing events
I have observed that Syncthing Tray can get stuck thinking a remote device
still needs data. Likely the update got lost. The code contains certain
conditions in which folder completion events and requesting completion are
supressed. Those conditions are based on timestamps. That is not ideal as
the accuracy is only one second (so different timestamps might be
considered equal as they are rounded to be the same). Additionally, it
makes no sense to assume a timestamp upon receiving a response as the
information might be older than the time it was received.

This change avoids those conditions. It rather uses the event ID to
decide what event/reply is newer.

This change also uses quint64 instead of int for event IDs to avoid running
into an overflow (or rather conversion error) when deserializing the ID
which might be bigger than int. (Not sure how big the ID can become; this
is to be on the safe side.)
2023-04-15 16:18:23 +02:00
Martchus ecfb346344 Bump library version 2023-04-15 16:18:23 +02:00
Martchus cba2f1874b Bump patch version 2023-04-15 16:18:23 +02:00
Martchus 314d51ffac Update release date 2023-04-06 01:08:43 +02:00
Martchus e8e8d7ca33 Update translations 2023-04-06 01:05:44 +02:00
Martchus a5f1ffd439 Never check option for built-in web view when disabled
Even if configured in the settings, check the option to
use a browser tab as this will be used as fallback.
2023-04-06 01:03:13 +02:00
Martchus c08d6e54be Save general web view settings persistently also when built-in web view disabled 2023-04-06 00:58:58 +02:00
Martchus 4c808a098d Fix typo in German translation 2023-04-05 18:10:28 +02:00
Martchus 69ac6cb387 Update libsyncthing to v1.23.4 2023-04-05 18:04:21 +02:00
Martchus f2675687e3 Bump patch version 2023-04-05 18:02:41 +02:00
Martchus 4b77c313eb Fix compilation with Qt < 6.1.0 on Windows 2023-04-04 22:59:40 +02:00
Martchus 83225dbed6 Fix error when generating D-Bus properties interface header
Fixes the following error
```
qdbusxml2cpp: Got unknown type `a{sv}' processing '/build/static-compat-syncthingtray/src/syncthingtray/syncthingconnector/org.freedesktop.DBus.Properties.xml'
You should add <annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="<type>"/> to the XML description for 'changed_properties'
```
by following the suggestion of that error. Not sure why this
error occurs only now. Maybe `qdbusxml2cpp` changed in Qt 6.5.0.
2023-04-04 21:55:00 +02:00
Martchus 395e32de2b Update release date 2023-04-04 21:06:59 +02:00
Martchus 1c9e9affe3 Format code in `InternalError::isRelevant()` according to current coding style 2023-04-04 17:14:16 +02:00
Martchus 4fb50526bd Suppress "connection refused" errors when stopping Syncthing ourselves
When stopping the Syncthing service ourselves we can apparently also
get "connection refused" and not just "remote host closed". So this
kind of error should be supressed as well.
2023-04-04 17:13:27 +02:00
Martchus 45d75ac7ae Update libsyncthing to v1.23.3 2023-04-04 10:38:53 +02:00
Martchus 0f6ea4f88e Track "SubState" of systemd service correctly
Due to short-circuing the previous code might not have taken a
changed "SubState" into account. This change should fix it and
therefore might fix
https://github.com/Martchus/syncthingtray/issues/179.
2023-04-03 19:19:45 +02:00
Martchus 76209e2922 Improve handling changed properties in `SyncthingService`
* Check directly whether changed properties contain a property
  instead of checking indirectly whether the returned QVariant
  is invalid.
* Avoid copying the QVariant.
* Effectively this should not change anything; the code is just
  more readable and possibly more efficient.
2023-04-03 19:16:52 +02:00
Martchus f524a18b83 Fix condition for triggering connection once service is back
Skipping the connection attempt if the timer interval is lower
anyways only makes sense if the timer is also active.
2023-04-03 18:47:50 +02:00
Martchus 7b9870aefd Update translations 2023-03-31 22:50:07 +02:00
Martchus 1d221120fe Apply clang-format 2023-03-31 22:46:48 +02:00
Martchus 3fd45accde Allow configuring custom command for launching Chromium-based browser 2023-03-31 22:46:25 +02:00
Martchus 2767c9484a Fix size of wizard's window icon when using Aero-style
Apparently `wizardStyle()` does not return `QWizard::AeroStyle` at this
point of construction, even if that style will be used.
2023-03-28 23:56:23 +02:00
Martchus 7c93c21356 Document `chromiumBasedBrowserBinaries()` 2023-03-28 22:43:59 +02:00