diff --git a/dzgui/controllers/mc.py b/dzgui/controllers/mc.py index 200cc1b..59d2dd2 100644 --- a/dzgui/controllers/mc.py +++ b/dzgui/controllers/mc.py @@ -541,8 +541,8 @@ class Controller(GObject.GObject): def update_status(self) -> None: self.mediator.preconnect.mark_finished() - def get_steam_client_name(self) -> str: - return self.mediator.options.get_client_name() + def get_steam_client_name(self, cmd: str) -> str: + return self.mediator.options.get_client_name(cmd) def present_window(self) -> None: self.mediator.window.present_with_time(Gdk.CURRENT_TIME) diff --git a/dzgui/managers/connection.py b/dzgui/managers/connection.py index 2fbd91a..ffce732 100644 --- a/dzgui/managers/connection.py +++ b/dzgui/managers/connection.py @@ -184,8 +184,8 @@ class ConnectionManager: else: allows_downloads = (True, "") - client_name = self.controller.get_steam_client_name() client = self.controller.query_config(Preferences.CLIENT) + client_name = self.controller.get_steam_client_name(client) running = is_steam_running(client) steam_proc = SteamProcess(client_name, running) self.client = client diff --git a/dzgui/views/components/misc.py b/dzgui/views/components/misc.py index fa8e29c..9186246 100644 --- a/dzgui/views/components/misc.py +++ b/dzgui/views/components/misc.py @@ -15,7 +15,7 @@ class ClientCombo(Gtk.ComboBox): super().__init__() self.client_store = Gtk.ListStore(str, str) - clients = ( + self.clients = ( ( options.steam_combo, STEAM_CMD, @@ -29,7 +29,7 @@ class ClientCombo(Gtk.ComboBox): FLATPAK_SANDBOX, ), ) - for client in clients: + for client in self.clients: self.client_store.append(client) self.set_model(self.client_store) renderer_text = Gtk.CellRendererText() @@ -37,6 +37,13 @@ class ClientCombo(Gtk.ComboBox): self.add_attribute(renderer_text, "text", 0) self.set_active(0) + def get_client_human_readable(self, cmd: str) -> str: + for client in self.clients: + human, command = client + if command == cmd: + return human + raise TypeError("Not a valid Steam client selection") + class ErrorPopover(Gtk.Popover): def __init__(self, relative_to: Gtk.Widget, position: Gtk.PositionType) -> None: super().__init__(relative_to=relative_to, position=position) diff --git a/dzgui/views/pages/options.py b/dzgui/views/pages/options.py index 93341ec..4d47d8b 100644 --- a/dzgui/views/pages/options.py +++ b/dzgui/views/pages/options.py @@ -371,10 +371,9 @@ class Options(ScrollableMixin, Gtk.ScrolledWindow): # type: ignore self.connect("key-press-event", self._on_keypress) - def get_client_name(self) -> str: + def get_client_name(self, cmd: str) -> str: model = self.client_combo.get_model() - ind = self.client_combo.get_active() - return str(model[ind][0]) + return self.client_combo.get_client_human_readable(cmd) def block_text_entry(self) -> None: self.steam_box.block_text_entry()