Commit Graph

343 Commits

Author SHA1 Message Date
Martchus fd377cc5ac Increase default size to avoid overflow of tab buttons by default 2022-09-05 21:19:22 +02:00
Martchus e1ac6fb29b Update translations 2022-09-03 21:36:57 +02:00
Martchus c0a6482c9d Fix typos in naming of wizard UI widgets 2022-09-03 21:36:57 +02:00
Martchus ff68dff5a0 Add autostart wizard page 2022-09-03 21:36:57 +02:00
Martchus 25b9116250 Show only relevant options in wizard and improve UI for displaying details 2022-08-27 23:35:15 +02:00
Martchus 468293c2b1 Show welcome page always as first page of the wizard
Otherwise the wizard would immediately start when accessed via settings
which is not very nice. Of course the instructions in the welcome page need
to be slightly adjusted.
2022-08-27 19:19:03 +02:00
Martchus a435cab604 Allow starting wizard from settings 2022-08-27 15:06:55 +02:00
Martchus 3bbbab035c Update translations 2022-08-25 22:33:59 +02:00
Martchus 6941a1195d Ensure the wizard's size is big enough 2022-08-25 21:47:20 +02:00
Martchus 9d28fbbefc Ensure icons in wizard's welcome page are present
* Provide icons for command link buttons because it looks rather bad when
  some of them are missing in the user's icon theme and are therefore not
  displayed at all
