diff --git a/arautopilot/studio/app.py b/arautopilot/studio/app.py index 17f637f..9ec0795 100644 --- a/arautopilot/studio/app.py +++ b/arautopilot/studio/app.py @@ -80,6 +80,9 @@ def run(argv: list[str] | None = None) -> int: from arautopilot.studio.login_window import LoginDialog from arautopilot.studio.main_window import StudioMainWindow + import signal # noqa: PLC0415 + signal.signal(signal.SIGINT, signal.SIG_DFL) # Ctrl+C kills the process + app = QApplication(sys.argv) app.setApplicationName("AR-Autopilot Studio") diff --git a/arautopilot/studio/editors/project_editor.py b/arautopilot/studio/editors/project_editor.py index 5309ac5..d85f6e5 100644 --- a/arautopilot/studio/editors/project_editor.py +++ b/arautopilot/studio/editors/project_editor.py @@ -330,9 +330,9 @@ class ProjectEditorWidget(QWidget): # ------------------------------------------------------------------ def _apply_rbac(self) -> None: - can_commission = self._session.has(Capability.EDIT_COMMISSIONING) - can_gains = self._session.has(Capability.EDIT_BASE_GAINS) - can_compile = self._session.has(Capability.EDIT_COMMISSIONING) + can_commission = self._session.can(Capability.EDIT_COMMISSIONING) + can_gains = self._session.can(Capability.EDIT_BASE_GAINS) + can_compile = self._session.can(Capability.EDIT_COMMISSIONING) for w in [ self._max_rudder_deg, @@ -381,7 +381,7 @@ class ProjectEditorWidget(QWidget): self._sens_diverge_alarm, self._sens_diverge_failover, ]: - w.setEnabled(enabled and self._session.has(Capability.EDIT_COMMISSIONING)) + w.setEnabled(enabled and self._session.can(Capability.EDIT_COMMISSIONING)) def _on_new(self) -> None: self._project = None @@ -425,7 +425,7 @@ class ProjectEditorWidget(QWidget): QMessageBox.critical(self, "Save error", str(exc)) def _on_compile(self) -> None: - if not self._session.has(Capability.EDIT_COMMISSIONING): + if not self._session.can(Capability.EDIT_COMMISSIONING): QMessageBox.warning(self, "Access denied", "Engineer or Super Admin required.") return diff --git a/arautopilot/studio/flash_console.py b/arautopilot/studio/flash_console.py index bb6e75d..234ce47 100644 --- a/arautopilot/studio/flash_console.py +++ b/arautopilot/studio/flash_console.py @@ -31,7 +31,7 @@ import sys from pathlib import Path from typing import Optional -from PySide6.QtCore import QObject, QThread, Signal +from PySide6.QtCore import QObject, Qt, QThread, Signal from PySide6.QtWidgets import ( QComboBox, QDialog, @@ -148,7 +148,7 @@ class FlashConsoleWidget(QWidget): f"Logged in as {self._session.user.display_name} " f"({self._session.role.value})." ) - header.setTextFormat(0x1) # PlainText would lose
; RichText = 1 + header.setTextFormat(Qt.TextFormat.RichText) header.setWordWrap(True) outer.addWidget(header) diff --git a/arautopilot/studio/installer_widget.py b/arautopilot/studio/installer_widget.py index a75e2cc..f0b20d7 100644 --- a/arautopilot/studio/installer_widget.py +++ b/arautopilot/studio/installer_widget.py @@ -20,7 +20,7 @@ import subprocess import sys from pathlib import Path -from PySide6.QtCore import QObject, QThread, Signal +from PySide6.QtCore import QObject, Qt, QThread, Signal from PySide6.QtWidgets import ( QCheckBox, QFileDialog, @@ -129,7 +129,7 @@ class InstallerWidget(QWidget): "" "Genera un pendrive USB con las apps AR Electronics y la licencia del buque." ) - hdr.setTextFormat(1) # RichText + hdr.setTextFormat(Qt.TextFormat.RichText) # RichText hdr.setWordWrap(True) root.addWidget(hdr) @@ -220,7 +220,7 @@ class InstallerWidget(QWidget): root.addWidget(self._log, 1) # RBAC gate - can_build = self._session.has(Capability.EDIT_COMMISSIONING) + can_build = self._session.can(Capability.EDIT_COMMISSIONING) if not can_build: self._build_btn.setEnabled(False) self._build_btn.setToolTip("Requiere rol Engineer o Super Admin.") @@ -321,7 +321,7 @@ class InstallerWidget(QWidget): self._set_running(False) def _set_running(self, running: bool) -> None: - can_build = self._session.has(Capability.EDIT_COMMISSIONING) + can_build = self._session.can(Capability.EDIT_COMMISSIONING) self._build_btn.setEnabled(not running and can_build) self._cancel_btn.setEnabled(running)