From 96f8b4837bea5a4f4d816a73bb626a6e912b9f68 Mon Sep 17 00:00:00 2001 From: w4ffl35 <25737761+w4ffl35@users.noreply.github.com> Date: Sun, 28 Jan 2024 18:06:51 -0700 Subject: [PATCH] clear canvas on file new --- src/airunner/enums.py | 1 + .../widgets/canvas_plus/canvas_plus_widget.py | 12 ++++++++++++ src/airunner/windows/main/layer_mixin.py | 8 ++++---- src/airunner/windows/main/main_window.py | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/airunner/enums.py b/src/airunner/enums.py index da6df1fa8..55e663a24 100644 --- a/src/airunner/enums.py +++ b/src/airunner/enums.py @@ -80,6 +80,7 @@ class SignalCode(Enum): CANVAS_RESIZE_SIGNAL = "canvas_resize_signal" CANVAS_UPDATE_CURSOR = "canvas_update_cursor" CANVAS_ZOOM_LEVEL_CHANGED = "zoom_level_changed" + CANVAS_CLEAR = "clear_canvas" CLEAR_MEMORY_SIGNAL = "clear_memory_signal" CONTROLNET_IMAGE_GENERATED_SIGNAL = "controlnet_image_generated_signal" diff --git a/src/airunner/widgets/canvas_plus/canvas_plus_widget.py b/src/airunner/widgets/canvas_plus/canvas_plus_widget.py index 461188efe..59ec75fec 100644 --- a/src/airunner/widgets/canvas_plus/canvas_plus_widget.py +++ b/src/airunner/widgets/canvas_plus/canvas_plus_widget.py @@ -124,6 +124,7 @@ def __init__(self, *args, **kwargs): self.register(SignalCode.CANVAS_UPDATE_SIGNAL, self.on_update_canvas_signal) self.register(SignalCode.LAYER_SET_CURRENT_SIGNAL, self.on_set_current_layer_signal) self.register(SignalCode.APPLICATION_SETTINGS_CHANGED_SIGNAL, self.on_application_settings_changed_signal) + self.register(SignalCode.CANVAS_CLEAR, self.on_canvas_clear_signal) self.register_service("canvas_drag_pos", self.canvas_drag_pos) self.register_service("canvas_current_active_image", self.canvas_current_active_image) @@ -537,6 +538,17 @@ def draw_layers(self): self.scene.addItem(self.pixmaps[index]) continue + def on_canvas_clear_signal(self): + print("on canvas clear signal") + self.scene.clear() + self.line_group = QGraphicsItemGroup() + self.pixmaps = {} + settings = self.settings + settings["layers"] = [] + self.settings = settings + self.add_layer() + self.do_draw() + def set_scene_rect(self): self.scene.setSceneRect(0, 0, self.view_size.width(), self.view_size.height()) diff --git a/src/airunner/windows/main/layer_mixin.py b/src/airunner/windows/main/layer_mixin.py index f304445f7..32853d613 100644 --- a/src/airunner/windows/main/layer_mixin.py +++ b/src/airunner/windows/main/layer_mixin.py @@ -123,10 +123,10 @@ def delete_layer(self, index, layer): def on_clear_layers_signal(self, _ignore): # delete all widgets from self.container.layout() layers = self.settings["layers"] - for index, layer in enumerate(layers): - if not layer.layer_widget: - continue - layer.layer_widget.deleteLater() + # for index, layer in enumerate(layers): + # if not layer["layer_widget"]: + # continue + # layer["layer_widget"].deleteLater() self.add_layer() settings = self.settings settings["layers"] = layers diff --git a/src/airunner/windows/main/main_window.py b/src/airunner/windows/main/main_window.py index a73665c3b..62156a2b0 100644 --- a/src/airunner/windows/main/main_window.py +++ b/src/airunner/windows/main/main_window.py @@ -383,6 +383,7 @@ def quick_export(self): """ def action_new_document_triggered(self): self.new_document() + self.emit(SignalCode.CANVAS_CLEAR) def action_quick_export_image_triggered(self): self.quick_export() @@ -963,7 +964,6 @@ def set_window_title(self): def new_document(self): self.ui.layer_widget.clear_layers() - self.clear_history() self.is_saved = False self._document_name = "Untitled" self.set_window_title()