Convert executables to strings at init time

This commit is contained in:
kramo
2023-06-17 15:35:43 +02:00
parent b2b1780374
commit 8eb203cb06
3 changed files with 8 additions and 15 deletions

View File

@@ -69,11 +69,7 @@ class DetailsWindow(Adw.Window):
self.name.set_text(self.game.name)
if self.game.developer:
self.developer.set_text(self.game.developer)
self.executable.set_text(
self.game.executable
if isinstance(self.game.executable, str)
else shlex.join(self.game.executable)
)
self.executable.set_text(self.game.executable)
self.apply_button.set_label(_("Apply"))
self.game_cover.new_cover(self.game.get_cover_path())

View File

@@ -86,6 +86,9 @@ class Game(Gtk.Box):
def update_values(self, data):
for key, value in data.items():
# Convert executables to strings
if key == "executable" and isinstance(value, list):
value = shlex.join(value)
setattr(self, key, value)
def update(self):
@@ -115,16 +118,10 @@ class Game(Gtk.Box):
self.save()
self.update()
string = (
self.executable
if isinstance(self.executable, str)
else shlex.join(self.executable)
)
args = (
"flatpak-spawn --host /bin/sh -c " + shlex.quote(string) # Flatpak
"flatpak-spawn --host /bin/sh -c " + shlex.quote(self.executable) # Flatpak
if os.getenv("FLATPAK_ID") == shared.APP_ID
else string # Others
else self.executable # Others
)
logging.info("Starting %s: %s", self.name, str(args))