Commit Graph

32 Commits

Author SHA1 Message Date
Martchus cc599efbef Fix potential problems with code related to styling the tray menu 2024-04-09 11:35:23 +02:00
Martchus 13ddb6dba5 Apply clang-format 2024-01-15 21:32:38 +01:00
Martchus c36b3223f1 Fix displaying issues with Windows 11 style
* Set content margins to take shadow effects into account
* Fix behavior when showing the QMenu not as `Qt::Popup`
    * Prevent polishing as it would wrongly override our window flags
    * Use the background color from the application's palette as the
      background color from the QMenu itself is changed by the Windows 11
      style
2023-12-25 00:48:29 +01:00
Martchus 04a8905a83 Allow opening Syncthing directly when clicking on tray icon
This might be useful if minimalism is desired or to avoid positioning
issues on Wayland.
2023-11-10 14:33:03 +01:00
Martchus 784630104d Save position and size of window after is has been moved/resized
* Remember new size after user resized the window
* Remember new position after user repositioned window and using explicit
  coordinates has been configured in the appearance settings
2023-10-06 21:03:40 +02:00
Martchus cdfa769c84 Disable resizing/moving for popups under X11 as it is not working
At least it wasn't working with KWin and leading to the popup not closing
correctly anymore.
2023-10-06 17:55:51 +02:00
Martchus a9cc948099 Allow resizing/moving tray widget
This might be useful on Wayland where positioning the popup is otherwise
not possible at all. Combined with a session restoration mechanism this
might actually be a feasible workaround. The user just needed to position
the popup once wherever it is wanted to show up and then the compositor
could remember that position.

Especially the resizing would also be useful on other platforms (and is by
the way also already possible when using the Plasmoid showing it as part of
the system tray Plasmoid).
2023-10-06 17:05:40 +02:00
Martchus 1b72e61c86 Allow to use a window without titlebar
This might look better than a popup on Windows 11 because we'd still get
the round window corners.
2023-02-18 21:27:09 +01:00
Martchus 4fc3777a9e Paint tray menu background as normal widget when shown as normal window 2022-12-10 12:07:06 +01:00
Martchus 6c89b2dc0a Allow disabling positioning at fallback coordinates
This just turns the "Otherwise assume …" label into a checkbox allowing to
disable the fallback behavior completely.
2022-11-29 23:33:28 +01:00
Martchus 71c56edfd8 Allow showing Syncthing Tray as normal application/window
* Remove experimental pinning feature again and instead allow using a
  normal window
    * Pinning made it inconvenient to close the (frameless) window again
    * Pinning required hiding/showing the window which didn't look very
      nice (and setting flags directly via `QWindow` didn't work as well)
* As normal application/window positioning issues on Wayland are less
  problematic (and those aren't going to be fixed any time soon, if at all)
2022-11-29 23:06:15 +01:00
Martchus 127cd71856 Avoid re-positioning when pinning 2022-10-07 23:22:15 +02:00
Martchus ace27f9e9c Fix saving pinned state persistently 2022-10-07 23:15:25 +02:00
Martchus 9220d66add Allow pinning tray menu (still experimental) 2022-10-07 22:59:17 +02: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 3b49e9e312 Support Qt 6 (commit 174154b) 2020-09-04 01:09:18 +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 9b924d4138 Fix closing tray menu 2019-07-28 10:56:59 +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 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 f4d4ed3436 Don't use deprecated Qt features 2019-05-04 22:18:50 +02:00
Martchus 49b33e5afe Ensure errors on first connection after startup are handled 2018-05-15 22:01:03 +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 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 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 732a5fdd8d Apply clang-format 2017-05-01 03:34:43 +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 6c99293087 Allow triggering current tray 2016-12-26 19:50:10 +01:00
Martchus 7149f90821 Refactor settings 2016-11-02 20:03:38 +01: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