Skip to content

Commit

Permalink
Merge pull request #52 from pyiron/bugfix_plot_button_deactivation
Browse files Browse the repository at this point in the history
Abstract away pressed state management from children of button
  • Loading branch information
liamhuber authored Oct 12, 2022
2 parents 8143063 + 5a32b8f commit 554054c
Showing 1 changed file with 23 additions and 17 deletions.
40 changes: 23 additions & 17 deletions ryven/ironflow/canvas_widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -447,15 +447,15 @@ def expand_io(self):
for o in self.port_widgets:
o.show()
# self.collapse_button.on_click() # Why doesn't this do the same as the next two lines??
self.collapse_button.unpress()
self.collapse_button.on_unpressed()
self.collapse_button.pressed = False

def collapse_io(self):
self._height = self._collapsed_height
for o in self.port_widgets:
o.hide()
# TODO: The expand and collapse buttons are effectively an XOR toggle...improve this awkward implementation
self.expand_button.unpress()
self.expand_button.on_unpressed()
self.expand_button.pressed = False


Expand Down Expand Up @@ -503,20 +503,26 @@ def __init__(

def on_click(self, last_selected_object: Optional[CanvasWidget]) -> Optional[CanvasWidget]:
if self.pressed:
self.pressed = False
self.unpress()
else:
self.pressed = True
self.press()
self.deselect()
return last_selected_object

def press(self):
self.pressed = True
self.on_pressed()

def unpress(self):
self.pressed = False
self.on_unpressed()

@abstractmethod
def press(self):
def on_pressed(self):
pass

@abstractmethod
def unpress(self):
def on_unpressed(self):
pass

def draw_shape(self) -> None:
Expand Down Expand Up @@ -548,10 +554,10 @@ def __init__(
):
super().__init__(x, y, parent, layout, selected, title=title)

def press(self):
def on_pressed(self):
self.parent.set_display()

def unpress(self):
def on_unpressed(self):
self.parent.clear_display()


Expand Down Expand Up @@ -650,10 +656,10 @@ def __init__(
HideableWidget.__init__(self, x=x, y=y, parent=parent, layout=layout, selected=selected, title=title,
visible=visible)

def press(self):
def on_pressed(self):
self.hide()

def unpress(self):
def on_unpressed(self):
self.show()

def draw_shape(self) -> None:
Expand All @@ -675,8 +681,8 @@ def _points(self) -> list[tuple[Number, Number]]:
(self.x + 0.5 * self.width, self.y + self.height)
]

def press(self):
super().press()
def on_pressed(self):
super().on_pressed()
self.parent.expand_io()


Expand All @@ -689,8 +695,8 @@ def _points(self) -> list[tuple[Number, Number]]:
(self.x + self.width, self.y + self.height)
]

def press(self):
super().press()
def on_pressed(self):
super().on_pressed()
self.parent.collapse_io()


Expand All @@ -717,12 +723,12 @@ def __init__(
)
self.port = port

def press(self):
def on_pressed(self):
self.unpress()
if isinstance(self.port, NodeInput):
self.port.update()
elif isinstance(self.port, NodeOutput):
self.port.exec()

def unpress(self):
self.pressed = False
def on_unpressed(self):
pass

0 comments on commit 554054c

Please sign in to comment.