From: Enlightenment S. <no-...@en...> - 2010-06-16 20:59:52
|
Log: Bug: restack parts was losing selection Resolution: Selecting it again by emiting "part.changed" event. It was unselected when update the list. But the part_restack_below/above functions are not in PartList anymore, it is in EditablePart. This make more sense once the restack is done to the selected part. I needed to do self.parts (of class Editable) a property to maintain it refreshed to be used in the part_restack_bellow/above functions. By: Helen Fornazier <hel...@pr...> Author: sachiel Date: 2010-06-16 13:59:46 -0700 (Wed, 16 Jun 2010) New Revision: 49717 Modified: trunk/editje/editje/editable.py trunk/editje/editje/editable_part.py trunk/editje/editje/parts.py Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-06-16 20:59:40 UTC (rev 49716) +++ trunk/editje/editje/editable.py 2010-06-16 20:59:46 UTC (rev 49717) @@ -355,8 +355,12 @@ return False # Parts + def _parts_get(self): + return self.__edje.parts + + parts = property(_parts_get) + def _parts_init(self): - self.parts = [] self.callback_add("group.changed", self._parts_load_cb) self.callback_add("part.added", self._parts_reload_cb) self.callback_add("part.removed", self._parts_reload_cb) @@ -364,13 +368,11 @@ def _parts_load_cb(self, emissor, data): if data: - self.parts = self.__edje.parts + self.event_emit("parts.changed", self.parts) else: - self.parts = [] - self.event_emit("parts.changed", self.parts) + self.event_emit("parts.changed", []) def _parts_reload_cb(self, emissor, data): - self.parts = self.__edje.parts self.event_emit("parts.changed", self.parts) # TODO: externals API may change in near future Modified: trunk/editje/editje/editable_part.py =================================================================== --- trunk/editje/editje/editable_part.py 2010-06-16 20:59:40 UTC (rev 49716) +++ trunk/editje/editje/editable_part.py 2010-06-16 20:59:46 UTC (rev 49717) @@ -182,3 +182,27 @@ return (self._api_get() != (None, None)) api_export = property(_api_export_get, _api_export_set) + + def part_restack_above(self): + part = self.e.part_get(self.name) + if not part: + return False + + r = part.restack_above() + if r is True: + self.e.event_emit("parts.changed", self.e.parts) + self.event_emit("part.changed", self.name) + + return r + + def part_restack_below(self): + part = self.e.part_get(self.name) + if not part: + return False + + r = part.restack_below() + if r is True: + self.e.event_emit("parts.changed", self.e.parts) + self.event_emit("part.changed", self.name) + + return r Modified: trunk/editje/editje/parts.py =================================================================== --- trunk/editje/editje/parts.py 2010-06-16 20:59:40 UTC (rev 49716) +++ trunk/editje/editje/parts.py 2010-06-16 20:59:46 UTC (rev 49717) @@ -133,30 +133,6 @@ workfile_name_get_cb=self._workfile_name_get_cb) new_part_wiz.open() - def _part_restack_above(self, part_name): - part = self._edit_grp.part_get(part_name) - if not part: - return False - - r = part.restack_above() - if r is True: - # FIXME: turning a blind eye on it - self._edit_grp._parts_reload_cb(self, None) - - return r - - def _part_restack_below(self, part_name): - part = self._edit_grp.part_get(part_name) - if not part: - return False - - r = part.restack_below() - if r is True: - # FIXME: turning a blind eye on it - self._edit_grp._parts_reload_cb(self, None) - - return r - def _current_part_get(self): curr_part = self._edit_grp.part if not curr_part: @@ -165,31 +141,29 @@ return curr_part.name def _up_cb(self, obj, emission, source): - curr_part_name = self._current_part_get() - if curr_part_name is None: + if self._current_part_get() is None: return - r = self._part_restack_above(curr_part_name) + r = self._edit_grp.part.part_restack_above() if not r: return op = Operation("part re-stacking (above)") - op.redo_callback_add(self._part_restack_above, curr_part_name) - op.undo_callback_add(self._part_restack_below, curr_part_name) + op.redo_callback_add(self._edit_grp.part.part_restack_above) + op.undo_callback_add(self._edit_grp.part.part_restack_below) self._operation_stack_cb(op) def _down_cb(self, obj, emission, source): - curr_part_name = self._current_part_get() - if curr_part_name is None: + if self._current_part_get() is None: return - r = self._part_restack_below(curr_part_name) + r = self._edit_grp.part.part_restack_below() if not r: return op = Operation("part re-stacking (below)") - op.redo_callback_add(self._part_restack_below, curr_part_name) - op.undo_callback_add(self._part_restack_above, curr_part_name) + op.redo_callback_add(self._edit_grp.part.part_restack_below) + op.undo_callback_add(self._edit_grp.part.part_restack_above) self._operation_stack_cb(op) def _remove_cb(self, obj, emission, source): |