* Add icons to lists for bundling icons
2022-08-25 21:35:22 +02:00
Martchus f2b1a0fe88 Update translations 2022-08-23 21:07:50 +02:00
Martchus f496e42006 Develop UI of wizard further
* Declare widgets for main config page via XML
* Add radio/check boxes for available options
* Improve formatting of report
2022-08-23 21:07:06 +02:00
Martchus c31b7b9ca8 Refactor wizard code
* Move code for setup detection into its own class
* Use separate wizard page to show setup detection report
2022-08-23 18:19:47 +02:00
Martchus 352d161144 Check for default launcher and service configuration in wizard 2022-08-23 12:31:43 +02:00
Martchus a48cf61333 Detect current Syncthing setup as first step of the wizard 2022-08-22 23:48:18 +02:00
Martchus 800cbcc286 Add hidden flag to enable WIP features
Supposed to be used for the wizard while it is WIP.
2022-08-22 21:59:34 +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 a733eddb12 Do not use `APP_NAME` in wizard except for title, avoid usless `.arg()`
It is not a good idea to use `APP_NAME` because it might be overriden (e.g.
"Syncthing Tray (git)" which would look rather out of place here.
2022-08-08 23:05:55 +02:00
Martchus 2e14d9d62c Update translations 2022-08-06 21:22:20 +02:00
Martchus 394af9bce7 Improve first launch message in preparation for adding a setup wizard 2022-08-06 21:08:55 +02:00
Martchus a7370fd8b8 Update translations 2022-07-26 23:59:42 +02:00
Martchus 2a4eefe6a4 Use "…" instead of "..." in certain places 2022-07-26 23:57:02 +02:00
Martchus 80c608208d Show status text "Connecting to Syncthing ... " when connecting
instead of just "Not connected to Syncthing"
2022-07-26 23:52:26 +02:00
Martchus a49da56829 Update translations 2022-07-16 19:37:00 +02:00
Martchus 2139b204e3 Determine whether to use bright custom colors automatically 2022-07-16 19:28:31 +02:00
Martchus 97a8dc3f99 Apply clang-format 2022-07-16 12:30:51 +02:00
Martchus e7098002c1 Update translations 2022-07-04 19:59:53 +02:00
Martchus d735455c2a Add button to reload all unit files 2022-07-04 19:55:58 +02:00
Martchus 05e98e22dd Prevent spawning a second tray icon when autostart is enabled
Otherwise a second icon is created when starting a second X11 session, see
https://github.com/Martchus/syncthingtray/issues/142.

Not sure whether this is relevant under Windows and Mac so this change is
only covering the *.desktop file.
2022-06-16 17:49:02 +02:00
Martchus 54b9b5e7cd Update translations 2022-06-07 10:42:38 +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 b2d81d05e6 Update translations 2022-05-04 01:07:03 +02:00
Martchus 3b89c58ba4 Add note about disabling notifications of internal errors 2022-05-04 00:54:17 +02:00
Martchus be9d963a82 Add internal errors to menu/dialog even if the notification is disabled 2022-05-04 00:24:26 +02:00
Lynnesbian 16baed6e27
fix typo ("settinngs" -> "settings") 2022-01-23 03:38:42 +10:00
Martchus e81166cd79 Fix several warnings when building against Qt 6 2021-11-04 00:16:27 +01:00
Martchus 5ef0523458 Remove icons which are no longer needed 2021-10-16 21:28:59 +02:00
Martchus 77f0a8d5ae Update translations 2021-10-09 01:15:49 +02:00
Martchus 0b801bc505 Make internal errors also accessible when starting with `--windowed`
* Show the button for the internal errors dialog in the tray widget like it
  is done when the `UNIFY_TRAY_MENUS` config is activated
2021-10-09 01:14:54 +02:00
Martchus c3182ff256 Apply cmake-format 2021-10-07 18:28:13 +02:00
Martchus 8b273b6945 Improve messages for TLS errors
Before one only gets the generic error "TLS handshake failed". Now one gets
more details error messages plus the problematic certificate. This should
be helpful for debugging.
2021-10-07 18:22:41 +02:00
Martchus af24ead784 Use ISO format for timestamps and put it in square brackets when displaying errors 2021-10-07 18:22:41 +02:00
Julianne420 ddefa35daa Add zh_CN translation 2021-10-07 01:20:24 +08:00
Martchus 8348648c56 Make c'tor of `InternalError` inline again to workaround linker errors
Otherwise the shared build with targeting x86_64-w64-mingw32 fails with:

```
FAILED: widgets/syncthingwidgets-qt6.dll widgets/libsyncthingwidgets-qt6.dll.a
: && /usr/lib/ccache/bin/x86_64-w64-mingw32-g++ -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS  -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fcf-protection -O3 -DNDEBUG  -Wl,-O1,--sort-common,--as-needed -fstack-protector -shared -o widgets/syncthingwidgets-qt6.dll -Wl,--out-implib,widgets/libsyncthingwidgets-qt6.dll.a -Wl,--major-image-version,1,--minor-image-version,1 widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/mocs_compilation.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/settings/settings.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/settings/settingsdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/webview/webpage.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/webview/webviewdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/webview/webviewinterceptor.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/textviewdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerrorsdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/direrrorsdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/statusinfo.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/dbusstatusnotifier.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerror.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/otherdialogs.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/syncthinglauncher.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/syncthingkiller.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/resources/windows-Release.rc.res widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/3YJK5W5UP7/qrc_syncthingwidgetsicons.cpp.obj -L/build/mingw-w64-syncthingtray-qt6/src/syncthingtray/build-x86_64-w64-mingw32-shared/connector   -L/build/mingw-w64-syncthingtray-qt6/src/syncthingtray/build-x86_64-w64-mingw32-shared/model   -L/build/mingw-w64-syncthingtray-qt6/src/lib model/libsyncthingmodel-qt6.dll.a  /usr/x86_64-w64-mingw32/lib/libqtutilities-qt6.dll.a  libsyncthing/libsyncthing-qt6.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Network.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Concurrent.dll.a  connector/libsyncthingconnector-qt6.dll.a  /usr/x86_64-w64-mingw32/lib/libc++utilities.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Network.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Core.dll.a  /usr/x86_64-w64-mingw32/lib/libqtforkawesome-qt6.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Widgets.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Gui.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Core.dll.a  /usr/x86_64-w64-mingw32/lib/libc++utilities.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Widgets.dll.a  /usr/x86_64-w64-mingw32/lib/libQt6Gui.dll.a  -ld3d11  -ldxgi  -ldxguid  -lws2_32  /usr/x86_64-w64-mingw32/lib/libQt6Core.dll.a  -lmpr  -luserenv  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && :
/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld: widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerror.cpp.obj:internalerror.cpp:(.text+0x1a0): multiple definition of `QtGui::InternalError::InternalError(QString const&, QUrl const&, QByteArray const&)'; widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/mocs_compilation.cpp.obj:mocs_compilation.cpp:(.text$_ZN5QtGui13InternalErrorC2ERK7QStringRK4QUrlRK10QByteArray[_ZN5QtGui13InternalErrorC2ERK7QStringRK4QUrlRK10QByteArray]+0x0): first defined here
/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld: widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerror.cpp.obj:internalerror.cpp:(.text+0x1a0): multiple definition of `QtGui::InternalError::InternalError(QString const&, QUrl const&, QByteArray const&)'; widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/mocs_compilation.cpp.obj:mocs_compilation.cpp:(.text$_ZN5QtGui13InternalErrorC1ERK7QStringRK4QUrlRK10QByteArray[_ZN5QtGui13InternalErrorC1ERK7QStringRK4QUrlRK10QByteArray]+0x0): first defined here
```

I can currently not make sense of this build error. It does not happen
when targeting Linux or i686.
2021-10-05 00:13:34 +02:00
Martchus 4301910f1d Avoid `QMessageBox::warning()` overload deprecated by Qt 6.2.0 2021-10-04 19:31:50 +02:00
Martchus 55e59d20c0 Make c'tor of InternalError explicit 2021-10-04 19:17:33 +02:00
Hannah Rittich 2968898195 Allow finding of packages in namespaces 2021-10-03 02:07:18 +02:00
Martchus 4517ea41b6 Update translations 2021-10-02 20:31:56 +02:00
Martchus 745082f357 Redact password from URL when displaying internal errors 2021-10-02 20:31:20 +02:00
Martchus 7cf56732bd Remove `-no-console` from default args on non-Windows platforms
* According to https://docs.syncthing.net/users/syncthing.html this flag is
  Windows-only.
* See https://github.com/Martchus/syncthingtray/issues/106
2021-08-20 14:16:48 +02:00
Martchus 09e8955c06 Remove `const_cast` workaround for dealing with certificate errors 2021-08-07 19:42:15 +02:00
Martchus 078145f354 Require qtutilities 6.5.0 for change to `webviewincludes.h` 2021-08-07 18:43:32 +02:00
Martchus d21c7cdf2a Port Qt WebEngine related features to Qt 6.2.0 (beta2) 2021-08-07 18:05:30 +02:00
Martchus a1d78a2f30 Update translations 2021-08-03 14:09:02 +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 69f466be66 Fix crash when systemd unit status changes when settings page has already been destroyed 2021-07-15 02:21: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 7508e59379 Update translations 2021-06-27 18:59:26 +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 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 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 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 18352a6ce1 Show maximize button on settings dialog
So it looks nicer combined with the previous commit.
2021-03-24 15:02:05 +01: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 f0de7d204a Fix warning about flags for setFrameStyle() 2021-03-23 15:23:19 +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 dccf567e67 Update translations 2021-02-03 00:02:48 +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 7a5cd3c65f Fix clazy warning about detatching Qt container 2021-01-04 18:52:23 +01:00
Martchus 5c47acef46 Ensure selection of status information doesn't take too much space 2021-01-02 18:02:48 +01:00
Martchus 4c4fc676e6 Update translations 2021-01-01 21:22:15 +01:00
Martchus ed495ec667 Add UI to configure what information should be considered to compute overall status
* See https://github.com/Martchus/syncthingtray/issues/74
* See https://github.com/Martchus/syncthingtray/issues/76
2021-01-01 20:55:18 +01:00
Martchus 76ee21500d Move setting for traffic statistics below settings with combo boxes
It just looks nicer.
2021-01-01 20:50:11 +01:00
Martchus c656f6fba0 Load/save status compution flags from/to settings 2020-12-31 03:08:08 +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 66b6c224dc Update translations 2020-12-01 18:50:16 +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 49bbebd1ad Allow configuring package suffix for qtutilities individually 2020-10-23 17:03:57 +02:00
Martchus a6727b0fa7 Show the connection config name in tooltip when displaying multiple icons 2020-10-19 18:33:10 +02:00
Tomasz Wilczyński cd10501580
Fix "conntected" typo in en_US translation
Change all instances of "conntected" to "connected" in the English (US)
translation file.

Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2020-10-19 15:30:37 +09:00
Martchus 4040a4e136 Hide connection status from settings when there are multiple tray icons 2020-10-18 17:02:12 +02:00
Martchus ce46931631 Update translations 2020-10-07 21:53:39 +02:00
Martchus fe4082a253 Add fallback icons for buttons to move connections up and down
because these buttons are icon-only and therefore looks odd without an
icon.
2020-09-12 22:09:40 +02:00
Martchus 0b5fb14931 Remove overspecification of Qt version in documentation and comments 2020-09-04 01:13:46 +02:00
Martchus 3b49e9e312 Support Qt 6 (commit 174154b) 2020-09-04 01:09:18 +02:00
Martchus c0e2e0bce1 Apply clang-format 2020-07-12 21:17:34 +02:00