Commit Graph

140 Commits

Author SHA1 Message Date
Martchus f75966aadc Fix warnings 2021-03-20 22:39:40 +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 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 57e9865ace Sort devices by name 2020-10-20 19:36:02 +02:00
Martchus 7ada03b00b Apply clang-format 2020-10-19 18:33:28 +02:00
Martchus a6727b0fa7 Show the connection config name in tooltip when displaying multiple icons 2020-10-19 18:33:10 +02:00
Martchus 4078e6ff2a Prevent crash deleting s_dialogParent 2020-10-18 17:13:52 +02:00
Martchus 4040a4e136 Hide connection status from settings when there are multiple tray icons 2020-10-18 17:02:12 +02:00
Martchus 2c1dbff82b Allow specifiying multiple connection configurations 2020-10-18 16:28:17 +02:00
Martchus 3e1beaa11d Sort directories by name/ID
* Use the name as sorting criteria and fall back to the ID if there's no
  name
* Use new SyncthingSortFilterDirectoryModel also for Plasmoid's filtering
* See https://github.com/Martchus/syncthingtray/issues/75
2020-10-18 15:48:02 +02:00
Martchus 3b49e9e312 Support Qt 6 (commit 174154b) 2020-09-04 01:09:18 +02:00
Martchus 5b2147a874 Apply scaling in renderSvgImage() similar to QIcon::pixmap() does 2020-07-12 02:38:57 +02:00
Martchus 65b3261320 Hide connections menu when only one connection is configured
* Make UI look cleaner for the common case of only one configuration
* Save some width to help with
  https://github.com/Martchus/syncthingtray/issues/65 a little bit
2020-04-28 00:10:04 +02:00
Martchus ed4d1fc213 Use idle status icon for button to open Syncthing web UI
That looks more consistent, especially when using a dark color theme
where the default Syncthing icon doesn't fit in very well.
2020-04-12 23:16:26 +02:00
Martchus 6921f9aa89 Configure bright colors for recent changes model 2020-02-29 13:17:38 +01:00
Martchus 94753de797 Fix start/stop button tooltip for system-wide systemd service 2020-02-02 19:51:16 +01:00
Martchus 13e0732168 Show context menu on recent changes view 2020-01-23 20:07:11 +01:00
Martchus 6026339c83 Show recent changes 2020-01-18 16:43:13 +01:00
Martchus 1a1b907f15 Save settings immediately to disk when applied
* See https://github.com/Martchus/syncthingtray/issues/59
* QCoreApplication::aboutToQuit() does not work reliably but terminating
  only at the end of the session is a common use-case for the tray
  application. So workaround the problem by saving the settings
  immediately.
* The plasmoid already does this anyways.
2019-10-06 17:58:08 +02:00
Martchus 2363e9a7d4 Update status icon and tooltip when changing settings
Required because the reconnect interval which might be included
in the tooltip might have changed.
2019-08-01 19:07:58 +02:00
Martchus 19816437ea Use a different parent for dialogs
This allows customizing the tray menu/widget using style sheets
without affecting the dialogs.
2019-07-31 20:47:19 +02:00
Martchus 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
Martchus 9b8191c105 Use consistent prefix for static member variables 2019-07-27 15:11:50 +02:00
Martchus 1bdba31c70 Improve behavior under Wayland
* Add workaround for using QCursor::pos()
* Set window flags and parent of TrayMenu to it is shown
  like a context menu
2019-07-27 15:04:14 +02:00
Martchus c378b17de4 Don't abuse organization domain for website in AboutDialog 2019-07-20 20:32:15 +02:00
Martchus a1658dcf83 Apply clang-format 2019-07-17 23:14:34 +02:00
Martchus 708334443f Add option to unify tray menus
* Don't create context menu
* Show the "Close" action and the "Internal errors"
  action in the tray widget
* Use this by default on Mac OS
2019-07-17 19:07:58 +02:00
Martchus fe332078f1 Improve taking the launcher status into account when connecting
* Take the time the launcher is active into account (in the same
  way as it is done for the systemd service)
