Spaces:
Configuration error
Configuration error
| import { app } from "../../../scripts/app.js"; | |
| app.registerExtension({ | |
| name: "easy bookmark", | |
| registerCustomNodes() { | |
| class Bookmark { | |
| type = 'easy bookmark' | |
| title = "π"; | |
| slot_start_y = -20; | |
| ___collapsed_width = 0; | |
| get _collapsed_width() { | |
| return this.___collapsed_width; | |
| } | |
| set _collapsed_width(width){ | |
| const canvas = app.canvas ; | |
| const ctx = canvas.canvas.getContext('2d'); | |
| if(ctx){ | |
| const oldFont = ctx.font; | |
| ctx.font = canvas.title_text_font; | |
| this.___collapsed_width = 40 + ctx.measureText(this.title).width; | |
| ctx.font = oldFont; | |
| } | |
| } | |
| isVirtualNode = true; | |
| serialize_widgets = true; | |
| keypressBound = null; | |
| constructor() { | |
| this.addWidget('text', 'shortcut_key', '1', (value) => { | |
| value = value.trim()[0] || '1'; | |
| if(value !== ''){ | |
| this.title = "π " + value; | |
| } | |
| },{ | |
| y: 8, | |
| }); | |
| this.addWidget('number', 'zoom', 1, (value) => {}, { | |
| y: 8 + LiteGraph.NODE_WIDGET_HEIGHT + 4, | |
| max: 2, | |
| min: 0.5, | |
| precision: 2, | |
| }); | |
| this.keypressBound = this.onKeypress.bind(this); | |
| } | |
| onAdded(){ | |
| setTimeout(_=>{ | |
| const value = this.widgets[0].value | |
| if(value){ | |
| this.title = "π " + value; | |
| } | |
| },1) | |
| window.addEventListener("keydown", this.keypressBound); | |
| } | |
| onRemoved() { | |
| window.removeEventListener("keydown", this.keypressBound); | |
| } | |
| onKeypress(event){ | |
| const target = event.target; | |
| if (['input','textarea'].includes(target.localName)) { | |
| return; | |
| } | |
| if (this.widgets[0] && event.key.toLocaleLowerCase() === this.widgets[0].value.toLocaleLowerCase()) { | |
| this.canvasToBookmark(); | |
| } | |
| } | |
| canvasToBookmark() { | |
| const canvas = app.canvas; | |
| // ComfyUI seemed to break us again, but couldn't repro. No reason to not check, I guess. | |
| // https://github.com/rgthree/rgthree-comfy/issues/71 | |
| if (canvas?.ds?.offset) { | |
| canvas.ds.offset[0] = -this.pos[0] + 16; | |
| canvas.ds.offset[1] = -this.pos[1] + 40; | |
| } | |
| if (canvas?.ds?.scale != null) { | |
| canvas.ds.scale = Number(this.widgets[1].value || 1); | |
| } | |
| canvas.setDirty(true, true); | |
| } | |
| } | |
| LiteGraph.registerNodeType( | |
| "easy bookmark", | |
| Object.assign(Bookmark,{ | |
| title: "Bookmark π", | |
| }) | |
| ); | |
| Bookmark.category = "EasyUse/Util" | |
| } | |
| }) |