feat: Add reset position icon and update UI manager.
This commit is contained in:
@@ -221,6 +221,7 @@ export class UIManager {
|
||||
<button class="control-btn visibility-btn" title="Toggle Panel Visibility (I)" data-action="toggle-panel">${Icons.eye}</button>
|
||||
<button class="control-btn glass-btn" title="Toggle Glass Preview (G)" data-action="toggle-glass">${Icons.magnifyGlass}</button>
|
||||
<button class="control-btn drag-glass-btn" title="Move Glass Position" data-action="drag-glass">${Icons.move}</button>
|
||||
<button class="control-btn reset-glass-btn" title="Reset Glass Position (O)" data-action="reset-glass">${Icons.reset}</button>
|
||||
<button class="control-btn popout-btn" title="Open in New Tab (Shift+P)" data-action="popout">${Icons.externalLink}</button>
|
||||
`;
|
||||
|
||||
@@ -329,6 +330,23 @@ export class UIManager {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'reset-glass':
|
||||
// Reset glass offsets
|
||||
const rglass = (window as any).comfyUIMagnifyGlass;
|
||||
if (rglass) {
|
||||
rglass.resetOffsets();
|
||||
Logger.debug("Reset glass position via hover controls");
|
||||
|
||||
// Disable drag mode if active
|
||||
if (rglass.state && rglass.state.isDragModeEnabled) {
|
||||
rglass.state.isDragModeEnabled = false;
|
||||
if (rglass.ui && rglass.ui.setDragMode) {
|
||||
rglass.ui.setDragMode(false);
|
||||
}
|
||||
this.updateControlStates();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -422,6 +440,12 @@ export class UIManager {
|
||||
// Only show drag button when glass is visible (even if panel is hidden)
|
||||
dragGlassBtn.style.display = isGlassVisible ? 'flex' : 'none';
|
||||
}
|
||||
|
||||
const resetGlassBtn = this.elements.controls.querySelector('[data-action="reset-glass"]') as HTMLButtonElement;
|
||||
if (resetGlassBtn) {
|
||||
// Only show reset button when glass is visible (moves with drag/popout buttons)
|
||||
resetGlassBtn.style.display = isGlassVisible ? 'flex' : 'none';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -99,6 +99,13 @@ export const Icons = {
|
||||
<polyline points="19 9 22 12 19 15"/>
|
||||
<line x1="2" y1="12" x2="22" y2="12"/>
|
||||
<line x1="12" y1="2" x2="12" y2="22"/>
|
||||
<line x1="12" y1="2" x2="12" y2="22"/>
|
||||
</svg>`,
|
||||
|
||||
// Reset icon - reset position
|
||||
reset: `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/>
|
||||
<path d="M3 3v5h5"/>
|
||||
</svg>`
|
||||
};
|
||||
|
||||
|
||||
@@ -133,6 +133,7 @@ class UIManager {
|
||||
<button class="control-btn visibility-btn" title="Toggle Panel Visibility (I)" data-action="toggle-panel">${Icons.eye}</button>
|
||||
<button class="control-btn glass-btn" title="Toggle Glass Preview (G)" data-action="toggle-glass">${Icons.magnifyGlass}</button>
|
||||
<button class="control-btn drag-glass-btn" title="Move Glass Position" data-action="drag-glass">${Icons.move}</button>
|
||||
<button class="control-btn reset-glass-btn" title="Reset Glass Position (O)" data-action="reset-glass">${Icons.reset}</button>
|
||||
<button class="control-btn popout-btn" title="Open in New Tab (Shift+P)" data-action="popout">${Icons.externalLink}</button>
|
||||
`;
|
||||
document.body.appendChild(this.elements.controls);
|
||||
@@ -217,6 +218,20 @@ class UIManager {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "reset-glass":
|
||||
const rglass = window.comfyUIMagnifyGlass;
|
||||
if (rglass) {
|
||||
rglass.resetOffsets();
|
||||
Logger.debug("Reset glass position via hover controls");
|
||||
if (rglass.state && rglass.state.isDragModeEnabled) {
|
||||
rglass.state.isDragModeEnabled = false;
|
||||
if (rglass.ui && rglass.ui.setDragMode) {
|
||||
rglass.ui.setDragMode(false);
|
||||
}
|
||||
this.updateControlStates();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
const controlsPosition = String(this.stateManager.state.settings["🔍MagnifyGlass.ControlsPosition"] || "top-right");
|
||||
@@ -289,6 +304,10 @@ class UIManager {
|
||||
dragGlassBtn.title = isDragMode ? "Cancel Move Mode" : "Move Glass Position";
|
||||
dragGlassBtn.style.display = isGlassVisible ? "flex" : "none";
|
||||
}
|
||||
const resetGlassBtn = this.elements.controls.querySelector('[data-action="reset-glass"]');
|
||||
if (resetGlassBtn) {
|
||||
resetGlassBtn.style.display = isGlassVisible ? "flex" : "none";
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Update controls layout based on position setting.
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -72,6 +72,12 @@ const Icons = {
|
||||
<polyline points="19 9 22 12 19 15"/>
|
||||
<line x1="2" y1="12" x2="22" y2="12"/>
|
||||
<line x1="12" y1="2" x2="12" y2="22"/>
|
||||
<line x1="12" y1="2" x2="12" y2="22"/>
|
||||
</svg>`,
|
||||
// Reset icon - reset position
|
||||
reset: `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/>
|
||||
<path d="M3 3v5h5"/>
|
||||
</svg>`
|
||||
};
|
||||
export {
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user