* Fix case when systemd service would be relevant but configured
  to consider the launcher status
2019-07-13 17:59:48 +02:00
Martchus b9e9d76594 Update translations 2019-07-13 13:38:51 +02:00
Martchus c521e2f808 Apply clang-format 2019-07-13 13:21:25 +02:00
Martchus 335913c8ca Fix build without systemd support 2019-07-13 13:21:02 +02:00
Martchus 2112b00347 Allow to show start/stop button for launcher 2019-07-12 20:32:55 +02:00
Martchus 6ac633366e Don't use functions obsoleted in Qt 5.13.0 2019-06-25 14:37:14 +02:00
Martchus 64473df5ba Adapt to changes in c++utilities 2019-06-10 22:48:26 +02:00
Martchus 05da0465a7 Allow customizing status icon colors 2019-05-19 17:57:37 +02:00
Martchus 8dacbaa8d7 Adapt to new c++utilities API 2019-05-05 18:42:19 +02:00
Martchus 0049d96bca Adapt to c++utilities API changes 2019-05-04 22:18:31 +02:00
Martchus 2ab88c5766 Add font awesome icons to models
So it looks a bit more like the official UI.
2019-02-27 20:41:50 +01:00
Martchus a3a09297f7 Render font awesome icons in color from QPalette
Since theres apparently no API in the Qt Svg module to support
this the change introduced here simply replaces in the SVG
document itself.
2019-02-23 13:55:46 +01:00
Martchus 3bcdf26cca Show global statistics on widgets-based GUI 2019-02-18 00:35:32 +01:00
Martchus 5afbd4e664 Fix typo 2018-12-23 21:17:31 +01:00
Martchus 8b6cf6a282 Remove unused function in TrayWidget 2018-12-23 21:17:24 +01:00
Martchus 900377b036 Stop web view immediately if in background and user disables this 2018-10-28 14:27:25 +01:00
Martchus 49b33e5afe Ensure errors on first connection after startup are handled 2018-05-15 22:01:03 +02:00
Martchus 29db8b06b2 Fix dependency versions with GCC 8 2018-05-08 00:38:31 +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 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 d2eb4addd9 Distinguish between local an remote sync in settings 2018-03-31 22:31:28 +02:00
Martchus 84f0f91a24 Show link-time dependencies in about dialog 2018-03-18 18:24:00 +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 69ffaeb1f3 Apply tidy after updating to clang-format 5.0.0
The behavior of clang-format slightly changed in Clang 5.0.0:
http://releases.llvm.org/5.0.0/tools/clang/docs/ReleaseNotes.html#clang-format
2017-09-17 21:48:15 +02:00
Martchus bae7f7c4c8 Don't duplicate code for showing log entries 2017-09-08 17:01:52 +02:00
Martchus 85b524918b Fix compilation without systemd support 2017-08-31 02:18:20 +02:00
Martchus 856a899c4b Move showOwnDeviceId() to widgets
So Plasmoid can use it as well
2017-08-30 00:01:34 +02:00
Martchus e797d8e76c Move showLog() entirely to TextViewDialog
So Plasmoid can use it as well
2017-08-30 00:01:34 +02:00
Martchus 2c1768c219 Move helper for setting traffic labels to connector
* Reduce code duplication for in and out
* Allow using the helper from Plasmoid
2017-08-30 00:01:34 +02:00
Martchus c8b68bc7c7 Fix compilation after latest changes when systemd disabled 2017-08-11 21:13:47 +02:00
Martchus 7b19be01f2 tray: Allow specifying name of initial connection via CLI
This includes refactoring TrayWidget::applySettings() which
is now a member function and only affects the current instance.

This prevents applying settings on every instance every time
a new tray widget is created.

To apply settings for all tray widgets, the static function
TrayWidget::applySettingsOnAllInstances() is used instead.
2017-08-09 01:11:47 +02:00
Martchus 633ed0eaab widgets lib: Use meta-data of tray 2017-07-08 01:31:41 +02:00
Martchus 0949ebae68 tray widget: Fix incorrect icon path 2017-07-02 21:55:41 +02:00
Martchus 04c9caf7d4 connector: Update raw config after pausing/resuming
It seems like (cached) raw config is not automatically updated
via newConfig() after pausing/resuming a dir/dev. So this is
now done manually.

