fix(ui): Applying got stuck: the ticked items came in as a JS value

Convert QML's array; if starting fails anyway, show the done screen with
the reason instead of staying on the progress screen.
This commit is contained in:
theupriser committed 2026-09-25 15:56:41 +02:00
1 parent 96558a9ca8
commit 3a0eefab11
2 files changed
+15 -7

No files matched your search

+14 -6
View File
@@ -247,12 +247,20 @@ class Backend(QObject):
@Slot("QVariant", str, bool, str)
def apply(self, ids, boot, reapply, password):
args = ["apply"]
if reapply:
args.append("--reapply")
if boot:
args += ["--boot", boot]
self._start(args + list(ids), password)
try:
if hasattr(ids, "toVariant"): # a JS array from QML
ids = ids.toVariant()
args = ["apply"]
if reapply:
args.append("--reapply")
if boot:
args += ["--boot", boot]
self._start(args + [str(i) for i in (ids or [])], password)
except Exception as e:
# Never leave the app on the progress screen.
print("steamify-ui: couldn't start:", e, file=sys.stderr)
self._drop_askpass()
self.event.emit({"event": "finished", "failed": [], "restart": False, "error": "start"})
@Slot(str)
def biosPrepare(self, password):