Changeset 511


Ignore:
Timestamp:
08/12/10 17:33:15 (22 months ago)
Author:
mfiala
Message:

modified cleanup so that every element of the class is removed

Location:
trunk/avango-menu/python/avango/menu
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/avango-menu/python/avango/menu/_Panel.py

    r430 r511  
    630630    @field_has_changed(Group) 
    631631    def group_changed(self): 
     632        if self.panel_geode is None: 
     633            return 
    632634        if self.Group.value is not None: 
    633635            self.panel_geode.Root.value = self.Group.value.root 
     
    656658 
    657659    def evaluate(self): 
     660        if self.panel_geode is None: 
     661            return 
    658662        if self._visible_dirty: 
    659663            self.update_visibility() 
    660664        if self._decoration_dirty: 
    661665            self.update_decoration() 
    662         if self._dimensions_dirty: 
     666        if self._dimensions_dirty and self.panel_transform is not None: 
    663667            self.update_dimensions() 
    664668        if self._highlight_dirty: 
     
    930934 
    931935    def cleanup(self): 
    932         self.panel.disconnect_all_fields() 
    933         self.content_panel.disconnect_all_fields() 
    934         self.highlight_panel.disconnect_all_fields() 
    935         self.label.disconnect_all_fields() 
    936         self.content_transform.disconnect_all_fields() 
    937         self.content_transform.StateSet.value.disconnect_all_fields() 
    938         if self.root.StateSet.value is not None: 
    939             self.root.StateSet.value.disconnect_all_fields() 
    940         self.decoration_transform.disconnect_all_fields() 
    941         self.decoration_transform.StateSet.value.disconnect_all_fields() 
    942         self.disconnect_all_fields() 
    943         self.close_button.cleanup() 
    944         self.back_button.cleanup() 
     936        avango.disconnect_and_clear_all_fields(self) 
     937        self.remove_all_widgets() 
     938 
     939        if self.decoration_transform is not None: 
     940            self.decoration_transform.disconnect_all_fields() 
     941            self.decoration_transform.StateSet.value.disconnect_all_fields() 
     942            self.decoration_transform.Children.value.remove(self.label.root) 
     943            self.decoration_transform.Children.value.remove(self.close_button.root) 
     944            self.decoration_transform.Children.value.remove(self.back_button.root) 
     945            self.label.root = None 
     946            self.decoration_transform = None 
     947 
     948        if self.close_button is not None: 
     949            self.close_button.cleanup() 
     950            self.close_button = None 
     951        if self.back_button is not None: 
     952            self.back_button.cleanup() 
     953            self.back_button = None 
    945954        if self.container is not None: 
    946955            self.container.cleanup() 
     956 
     957        self._layouters = [] 
     958 
     959        if self.panel_transform is not None: 
     960            self.panel_transform.disconnect_all_fields() 
     961            self.panel_transform.Children.value.remove(self.panel_geode) 
     962            self.panel_transform.Children.value.remove(self.content_transform) 
     963            self.panel_transform.Children.value.remove(self.decoration_transform) 
     964            self.panel_transform = None 
     965 
    947966        if self.panel_geode is not None: 
    948967            self.panel_geode.Panel.value = None 
    949968            self.panel_geode.Root.value = None 
    950         self._layouters = [] 
     969            self.panel_geode.StateSet.value.disconnect_all_fields() 
     970            self.panel_geode.disconnect_all_fields() 
     971            if self.highlight_panel is not None: 
     972                self.panel_geode.Drawables.value.remove(self.highlight_panel) 
     973                self.highlight_panel.disconnect_all_fields() 
     974                self.highlight_panel = None 
     975            if self.panel is not None: 
     976                self.panel_geode.Drawables.value.remove(self.panel) 
     977                self.panel.disconnect_all_fields() 
     978            if self.content_panel is not None: 
     979                self.panel_geode.Drawables.value.remove(self.content_panel) 
     980                self.content_panel.disconnect_all_fields() 
     981                self.content_panel = None 
     982            self.panel_geode = None 
     983 
     984        if self.content_transform is not None: 
     985            self.content_transform.disconnect_all_fields() 
     986            self.content_transform.StateSet.value.disconnect_all_fields() 
     987            self.content_transform.Children.value.remove(self.container.root) 
     988            self.container.root = None 
     989            self.content_transform = None 
     990 
     991        if self.label is not None: 
     992            self.label.disconnect_all_fields() 
     993 
     994        if self.root is not None: 
     995            if self.root.StateSet.value is not None: 
     996                self.root.StateSet.value.disconnect_all_fields() 
     997            self.root.Children.value.remove(self.switch) 
     998            self.switch.disconnect_all_fields() 
     999            self.switch = None 
     1000            self.root = None 
    9511001 
    9521002        self.HighlightWidget.value = None 
  • trunk/avango-menu/python/avango/menu/layout/_PanelDecorationLayouter.py

    r430 r511  
    158158        self.click_behavior.cleanup() 
    159159        self.geode.AvangoMenuBehavior.value = None 
     160        if self.geom is not None: 
     161            self.geom.disconnect_all_fields() 
    160162 
    161163    def __del__(self): 
Note: See TracChangeset for help on using the changeset viewer.