when adding tooltips, do not scan whole document and instead only scan added elements
This commit is contained in:
parent
3c81d184c0
commit
216b0fa6c9
@ -115,36 +115,53 @@ titles = {
|
|||||||
"Negative Guidance minimum sigma": "Skip negative prompt for steps where image is already mostly denoised; the higher this value, the more skips there will be; provides increased performance in exchange for minor quality reduction."
|
"Negative Guidance minimum sigma": "Skip negative prompt for steps where image is already mostly denoised; the higher this value, the more skips there will be; provides increased performance in exchange for minor quality reduction."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateTooltipForSpan(span){
|
||||||
|
if (span.title) return; // already has a title
|
||||||
|
|
||||||
onUiUpdate(function(){
|
let tooltip = localization[titles[span.textContent]] || titles[span.textContent];
|
||||||
gradioApp().querySelectorAll('span, button, select, p').forEach(function(span){
|
|
||||||
if (span.title) return; // already has a title
|
|
||||||
|
|
||||||
let tooltip = localization[titles[span.textContent]] || titles[span.textContent];
|
|
||||||
|
|
||||||
if(!tooltip){
|
if(!tooltip){
|
||||||
tooltip = localization[titles[span.value]] || titles[span.value];
|
tooltip = localization[titles[span.value]] || titles[span.value];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!tooltip){
|
if(!tooltip){
|
||||||
for (const c of span.classList) {
|
for (const c of span.classList) {
|
||||||
if (c in titles) {
|
if (c in titles) {
|
||||||
tooltip = localization[titles[c]] || titles[c];
|
tooltip = localization[titles[c]] || titles[c];
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(tooltip){
|
if(tooltip){
|
||||||
span.title = tooltip;
|
span.title = tooltip;
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
|
||||||
gradioApp().querySelectorAll('select').forEach(function(select){
|
function updateTooltipForSelect(select){
|
||||||
if (select.onchange != null) return;
|
if (select.onchange != null) return;
|
||||||
|
|
||||||
select.onchange = function(){
|
select.onchange = function(){
|
||||||
select.title = localization[titles[select.value]] || titles[select.value] || "";
|
select.title = localization[titles[select.value]] || titles[select.value] || "";
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
|
||||||
|
observedTooltipElements = {"SPAN": 1, "BUTTON": 1, "SELECT": 1, "P": 1}
|
||||||
|
|
||||||
|
onUiUpdate(function(m){
|
||||||
|
m.forEach(function(record){
|
||||||
|
record.addedNodes.forEach(function(node){
|
||||||
|
if(observedTooltipElements[node.tagName]){
|
||||||
|
updateTooltipForSpan(node)
|
||||||
|
}
|
||||||
|
if(node.tagName == "SELECT"){
|
||||||
|
updateTooltipForSelect(node)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(node.querySelectorAll){
|
||||||
|
node.querySelectorAll('span, button, select, p').forEach(updateTooltipForSpan)
|
||||||
|
node.querySelectorAll('select').forEach(updateTooltipForSelect)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user