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
af24ead784
Use ISO format for timestamps and put it in square brackets when displaying errors
2021-10-07 18:22:41 +02:00
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
4301910f1d
Avoid QMessageBox::warning()
overload deprecated by Qt 6.2.0
2021-10-04 19:31:50 +02:00
55e59d20c0
Make c'tor of InternalError explicit
2021-10-04 19:17:33 +02:00
745082f357
Redact password from URL when displaying internal errors
2021-10-02 20:31:20 +02:00
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
0ef3b80447
Fix typos found via codespell --skip .git -w
2021-07-03 19:29:49 +02:00
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
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
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
93f59ebf8a
Apply clang-format
2021-05-27 18:16:56 +02:00
5a39b6bc91
Improve displaying errors
2021-05-21 22:35:28 +02:00
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
f75966aadc
Fix warnings
2021-03-20 22:39:40 +01:00
c84865acc1
Apply clang-format
2021-03-06 16:25:56 +01:00
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
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
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
4445659d2b
Simply use isConnected() in StatusInfo::updateConnectedDevices()
...
instead of explicitely listing all "connected" states.
2020-12-31 02:15:12 +01:00
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
a6727b0fa7
Show the connection config name in tooltip when displaying multiple icons
2020-10-19 18:33:10 +02:00
3b49e9e312
Support Qt 6 (commit 174154b)
2020-09-04 01:09:18 +02:00
28a8391f2b
Update libsyncthing to v1.5.0, support setting data directory
2020-05-05 19:01:05 +02:00
133dbacb5d
Use consistent order for visibility attribute
2020-01-29 18:51:10 +01:00
287ec5542b
Allow setting log level when using libsyncthing
2020-01-20 22:30:42 +01:00
db16727956
Show launcher log also before opening settings dialog
2019-08-02 17:05:48 +02:00
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
972f7b2776
Stop libsyncthing when stopping the application
2019-07-29 16:00:41 +02:00
02971698cf
Show libsyncthing version as tooltip
2019-07-28 22:01:30 +02:00
d8f35aceaf
Don't use deprecated QProcess::finished() overload
2019-07-27 15:07:26 +02:00
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
972b062fb1
Fix build without libsyncthing
2019-07-17 23:14:24 +02:00
038225936e
Base libsyncthing on official library refactoring
2019-07-17 17:53:36 +02:00
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
c521e2f808
Apply clang-format
2019-07-13 13:21:25 +02:00
2112b00347
Allow to show start/stop button for launcher
2019-07-12 20:32:55 +02:00
31bb92da89
Show notifications about launcher errors
2019-07-12 20:25:24 +02:00
59d71aa6a5
Fix killing Syncthing from launcher settings
2019-07-11 17:18:07 +02:00
61716687c9
Handle QProcess::errorOccurred
2019-07-07 14:31:09 +02:00
a43e5bfc66
Apply clang-format
2019-07-07 12:16:34 +02:00
35386804a6
Define "logLevelStrings" only if required
2019-07-07 12:13:55 +02:00
6ac633366e
Don't use functions obsoleted in Qt 5.13.0
2019-06-25 14:37:14 +02:00
d02bcad77b
Set application name in DBusStatusNotifier
2019-06-16 17:36:26 +02:00
dc7d9b815f
Adapt to changes in c++utilities
2019-06-14 19:15:26 +02:00
64473df5ba
Adapt to changes in c++utilities
2019-06-10 22:48:26 +02:00
25ece5b401
Fix icons in DBusStatusNotifier
2019-05-26 23:13:43 +02:00
a30853cfeb
Apply cmake-format and clang-format
2019-05-04 22:10:37 +02:00
d763a755ac
Fix typo in 'Connected to ...'
2018-11-13 18:00:30 +01:00
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