diff --git a/b_asic/GUI/drag_button.py b/b_asic/GUI/drag_button.py index 85cfd7347dc4951e303ce7a846e5038d0aa9c20b..bbdcf8ddb2e9d787a1846aa65818ab2214311907 100644 --- a/b_asic/GUI/drag_button.py +++ b/b_asic/GUI/drag_button.py @@ -222,5 +222,8 @@ class DragButton(QPushButton): if self in self._window.pressed_operations: self._window.pressed_operations.remove(self) - if self in self._window.dragOperationSceneDict.keys(): + if self in self._window.dragOperationSceneDict: del self._window.dragOperationSceneDict[self] + + if self.operation in self._window.operationDragDict: + del self._window.operationDragDict[self.operation] diff --git a/test/test_gui.py b/test/test_gui.py index ec977a0c5fdb6e3493c52c2352b91f0f068d16d4..8f7f3989c9771bfba36901d6d9767a625aa73e1a 100644 --- a/test/test_gui.py +++ b/test/test_gui.py @@ -23,3 +23,32 @@ def test_load(qtbot, datadir): assert not widget.sfg_dict widget.exit_app() + + +def test_flip(qtbot, datadir): + widget = GUI.MainWindow() + qtbot.addWidget(widget) + widget._load_from_file(datadir.join('twotapfir.py')) + sfg = widget.sfg_dict['twotapfir'] + op = sfg.find_by_name("cmul2") + dragbutton = widget.operationDragDict[op[0]] + assert not dragbutton.is_flipped() + dragbutton._flip() + assert dragbutton.is_flipped() + + widget.exit_app() + + +def test_sfg_invalidated_by_remove_of_operation(qtbot, datadir): + widget = GUI.MainWindow() + qtbot.addWidget(widget) + widget._load_from_file(datadir.join('twotapfir.py')) + sfg = widget.sfg_dict['twotapfir'] + ops_before_remove = len(widget.operationDragDict) + op = sfg.find_by_name("cmul2") + dragbutton = widget.operationDragDict[op[0]] + dragbutton.remove() + assert not widget.sfg_dict + assert ops_before_remove -1 == len(widget.operationDragDict) + + widget.exit_app()