* src/Bookmark.py: start of reimplementation
* src/PersonView.py: commit fixes svn: r5615
This commit is contained in:
parent
d84bbc9282
commit
55f22b5550
@ -1,6 +1,8 @@
|
||||
2005-12-21 Don Allingham <don@gramps-project.org>
|
||||
* src/DisplayState.py: remove print statements
|
||||
* src/ViewManger.py: Fix const.app_*
|
||||
* src/Bookmark.py: start of reimplementation
|
||||
* src/PersonView.py: commit fixes
|
||||
* src/GrampsDb/_GrampsBSDDB.py: refactor remove and id function
|
||||
|
||||
2005-12-21 Alex Roitman <shura@gramps-project.org>
|
||||
|
@ -56,7 +56,7 @@ import ListModel
|
||||
class Bookmarks :
|
||||
"Handle the bookmarks interface for Gramps"
|
||||
|
||||
def __init__(self,db,bookmarks,menu,callback):
|
||||
def __init__(self,db,bookmarks):
|
||||
"""
|
||||
Creates a the bookmark editor.
|
||||
|
||||
@ -65,22 +65,12 @@ class Bookmarks :
|
||||
callback - task to connect to the menu item as a callback
|
||||
"""
|
||||
self.db = db
|
||||
self.menu = menu
|
||||
self.bookmarks = bookmarks
|
||||
self.callback = callback
|
||||
self.redraw()
|
||||
|
||||
def redraw(self):
|
||||
"""Create the pulldown menu"""
|
||||
if len(self.bookmarks) > 0:
|
||||
self.myMenu = gtk.Menu()
|
||||
for person_handle in self.bookmarks:
|
||||
self.add_to_menu(person_handle)
|
||||
self.menu.set_submenu(self.myMenu)
|
||||
self.menu.set_sensitive(1)
|
||||
else:
|
||||
self.menu.remove_submenu()
|
||||
self.menu.set_sensitive(0)
|
||||
pass
|
||||
|
||||
def add(self,person_handle):
|
||||
"""appends the person to the bottom of the bookmarks"""
|
||||
@ -103,16 +93,6 @@ class Bookmarks :
|
||||
if modified:
|
||||
self.redraw()
|
||||
|
||||
def add_to_menu(self,person_handle):
|
||||
"""adds a person's name to the drop down menu"""
|
||||
person = self.db.get_person_from_handle(person_handle)
|
||||
if person:
|
||||
name = NameDisplay.displayer.display(person)
|
||||
item = gtk.MenuItem(name)
|
||||
item.connect("activate", self.callback, person_handle)
|
||||
item.show()
|
||||
self.myMenu.append(item)
|
||||
|
||||
def draw_window(self):
|
||||
"""Draws the bookmark dialog box"""
|
||||
title = "%s - GRAMPS" % _("Edit Bookmarks")
|
||||
|
@ -717,7 +717,7 @@ class GrampsBSDDB(GrampsDbBase):
|
||||
self.emit('person-rebuild')
|
||||
|
||||
def get_surname_list(self):
|
||||
vals = [ unicode(val) for val in set(self.surname.keys()) ]
|
||||
vals = [ unicode(val) for val in set(self.surnames.keys()) ]
|
||||
vals.sort(locale.strcoll)
|
||||
return vals
|
||||
|
||||
|
@ -306,7 +306,7 @@ class GrampsDbBase(GrampsDBCallback):
|
||||
Closes the specified database. The method needs to be overridden
|
||||
in the derived class.
|
||||
"""
|
||||
assert False, "Needs to be overridden in the derived class"
|
||||
pass
|
||||
|
||||
def abort_changes(self):
|
||||
pass
|
||||
|
@ -500,22 +500,22 @@ class PersonView(PageView.PersonNavView):
|
||||
for child_handle in family.get_child_handle_list():
|
||||
child = self.dbstate.db.get_person_from_handle(child_handle)
|
||||
child.remove_parent_family_handle(family_handle)
|
||||
self.db.commit_person(child,trans)
|
||||
self.dbstate.db.commit_person(child,trans)
|
||||
self.dbstate.db.remove_family(family_handle,trans)
|
||||
else:
|
||||
self.dbstate.db.commit_family(family,trans)
|
||||
|
||||
for (family_handle,mrel,frel) in self.active_person.get_parent_family_handle_list():
|
||||
if family_handle:
|
||||
family = self.db.get_family_from_handle(family_handle)
|
||||
family = self.dbstate.db.get_family_from_handle(family_handle)
|
||||
family.remove_child_handle(self.active_person.get_handle())
|
||||
self.db.commit_family(family,trans)
|
||||
self.dbstate.db.commit_family(family,trans)
|
||||
|
||||
handle = self.active_person.get_handle()
|
||||
|
||||
person = self.active_person
|
||||
self.remove_from_person_list(person)
|
||||
self.people_view.remove_from_history(handle)
|
||||
#self.remove_from_history(handle)
|
||||
self.dbstate.db.remove_person(handle, trans)
|
||||
|
||||
if self.uistate.phistory.index >= 0:
|
||||
|
@ -60,6 +60,7 @@ import QuestionDialog
|
||||
import PageView
|
||||
import Navigation
|
||||
import TipOfDay
|
||||
import Bookmarks
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -689,7 +690,7 @@ class ViewManager:
|
||||
if res.get_name() == "" and owner.get_name():
|
||||
self.state.db.set_researcher(owner)
|
||||
|
||||
#self.setup_bookmarks()
|
||||
self.setup_bookmarks()
|
||||
|
||||
#self.state.db.set_undo_callback(self.undo_callback)
|
||||
#self.state.db.set_redo_callback(self.redo_callback)
|
||||
@ -707,6 +708,40 @@ class ViewManager:
|
||||
self.actiongroup.set_visible(True)
|
||||
return True
|
||||
|
||||
def setup_bookmarks(self):
|
||||
self.bookmarks = Bookmarks.Bookmarks(self.state.db,self.state.db.get_bookmarks())
|
||||
|
||||
def on_add_bookmark_activate(self,obj):
|
||||
return
|
||||
if self.active_person:
|
||||
self.bookmarks.add(self.active_person.get_handle())
|
||||
name = NameDisplay.displayer.display(self.active_person)
|
||||
self.status_text(_("%s has been bookmarked") % name)
|
||||
gtk.timeout_add(5000,self.modify_statusbar)
|
||||
else:
|
||||
WarningDialog(_("Could Not Set a Bookmark"),
|
||||
_("A bookmark could not be set because "
|
||||
"no one was selected."))
|
||||
|
||||
def on_edit_bookmarks_activate(self,obj):
|
||||
self.bookmarks.edit()
|
||||
|
||||
def bookmark_callback(self,obj,person_handle):
|
||||
old_person = self.active_person
|
||||
person = self.state.db.get_person_from_handle(person_handle)
|
||||
try:
|
||||
self.change_active_person(person)
|
||||
self.update_display(0)
|
||||
self.goto_active_person()
|
||||
except TypeError:
|
||||
WarningDialog(_("Could not go to a Person"),
|
||||
_("Either stale bookmark or broken history "
|
||||
"caused by IDs reorder."))
|
||||
self.clear_history()
|
||||
self.change_active_person(old_person)
|
||||
self.update_display(0)
|
||||
self.goto_active_person()
|
||||
|
||||
def find_initial_person(self):
|
||||
person = self.state.db.get_default_person()
|
||||
if not person:
|
||||
|
Loading…
Reference in New Issue
Block a user