EditPerson fixes, list model enhancements
svn: r1189
This commit is contained in:
		@@ -36,6 +36,8 @@ import gtk
 | 
			
		||||
import gnome.ui 
 | 
			
		||||
import gtk.glade
 | 
			
		||||
 | 
			
		||||
from gtk.gdk import ACTION_COPY, BUTTON1_MASK, INTERP_BILINEAR, pixbuf_new_from_file
 | 
			
		||||
 | 
			
		||||
#-------------------------------------------------------------------------
 | 
			
		||||
#
 | 
			
		||||
# gramps modules
 | 
			
		||||
@@ -153,7 +155,7 @@ class EditPerson:
 | 
			
		||||
        self.event_src_field = self.get_widget("event_srcinfo")
 | 
			
		||||
        self.event_conf_field = self.get_widget("event_conf")
 | 
			
		||||
        self.attr_conf_field = self.get_widget("attr_conf")
 | 
			
		||||
        self.addr_conf_field = self.get_widget("attr_conf")
 | 
			
		||||
        self.addr_conf_field = self.get_widget("addr_conf")
 | 
			
		||||
        self.name_conf_field = self.get_widget("name_conf")
 | 
			
		||||
        self.attr_src_field = self.get_widget("attr_srcinfo")
 | 
			
		||||
        self.name_src_field = self.get_widget("name_srcinfo")
 | 
			
		||||
@@ -260,20 +262,6 @@ class EditPerson:
 | 
			
		||||
 | 
			
		||||
        self.event_list = self.get_widget("eventList")
 | 
			
		||||
 | 
			
		||||
        if GrampsCfg.display_attr:
 | 
			
		||||
            self.get_widget("user_label").set_text(GrampsCfg.attr_name)
 | 
			
		||||
            val = ""
 | 
			
		||||
            for attr in self.person.getAttributeList():
 | 
			
		||||
                if attr.getType() == const.save_pattr(GrampsCfg.attr_name):
 | 
			
		||||
                    val = attr.getValue()
 | 
			
		||||
                    break
 | 
			
		||||
            self.get_widget("user_data").set_text(val)
 | 
			
		||||
            self.get_widget("user_colon").show()
 | 
			
		||||
        else:
 | 
			
		||||
            self.get_widget("user_label").hide()
 | 
			
		||||
            self.get_widget("user_colon").hide()
 | 
			
		||||
            self.get_widget("user_data").hide()
 | 
			
		||||
 | 
			
		||||
        self.lds_baptism = LdsOrd(self.person.getLdsBaptism())
 | 
			
		||||
        self.lds_endowment = LdsOrd(self.person.getLdsEndowment())
 | 
			
		||||
        self.lds_sealing = LdsOrd(self.person.getLdsSeal())
 | 
			
		||||
@@ -304,34 +292,33 @@ class EditPerson:
 | 
			
		||||
        self.notes_buffer = self.notes_field.get_buffer()
 | 
			
		||||
        self.notes_buffer.set_text(person.getNote())
 | 
			
		||||
 | 
			
		||||
        self.event_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,gtk.gdk.ACTION_COPY)
 | 
			
		||||
        self.event_list.drag_source_set(gtk.gdk.BUTTON1_MASK, pycode_tgts, gtk.gdk.ACTION_COPY)
 | 
			
		||||
        self.event_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,ACTION_COPY)
 | 
			
		||||
        self.event_list.drag_source_set(BUTTON1_MASK, pycode_tgts, ACTION_COPY)
 | 
			
		||||
        self.event_list.connect('drag_data_get', self.ev_drag_data_get)
 | 
			
		||||
        self.event_list.connect('drag_data_received',
 | 
			
		||||
                                self.ev_drag_data_received)
 | 
			
		||||
 | 
			
		||||
#        self.web_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,
 | 
			
		||||
#                                    pycode_tgts,ACTION_COPY)
 | 
			
		||||
#        self.web_list.drag_source_set(BUTTON1_MASK, pycode_tgts, gtk.gdk.ACTION_COPY)
 | 
			
		||||
#        self.web_list.connect('drag_data_get', self.url_drag_data_get)
 | 
			
		||||
#        self.web_list.connect('drag_data_received',
 | 
			
		||||
#                              self.url_drag_data_received)
 | 
			
		||||
        self.web_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,ACTION_COPY)
 | 
			
		||||
        self.web_list.drag_source_set(BUTTON1_MASK, pycode_tgts, ACTION_COPY)
 | 
			
		||||
        self.web_list.connect('drag_data_get', self.url_drag_data_get)
 | 
			
		||||
        self.web_list.connect('drag_data_received',
 | 
			
		||||
                              self.url_drag_data_received)
 | 
			
		||||
        
 | 
			
		||||
