remember selected item in embedded list tabs after change
svn: r12835
This commit is contained in:
parent
ed2ed4702b
commit
72b0b7361c
@ -459,6 +459,10 @@ class EmbeddedList(ButtonTab):
|
|||||||
"""
|
"""
|
||||||
#during rebuild, don't do _selection_changed
|
#during rebuild, don't do _selection_changed
|
||||||
self.dirty_selection = True
|
self.dirty_selection = True
|
||||||
|
(model, node) = self.selection.get_selected()
|
||||||
|
selectedpath = None
|
||||||
|
if node:
|
||||||
|
selectedpath = model.get_path(node)
|
||||||
try:
|
try:
|
||||||
self.model = self.construct_model()
|
self.model = self.construct_model()
|
||||||
except AttributeError, msg:
|
except AttributeError, msg:
|
||||||
@ -469,13 +473,22 @@ class EmbeddedList(ButtonTab):
|
|||||||
return
|
return
|
||||||
|
|
||||||
self.tree.set_model(self.model)
|
self.tree.set_model(self.model)
|
||||||
|
#reset previous select
|
||||||
|
if not selectedpath is None:
|
||||||
|
self.selection.select_path(selectedpath)
|
||||||
|
#self.selection.select_path(node)
|
||||||
self._set_label()
|
self._set_label()
|
||||||
#model and tree are reset, allow _selection_changed again, and force it
|
#model and tree are reset, allow _selection_changed again, and force it
|
||||||
self.dirty_selection = False
|
self.dirty_selection = False
|
||||||
self._selection_changed()
|
self._selection_changed()
|
||||||
self.post_rebuild()
|
self.post_rebuild(selectedpath)
|
||||||
|
|
||||||
def post_rebuild(self):
|
def post_rebuild(self, prebuildpath):
|
||||||
|
"""
|
||||||
|
Allow post rebuild embeddedlist specific handling.
|
||||||
|
@param prebuildpath: path selected before rebuild, None if none
|
||||||
|
@type prebuildpath: tree path
|
||||||
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def rebuild_callback(self):
|
def rebuild_callback(self):
|
||||||
|
@ -304,5 +304,12 @@ class EventEmbedList(GroupEmbeddedList):
|
|||||||
"""
|
"""
|
||||||
self._non_native_change()
|
self._non_native_change()
|
||||||
|
|
||||||
def post_rebuild(self):
|
def post_rebuild(self, prebuildpath):
|
||||||
|
"""
|
||||||
|
Allow post rebuild specific handling.
|
||||||
|
@param prebuildpath: path selected before rebuild, None if none
|
||||||
|
@type prebuildpath: tree path
|
||||||
|
"""
|
||||||
self.tree.expand_all()
|
self.tree.expand_all()
|
||||||
|
if not prebuildpath is None:
|
||||||
|
self.selection.select_path(prebuildpath)
|
||||||
|
@ -198,5 +198,12 @@ class NameEmbedList(GroupEmbeddedList):
|
|||||||
if row_from[0] == self._WORKGROUP and row_to[0] == NameModel.DEFINDEX:
|
if row_from[0] == self._WORKGROUP and row_to[0] == NameModel.DEFINDEX:
|
||||||
self.set_default_name(obj)
|
self.set_default_name(obj)
|
||||||
|
|
||||||
def post_rebuild(self):
|
def post_rebuild(self, prebuildpath):
|
||||||
|
"""
|
||||||
|
Allow post rebuild specific handling.
|
||||||
|
@param prebuildpath: path selected before rebuild, None if none
|
||||||
|
@type prebuildpath: tree path
|
||||||
|
"""
|
||||||
self.tree.expand_all()
|
self.tree.expand_all()
|
||||||
|
if not prebuildpath is None:
|
||||||
|
self.selection.select_path(prebuildpath)
|
||||||
|
Loading…
Reference in New Issue
Block a user