Commit Graph

372 Commits

Author SHA1 Message Date
Martchus 335913c8ca Fix build without systemd support 2019-07-13 13:21:02 +02:00
Martchus 31bb92da89 Show notifications about launcher errors 2019-07-12 20:25:24 +02:00
Martchus 56e1e98493 Apply cmake-format 2019-06-16 16:58:52 +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 657356fcbe Clean syncthingconnectionmockhelpers.h 2019-05-04 22:23:08 +02:00
Martchus 0049d96bca Adapt to c++utilities API changes 2019-05-04 22:18:31 +02:00
Martchus a30853cfeb Apply cmake-format and clang-format 2019-05-04 22:10:37 +02:00
Martchus d88df866d2 Adapt to c++utilities v5 2019-05-04 21:05:21 +02:00
Martchus 107fad90f0 Allow to use SyncthingStatistics in QML 2019-02-27 20:38:37 +01:00
Martchus 78d4553104 Update translations 2019-02-18 00:41:17 +01:00
Martchus e56c950100 Show overall statistics in plasmoid 2019-02-17 23:46:03 +01:00
Martchus 326f03b604 Apply cmake-format 2019-02-06 17:36:14 +01:00
Martchus a1a9db30f9 Update translations 2019-02-06 17:35:49 +01:00
Martchus dc5f2d99e2 Fix SyncthingConnection::connectLater() 2019-02-06 17:35:21 +01:00
Martchus 2370fe1ef5 Let CMake generate code for test application 2019-01-13 22:16:23 +01:00
Martchus f74dbe2799 Prevent enless connection attempts in connector test
Those are observable on misc OBS builds. This hopefully prevents
perpetual OBS builds and should also allow to actually investigate
what the problem is.
2019-01-13 17:48:39 +01:00
Martchus 028a456c4e Update translations 2018-12-29 20:40:40 +01:00
Martchus 267cbd7dad Document SyncthingConnection::readDevRejected() 2018-12-26 01:14:19 +01:00
Martchus 1156721822 Ensure not to continue reconnecting while still aborting 2018-12-26 01:14:01 +01:00
Martchus 67723bfa27 Set status to disconnected on error due to insufficient config 2018-12-25 02:31:18 +01:00
Martchus c83df582b6 Fix subtile bugs on reconnect
* Ensure previous long polling requests for events are aborted
  before connecting again
* Ensure results from previous requests are always discarded
  after aborting to reconnect
2018-12-25 02:30:13 +01:00
Martchus ad42c24c96 Prevent reading QNetworkReply in error case when not bytes available 2018-12-24 17:35:10 +01:00
Martchus 1d5b90a693 Allow always to change config 2018-12-24 17:19:11 +01:00
Martchus 35903fc996 Simulate flaky syncthing service 2018-12-23 21:28:43 +01:00
Martchus cdd78fb026 Fix typo in code for mocked service configuration 2018-12-23 19:42:17 +01:00
Martchus 6dc521599f Adapt tests to changes in dir error handling 2018-11-03 21:55:31 +01:00
Martchus d803f83d0f Update translations 2018-11-03 21:41:44 +01:00
Martchus 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
Martchus dcbc19cf8c Adapt mocking to latest changes
* Cover all required requests so the connection can be
  established without errors
* Add more events to test error handling
* Fix definition of LIB_SYNCTHING_CONNECTOR_CONNECTION_MOCKED
  after syncthingconnection.cpp split
2018-11-03 20:44:11 +01:00
Martchus c5d22d8984 Adapt tests to changed SyncthingDir::assignStatus() 2018-11-02 23:39:15 +01:00
Martchus ad57a0ac9f Adapt tests to changed status initialization 2018-11-02 23:38:40 +01:00
Martchus 0cc291ae85 Initialize status of SyncthingDev 2018-11-02 23:37:35 +01:00
Martchus 0ef2bf919a Remove duplicated status recalculation 2018-11-02 22:15:16 +01:00
Martchus 9817be858d Update stateChanged in readDirSummary() 2018-11-02 22:10:18 +01:00
Martchus 038cb130b7 Don't emit notifications for folder errors 2018-11-02 21:49:24 +01:00
Martchus 25ae9266a8 Discard obsolete folder errors
* Discard folder errors older than the last "sync" state
* Unfortunately we don't know the the time of the last
  sync from the beginning. To prevent showing obsolete
  errors in this state, discard all errors if the status
  changes to something other than "out-of-syn".
2018-11-02 21:47:27 +01:00
Martchus dd5cf12b1c Improve inserting address from config file
* Assume local connection if address is eg. 0.0.0.0
* Use isLocal() from utils which considers the hostname
  and interfaces as well
