diff --git a/js/Canvas.js b/js/Canvas.js index 55cde9f..8dbceab 100644 --- a/js/Canvas.js +++ b/js/Canvas.js @@ -470,28 +470,10 @@ export class Canvas { * - this.canvasIO dla operacji I/O * - this.canvasState dla zarządzania stanem * - * UWAGA: Metody delegujące do CanvasState zostały usunięte. - * Używaj: canvas.canvasState.saveStateToDB(), canvas.canvasState.undo(), etc. + * UWAGA: Metody delegujące do CanvasLayers i CanvasState zostały usunięte. + * Używaj: canvas.canvasLayers.copySelectedLayers(), canvas.canvasState.undo(), etc. */ - // Delegacje do CanvasLayers - async copySelectedLayers() { return this.canvasLayers.copySelectedLayers(); } - async handlePaste(addMode) { return this.canvasLayers.handlePaste(addMode); } - async addLayerWithImage(image, layerProps = {}, addMode = 'default') { - return this.canvasLayers.addLayerWithImage(image, layerProps, addMode); - } - moveLayerUp() { return this.canvasLayers.moveLayerUp(); } - moveLayerDown() { return this.canvasLayers.moveLayerDown(); } - resizeLayer(scale) { return this.canvasLayers.resizeLayer(scale); } - rotateLayer(angle) { return this.canvasLayers.rotateLayer(angle); } - getLayerAtPosition(worldX, worldY) { return this.canvasLayers.getLayerAtPosition(worldX, worldY); } - getHandles(layer) { return this.canvasLayers.getHandles(layer); } - getHandleAtPosition(worldX, worldY) { return this.canvasLayers.getHandleAtPosition(worldX, worldY); } - async mirrorHorizontal() { return this.canvasLayers.mirrorHorizontal(); } - async mirrorVertical() { return this.canvasLayers.mirrorVertical(); } - async getLayerImageData(layer) { return this.canvasLayers.getLayerImageData(layer); } - showBlendModeMenu(x, y) { return this.canvasLayers.showBlendModeMenu(x, y); } - // Delegacje do CanvasInteractions handleMouseMove(e) { this.canvasInteractions.handleMouseMove(e); } diff --git a/js/CanvasIO.js b/js/CanvasIO.js index 52e3a5d..3664cc5 100644 --- a/js/CanvasIO.js +++ b/js/CanvasIO.js @@ -374,7 +374,7 @@ export class CanvasIO { this.canvas.height / inputImage.height * 0.8 ); - const layer = await this.canvas.addLayerWithImage(image, { + const layer = await this.canvas.canvasLayers.addLayerWithImage(image, { x: (this.canvas.width - inputImage.width * scale) / 2, y: (this.canvas.height - inputImage.height * scale) / 2, width: inputImage.width * scale, @@ -744,7 +744,7 @@ export class CanvasIO { img.src = result.image_data; }); - await this.canvas.addLayerWithImage(img, { + await this.canvas.canvasLayers.addLayerWithImage(img, { x: 0, y: 0, width: this.canvas.width, diff --git a/js/CanvasInteractions.js b/js/CanvasInteractions.js index 206b395..6b15a94 100644 --- a/js/CanvasInteractions.js +++ b/js/CanvasInteractions.js @@ -86,16 +86,16 @@ export class CanvasInteractions { } this.interaction.lastClickTime = currentTime; - const transformTarget = this.canvas.getHandleAtPosition(worldCoords.x, worldCoords.y); + const transformTarget = this.canvas.canvasLayers.getHandleAtPosition(worldCoords.x, worldCoords.y); if (transformTarget) { this.startLayerTransform(transformTarget.layer, transformTarget.handle, worldCoords); return; } - const clickedLayerResult = this.canvas.getLayerAtPosition(worldCoords.x, worldCoords.y); + const clickedLayerResult = this.canvas.canvasLayers.getLayerAtPosition(worldCoords.x, worldCoords.y); if (clickedLayerResult) { if (e.shiftKey && this.canvas.selectedLayers.includes(clickedLayerResult.layer)) { - this.canvas.showBlendModeMenu(e.clientX, e.clientY); + this.canvas.canvasLayers.showBlendModeMenu(e.clientX, e.clientY); return; } this.startLayerDrag(clickedLayerResult.layer, worldCoords); @@ -399,7 +399,7 @@ export class CanvasInteractions { } updateCursor(worldCoords) { - const transformTarget = this.canvas.getHandleAtPosition(worldCoords.x, worldCoords.y); + const transformTarget = this.canvas.canvasLayers.getHandleAtPosition(worldCoords.x, worldCoords.y); if (transformTarget) { const handleName = transformTarget.handle; @@ -409,7 +409,7 @@ export class CanvasInteractions { 'rot': 'grab' }; this.canvas.canvas.style.cursor = cursorMap[handleName]; - } else if (this.canvas.getLayerAtPosition(worldCoords.x, worldCoords.y)) { + } else if (this.canvas.canvasLayers.getLayerAtPosition(worldCoords.x, worldCoords.y)) { this.canvas.canvas.style.cursor = 'move'; } else { this.canvas.canvas.style.cursor = 'default'; @@ -432,7 +432,7 @@ export class CanvasInteractions { } else { this.interaction.mode = 'resizing'; this.interaction.resizeHandle = handle; - const handles = this.canvas.getHandles(layer); + const handles = this.canvas.canvasLayers.getHandles(layer); const oppositeHandleKey = { 'n': 's', 's': 'n', 'e': 'w', 'w': 'e', 'nw': 'se', 'se': 'nw', 'ne': 'sw', 'sw': 'ne' diff --git a/js/CanvasRenderer.js b/js/CanvasRenderer.js index 2fcaafe..faab8dc 100644 --- a/js/CanvasRenderer.js +++ b/js/CanvasRenderer.js @@ -301,7 +301,7 @@ export class CanvasRenderer { ctx.moveTo(0, -layer.height / 2); ctx.lineTo(0, -layer.height / 2 - 20 / this.canvas.viewport.zoom); ctx.stroke(); - const handles = this.canvas.getHandles(layer); + const handles = this.canvas.canvasLayers.getHandles(layer); ctx.fillStyle = '#ffffff'; ctx.strokeStyle = '#000000'; ctx.lineWidth = 1 / this.canvas.viewport.zoom; diff --git a/js/REFACTORING_GUIDE.md b/js/REFACTORING_GUIDE.md index ef8bd22..a225b06 100644 --- a/js/REFACTORING_GUIDE.md +++ b/js/REFACTORING_GUIDE.md @@ -175,6 +175,12 @@ canvas.imageReferenceManager.manualGarbageCollection() - Zaktualizowano wywołania w CanvasLayers.js i CanvasIO.js - Wszystkie operacje na stanie używają teraz bezpośrednio modułu `canvasState` +5. **Usunięcie metod delegujących do CanvasLayers** ✅ + - Usunięto 14 metod delegujących do CanvasLayers z Canvas.js + - Zaktualizowano wszystkie wywołania w CanvasRenderer.js, CanvasIO.js i CanvasInteractions.js + - Wszystkie operacje na warstwach używają teraz bezpośrednio modułu `canvasLayers` + - Canvas.js zawiera teraz tylko główne operacje fasady i niezbędne metody pomocnicze + ## Uwagi dla deweloperów - ✅ **Refaktoryzacja zakończona** - wszystkie pliki zostały zaktualizowane