From d0520bf21d238fb1844a93d15dc154f939144c9c Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Sun, 17 May 2020 08:51:51 -0700 Subject: [PATCH] pygui: fixed resizing toolbar with custom node selected --- daemon/core/gui/toolbar.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/daemon/core/gui/toolbar.py b/daemon/core/gui/toolbar.py index 572a523d..1c497b0d 100644 --- a/daemon/core/gui/toolbar.py +++ b/daemon/core/gui/toolbar.py @@ -138,6 +138,7 @@ class Toolbar(ttk.Frame): # these variables help keep track of what images being drawn so that scaling # is possible since PhotoImage does not have resize method self.node_enum = None + self.node_file = None self.network_enum = None self.annotation_enum = None @@ -275,7 +276,12 @@ class Toolbar(ttk.Frame): self.app.canvas.mode = GraphMode.NODE self.app.canvas.node_draw = node_draw if type_enum == NodeTypeEnum.NODE: - self.node_enum = node_draw.image_enum + if node_draw.image_enum: + self.node_enum = node_draw.image_enum + self.node_file = None + elif node_draw.image_file: + self.node_file = node_draw.image_file + self.node_enum = None elif type_enum == NodeTypeEnum.NETWORK: self.network_enum = node_draw.image_enum @@ -381,16 +387,26 @@ class Toolbar(ttk.Frame): self.marker_tool = MarkerDialog(self.app) self.marker_tool.show() - def scale_button(self, button, image_enum) -> None: - image = self.app.get_icon(image_enum, TOOLBAR_SIZE) - button.config(image=image) - button.image = image + def scale_button( + self, button: ttk.Button, image_enum: ImageEnum = None, image_file: str = None + ) -> None: + image = None + if image_enum: + image = self.app.get_icon(image_enum, TOOLBAR_SIZE) + elif image_file: + image = self.app.get_custom_icon(image_file, TOOLBAR_SIZE) + if image: + button.config(image=image) + button.image = image def scale(self) -> None: self.scale_button(self.play_button, ImageEnum.START) self.scale_button(self.select_button, ImageEnum.SELECT) self.scale_button(self.link_button, ImageEnum.LINK) - self.scale_button(self.node_button, self.node_enum) + if self.node_enum: + self.scale_button(self.node_button, self.node_enum) + if self.node_file: + self.scale_button(self.node_button, image_file=self.node_file) self.scale_button(self.network_button, self.network_enum) self.scale_button(self.annotation_button, self.annotation_enum) self.scale_button(self.runtime_select_button, ImageEnum.SELECT)