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:
Don Allingham 2006-04-18 19:10:13 +00:00
parent 3ae608af89
commit 3c31f1e2ec
3 changed files with 37 additions and 46 deletions

View File

@ -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

View File

@ -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:

View File

@ -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()
#------------------------------------------------------------------------