diff --git a/src/alpaca.gresource.xml b/src/alpaca.gresource.xml index 4a8489fa..cf466c6c 100644 --- a/src/alpaca.gresource.xml +++ b/src/alpaca.gresource.xml @@ -46,6 +46,7 @@ icons/sprout-symbolic.svg icons/weight-symbolic.svg icons/tree-circle-symbolic.svg + icons/check-plain-symbolic.svg window.ui gtk/help-overlay.ui diff --git a/src/custom_widgets/model_widget.py b/src/custom_widgets/model_widget.py index 953bde99..4fab23ea 100644 --- a/src/custom_widgets/model_widget.py +++ b/src/custom_widgets/model_widget.py @@ -600,16 +600,17 @@ def show_pull_menu(self): window.model_tag_flow_box.append(category_pill('language:' + _('Others...'), True)) for tag_data in tags: - if f"{self.get_name()}:{tag_data[0]}" not in window.model_manager.get_model_list(): - tag_row = Adw.ActionRow( - title = tag_data[0], - subtitle = tag_data[1], - name = f"{self.get_name()}:{tag_data[0]}" - ) - download_icon = Gtk.Image.new_from_icon_name("folder-download-symbolic") - tag_row.add_suffix(download_icon) - download_icon.update_property([4], [_("Download {}:{}").format(self.get_name(), tag_data[0])]) + tag_row = Adw.ActionRow( + title = tag_data[0], + subtitle = tag_data[1], + name = f"{self.get_name()}:{tag_data[0]}", + sensitive = f"{self.get_name()}:{tag_data[0]}" not in window.model_manager.get_model_list() + ) + download_icon = Gtk.Image.new_from_icon_name("folder-download-symbolic" if f"{self.get_name()}:{tag_data[0]}" not in window.model_manager.get_model_list() else "check-plain-symbolic") + tag_row.add_suffix(download_icon) + download_icon.update_property([4], [_("Download {}:{}").format(self.get_name(), tag_data[0])]) + if f"{self.get_name()}:{tag_data[0]}" not in window.model_manager.get_model_list(): gesture_click = Gtk.GestureClick.new() gesture_click.connect("pressed", lambda *_, name=f"{self.get_name()}:{tag_data[0]}" : self.pull_model(name)) @@ -619,7 +620,7 @@ def show_pull_menu(self): tag_row.add_controller(gesture_click) tag_row.add_controller(event_controller_key) - window.model_tag_list_box.append(tag_row) + window.model_tag_list_box.append(tag_row) class available_model_list(Gtk.ListBox): __gtype_name__ = 'AlpacaAvailableModelList' diff --git a/src/icons/check-plain-symbolic.svg b/src/icons/check-plain-symbolic.svg new file mode 100644 index 00000000..096db078 --- /dev/null +++ b/src/icons/check-plain-symbolic.svg @@ -0,0 +1,2 @@ + +