From 6242087152057d6cac877627489ec989ec528308 Mon Sep 17 00:00:00 2001 From: jeffser Date: Sat, 12 Oct 2024 17:25:23 -0600 Subject: [PATCH] Replace model selector with button if there aren't any models download --- src/custom_widgets/model_widget.py | 11 ++++++----- src/window.py | 2 +- src/window.ui | 12 ++++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/custom_widgets/model_widget.py b/src/custom_widgets/model_widget.py index 6812ed3..6c51d0c 100644 --- a/src/custom_widgets/model_widget.py +++ b/src/custom_widgets/model_widget.py @@ -82,11 +82,10 @@ class model_selector_button(Gtk.MenuButton): orientation=0, spacing=5 ) - self.label = Gtk.Label(label=_('Select a Model')) + self.label = Gtk.Label() container.append(self.label) container.append(Gtk.Image.new_from_icon_name("down-symbolic")) super().__init__( - tooltip_text=_('Select a Model'), child=container, popover=self.popover, halign=3 @@ -105,8 +104,7 @@ class model_selector_button(Gtk.MenuButton): self.label.set_label(window.convert_model_name(model_name, 0)) self.set_tooltip_text(window.convert_model_name(model_name, 0)) elif len(list(listbox)) == 0: - self.label.set_label(_("Select a Model")) - self.set_tooltip_text(_("Select a Model")) + window.title_stack.set_visible_child_name('no_models') window.model_manager.verify_if_image_can_be_used() def add_model(self, model_name:str): @@ -122,10 +120,12 @@ class model_selector_button(Gtk.MenuButton): model_row = model_selector_row(model_name, data) GLib.idle_add(self.get_popover().model_list_box.append, model_row) GLib.idle_add(self.change_model, model_name) + GLib.idle_add(window.title_stack.set_visible_child_name, 'model_selector') def remove_model(self, model_name:str): self.get_popover().model_list_box.remove(next((model for model in list(self.get_popover().model_list_box) if model.get_name() == model_name), None)) self.model_changed(self.get_popover().model_list_box) + window.title_stack.set_visible_child_name('model_selector' if len(window.model_manager.get_model_list()) > 0 else 'no_models') def clear_list(self): self.get_popover().model_list_box.remove_all() @@ -611,7 +611,8 @@ class model_manager_container(Gtk.Box): except Exception as e: logger.error(e) window.connection_error() - window.title_stack.set_visible_child_name('model_selector') + window.title_stack.set_visible_child_name('model_selector' if len(window.model_manager.get_model_list()) > 0 else 'no_models') + #window.title_stack.set_visible_child_name('model_selector') window.chat_list_box.update_welcome_screens(len(self.get_model_list()) > 0) #Should only be called when the app starts diff --git a/src/window.py b/src/window.py index 4d9cc23..3d3e107 100644 --- a/src/window.py +++ b/src/window.py @@ -831,7 +831,7 @@ Generate a title following these rules: [element.set_sensitive(True) for element in sensitive_elements] self.get_application().lookup_action('manage_models').set_enabled(True) - self.title_stack.set_visible_child_name('model_selector') + self.title_stack.set_visible_child_name('model_selector' if len(self.model_manager.get_model_list()) > 0 else 'no_models') if state: options = { diff --git a/src/window.ui b/src/window.ui index 1af4e38..bfee096 100644 --- a/src/window.ui +++ b/src/window.ui @@ -97,6 +97,18 @@ + + + no_models + + + Manage Models + Manage Models + app.manage_models + + + +