Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added data/icon.ico
Binary file not shown.
314 changes: 188 additions & 126 deletions pdm.lock

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ requires-python = ">=3.14, <3.15"
dependencies = [
"pyside6>=6.10.2",
"packaging>=26.0",
"porringer>=0.2.1.dev31",
"porringer>=0.2.1.dev49",
"qasync>=0.28.0",
"velopack>=0.0.1369.dev7516",
"typer>=0.24.0",
Expand All @@ -29,7 +29,7 @@ build = [
"pyinstaller>=6.19.0",
]
lint = [
"ruff>=0.15.1",
"ruff>=0.15.2",
"pyrefly>=0.53.0",
]
test = [
Expand Down Expand Up @@ -103,6 +103,11 @@ serve = "zensical serve"
[tool.pdm.build.wheel-data]
data = [{ path = "data/**/*", relative-to = "data/" }]


[tool.pdm.dev-dependencies]
dev = [
"-e file:///d:/Projects/Synodic/porringer#egg=porringer",
]
[build-system]
build-backend = "pdm.backend"
requires = ["pdm.backend"]
8 changes: 8 additions & 0 deletions synodic_client/application/bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
from synodic_client.config import set_dev_mode
from synodic_client.logging import configure_logging
from synodic_client.protocol import register_protocol
from synodic_client.resolution import resolve_auto_start, resolve_config
from synodic_client.startup import register_startup, remove_startup
from synodic_client.updater import initialize_velopack

_PROTOCOL_SCHEME = 'synodic'
Expand All @@ -32,6 +34,12 @@
if not _dev_mode:
register_protocol(sys.executable)

_config = resolve_config()
if resolve_auto_start(_config):
register_startup(sys.executable)
else:
remove_startup()

# Heavy imports happen here — PySide6, porringer, etc.
from synodic_client.application.qt import application # noqa: E402

Expand Down
15 changes: 13 additions & 2 deletions synodic_client/application/qt.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
from synodic_client.config import GlobalConfiguration, set_dev_mode
from synodic_client.logging import configure_logging
from synodic_client.protocol import register_protocol
from synodic_client.resolution import resolve_config, resolve_update_config
from synodic_client.resolution import resolve_auto_start, resolve_config, resolve_update_config
from synodic_client.startup import register_startup, remove_startup
from synodic_client.updater import initialize_velopack


Expand Down Expand Up @@ -135,6 +136,12 @@ def application(*, uri: str | None = None, dev_mode: bool = False) -> None:
initialize_velopack()
register_protocol(sys.executable)

startup_config = resolve_config()
if resolve_auto_start(startup_config):
register_startup(sys.executable)
else:
remove_startup()

if uri:
logger.info('Received URI: %s', uri)

Expand All @@ -159,7 +166,11 @@ def application(*, uri: str | None = None, dev_mode: bool = False) -> None:

def _handle_install_uri(manifest_url: str) -> None:
logger.info('Opening install preview for: %s', manifest_url)
window = InstallPreviewWindow(porringer, manifest_url)
window = InstallPreviewWindow(
porringer,
manifest_url,
config=config,
)
_install_windows.append(window)
window.show()
window.raise_()
Expand Down
2 changes: 2 additions & 0 deletions synodic_client/application/screen/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ def plugin_kind_group_label(kind: PluginKind) -> str:

SKIP_REASON_LABELS: dict[SkipReason, str] = {
SkipReason.ALREADY_INSTALLED: 'Already installed',
SkipReason.ALREADY_LATEST: 'Already latest',
SkipReason.NO_PROJECT_DIRECTORY: 'No project directory',
SkipReason.UPDATE_AVAILABLE: 'Update available',
}


Expand Down
Loading
Loading