#        self.attr_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,
 | 
			
		||||
#                                     gtk.gdk.ACTION_COPY)
 | 
			
		||||
#        self.attr_list.drag_source_set(gtk.gdk.BUTTON1_MASK, pycode_tgts,
 | 
			
		||||
#                                       gtk.gdk.ACTION_COPY)
 | 
			
		||||
#        self.attr_list.connect('drag_data_get', self.at_drag_data_get)
 | 
			
		||||
#        self.attr_list.connect('drag_data_received',
 | 
			
		||||
#                               self.at_drag_data_received)
 | 
			
		||||
        self.attr_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,
 | 
			
		||||
                                     ACTION_COPY)
 | 
			
		||||
        self.attr_list.drag_source_set(BUTTON1_MASK, pycode_tgts,
 | 
			
		||||
                                       ACTION_COPY)
 | 
			
		||||
        self.attr_list.connect('drag_data_get', self.at_drag_data_get)
 | 
			
		||||
        self.attr_list.connect('drag_data_received',
 | 
			
		||||
                               self.at_drag_data_received)
 | 
			
		||||
 | 
			
		||||
#        self.addr_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,
 | 
			
		||||
#                                     pycode_tgts,ACTION_COPY)
 | 
			
		||||
#        self.addr_list.drag_source_set(gtk.gdk.BUTTON1_MASK, pycode_tgts,
 | 
			
		||||
#                                       gtk.gdk.ACTION_COPY)
 | 
			
		||||
#        self.addr_list.connect('drag_data_get', self.ad_drag_data_get)
 | 
			
		||||
#        self.addr_list.connect('drag_data_received',
 | 
			
		||||
#                               self.ad_drag_data_received)
 | 
			
		||||
        self.addr_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,
 | 
			
		||||
                                     pycode_tgts,ACTION_COPY)
 | 
			
		||||
        self.addr_list.drag_source_set(BUTTON1_MASK, pycode_tgts,
 | 
			
		||||
                                       ACTION_COPY)
 | 
			
		||||
        self.addr_list.connect('drag_data_get', self.ad_drag_data_get)
 | 
			
		||||
        self.addr_list.connect('drag_data_received',
 | 
			
		||||
                               self.ad_drag_data_received)
 | 
			
		||||
 | 
			
		||||
        self.redraw_event_list()
 | 
			
		||||
        self.redraw_attr_list()
 | 
			
		||||
@@ -1088,12 +1075,12 @@ class EditPerson:
 | 
			
		||||
            self.get_widget("personPix").hide()
 | 
			
		||||
        else:
 | 
			
		||||
            try:
 | 
			
		||||
                i = gtk.gdk.pixbuf_new_from_file(photo)
 | 
			
		||||
                i = pixbuf_new_from_file(photo)
 | 
			
		||||
                ratio = float(max(i.get_height(),i.get_width()))
 | 
			
		||||
                scale = float(const.picWidth)/ratio
 | 
			
		||||
                x = int(scale*(i.get_width()))
 | 
			
		||||
                y = int(scale*(i.get_height()))
 | 
			
		||||
                i = i.scale_simple(x,y,gtk.gdk.INTERP_BILINEAR)
 | 
			
		||||
                i = i.scale_simple(x,y,INTERP_BILINEAR)
 | 
			
		||||
                self.get_widget("personPix").set_from_pixbuf(i)
 | 
			
		||||
                self.get_widget("personPix").show()
 | 
			
		||||
            except:
 | 
			
		||||
 
 | 
			
		||||
@@ -162,8 +162,8 @@ class FamilyView:
 | 
			
		||||
            return
 | 
			
		||||
        try:
 | 
			
		||||
            SelectChild.SelectChild(self.parent.db, self.family,
 | 
			
		||||
                                    self.person,
 | 
			
		||||
                                    self.load_family)
 | 
			
		||||
                                    self.person, self.load_family,
 | 
			
		||||
                                    self.parent.update_person_list)
 | 
			
		||||
        except:
 | 
			
		||||
            DisplayTrace.DisplayTrace()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -67,6 +67,9 @@ class ListModel:
 | 
			
		||||
    def clear(self):
 | 
			
		||||
        self.model.clear()
 | 
			
		||||
 | 
			
		||||
    def remove(self,iter):
 | 
			
		||||
        self.model.remove(iter)
 | 
			
		||||
        
 | 
			
		||||
    def get_object(self,iter):
 | 
			
		||||
        return self.model.get_value(iter,self.data_index)
 | 
			
		||||
        
 | 
			
		||||
