summaryrefslogtreecommitdiff
path: root/ui/main_window.py
diff options
context:
space:
mode:
authorChristian Kolset <ckolset@colostate.edu>2026-08-17 10:01:59 -0600
committerChristian Kolset <ckolset@colostate.edu>2026-08-17 10:01:59 -0600
commite749cca30da2d02839aca736873e7e5ad45e191c (patch)
treeca57d9ce2ff6a6f33193a59216be17b3b159c1af /ui/main_window.py
parent34c12b2b5b280206890cd03153b1c95116acc85e (diff)
Add .labui file association — open by double-click, cross-platform
Windows/Linux self-register via core/file_association.py (winreg / XDG .desktop+mime), triggered from a new Settings button since there's no installer to do it at install time. macOS gets it at build time via labui.spec's new BUNDLE() step (CFBundleDocumentTypes in Info.plist) — that step also makes mac builds a real .app bundle for the first time, not just a bare onedir folder. main.py gains a LabUIApplication subclass to catch the macOS QFileOpenEvent (buffered if it arrives before MainWindow exists) plus argv[1] handling for Windows/Linux. ProfileButton.load_path() extracted so both paths share the same load-and-apply logic as the existing file-dialog flow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'ui/main_window.py')
-rw-r--r--ui/main_window.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/ui/main_window.py b/ui/main_window.py
index 012d6f5..b632535 100644
--- a/ui/main_window.py
+++ b/ui/main_window.py
@@ -601,6 +601,11 @@ class MainWindow(QMainWindow):
# ── Profile callbacks ─────────────────────────────────────────────────
+ def load_profile_path(self, path: str) -> bool:
+ """Load a .labui file from an explicit path — used when one is
+ opened from the OS (double-click / CLI argv), see main.py."""
+ return self._file_btn.load_path(path)
+
def _profile_new(self):
"""Reset to a blank slate."""
# Clear devices