Commit Graph

269 Commits

Author SHA1 Message Date
Martchus 32f78b74fd Overhaul systemd integration, support system-wide units
* Lazy initialize systemd interface and don't initialize it
  at all if the unit name is empty
* Allow to supervise/control system-wide units in addition to
  user units (see https://github.com/Martchus/syncthingtray/issues/61)
* Avoid redundant code
2019-12-18 00:18:46 +01:00
Martchus 4b5a8efa3e Apply cmake-format v0.6.0 2019-11-30 18:24:19 +01:00
Martchus 38987707bd Update translations 2019-10-09 23:23:02 +02: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 27f17fc94c Use aboutToQuit() signal for cleanup-code
As recommended by the Qt documentation
2019-09-14 19:14:45 +02:00
Martchus cf5faeca51 Apply cmake-format 2019-09-08 18:12:05 +02:00
Chih-Hsuan Yen 335e1efafa
Fix building with -DUNIFY_TRAY_MENUS=ON
Ref: 1bdba31c70
2019-08-25 20:41:17 +08:00
p-bo 9869794d29
Added Czech localization 2019-08-20 22:11:45 +02:00
p-bo b2011ab9a3
Added Czech localization
Create syncthingtray_cs_CZ.ts
2019-08-20 22:01:43 +02:00
Martchus 956d4d1cd7 Update translations 2019-08-10 00:21:14 +02:00
Martchus 5d044a9645 Mention --wait in error message if tray not available 2019-08-10 00:20:38 +02:00
Martchus de76489a2c Require "edit-clear" icon
It is now required for the button overlay from qtilities because
no fallback is provided anymore.
2019-08-08 22:55:49 +02:00
Martchus be0be08997 Apply cmake-format 2019-08-06 00:13:15 +02:00
Martchus 4e60153070 Update translations 2019-08-02 17:09:05 +02:00
Martchus db16727956 Show launcher log also before opening settings dialog 2019-08-02 17:05:48 +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 6057b2cb2c Map context menu coordinates to top-level widget
Map context menu coordinates to top-level widget if the top-level
widget is a QMenu. Otherwise the context menu is not displayed at
the right position. Not sure why this workaround is required.

The check for QMenu is required. Otherwise the "windowed" mode
enabled via --windowed CLI argument would not work anymore. In
this mode the top-level window is a regular window.

Adding the window flags Qt::Sheet or Qt::Dialog to the QMenu
would help as well but that prevents closing the menu (see
https://github.com/Martchus/syncthingtray/issues/41).
2019-07-31 22:26:11 +02:00
Martchus d07bdba5de Add parent to context menus
This is recommended in a Wayland porting guide.
2019-07-31 22:26:00 +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 f9eba2d012 Update translations 2019-07-28 22:05:27 +02:00
Martchus 9b924d4138 Fix closing tray menu 2019-07-28 10:56:59 +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 9f9b9124a4 Improve code of dir/dev/download views
* Reduce indentation
* Remove unused #include <QCursor>
* Map context menu position to viewport
* Use const when possible
2019-07-27 11:15:13 +02:00
Martchus c378b17de4 Don't abuse organization domain for website in AboutDialog 2019-07-20 20:32:15 +02:00
Martchus f4097d3d79 Fix positioning of context menus under Wayland
Does not cover positioning the tray widget itself yet.
2019-07-20 18:56:20 +02:00
Martchus 2c95a15f1a Update translations 2019-07-20 17:15:32 +02:00
Chih-Hsuan Yen 829e79929e
Hide the application icon from Dock and Command+Tab switcher
Info.plist.in is $prefix/share/cmake-2.14/Modules/MacOSXBundleInfo.plist.in
with an additional LSUIElement key.
2019-07-18 10:58:37 +08: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 31bb92da89 Show notifications about launcher errors 2019-07-12 20:25:24 +02:00
Martchus 5b45f02fb5 Bundle icons for QLineEdit::createStandardContextMenu() 2019-07-07 12:23:25 +02:00
Martchus 6ac633366e Don't use functions obsoleted in Qt 5.13.0 2019-06-25 14:37:14 +02:00
Martchus 65eb59fe26 Add missing German translations 2019-06-16 16:58:37 +02:00
Martchus ee6817187a Ensure Qt specific config is included 2019-06-16 15:57:03 +02:00
Martchus 64473df5ba Adapt to changes in c++utilities 2019-06-10 22:48:26 +02:00
Martchus 0e7cc8ba9b Apply changed status colors without restart 2019-05-19 23:11:50 +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 f4d4ed3436 Don't use deprecated Qt features 2019-05-04 22:18:50 +02:00
Martchus 0049d96bca Adapt to c++utilities API changes 2019-05-04 22:18:31 +02:00
Martchus d88df866d2 Adapt to c++utilities v5 2019-05-04 21:05:21 +02:00
Martchus c523f627da Update screenshot, remove outdated ones 2019-03-09 14:55:29 +01:00
Martchus a6380947ea Fix wrong translation and update translations 2019-02-27 20:45:05 +01: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 78d4553104 Update translations 2019-02-18 00:41:17 +01:00
Martchus 3bcdf26cca Show global statistics on widgets-based GUI 2019-02-18 00:35:32 +01:00
Martchus 2b3a27d537 Replace "Open web UI" with "Open Syncthing" 2019-02-17 23:49:22 +01:00
Martchus 326f03b604 Apply cmake-format 2019-02-06 17:36:14 +01:00
Martchus 028a456c4e Update translations 2018-12-29 20:40:40 +01:00
Martchus adc0fa724e Ensure TrayIcon is immediately visible 2018-12-23 21:17:51 +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 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 930691ebdc Rename ErrorViewDialog to InternalErrorsDialog 2018-11-03 18:15:10 +01:00
Martchus f462530183 Reduce nesting in DirView::mouseReleaseEvent() 2018-11-03 17:54:12 +01:00
Martchus 900377b036 Stop web view immediately if in background and user disables this 2018-10-28 14:27:25 +01:00
Martchus 533a5d0939 Use override 2018-10-10 21:26:46 +02:00
Martchus db4b032179 Show connected device names in additional status 2018-06-27 17:38:22 +02:00
Martchus 4d16967b23 Fix possibly missing #include 2018-06-05 22:48:18 +02:00
Martchus 49b33e5afe Ensure errors on first connection after startup are handled 2018-05-15 22:01:03 +02:00
Martchus b1b9f87320 Update translations 2018-05-12 23:14:04 +02:00
Martchus 1e83fefdf2 Fix compilation without DBus notification support 2018-05-10 13:51:07 +02:00
Martchus 9ce8c593a2 Require qtutilities 5.10.0 for AboutDialog overload 2018-05-08 19:20:05 +02:00
Martchus 52740c4cbe Update translations 2018-05-08 00:43:15 +02:00
Martchus 29db8b06b2 Fix dependency versions with GCC 8 2018-05-08 00:38:31 +02:00
Martchus bde3734ea4 Add mocks for testing rejected events 2018-05-02 00:00:47 +02:00
Martchus 988765f2ba Show new dev/dir notifications in usual tray icon and Plasmoid 2018-05-01 22:27:03 +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 f9305819a7 Update translations 2018-04-02 21:26:05 +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 b81c316d4a Improve message formatting in SingleInstance 2018-04-02 20:23:54 +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 c1efb690ef Update translations 2018-03-24 17:06:47 +01:00
Martchus 84f0f91a24 Show link-time dependencies in about dialog 2018-03-18 18:24:00 +01:00
Martchus 3c811f5968 Add appstream metadata
See https://www.freedesktop.org/software/appstream/docs/chap-Quickstart.html#sect-Quickstart-DesktopApps
2018-02-21 23:12:00 +01:00
Martchus 38ac3504b2 Update German translation 2018-01-27 23:38:26 +01:00
Martchus c9039ff6aa Ensure webview defs are present 2018-01-27 23:34:36 +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 1e40f7bb30 Fix including utils.h 2018-01-20 21:34:53 +01:00
Martchus af1f38b9eb Remove obsolete translations 2017-12-30 01:00:55 +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 43b2f9ff22 Allow to disable formatting 2017-10-17 19:47:12 +02:00
Martchus 9782795551 Add missing icons 2017-10-07 22:24:19 +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 06f5364335 Use ArgumentParser::parseArgsOrExit() 2017-09-29 17:18:21 +02: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 903708a0ba Don't symlink syncthingtray.svg
Otherwise CMake will only install a symlink
2017-09-09 22:20:34 +02:00
Martchus 6ec3833c9e Move syncthingtray.svg to widgets 2017-09-09 21:32:40 +02:00
Martchus 49862f2701 Make GUI everywhere mandatory 2017-09-09 21:30:18 +02:00