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>
|
2006-04-17 Don Allingham <don@gramps-project.org>
|
||||||
* src/DataViews/_FamilyView.py: handle the dirty flag for updates
|
* src/DataViews/_FamilyView.py: handle the dirty flag for updates
|
||||||
* src/DataViews/_PersonView.py: goto active person properly
|
* src/DataViews/_PersonView.py: goto active person properly
|
||||||
|
@ -365,16 +365,23 @@ class MonitoredDataType:
|
|||||||
default,
|
default,
|
||||||
additional=custom_values)
|
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.set_sensitive(not readonly)
|
||||||
self.obj.connect('changed', self.on_change)
|
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):
|
def update(self):
|
||||||
if self.get_val():
|
if self.get_val():
|
||||||
self.sel.set_values(self.get_val())
|
self.sel.set_values(self.get_val())
|
||||||
|
|
||||||
def on_change(self, obj):
|
def on_change(self, obj):
|
||||||
self.set_val(self.sel.get_values())
|
self.set_val(self.fix_value(self.sel.get_values()))
|
||||||
|
|
||||||
class MonitoredMenu:
|
class MonitoredMenu:
|
||||||
|
|
||||||
|
@ -48,21 +48,22 @@ import gobject
|
|||||||
import gtk
|
import gtk
|
||||||
import gtk.glade
|
import gtk.glade
|
||||||
import GrampsDisplay
|
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):
|
def __init__(self, dbstate, uistate, options_class, name, callback=None):
|
||||||
Tool.Tool.__init__(self,db,person,options_class,name)
|
|
||||||
|
|
||||||
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.callback = callback
|
||||||
self.parent = parent
|
|
||||||
self.win_key = self
|
|
||||||
|
|
||||||
base = os.path.dirname(__file__)
|
base = os.path.dirname(__file__)
|
||||||
glade_file = base + os.sep + "desbrowse.glade"
|
glade_file = base + os.sep + "desbrowse.glade"
|
||||||
@ -71,10 +72,8 @@ class DesBrowse(Tool.Tool):
|
|||||||
self.glade.signal_autoconnect({
|
self.glade.signal_autoconnect({
|
||||||
"destroy_passed_object" : self.close,
|
"destroy_passed_object" : self.close,
|
||||||
"on_help_clicked" : self.on_help_clicked,
|
"on_help_clicked" : self.on_help_clicked,
|
||||||
"on_delete_event": self.on_delete_event,
|
|
||||||
})
|
})
|
||||||
self.window = self.glade.get_widget("top")
|
self.window = self.glade.get_widget("top")
|
||||||
self.window.set_icon(self.parent.topWindow.get_icon())
|
|
||||||
|
|
||||||
self.active_name = _("Descendant Browser: %s") \
|
self.active_name = _("Descendant Browser: %s") \
|
||||||
% NameDisplay.displayer.display(self.active)
|
% NameDisplay.displayer.display(self.active)
|
||||||
@ -89,64 +88,45 @@ class DesBrowse(Tool.Tool):
|
|||||||
self.tree.connect('event',self.button_press_event)
|
self.tree.connect('event',self.button_press_event)
|
||||||
self.make_new_model()
|
self.make_new_model()
|
||||||
|
|
||||||
self.add_itself_to_menu()
|
|
||||||
self.window.show()
|
self.window.show()
|
||||||
|
|
||||||
def make_new_model(self):
|
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.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()
|
self.tree.expand_all()
|
||||||
|
|
||||||
def on_help_clicked(self,obj):
|
def on_help_clicked(self,obj):
|
||||||
"""Display the relevant portion of GRAMPS manual"""
|
"""Display the relevant portion of GRAMPS manual"""
|
||||||
GrampsDisplay.help('tools-ae')
|
GrampsDisplay.help('tools-ae')
|
||||||
|
|
||||||
def on_delete_event(self,obj,b):
|
def add_to_tree(self, parent_id, sib_id, person_handle):
|
||||||
self.remove_itself_from_menu()
|
|
||||||
|
|
||||||
def close(self,obj):
|
item_id = self.model.insert_after(parent_id, sib_id)
|
||||||
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)
|
|
||||||
person = self.db.get_person_from_handle(person_handle)
|
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
|
prev_id = None
|
||||||
for family_handle in person.get_family_handle_list():
|
for family_handle in person.get_family_handle_list():
|
||||||
family = self.db.get_family_from_handle(family_handle)
|
family = self.db.get_family_from_handle(family_handle)
|
||||||
for child_handle in family.get_child_handle_list():
|
for child_ref in family.get_child_ref_list():
|
||||||
prev_id = self.add_to_tree(item_id,prev_id,child_handle)
|
prev_id = self.add_to_tree(item_id, prev_id, child_ref.ref)
|
||||||
return item_id
|
return item_id
|
||||||
|
|
||||||
def button_press_event(self,obj,event):
|
def button_press_event(self,obj,event):
|
||||||
import EditPerson
|
from Editors import EditPerson
|
||||||
|
|
||||||
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
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:
|
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)
|
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):
|
def this_callback(self, epo, val):
|
||||||
self.callback(epo,val)
|
self.callback(epo, val)
|
||||||
self.make_new_model()
|
self.make_new_model()
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user