2018-11-02 20:57:25 +01:00
Martchus 2ee1bc0c63 Discard previous item errors also on connect()
Because errors might be gone now and should be repopulated
if not.
2018-10-28 16:03:18 +01:00
Martchus 25ace0eb17 Fix condition to set status to disconnected 2018-10-28 15:39:15 +01:00
Martchus 32b2907e67 Split syncthingconnection.cpp
* Move methods for specific requests to its own file
2018-10-28 15:37:25 +01:00
Martchus 2862b6fd87 Re-enable all connection tests 2018-10-28 14:38:34 +01:00
Martchus 4c4a1ebd47 Don't unset m_has... on disconnect 2018-10-25 18:25:59 +02:00
Martchus bb6825aa4c Use timeout of 0 on first event call 2018-10-25 18:24:31 +02:00
Martchus b9a65ef113 Remove redundant poll interval defaults 2018-10-25 18:23:37 +02:00
Martchus a024e36ffd Rework reply/connection handling in SyncthingConnection
* Improve consistency
* Ensure all relevant requests are have finished before
  setting status to connected
2018-10-25 00:59:13 +02:00
Martchus ece582db04 Fix visibility of "Show errors" button in plasmoid 2018-10-24 21:35:08 +02:00
Martchus f380732068 Don't use std::function for handlers in testcode
Just use the lambdas directly and make if(handler) check
only if possible.
2018-10-21 21:07:43 +02:00
Martchus 76f214adf1 Ignore test for config too
This test randomly fails as well
2018-10-21 00:11:30 +02:00
Martchus 703225b410 Fix/improve CLI tests
* Adapt to interleaved output previously enabled in SyncthingTestInstance
* Make it work when verbose output for debugging is enabled
* Show which status line didn't match in case of an failure
* Disable flaky rescan tests in release mode
2018-10-20 23:48:24 +02:00
Martchus 97dab2a959 Disable flaky tests for release 2018-10-20 22:12:26 +02:00
Martchus 2e67e6b2de Use signals for logAvailable() and qrCodeAvailable() 2018-10-20 22:08:25 +02:00
Martchus c7bccf023a Fix tests, make them more stable and verbose
Tests still sometimes fail when
* requesting QR code
* requesting rescan
2018-10-18 23:37:29 +02:00
Martchus 8a77cdf516 Pass callbacks for requestLog() and requestQrCode() by ref 2018-10-18 23:34:59 +02:00
Martchus 407514289a Fix typo infos -> info 2018-10-18 23:34:02 +02:00
Martchus 8dde95fc82 Don't override defines when configuring optional behavior 2018-10-18 23:23:47 +02:00
Martchus d138c6d9d1 Change address of dev in testconfig to something not reachable
in my local network - otherwise Syncthing panics for whatever
reason :-/
2018-10-14 23:31:19 +02:00
Martchus dfff485fc4 Update testconfig to version 28
Not sure whether it actually works. Right now Syncthing crashes
under Arch Linux for me using the previous config and the updated
version.
2018-10-14 22:50:54 +02:00
Martchus e410991012 Allow logging all API calls 2018-10-14 22:48:52 +02:00
Martchus 0ee25c1ae2 Fix warnings about QJsonValue ref 2018-10-12 00:21:05 +02:00
Martchus 00e0b58c86 Allow logging POSTs 2018-10-12 00:20:15 +02:00
Martchus db6c8af414 Debug Syncthing crashes during testruns 2018-10-12 00:09:02 +02:00
Martchus c031440c05 Use isLocal() in SyncthingConfig::syncthingUrl() 2018-10-10 22:47:03 +02:00
Martchus 99cb584249 Use non-standard port for tests 2018-10-10 22:45:49 +02:00
Martchus cf22f6b16a Make all request...() methods consistently public 2018-10-10 22:15:12 +02:00
Martchus 00e83e721d Consider failure to request disk events fatal
Prevents endless polling for disk events in the error
case.
2018-10-10 22:05:48 +02:00
Martchus 533a5d0939 Use override 2018-10-10 21:26:46 +02:00
Martchus 87a10c5b33 Allow hiding Plasma applet in certain states
See https://github.com/Martchus/syncthingtray/issues/23
2018-10-10 17:48:48 +02:00
Martchus de9259e545 Show whether filesystem watcher active 2018-09-15 18:25:02 +02:00
Martchus 7611ad1c8e Propose use of SYNCTHING_TEST_TIMEOUT_FACTOR 2018-09-06 22:04:22 +02:00
Martchus 9599dcee81 Increase timeout for applying config 2018-09-06 21:58:41 +02:00
Martchus 791f1ccd33 Fix missing whitespace in German translation 2018-08-25 13:14:45 +02:00
Martchus af120f1ae1 Update translations 2018-08-05 15:21:12 +02:00
Martchus 7e2eea8523 tests: Increase timeouts, use timeout factor everywhere 2018-08-05 15:20:21 +02:00
Martchus 73c44591d5 Consume disk events in SyncthingConnection
First step to:
* Show history of most recent file changes
* Notify about file changes
  (see https://github.com/Martchus/syncthingtray/issues/7)
2018-08-04 22:06:31 +02:00
Martchus 45ef2518e8 Apply clang-format 2018-08-04 15:47:43 +02:00
Martchus 39dd98354a Request Syncthing version 2018-07-30 23:00:40 +02:00
Martchus 3549a4cdef Compute overall statistics 2018-07-30 23:00:22 +02:00
Martchus 7598fef709 Update translations 2018-07-22 22:17:48 +02:00
Martchus 97e0253902 Fix some warnings, improve coding style 2018-07-22 22:09:59 +02:00
Martchus 77e75f543c Add some more directory properties 2018-07-22 22:09:18 +02:00
Martchus ad3c8b5240 Don't meld 'unshared' into the status
Just deal with it like with the paused flag. This will
hopefully solve the issue that dirs are wrongly shown as
unshared till the next status update.
2018-07-22 22:09:18 +02:00
Martchus 5a80089cbd Fix condition for outgoing traffic 2018-07-22 21:18:00 +02:00
Martchus 0acfdd7002 Use "rescan disabled" instead of "0 s" 2018-07-05 17:40:36 +02:00
Martchus 7166f6532a Display overall status info in CLI 2018-07-05 17:39:35 +02:00
Martchus db4b032179 Show connected device names in additional status 2018-06-27 17:38:22 +02:00
Martchus f4622379ae Prevent local sync complete notification during scan 2018-05-23 23:18:39 +02:00
Martchus 68f5565f1a Discard sync complete event if paused 2018-05-17 18:34:05 +02:00
Martchus e7d365f849 Initialize SyncthingNotifier correctly in Plasmoid 2018-05-15 22:27:54 +02:00
Martchus 43cd6fc2cc Fix use of SyncthingService without check for nullptr 2018-05-15 22:26:54 +02:00
Martchus b1b9f87320 Update translations 2018-05-12 23:14:04 +02:00
Martchus 44c0c44475 Improve coding style 2018-05-12 23:09:14 +02:00
Martchus 2fcc94f567 Handle new folder types
See https://github.com/syncthing/syncthing/pull/4942
2018-05-12 23:08:57 +02:00
Martchus f8dabbc78d Fix compilation without systemd support 2018-05-10 13:51:25 +02:00
Martchus 52740c4cbe Update translations 2018-05-08 00:43:15 +02:00
Martchus cfa27390f6 Apply clang-format 2018-05-08 00:38:49 +02:00
Martchus ab57b34b69 Fix usage of enable_if with GCC 8
Seems like the trick with the three dots isn't working
with GCC 8 anymore. So let's make it a default template
parameter then.

Not sure whether GCC 8 is here correct and whether this
workaround causes further trouble.
2018-05-07 23:28:11 +02:00
Martchus 66e58e3971 Fix reading label in readDirRejected() 2018-05-02 00:01:19 +02:00
Martchus bde3734ea4 Add mocks for testing rejected events 2018-05-02 00:00:47 +02:00
Martchus 043d1c09c2 Set default re-connect interval to 30 seconds
See https://github.com/Martchus/syncthingtray/issues/16#issuecomment-383375598
2018-05-01 22:31:00 +02:00
Martchus 3857079f7e Add high-level notifications for new devs and dirs 2018-05-01 22:23:54 +02:00
Martchus 2c27cc27d0 Add signals for new devices and directories 2018-05-01 20:43:15 +02:00
Martchus 72e1377c43 Add tests for syncthingctl 2018-05-01 01:16:20 +02:00
Martchus 819d37eeee Test dealing with arbitrary config 2018-04-30 21:30:35 +02:00
Martchus 082eaa29b6 Allow mocking SyncthingService 2018-04-20 23:00:56 +02:00
Martchus b0dc9c861d Improve SyncthingProcess::splitArguments() parser 2018-04-18 23:46:17 +02: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 f7dc8c93bd Ensure Syncthing doesn't try to upgrade during tests 2018-04-17 23:52:20 +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
Martchus 278ba521d9 Fix warning for SYNCTHING_CONNECTION_LOG_SYNCTHING_EVENTS 2018-04-11 23:13:02 +02:00
Martchus d08aa005d7 Fix compilation without systemd support 2018-04-10 21:05:49 +02:00
Martchus fbdd1b2355 Include consistently with ./ 2018-04-08 21:53:23 +02:00
Martchus b61592fbbd Allow editing Syncthing config via JavaScript 2018-04-07 22:01:54 +02:00
Martchus c94b34595b Improve properties of SyncthingConnection 2018-04-04 20:18:42 +02:00
Martchus 0c104f60b8 Wait till all processes finished, ask for killing
See https://github.com/Martchus/syncthingtray/issues/15
2018-04-02 23:32:52 +02:00
Martchus f9305819a7 Update translations 2018-04-02 21:26:05 +02:00
Martchus ce7a4421fa Consider isActiveFor() for process also when systemd unavailable 2018-04-02 20:52:50 +02:00
Martchus 146d4870e4 Refactor preventing unwanted error messages
* See https://github.com/Martchus/syncthingtray/issues/15
* Not tested yet
2018-04-02 20:35:30 +02:00
Martchus c7ea5974e4 Allow editing config via syncthingctl 2018-04-01 23:01:37 +02:00
Martchus 754cd0c2e1 Allow printing current config 2018-04-01 20:21:51 +02:00
Martchus e9e85e6ba9 Update translations 2018-03-31 22:36:31 +02:00
Martchus d2eb4addd9 Distinguish between local an remote sync in settings 2018-03-31 22:31:28 +02:00
Martchus 023279142b Fix "sync complete" notifications during upload
* Distinguish between local and remote FolderCompletion events
* Do not request completion via REST-API, the FolderCompletion
  event covers both - local and remote changes.
2018-03-31 22:07:05 +02:00
Martchus bfd51fcaff Refactor SyncthingConnection::readDirEvent() 2018-03-31 21:19:53 +02:00
Martchus d74738a8a4 Enable event logging for debugging purposes 2018-03-31 19:48:27 +02:00
Martchus 6828e96b53 Improve sync complete notifications
* Also consider remote updates
* Still massive notifications when uploading
  about local folder completed
2018-03-29 00:38:21 +02:00
Martchus e6642245df Improve coding style in SyncthingConnectionSettings::loadHttpsCert() 2018-03-29 00:36:42 +02:00
Martchus c1efb690ef Update translations 2018-03-24 17:06:47 +01:00
Martchus b12988e342 Apply clang-format from LLVM 6 2018-03-24 17:06:16 +01:00
Martchus 914aac6e39 Make bash completion faster by requesting only config 2018-02-19 03:22:47 +01:00
Martchus 6be44cc93f Allow restart via plasmoid 2018-02-19 01:38:41 +01:00
Martchus e6ac3d8599 Update status when config updated 2018-02-18 18:13:06 +01:00
Martchus d20a4aea19 Avoid nesting in SyncthingConnection::continueConnecting() 2018-02-18 18:12:22 +01:00
Martchus c4d63e0e7c Ignore old FolderCompletion events 2018-01-28 18:07:39 +01:00
Martchus 38ac3504b2 Update German translation 2018-01-27 23:38:26 +01:00
Martchus 79fe97d952 Refactor notifications
* Use SyncthingNotifier class
* Show 'Sync complete' on FolderCompletion event
* Add extra structure for stats
2018-01-27 23:27:50 +01:00
Martchus b9c87a9bba Show remote progress in cli 2018-01-25 00:03:31 +01:00
Martchus 447928a018 Request device/directory completion 2018-01-24 21:46:18 +01:00
Martchus 53dafd1627 Complete German translation 2017-12-30 01:04:02 +01:00
Martchus 404f517b4c Refactor composing "sync complete string"
to prevent code duplication between regular tray
icon and plasmoid.
2017-12-30 00:57:35 +01:00
Martchus 841b250680 Add SyncthingNotifier class
First step of refactoring compution of high-level
notifications to prevent code duplication for compution
of "disconnected" and "sync complete" events.
2017-12-30 00:28:03 +01:00
Martchus e6b97e1ecc Clean code for dealing with folder (scan) completion 2017-11-22 00:29:50 +01:00
Martchus 4f58e054d5 Improve test mode (mocked SyncthingConnection)
* Add further events allowing to reproduce download
  model issues visible in Plasmoid
* Use TestApplication to find testfiles
2017-11-12 17:03:30 +01:00
Martchus bc239b9292 Update translations 2017-11-01 18:30:32 +01:00
Martchus 40465a8abb connector: Add method to find dir by path 2017-10-16 19:41:56 +02:00
Martchus 5e3b195b44 Update translations 2017-10-05 00:34:00 +02:00
Martchus ea96c64563 Update number of connected devices correctly
Computing the number of connected devices on overall
connection status changed event is not sufficient.
2017-10-05 00:08:46 +02:00
Martchus b692c29e50 Fix possible segfaults in set...Paused() functions
Check whether iterator is valid befor dereferencing
2017-10-01 21:19:41 +02:00
Martchus 044f20343c cli: Use error phrases from c++utilities 2017-09-26 15:43:34 +02:00
Martchus 2ee7b9af64 plasmoid: Improve settings
* Configure appearance options via Plasmoid specific
  settings
* Allow to configure the size
* Remember last connection config
2017-09-18 20:29:36 +02:00