* src/DataViews/_PersonView.py: handle unsetting of rows changing
the active person when the model is rebuilt. svn: r6922
This commit is contained in:
parent
f1950ef831
commit
7c6b044711
@ -2,6 +2,8 @@
|
|||||||
* src/Mime/_WinMime.py: Get application description from registry
|
* src/Mime/_WinMime.py: Get application description from registry
|
||||||
|
|
||||||
2006-06-19 Don Allingham <don@gramps-project.org>
|
2006-06-19 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/DataViews/_PersonView.py: handle unsetting of rows changing
|
||||||
|
the active person when the model is rebuilt.
|
||||||
* src/DataViews/_Relationship.py: handle person set to None
|
* src/DataViews/_Relationship.py: handle person set to None
|
||||||
* src/ViewManger.py: try tabs on the side
|
* src/ViewManger.py: try tabs on the side
|
||||||
* src/DisplayTabs/_PersonRefEmbedList.py: change Relationships to
|
* src/DisplayTabs/_PersonRefEmbedList.py: change Relationships to
|
||||||
|
@ -95,6 +95,7 @@ class PersonView(PageView.PersonNavView):
|
|||||||
'F2' : self.key_goto_home_person,
|
'F2' : self.key_goto_home_person,
|
||||||
'F3' : self.key_edit_selected_person,
|
'F3' : self.key_edit_selected_person,
|
||||||
}
|
}
|
||||||
|
self.dirty = True
|
||||||
|
|
||||||
def change_page(self):
|
def change_page(self):
|
||||||
pass
|
pass
|
||||||
@ -163,11 +164,12 @@ class PersonView(PageView.PersonNavView):
|
|||||||
if p1 and p2:
|
if p1 and p2:
|
||||||
Merge.PersonCompare(self.dbstate, self.uistate, p1, p2)
|
Merge.PersonCompare(self.dbstate, self.uistate, p1, p2)
|
||||||
else:
|
else:
|
||||||
msg = _("Cannot merge people")
|
ErrorDialog(
|
||||||
msg2 = _("Exactly two people must be selected to perform a merge. "
|
_("Cannot merge people"),
|
||||||
"A second person can be selected by holding down the "
|
_("Exactly two people must be selected to perform a "
|
||||||
"control key while clicking on the desired person.")
|
"merge. A second person can be selected by holding "
|
||||||
ErrorDialog(msg,msg2)
|
"down the control key while clicking on the desired "
|
||||||
|
"person."))
|
||||||
|
|
||||||
def fast_merge(self, obj):
|
def fast_merge(self, obj):
|
||||||
mlist = self.get_selected_objects()
|
mlist = self.get_selected_objects()
|
||||||
@ -368,7 +370,6 @@ class PersonView(PageView.PersonNavView):
|
|||||||
db.connect('person-delete', self.person_removed)
|
db.connect('person-delete', self.person_removed)
|
||||||
db.connect('person-rebuild', self.build_tree)
|
db.connect('person-rebuild', self.build_tree)
|
||||||
self.build_tree()
|
self.build_tree()
|
||||||
self.goto_active_person()
|
|
||||||
self.bookmarks.update_bookmarks(db.get_bookmarks())
|
self.bookmarks.update_bookmarks(db.get_bookmarks())
|
||||||
if self.active:
|
if self.active:
|
||||||
self.bookmarks.redraw()
|
self.bookmarks.redraw()
|
||||||
@ -400,10 +401,20 @@ class PersonView(PageView.PersonNavView):
|
|||||||
# mark inactive to prevent recusion
|
# mark inactive to prevent recusion
|
||||||
self.inactive = True
|
self.inactive = True
|
||||||
|
|
||||||
|
self._goto()
|
||||||
|
|
||||||
|
# disable the inactive flag
|
||||||
|
self.inactive = False
|
||||||
|
|
||||||
|
# update history
|
||||||
|
self.handle_history(self.dbstate.active.handle)
|
||||||
|
|
||||||
|
def _goto(self):
|
||||||
|
|
||||||
# select the active person in the person view
|
# select the active person in the person view
|
||||||
p = self.dbstate.active
|
p = self.dbstate.active
|
||||||
try:
|
try:
|
||||||
if self.model:
|
if self.model and p:
|
||||||
path = self.model.on_get_path(p.get_handle())
|
path = self.model.on_get_path(p.get_handle())
|
||||||
group_name = p.get_primary_name().get_group_name()
|
group_name = p.get_primary_name().get_group_name()
|
||||||
top_name = self.dbstate.db.get_name_group_mapping(group_name)
|
top_name = self.dbstate.db.get_name_group_mapping(group_name)
|
||||||
@ -420,12 +431,6 @@ class PersonView(PageView.PersonNavView):
|
|||||||
self.selection.unselect_all()
|
self.selection.unselect_all()
|
||||||
self.uistate.push_message(_("Active person not visible"))
|
self.uistate.push_message(_("Active person not visible"))
|
||||||
self.dbstate.active = p
|
self.dbstate.active = p
|
||||||
|
|
||||||
# disable the inactive flag
|
|
||||||
self.inactive = False
|
|
||||||
|
|
||||||
# update history
|
|
||||||
self.handle_history(p.handle)
|
|
||||||
|
|
||||||
def setup_filter(self):
|
def setup_filter(self):
|
||||||
"""
|
"""
|
||||||
@ -444,7 +449,8 @@ class PersonView(PageView.PersonNavView):
|
|||||||
def build_tree(self):
|
def build_tree(self):
|
||||||
"""
|
"""
|
||||||
Creates a new PeopleModel instance. Essentially creates a complete
|
Creates a new PeopleModel instance. Essentially creates a complete
|
||||||
rebuild of the data.
|
rebuild of the data. We need to temporarily store the active person,
|
||||||
|
since it can change when rows are unselected when the model is set.
|
||||||
"""
|
"""
|
||||||
if self.active:
|
if self.active:
|
||||||
|
|
||||||
@ -452,18 +458,21 @@ class PersonView(PageView.PersonNavView):
|
|||||||
filter_info = (PeopleModel.GENERIC, self.generic_filter)
|
filter_info = (PeopleModel.GENERIC, self.generic_filter)
|
||||||
else:
|
else:
|
||||||
filter_info = (PeopleModel.SEARCH, self.search_bar.get_value())
|
filter_info = (PeopleModel.SEARCH, self.search_bar.get_value())
|
||||||
|
|
||||||
self.model = PeopleModel(self.dbstate.db, filter_info)
|
self.model = PeopleModel(self.dbstate.db, filter_info)
|
||||||
|
|
||||||
|
active = self.dbstate.active
|
||||||
self.tree.set_model(self.model)
|
self.tree.set_model(self.model)
|
||||||
|
|
||||||
if const.use_tips and self.model.tooltip_column != None:
|
if const.use_tips and self.model.tooltip_column != None:
|
||||||
self.tooltips = TreeTips.TreeTips(self.tree,
|
self.tooltips = TreeTips.TreeTips(self.tree,
|
||||||
self.model.tooltip_column,
|
self.model.tooltip_column,
|
||||||
True)
|
True)
|
||||||
|
|
||||||
self.build_columns()
|
self.build_columns()
|
||||||
self.setup_filter()
|
self.setup_filter()
|
||||||
self.goto_active_person()
|
self.dbstate.change_active_person(active)
|
||||||
|
self._goto()
|
||||||
self.dirty = False
|
self.dirty = False
|
||||||
else:
|
else:
|
||||||
self.dirty = True
|
self.dirty = True
|
||||||
|
@ -103,11 +103,7 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
self.redraw()
|
self.redraw()
|
||||||
|
|
||||||
def build_tree(self):
|
def build_tree(self):
|
||||||
if self.active:
|
self.redraw()
|
||||||
self.redraw()
|
|
||||||
self.dirty = False
|
|
||||||
else:
|
|
||||||
self.dirty = True
|
|
||||||
|
|
||||||
def connect_to_db(self, db):
|
def connect_to_db(self, db):
|
||||||
db.connect('person-update', self.person_update)
|
db.connect('person-update', self.person_update)
|
||||||
@ -123,7 +119,6 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.change_person(None)
|
self.change_person(None)
|
||||||
self.dirty = False
|
|
||||||
|
|
||||||
def person_rebuild(self):
|
def person_rebuild(self):
|
||||||
if self.dbstate.active:
|
if self.dbstate.active:
|
||||||
@ -131,7 +126,6 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.change_person(None)
|
self.change_person(None)
|
||||||
self.dirty = False
|
|
||||||
|
|
||||||
def family_update(self, handle_list):
|
def family_update(self, handle_list):
|
||||||
if self.dbstate.active:
|
if self.dbstate.active:
|
||||||
@ -139,7 +133,6 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.change_person(None)
|
self.change_person(None)
|
||||||
self.dirty = False
|
|
||||||
|
|
||||||
def family_add(self, handle_list):
|
def family_add(self, handle_list):
|
||||||
if self.dbstate.active:
|
if self.dbstate.active:
|
||||||
@ -147,7 +140,6 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.change_person(None)
|
self.change_person(None)
|
||||||
self.dirty = False
|
|
||||||
|
|
||||||
def family_delete(self, handle_list):
|
def family_delete(self, handle_list):
|
||||||
if self.dbstate.active:
|
if self.dbstate.active:
|
||||||
@ -155,7 +147,6 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.change_person(None)
|
self.change_person(None)
|
||||||
self.dirty = False
|
|
||||||
|
|
||||||
def family_rebuild(self):
|
def family_rebuild(self):
|
||||||
if self.dbstate.active:
|
if self.dbstate.active:
|
||||||
@ -163,7 +154,6 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.change_person(None)
|
self.change_person(None)
|
||||||
self.dirty = False
|
|
||||||
|
|
||||||
def get_stock(self):
|
def get_stock(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user