synodic-client 0.0.1.dev85__tar.gz → 0.0.1.dev86__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/PKG-INFO +1 -1
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/pyproject.toml +1 -1
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/tray.py +3 -9
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/LICENSE.md +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/README.md +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/__main__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/bootstrap.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/config_store.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/data.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/debug.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/icon.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/init.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/instance.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/package_state.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/qt.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/schema.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/action_card.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/card.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/install.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/install_workers.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/log_panel.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/plugin_row.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/projects.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/schema.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/screen.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/settings.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/sidebar.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/spinner.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/tool_update_controller.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/update_banner.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/wsl.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/theme.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/update_controller.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/update_model.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/uri.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/config.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/context.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/debug.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/install.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/output.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/project.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/tool.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/cli/update.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/client.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/config.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/logging.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/bootstrap.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/config.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/install.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/project.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/schema.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/tool.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/update.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/protocol.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/py.typed +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/resolution.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/schema.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/startup.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/subprocess_patch.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/updater.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/conftest.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_config.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_install.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_install_plan.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_project.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_tool.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_update.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/conftest.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_action_card.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_gather_packages.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_install_preview.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_log_panel.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_logging.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_package_state.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_preview_model.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_settings.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_sidebar.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_tray_window_show.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_update_banner.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_update_controller.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_update_feedback.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_bootstrap.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_cli.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_client_updater.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_client_version.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_config.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_examples.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_init.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_install.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_resolution.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_updater.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_uri.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/test_workers.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/windows/__init__.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/windows/conftest.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/windows/test_protocol.py +0 -0
- {synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/windows/test_startup.py +0 -0
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/tray.py
RENAMED
|
@@ -29,8 +29,6 @@ logger = logging.getLogger(__name__)
|
|
|
29
29
|
class TrayScreen:
|
|
30
30
|
"""Tray screen for the application."""
|
|
31
31
|
|
|
32
|
-
_MENU_POPUP_DELAY_MS = 100
|
|
33
|
-
|
|
34
32
|
def __init__(
|
|
35
33
|
self,
|
|
36
34
|
app: QApplication,
|
|
@@ -57,6 +55,9 @@ class TrayScreen:
|
|
|
57
55
|
self.tray.activated.connect(self._on_tray_activated)
|
|
58
56
|
|
|
59
57
|
self._build_menu()
|
|
58
|
+
# setContextMenu delegates positioning to the OS tray API, which
|
|
59
|
+
# correctly avoids the taskbar. Do not manually handle the Context
|
|
60
|
+
# activation reason — that causes duplicate popups or z-order issues.
|
|
60
61
|
self.tray.setContextMenu(self._menu)
|
|
61
62
|
|
|
62
63
|
# At early Windows login the notification area may not be ready.
|
|
@@ -150,13 +151,6 @@ class TrayScreen:
|
|
|
150
151
|
logger.debug('Tray activated: reason=%s', reason.name)
|
|
151
152
|
if reason == QSystemTrayIcon.ActivationReason.DoubleClick:
|
|
152
153
|
self._show_window()
|
|
153
|
-
elif reason == QSystemTrayIcon.ActivationReason.Context:
|
|
154
|
-
QTimer.singleShot(self._MENU_POPUP_DELAY_MS, self._show_tray_menu)
|
|
155
|
-
|
|
156
|
-
def _show_tray_menu(self) -> None:
|
|
157
|
-
"""Show the tray context menu at the current cursor position."""
|
|
158
|
-
geo = self.tray.geometry()
|
|
159
|
-
self._menu.popup(geo.center())
|
|
160
154
|
|
|
161
155
|
def _show_window(self) -> None:
|
|
162
156
|
"""Show, raise, and focus the main window."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/__init__.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/bootstrap.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/config_store.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/data.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/debug.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/icon.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/init.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/instance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/card.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/screen/wsl.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/theme.py
RENAMED
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/application/update_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/__init__.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/bootstrap.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/config.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/install.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/project.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/operations/update.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/synodic_client/subprocess_patch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_config.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_install.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_install_plan.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_project.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_tool.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/operations/test_update.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_gather_packages.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_install_preview.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_package_state.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_preview_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_tray_window_show.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_update_banner.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_update_controller.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/qt/test_update_feedback.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/windows/test_protocol.py
RENAMED
|
File without changes
|
{synodic_client-0.0.1.dev85 → synodic_client-0.0.1.dev86}/tests/unit/windows/test_startup.py
RENAMED
|
File without changes
|