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 @@
+
+