@@ -77,6 +80,15 @@ class ListModel:
 | 
			
		||||
            self.model.set_value(iter,col,object)
 | 
			
		||||
            col = col + 1
 | 
			
		||||
        self.model.set_value(iter,col,info)
 | 
			
		||||
 | 
			
		||||
    def add_and_select(self,data,info=None):
 | 
			
		||||
        iter = self.model.append()
 | 
			
		||||
        col = 0
 | 
			
		||||
        for object in data:
 | 
			
		||||
            self.model.set_value(iter,col,object)
 | 
			
		||||
            col = col + 1
 | 
			
		||||
        self.model.set_value(iter,col,info)
 | 
			
		||||
        self.selection.select_iter(iter)
 | 
			
		||||
        
 | 
			
		||||
    def button_press(self,obj,event):
 | 
			
		||||
        if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
 | 
			
		||||
 
 | 
			
		||||
@@ -48,13 +48,12 @@ class QuickAdd:
 | 
			
		||||
        name = person.getPrimaryName()
 | 
			
		||||
        name.setSurname(surname)
 | 
			
		||||
        name.setFirstName(given)
 | 
			
		||||
        self.db.addPerson(person)
 | 
			
		||||
        
 | 
			
		||||
        if self.xml.get_widget("male").get_active():
 | 
			
		||||
            person.setGender(RelLib.Person.male)
 | 
			
		||||
            self.father = person
 | 
			
		||||
        else:
 | 
			
		||||
            person.setGender(RelLib.Person.female)
 | 
			
		||||
            self.mother = person
 | 
			
		||||
        self.db.addPerson(person)
 | 
			
		||||
        Utils.modified()
 | 
			
		||||
        Utils.destroy_passed_object(self.window)
 | 
			
		||||
        self.callback(person)
 | 
			
		||||
 
 | 
			
		||||
@@ -60,11 +60,12 @@ import ListModel
 | 
			
		||||
#-------------------------------------------------------------------------
 | 
			
		||||
