Przeglądaj źródła

support tooltip kwarg for gradio elements

AUTOMATIC1111 2 lat temu
rodzic
commit
6a0d498c8e
2 zmienionych plików z 25 dodań i 0 usunięć
  1. 11 0
      javascript/hints.js
  2. 14 0
      modules/scripts.py

+ 11 - 0
javascript/hints.js

@@ -190,3 +190,14 @@ onUiUpdate(function(mutationRecords) {
         tooltipCheckTimer = setTimeout(processTooltipCheckNodes, 1000);
     }
 });
+
+onUiLoaded(function() {
+    for (var comp of window.gradio_config.components) {
+        if (comp.props.webui_tooltip && comp.props.elem_id) {
+            var elem = gradioApp().getElementById(comp.props.elem_id);
+            if (elem) {
+                elem.title = comp.props.webui_tooltip;
+            }
+        }
+    }
+});

+ 14 - 0
modules/scripts.py

@@ -646,6 +646,8 @@ def add_classes_to_gradio_component(comp):
 
 
 def IOComponent_init(self, *args, **kwargs):
+    self.webui_tooltip = kwargs.pop('tooltip', None)
+
     if scripts_current is not None:
         scripts_current.before_component(self, **kwargs)
 
@@ -663,8 +665,20 @@ def IOComponent_init(self, *args, **kwargs):
     return res
 
 
+def Block_get_config(self):
+    config = original_Block_get_config(self)
+
+    webui_tooltip = getattr(self, 'webui_tooltip', None)
+    if webui_tooltip:
+        config["webui_tooltip"] = webui_tooltip
+
+    return config
+
+
 original_IOComponent_init = gr.components.IOComponent.__init__
+original_Block_get_config = gr.components.Block.get_config
 gr.components.IOComponent.__init__ = IOComponent_init
+gr.components.Block.get_config = Block_get_config
 
 
 def BlockContext_init(self, *args, **kwargs):