2006-04-18 Don Allingham <don@gramps-project.org>
* src/plugins/Desbrowser.py: bring up to speed with ManagedWindow * src/GrampsWidgets.py: fix the type return value svn: r6353
This commit is contained in:
parent
3ae608af89
commit
3c31f1e2ec
@ -1,3 +1,7 @@
|
||||
2006-04-18 Don Allingham <don@gramps-project.org>
|
||||
* src/plugins/Desbrowser.py: bring up to speed with ManagedWindow
|
||||
* src/GrampsWidgets.py: fix the type return value
|
||||
|
||||
2006-04-17 Don Allingham <don@gramps-project.org>
|
||||
* src/DataViews/_FamilyView.py: handle the dirty flag for updates
|
||||
* src/DataViews/_PersonView.py: goto active person properly
|
||||
|
@ -365,16 +365,23 @@ class MonitoredDataType:
|
||||
default,
|
||||
additional=custom_values)
|
||||
|
||||
self.set_val(self.sel.get_values())
|
||||
value = self.sel.get_values()
|
||||
self.set_val(self.fix_value(value))
|
||||
self.obj.set_sensitive(not readonly)
|
||||
self.obj.connect('changed', self.on_change)
|
||||
|
||||
def fix_value(self, value):
|
||||
if value[0] == self.get_val().get_custom():
|
||||
return value
|
||||
else:
|
||||
return (value[0],'')
|
||||
|
||||
def update(self):
|
||||
if self.get_val():
|
||||
self.sel.set_values(self.get_val())
|
||||
|
||||
def on_change(self, obj):
|
||||
self.set_val(self.sel.get_values())
|
||||
self.set_val(self.fix_value(self.sel.get_values()))
|
||||
|
||||
class MonitoredMenu:
|
||||
|
||||
|
@ -48,21 +48,22 @@ import gobject
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import GrampsDisplay
|
||||
import ManagedWindow
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class DesBrowse(Tool.Tool):
|
||||
class DesBrowse(Tool.Tool, ManagedWindow.ManagedWindow):
|
||||
|
||||
def __init__(self,db,person,options_class,name,callback=None,parent=None):
|
||||
Tool.Tool.__init__(self,db,person,options_class,name)
|
||||
def __init__(self, dbstate, uistate, options_class, name, callback=None):
|
||||
|
||||
self.active = person
|
||||
Tool.Tool.__init__(self, dbstate, options_class, name)
|
||||
ManagedWindow.ManagedWindow.__init__(self, uistate, [], self)
|
||||
|
||||
self.active = dbstate.get_active_person()
|
||||
self.callback = callback
|
||||
self.parent = parent
|
||||
self.win_key = self
|
||||
|
||||
base = os.path.dirname(__file__)
|
||||
glade_file = base + os.sep + "desbrowse.glade"
|
||||
@ -71,10 +72,8 @@ class DesBrowse(Tool.Tool):
|
||||
self.glade.signal_autoconnect({
|
||||
"destroy_passed_object" : self.close,
|
||||
"on_help_clicked" : self.on_help_clicked,
|
||||
"on_delete_event": self.on_delete_event,
|
||||
})
|
||||
self.window = self.glade.get_widget("top")
|
||||
self.window.set_icon(self.parent.topWindow.get_icon())
|
||||
|
||||
self.active_name = _("Descendant Browser: %s") \
|
||||
% NameDisplay.displayer.display(self.active)
|
||||
@ -89,64 +88,45 @@ class DesBrowse(Tool.Tool):
|
||||
self.tree.connect('event',self.button_press_event)
|
||||
self.make_new_model()
|
||||
|
||||
self.add_itself_to_menu()
|
||||
self.window.show()
|
||||
|
||||
def make_new_model(self):
|
||||
self.model = gtk.TreeStore(gobject.TYPE_STRING,gobject.TYPE_PYOBJECT)
|
||||
self.model = gtk.TreeStore(str, object)
|
||||
self.tree.set_model(self.model)
|
||||
self.add_to_tree(None,None,self.active.get_handle())
|
||||
self.add_to_tree(None, None, self.active.get_handle())
|
||||
self.tree.expand_all()
|
||||
|
||||
def on_help_clicked(self,obj):
|
||||
"""Display the relevant portion of GRAMPS manual"""
|
||||
GrampsDisplay.help('tools-ae')
|
||||
|
||||
def on_delete_event(self,obj,b):
|
||||
self.remove_itself_from_menu()
|
||||
def add_to_tree(self, parent_id, sib_id, person_handle):
|
||||
|
||||
def close(self,obj):
|
||||
self.remove_itself_from_menu()
|
||||
self.window.destroy()
|
||||
|
||||
def add_itself_to_menu(self):
|
||||
self.parent.child_windows[self.win_key] = self
|
||||
self.parent_menu_item = gtk.MenuItem(self.active_name)
|
||||
self.parent_menu_item.connect("activate",self.present)
|
||||
self.parent_menu_item.show()
|
||||
self.parent.winsmenu.append(self.parent_menu_item)
|
||||
|
||||
def remove_itself_from_menu(self):
|
||||
del self.parent.child_windows[self.win_key]
|
||||
self.parent_menu_item.destroy()
|
||||
|
||||
def present(self,obj):
|
||||
self.window.present()
|
||||
|
||||
def add_to_tree(self,parent_id,sib_id,person_handle):
|
||||
item_id = self.model.insert_after(parent_id,sib_id)
|
||||
item_id = self.model.insert_after(parent_id, sib_id)
|
||||
person = self.db.get_person_from_handle(person_handle)
|
||||
self.model.set(item_id,0,NameDisplay.displayer.display(person))
|
||||
self.model.set(item_id,1,person_handle)
|
||||
|
||||
self.model.set(item_id, 0, NameDisplay.displayer.display(person))
|
||||
self.model.set(item_id, 1, person_handle)
|
||||
|
||||
prev_id = None
|
||||
for family_handle in person.get_family_handle_list():
|
||||
family = self.db.get_family_from_handle(family_handle)
|
||||
for child_handle in family.get_child_handle_list():
|
||||
prev_id = self.add_to_tree(item_id,prev_id,child_handle)
|
||||
for child_ref in family.get_child_ref_list():
|
||||
prev_id = self.add_to_tree(item_id, prev_id, child_ref.ref)
|
||||
return item_id
|
||||
|
||||
def button_press_event(self,obj,event):
|
||||
import EditPerson
|
||||
from Editors import EditPerson
|
||||
|
||||
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
||||
store,iter = self.tree.get_selection().get_selected()
|
||||
store, node = self.tree.get_selection().get_selected()
|
||||
if iter:
|
||||
person_handle = store.get_value(iter,1)
|
||||
person_handle = store.get_value(node, 1)
|
||||
person = self.db.get_person_from_handle(person_handle)
|
||||
EditPerson.EditPerson(self.parent,person,self.db,self.this_callback)
|
||||
EditPerson(self.parent, person, self.db, self.this_callback)
|
||||
|
||||
def this_callback(self,epo,val):
|
||||
self.callback(epo,val)
|
||||
def this_callback(self, epo, val):
|
||||
self.callback(epo, val)
|
||||
self.make_new_model()
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user