Additionally, pausing/resuming devs is now also implemented by
posting new config.
2017-07-02 21:47:23 +02:00
Martchus 732a5fdd8d Apply clang-format 2017-05-01 03:34:43 +02:00
Martchus 1abb8b8a87 Move status info/notification to widgets
* Allow reusing code in other components such
  as Plasmoid
* Separate determining status text and icon
  from displaying notifications
2017-04-25 23:32:40 +02:00
Martchus 49ff5a7b65 Move widgets from tray app to separate lib
So settings pages, web view and other widgets
can be used in other components such as the
Dolphin plugin and Plasmoid, too.
2017-04-23 18:31:18 +02:00
Martchus 536f140fcb Open containing dir of downloading file
Makes more sense than trying to open an incomplete file
2017-03-06 21:48:29 +01:00
Marius Kittler 5101872532 Allow pausing/resuming dirs in GUI 2017-02-23 15:57:17 +01:00
Martchus 16c88daf28 Allow pausing/resuming dirs in backend 2017-02-23 15:57:11 +01:00
Martchus 10bb953202 Fix typo 2017-01-30 22:43:24 +01:00
Martchus 2a5137184a Distinguish unknown traffic from zero traffic 2017-01-14 00:58:24 +01:00
Martchus b2a66c806b Don't connect to local instance when not running
Prevent connection attempt to local instance at startup
or after applying settings when Syncthing systemd unit
isn't running
2017-01-12 22:18:40 +01:00
Martchus ee59c2b1c4 Prevent disconnect notification when stopping Syncthing manually 2017-01-10 23:49:34 +01:00
Martchus edba991d89 Don't show start/stop button when feature disabled 2017-01-03 00:29:15 +01:00
Martchus 7755e97c5f Only reconnect when relevant settings changed 2017-01-01 19:19:16 +01:00
Martchus 3cadd8cbcb Improve systemd integration
* Allow using systemd unit status to better handle
  reconnect attempts to local instance
* Misc adjustments
2016-12-27 16:22:37 +01:00
Martchus 6c99293087 Allow triggering current tray 2016-12-26 19:50:10 +01:00
Martchus 0ecb26a4cf Allow dismissing new notifications 2016-12-26 19:19:10 +01:00
Martchus 78450a2b7e Allow controlling Syncthing systemd service 2016-12-26 19:05:47 +01:00
Martchus 5d358e31fc Allow reloading log by pressing F5 2016-12-12 23:45:40 +01:00
Martchus 2b75f1f3e5 Don't show error for each re-connect attempt 2016-12-12 23:45:40 +01:00
Martchus a163c3f046 Dismiss notifications correctly 2016-12-12 23:24:36 +01:00
Martchus 230377dabe Center 'New notifications' button 2016-12-12 23:24:36 +01:00
Martchus d3bde05ccd Update icon when new notifications shown 2016-12-03 01:00:04 +01:00
Martchus b5174735ad Add option for bright custom text colors 2016-11-02 21:05:32 +01:00
Martchus 7149f90821 Refactor settings 2016-11-02 20:03:38 +01:00
Martchus ba3db70604 Fix reading high traffic values 2016-10-20 23:14:47 +02:00
Martchus 138a7cc382 Allow auto-reconnect 2016-10-07 15:11:25 +02:00
Martchus 701dc9197c Confirm restart 2016-10-05 00:01:55 +02:00
Martchus 9fa2a028e8 Show out of sync directory state 2016-10-04 23:42:17 +02:00
Martchus 2b3a1137bc Improve appearance settings 2016-10-03 01:16:47 +02:00
Martchus 6470038fc7 Refactor to allow sharing backend with other apps
Intended for creating command line tool and plasmoid
2016-09-30 23:58:45 +02:00