Jelajahi Sumber

Clean up when closing the attribute editor by sending event to all widgets

Yentl Van Tendeloo 8 tahun lalu
induk
melakukan
37685e2f17
2 mengubah file dengan 21 tambahan dan 5 penghapusan
  1. 14 2
      classes/window/attribute_editor.xml
  2. 7 3
      frontend.py

+ 14 - 2
classes/window/attribute_editor.xml

@@ -16,7 +16,7 @@
         <super class="tk.TopLevel"/>
         <super class="SCCDWidget"/>
         <body>
-            self.as_element = element
+            self.as_element = as_element
             self.allowed_types = allowed_types
 
             self.attrs = None
@@ -450,7 +450,19 @@
             <state id="closing">
                 <onentry>
                     <raise event="delete_instance" scope="cd">
-                        <parameter expr="self.button"/>
+                        <parameter expr="'names'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'types'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'optional'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'delete'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'add_attribute_button'"/>
                     </raise>
                 </onentry>
 

+ 7 - 3
frontend.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Thu Oct 12 16:26:49 2017
+Date:   Thu Oct 12 16:39:52 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -3860,7 +3860,7 @@ class AttributeEditor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
     def user_defined_constructor(self, as_element, allowed_types):
         tk.Toplevel.__init__(self)
         SCCDWidget.__init__(self)
-        self.as_element = element
+        self.as_element = as_element
         self.allowed_types = allowed_types
         
         self.attrs = None
@@ -4280,7 +4280,11 @@ class AttributeEditor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_del', [current_model, self.as_element, self.parameter]])]))
     
     def _all_closing_enter(self):
-        self.big_step.outputEventOM(Event("delete_instance", None, [self, self.button]))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'names']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'types']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'optional']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'delete']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'add_attribute_button']))
     
     def _all_close_enter(self):
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("close_window", None, [])]))