class SelectChild:
 | 
			
		||||
 | 
			
		||||
    def __init__(self,db,family,person,redraw):
 | 
			
		||||
    def __init__(self,db,family,person,redraw,add_person):
 | 
			
		||||
        self.db = db
 | 
			
		||||
        self.person = person
 | 
			
		||||
        self.family = family
 | 
			
		||||
        self.redraw = redraw
 | 
			
		||||
        self.add_person = add_person
 | 
			
		||||
        self.xml = gtk.glade.XML(const.gladeFile,"selectChild")
 | 
			
		||||
    
 | 
			
		||||
        self.xml.signal_autoconnect({
 | 
			
		||||
@@ -108,9 +109,10 @@ class SelectChild:
 | 
			
		||||
 | 
			
		||||
        self.frel.set_text(_("Birth"))
 | 
			
		||||
 | 
			
		||||
        self.refmodel = ListModel.ListModel(self.add_child,[(_('Name'),150,3),(_('ID'),50,1),
 | 
			
		||||
                                                            (_('Birth Date'),100,4),
 | 
			
		||||
                                                            ('',0,0),('',0,0)])
 | 
			
		||||
        titles = [(_('Name'),3,150),(_('ID'),1,50), (_('Birth Date'),4,100),
 | 
			
		||||
                  ('',-1,0),('',-1,0)]
 | 
			
		||||
        
 | 
			
		||||
        self.refmodel = ListModel.ListModel(self.add_child,titles)
 | 
			
		||||
        self.redraw_child_list(2)
 | 
			
		||||
        self.top.show()
 | 
			
		||||
 | 
			
		||||
@@ -233,6 +235,7 @@ class SelectChild:
 | 
			
		||||
        depending on the gender of the person."""
 | 
			
		||||
        id = person.getId()
 | 
			
		||||
        dinfo = self.db.getPersonDisplay(id)
 | 
			
		||||
        print dinfo
 | 
			
		||||
        rdata = [dinfo[0],dinfo[1],dinfo[3],dinfo[5],dinfo[6]]
 | 
			
		||||
        self.refmodel.add(rdata)
 | 
			
		||||
 | 
			
		||||
        self.refmodel.add_and_select(rdata)
 | 
			
		||||
        self.add_person(person)
 | 
			
		||||
 
 | 
			
		||||
@@ -1243,37 +1243,12 @@
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkTable" id="table18">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="n_rows">2</property>
 | 
			
		||||
			  <property name="n_rows">1</property>
 | 
			
		||||
			  <property name="n_columns">3</property>
 | 
			
		||||
			  <property name="homogeneous">False</property>
 | 
			
		||||
			  <property name="row_spacing">0</property>
 | 
			
		||||
			  <property name="column_spacing">0</property>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkLabel" id="user_data">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="label" translatable="yes"></property>
 | 
			
		||||
			      <property name="use_underline">False</property>
 | 
			
		||||
			      <property name="use_markup">False</property>
 | 
			
		||||
			      <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			      <property name="wrap">False</property>
 | 
			
		||||
			      <property name="selectable">False</property>
 | 
			
		||||
			      <property name="xalign">0</property>
 | 
			
		||||
			      <property name="yalign">0.5</property>
 | 
			
		||||
			      <property name="xpad">0</property>
 | 
			
		||||
			      <property name="ypad">0</property>
 | 
			
		||||
			    </widget>
 | 
			
		||||
			    <packing>
 | 
			
		||||
			      <property name="left_attach">2</property>
 | 
			
		||||
			      <property name="right_attach">3</property>
 | 
			
		||||
			      <property name="top_attach">1</property>
 | 
			
		||||
			      <property name="bottom_attach">2</property>
 | 
			
		||||
			      <property name="x_padding">5</property>
 | 
			
		||||
			      <property name="y_padding">5</property>
 | 
			
		||||
			      <property name="y_options"></property>
 | 
			
		||||
			    </packing>
 | 
			
		||||
			  </child>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkLabel" id="label152">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
@@ -1300,32 +1275,6 @@
 | 
			
		||||
			    </packing>
 | 
			
		||||
			  </child>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkLabel" id="user_label">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="label" translatable="yes"></property>
 | 
			
		||||
			      <property name="use_underline">False</property>
 | 
			
		||||
			      <property name="use_markup">False</property>
 | 
			
		||||
			      <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			      <property name="wrap">False</property>
 | 
			
		||||
			      <property name="selectable">False</property>
 | 
			
		||||
			      <property name="xalign">1</property>
 | 
			
		||||
			      <property name="yalign">0.5</property>
 | 
			
		||||
			      <property name="xpad">5</property>
 | 
			
		||||
			      <property name="ypad">0</property>
 | 
			
		||||
			    </widget>
 | 
			
		||||
			    <packing>
 | 
			
		||||
			      <property name="left_attach">0</property>
 | 
			
		||||
			      <property name="right_attach">1</property>
 | 
			
		||||
			      <property name="top_attach">1</property>
 | 
			
		||||
			      <property name="bottom_attach">2</property>
 | 
			
		||||
			      <property name="x_padding">5</property>
 | 
			
		||||
			      <property name="y_padding">5</property>
 | 
			
		||||
			      <property name="x_options">fill</property>
 | 
			
		||||
			      <property name="y_options"></property>
 | 
			
		||||
			    </packing>
 | 
			
		||||
			  </child>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkLabel" id="label240">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
@@ -1350,30 +1299,6 @@
 | 
			
		||||
			    </packing>
 | 
			
		||||
			  </child>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkLabel" id="user_colon">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="label" translatable="yes">:</property>
 | 
			
		||||
			      <property name="use_underline">False</property>
 | 
			
		||||
			      <property name="use_markup">False</property>
 | 
			
		||||
			      <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			      <property name="wrap">False</property>
 | 
			
		||||
			      <property name="selectable">False</property>
 | 
			
		||||
			      <property name="xalign">0</property>
 | 
			
		||||
			      <property name="yalign">0.5</property>
 | 
			
		||||
			      <property name="xpad">0</property>
 | 
			
		||||
			      <property name="ypad">0</property>
 | 
			
		||||
			    </widget>
 | 
			
		||||
			    <packing>
 | 
			
		||||
			      <property name="left_attach">1</property>
 | 
			
		||||
			      <property name="right_attach">2</property>
 | 
			
		||||
			      <property name="top_attach">1</property>
 | 
			
		||||
			      <property name="bottom_attach">2</property>
 | 
			
		||||
			      <property name="x_options">fill</property>
 | 
			
		||||
			      <property name="y_options"></property>
 | 
			
		||||
			    </packing>
 | 
			
		||||
			  </child>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkEntry" id="gid">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,14 +22,16 @@
 | 
			
		||||
 | 
			
		||||
import Filter
 | 
			
		||||
from RelLib import Person
 | 
			
		||||
import intl
 | 
			
		||||
_ = intl.gettext
 | 
			
		||||
from intl import gettext as _
 | 
			
		||||
 | 
			
		||||
class HaveAltFamilies(Filter.Filter):
 | 
			
		||||
    "People who were adopted"
 | 
			
		||||
 | 
			
		||||
    def match(self,person):
 | 
			
		||||
        return len(person.getParentList()) > 1
 | 
			
		||||
        for vals in person.getParentList():
 | 
			
		||||
            if vals[1] == "Adopted" or vals[2] == "Adopted":
 | 
			
		||||
                return 1
 | 
			
		||||
        return 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Filter.register_filter(HaveAltFamilies,
 | 
			
		||||
 
 | 
			
		||||
@@ -1140,7 +1140,6 @@
 | 
			
		||||
			      <property name="rules_hint">True</property>
 | 
			
		||||
			      <property name="reorderable">False</property>
 | 
			
		||||
			      <property name="enable_search">True</property>
 | 
			
		||||
			      <signal name="event" handler="on_person_list_button_press" last_modification_time="Thu, 12 Sep 2002 01:52:15 GMT"/>
 | 
			
		||||
			    </widget>
 | 
			
		||||
			  </child>
 | 
			
		||||
			</widget>
 | 
			
		||||
@@ -6074,6 +6073,7 @@
 | 
			
		||||
  <property name="window_position">GTK_WIN_POS_NONE</property>
 | 
			
		||||
  <property name="modal">False</property>
 | 
			
		||||
  <property name="default_width">300</property>
 | 
			
		||||
  <property name="default_height">200</property>
 | 
			
		||||
  <property name="resizable">True</property>
 | 
			
		||||
  <property name="destroy_with_parent">False</property>
 | 
			
		||||
  <property name="has_separator">True</property>
 | 
			
		||||
 
 | 
			
		||||
@@ -97,14 +97,8 @@ class Gramps:
 | 
			
		||||
        self.program = gnome.program_init("gramps",const.version)
 | 
			
		||||
        
 | 
			
		||||
        self.DataFilter = Filter.Filter("")
 | 
			
		||||
        self.active_child = None
 | 
			
		||||
        self.active_family = None
 | 
			
		||||
        self.active_father = None
 | 
			
		||||
        self.active_mother = None
 | 
			
		||||
        self.active_parents = None
 | 
			
		||||
        self.parents_index = 0
 | 
			
		||||
        self.active_person = None
 | 
			
		||||
        self.active_spouse = None
 | 
			
		||||
        self.bookmarks = None
 | 
			
		||||
        self.c_details = 6
 | 
			
		||||
        self.id2col = {}
 | 
			
		||||
@@ -290,9 +284,6 @@ class Gramps:
 | 
			
		||||
            "on_alpha_switch_page" : self.change_alpha_page,
 | 
			
		||||
            "delete_event" : self.delete_event,
 | 
			
		||||
            "destroy_passed_object" : Utils.destroy_passed_object,
 | 
			
		||||
            "on_family_up_clicked" : self.family_up_clicked,
 | 
			
		||||
            "on_family_down_clicked" : self.family_down_clicked,
 | 
			
		||||
            "on_spouse_list_changed" : self.spouse_list_changed,
 | 
			
		||||
            "on_about_activate" : self.on_about_activate,
 | 
			
		||||
            "on_add_bookmark_activate" : self.on_add_bookmark_activate,
 | 
			
		||||
            "on_add_place_clicked" : self.place_view.on_add_place_clicked,
 | 
			
		||||
@@ -324,7 +315,6 @@ class Gramps:
 | 
			
		||||
            "on_open_activate" : self.on_open_activate,
 | 
			
		||||
            "on_pedigree1_activate" : self.on_pedigree1_activate,
 | 
			
		||||
            "on_person_list1_activate" : self.on_person_list1_activate,
 | 
			
		||||
            "on_person_list_button_press" : self.alpha_event,
 | 
			
		||||
            "on_main_key_release_event" : self.on_main_key_release_event,
 | 
			
		||||
            "on_add_media_clicked" : self.media_view.create_add_dialog,
 | 
			
		||||
            "on_media_activate" : self.on_media_activate,
 | 
			
		||||
@@ -337,7 +327,6 @@ class Gramps:
 | 
			
		||||
            "on_places_activate" : self.on_places_activate,
 | 
			
		||||
            "on_preferences_activate" : self.on_preferences_activate,
 | 
			
		||||
            "on_reload_plugins_activate" : Plugins.reload_plugins,
 | 
			
		||||
            "on_remove_child_clicked" : self.on_remove_child_clicked,
 | 
			
		||||
            "on_reports_clicked" : self.on_reports_clicked,
 | 
			
		||||
            "on_revert_activate" : self.on_revert_activate,
 | 
			
		||||
            "on_save_activate" : self.on_save_activate,
 | 
			
		||||
@@ -345,7 +334,6 @@ class Gramps:
 | 
			
		||||
            "on_show_plugin_status" : self.on_show_plugin_status,
 | 
			
		||||
            "on_source_list_button_press" : self.source_view.button_press,
 | 
			
		||||
            "on_sources_activate" : self.on_sources_activate,
 | 
			
		||||
            "on_swap_clicked" : self.on_swap_clicked,
 | 
			
		||||
            "on_tools_clicked" : self.on_tools_clicked,
 | 
			
		||||
            "on_gramps_home_page_activate" : self.on_gramps_home_page_activate,
 | 
			
		||||
            "on_gramps_report_bug_activate" : self.on_gramps_report_bug_activate,
 | 
			
		||||
@@ -575,31 +563,6 @@ class Gramps:
 | 
			
		||||
        if url:
 | 
			
		||||
            url = "gnome-help:"+url
 | 
			
		||||
            gnome.help.goto(url)
 | 
			
		||||
    
 | 
			
		||||
    def on_remove_child_clicked(self,obj):
 | 
			
		||||
        if not self.active_family or not self.active_child or not self.active_person:
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        self.active_family.removeChild(self.active_child)
 | 
			
		||||
        self.active_child.removeAltFamily(self.active_child)
 | 
			
		||||
        
 | 
			
		||||
        if len(self.active_family.getChildList()) == 0:
 | 
			
		||||
            if self.active_family.getFather() == None:
 | 
			
		||||
                self.delete_family_from(self.active_family.getMother())
 | 
			
		||||
            elif self.active_family.getMother() == None:
 | 
			
		||||
                self.delete_family_from(self.active_family.getFather())
 | 
			
		||||
 | 
			
		||||
        Utils.modified()
 | 
			
		||||
        self.family_view.load_family()
 | 
			
		||||
 | 
			
		||||
    def delete_family_from(self,person):
 | 
			
		||||
        person.removeFamily(self.active_family)
 | 
			
		||||
        self.db.deleteFamily(self.active_family)
 | 
			
		||||
        flist = self.active_person.getFamilyList()
 | 
			
		||||
        if len(flist) > 0:
 | 
			
		||||
            self.active_family = flist[0][0]
 | 
			
		||||
        else:
 | 
			
		||||
            self.active_family = None
 | 
			
		||||
 | 
			
		||||
    def add_new_cancel(self,obj):
 | 
			
		||||
        Utils.destroy_passed_object(self.addornew)
 | 
			
		||||
@@ -641,11 +604,6 @@ class Gramps:
 | 
			
		||||
 | 
			
		||||
        self.topWindow.set_title("GRAMPS")
 | 
			
		||||
        self.active_person = None
 | 
			
		||||
        self.active_father = None
 | 
			
		||||
        self.active_family = None
 | 
			
		||||
        self.active_mother = None
 | 
			
		||||
        self.active_child  = None
 | 
			
		||||
        self.active_spouse = None
 | 
			
		||||
        self.id2col        = {}
 | 
			
		||||
 | 
			
		||||
        Utils.clearModified()
 | 
			
		||||
@@ -939,9 +897,8 @@ class Gramps:
 | 
			
		||||
        self.redisplay_person_list(p1)
 | 
			
		||||
        self.update_display(0)
 | 
			
		||||
    
 | 
			
		||||
    def alpha_event(self,obj,event):
 | 
			
		||||
        if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
 | 
			
		||||
            self.load_person(self.active_person)
 | 
			
		||||
    def alpha_event(self,obj):
 | 
			
		||||
        self.load_person(self.active_person)
 | 
			
		||||
 | 
			
		||||
    def goto_active_person(self):
 | 
			
		||||
        if not self.active_person:
 | 
			
		||||
@@ -964,23 +921,10 @@ class Gramps:
 | 
			
		||||
            self.statusbar.set_status("")
 | 
			
		||||
        else:
 | 
			
		||||
            pname = GrampsCfg.nameof(self.active_person)
 | 
			
		||||
            if GrampsCfg.status_bar == 1:
 | 
			
		||||
                name = "[%s] %s" % (self.active_person.getId(),pname)
 | 
			
		||||
            elif GrampsCfg.status_bar == 2:
 | 
			
		||||
                name = pname
 | 
			
		||||
                for attr in self.active_person.getAttributeList():
 | 
			
		||||
                    if attr.getType() == GrampsCfg.attr_name:
 | 
			
		||||
                        name = "[%s] %s" % (attr.getValue(),pname)
 | 
			
		||||
                        break
 | 
			
		||||
            else:
 | 
			
		||||
                name = pname
 | 
			
		||||
            name = "[%s] %s" % (self.active_person.getId(),pname)
 | 
			
		||||
            self.statusbar.set_status(name)
 | 
			
		||||
        return 0
 | 
			
		||||
	
 | 
			
		||||
    def on_child_list_select_row(self,obj,row,b,c):
 | 
			
		||||
        id = obj.get_row_data(row)
 | 
			
		||||
        self.active_child = id 
 | 
			
		||||
 | 
			
		||||
    def on_child_list_row_move(self,clist,fm,to):
 | 
			
		||||
        """Validate whether or not this child can be moved within the clist.
 | 
			
		||||
        This routine is called in the middle of the clist's callbacks, so
 | 
			
		||||
@@ -1083,11 +1027,6 @@ class Gramps:
 | 
			
		||||
        file = self.db.getSavePath()
 | 
			
		||||
        self.db.new()
 | 
			
		||||
        self.active_person = None
 | 
			
		||||
        self.active_father = None
 | 
			
		||||
        self.active_family = None
 | 
			
		||||
        self.active_mother = None
 | 
			
		||||
        self.active_child  = None
 | 
			
		||||
        self.active_spouse = None
 | 
			
		||||
        self.id2col        = {}
 | 
			
		||||
        self.read_file(file)
 | 
			
		||||
        Utils.clearModified()
 | 
			
		||||
@@ -1181,14 +1120,6 @@ class Gramps:
 | 
			
		||||
            self.merge_button.set_sensitive(0)
 | 
			
		||||
            self.media_view.load_media()
 | 
			
		||||
            
 | 
			
		||||
    def on_swap_clicked(self,obj):
 | 
			
		||||
        if not self.active_person:
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        if self.active_spouse:
 | 
			
		||||
            self.change_active_person(self.active_spouse)
 | 
			
		||||
            self.family_view.load_family()
 | 
			
		||||
 | 
			
		||||
    def on_apply_filter_clicked(self,obj):
 | 
			
		||||
        invert_filter = self.filter_inv.get_active()
 | 
			
		||||
        qualifer = self.filter_text.get_text()
 | 
			
		||||
@@ -1244,7 +1175,7 @@ class Gramps:
 | 
			
		||||
            self.redisplay_person_list(person)
 | 
			
		||||
        self.update_display(0)
 | 
			
		||||
 | 
			
		||||
    def redisplay_person_list(self,person):
 | 
			
		||||
    def add_to_person_list(self,person,change):
 | 
			
		||||
        key = person.getId()
 | 
			
		||||
        val = self.db.getPersonDisplay(person.getId())
 | 
			
		||||
        pg = val[0]
 | 
			
		||||
@@ -1257,12 +1188,19 @@ class Gramps:
 | 
			
		||||
            iter = model.model.append()
 | 
			
		||||
            page = self.model2page[model]
 | 
			
		||||
            self.id2col[key] = (model,iter,page)
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            model.model.set(iter, 0, val[0], 1, val[1], 2, val[2],
 | 
			
		||||
                            3, val[3], 4, val[4], 5, val[5],
 | 
			
		||||
                            6, val[6], 7, val[7])
 | 
			
		||||
            self.change_active_person(person)
 | 
			
		||||
            self.goto_active_person()
 | 
			
		||||
            if change:
 | 
			
		||||
                self.change_active_person(person)
 | 
			
		||||
                self.goto_active_person()
 | 
			
		||||
        
 | 
			
		||||
    def redisplay_person_list(self,person):
 | 
			
		||||
        self.add_to_person_list(person,1)
 | 
			
		||||
 | 
			
		||||
    def update_person_list(self,person):
 | 
			
		||||
        self.add_to_person_list(person,0)
 | 
			
		||||
            
 | 
			
		||||
    def load_person(self,person):
 | 
			
		||||
        if person:
 | 
			
		||||
@@ -1271,30 +1209,6 @@ class Gramps:
 | 
			
		||||
            except:
 | 
			
		||||
                DisplayTrace.DisplayTrace()
 | 
			
		||||
 | 
			
		||||
    def build_spouse_dropdown(self):
 | 
			
		||||
        list = []
 | 
			
		||||
        mymap = {}
 | 
			
		||||
        mynmap = {}
 | 
			
		||||
        sel = None
 | 
			
		||||
        for f in self.active_person.getFamilyList():
 | 
			
		||||
            if self.active_person == f.getFather():
 | 
			
		||||
                sname = self.parent_name(f.getMother())
 | 
			
		||||
            else:
 | 
			
		||||
                sname = self.parent_name(f.getFather())
 | 
			
		||||
            c = self.list_item(sname,f.getId())
 | 
			
		||||
            list.append(c)
 | 
			
		||||
            if f == self.active_family or sel == None:
 | 
			
		||||
                sel = c
 | 
			
		||||
            mynmap[f.getId()] = sname
 | 
			
		||||
            mymap[f.getId()] = c
 | 
			
		||||
        self.spouse_combo.disable_activate()
 | 
			
		||||
        self.spouse_combo.list.clear_items(0,-1)
 | 
			
		||||
        self.spouse_combo.list.append_items(list)
 | 
			
		||||
            
 | 
			
		||||
        for v in mymap.keys():
 | 
			
		||||
            self.spouse_combo.set_item_string(mymap[v],mynmap[v])
 | 
			
		||||
        self.spouse_combo.list.select_child(sel)
 | 
			
		||||
 | 
			
		||||
    def list_item(self,label,filter):
 | 
			
		||||
        l = gtk.Label(label)
 | 
			
		||||
        l.set_alignment(0,0.5)
 | 
			
		||||
@@ -1470,48 +1384,6 @@ class Gramps:
 | 
			
		||||
        self.db.setDefaultPerson(self.active_person)
 | 
			
		||||
        Utils.modified()
 | 
			
		||||
 | 
			
		||||
    def family_up_clicked(self,obj):
 | 
			
		||||
        if self.active_parents == None:
 | 
			
		||||
            return
 | 
			
		||||
        flist = self.active_person.getParentList()
 | 
			
		||||
        if self.parents_index == 0:
 | 
			
		||||
            self.parents_index = len(flist)-1
 | 
			
		||||
        else:
 | 
			
		||||
            self.parents_index = self.parents_index - 1
 | 
			
		||||
        self.active_parents = flist[self.parents_index][0]
 | 
			
		||||
        self.change_parents(self.active_parents)
 | 
			
		||||
 | 
			
		||||
    def family_down_clicked(self,obj):
 | 
			
		||||
        if self.active_parents == None:
 | 
			
		||||
            return
 | 
			
		||||
        flist = self.active_person.getParentList()
 | 
			
		||||
        if self.parents_index == len(flist)-1:
 | 
			
		||||
            self.parents_index = 0
 | 
			
		||||
        else:
 | 
			
		||||
            self.parents_index = self.parents_index + 1
 | 
			
		||||
        self.active_parents = flist[self.parents_index][0]
 | 
			
		||||
        self.change_parents(self.active_parents)
 | 
			
		||||
 | 
			
		||||
    def spouse_list_changed(self,obj):
 | 
			
		||||
        if self.active_family == None:
 | 
			
		||||
            return
 | 
			
		||||
        select = self.spouse_combo.list.get_selection()
 | 
			
		||||
        if len(select) == 0:
 | 
			
		||||
            self.active_family = None
 | 
			
		||||
        else:
 | 
			
		||||
            self.active_family = self.db.getFamily(select[0].get_data('d'))
 | 
			
		||||
 | 
			
		||||
        if self.active_family == self.active_person.getFamilyList()[0]:
 | 
			
		||||
            self.pref_spouse.set_sensitive(0)
 | 
			
		||||
            msg = _("Preferred Relationship")
 | 
			
		||||
        else:
 | 
			
		||||
            msg = _("Relationship")
 | 
			
		||||
            self.pref_spouse.set_sensitive(1)
 | 
			
		||||
            
 | 
			
		||||
        self.gtop.get_widget('rel_frame').set_label(msg)
 | 
			
		||||
        
 | 
			
		||||
        self.display_marriage(self.active_family)
 | 
			
		||||
 | 
			
		||||
    def export_callback(self,obj,plugin_function):
 | 
			
		||||
        """Call the export plugin, with the active person and database"""
 | 
			
		||||
        if self.active_person:
 | 
			
		||||
 
 | 
			
		||||
@@ -204,7 +204,7 @@ class DisplayChart:
 | 
			
		||||
        titles = []
 | 
			
		||||
        index = 0
 | 
			
		||||
        for v in self.event_titles:
 | 
			
		||||
            titles.append((v,150,index))
 | 
			
		||||
            titles.append((v,index,150))
 | 
			
		||||
            index = index + 1
 | 
			
		||||
            
 | 
			
		||||
        self.list = ListModel.ListModel(self.eventlist,titles)
 | 
			
		||||
 
 | 
			
		||||
@@ -326,6 +326,8 @@
 | 
			
		||||
  <property name="type">GTK_WINDOW_TOPLEVEL</property>
 | 
			
		||||
  <property name="window_position">GTK_WIN_POS_NONE</property>
 | 
			
		||||
  <property name="modal">False</property>
 | 
			
		||||
  <property name="default_width">350</property>
 | 
			
		||||
  <property name="default_height">150</property>
 | 
			
		||||
  <property name="resizable">True</property>
 | 
			
		||||
  <property name="destroy_with_parent">False</property>
 | 
			
		||||
  <property name="has_separator">True</property>
 | 
			
		||||
@@ -383,7 +385,7 @@
 | 
			
		||||
	      <property name="ypad">0</property>
 | 
			
		||||
	    </widget>
 | 
			
		||||
	    <packing>
 | 
			
		||||
	      <property name="padding">0</property>
 | 
			
		||||
	      <property name="padding">5</property>
 | 
			
		||||
	      <property name="expand">False</property>
 | 
			
		||||
	      <property name="fill">False</property>
 | 
			
		||||
	    </packing>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user