* src/DdTargets.py: Add support for EventRef
* src/DisplayTabs.py: Drag and drop support in base class * src/EditPerson.py: remove unused functions * src/edit_person.glade: privacy flag change * src/gramps.glade: add tooltip svn: r5857
This commit is contained in:
parent
ed311ea2d2
commit
2c4f2b8225
@ -1,3 +1,10 @@
|
||||
2006-01-29 Don Allingham <don@gramps-project.org>
|
||||
* src/DdTargets.py: Add support for EventRef
|
||||
* src/DisplayTabs.py: Drag and drop support in base class
|
||||
* src/EditPerson.py: remove unused functions
|
||||
* src/edit_person.glade: privacy flag change
|
||||
* src/gramps.glade: add tooltip
|
||||
|
||||
2006-01-29 Alex Roitman <shura@gramps-project.org>
|
||||
* src/GrampsDb/_WriteXML.py (write_place_obj): Always write ptitle.
|
||||
* src/GrampsDb/_ReadXML.py: Prase file and ptitle tags.
|
||||
|
@ -99,6 +99,7 @@ class _DdTargets(object):
|
||||
|
||||
self.URL = _DdType(self,'url')
|
||||
self.EVENT = _DdType(self,'pevent')
|
||||
self.EVENTREF = _DdType(self,'peventref')
|
||||
self.ATTRIBUTE = _DdType(self,'pattr')
|
||||
self.ADDRESS = _DdType(self,'paddr')
|
||||
self.SOURCEREF = _DdType(self,'srcref')
|
||||
|
@ -25,6 +25,8 @@
|
||||
#-------------------------------------------------------------------------
|
||||
import gtk
|
||||
import gobject
|
||||
import pango
|
||||
from gtk.gdk import ACTION_COPY, BUTTON1_MASK
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -33,6 +35,7 @@ import gobject
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
from gettext import gettext as _
|
||||
import pickle
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -46,6 +49,7 @@ import Utils
|
||||
import GrampsMime
|
||||
import const
|
||||
|
||||
from DdTargets import DdTargets
|
||||
from GrampsWidgets import SimpleButton
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@ -123,7 +127,7 @@ class GrampsTab(gtk.HBox):
|
||||
gtk.ICON_SIZE_MENU)
|
||||
self.label = gtk.Label(self.tab_name)
|
||||
hbox.pack_start(self.tab_image)
|
||||
hbox.set_spacing(3)
|
||||
hbox.set_spacing(6)
|
||||
hbox.add(self.label)
|
||||
hbox.show_all()
|
||||
return hbox
|
||||
@ -255,6 +259,7 @@ class EmbeddedList(ButtonTab):
|
||||
"""
|
||||
|
||||
_HANDLE_COL = -1
|
||||
_DND_TYPE = ""
|
||||
|
||||
def __init__(self, dbstate, uistate, track, name, build_model):
|
||||
"""
|
||||
@ -272,10 +277,58 @@ class EmbeddedList(ButtonTab):
|
||||
self.columns = []
|
||||
self.build_columns()
|
||||
|
||||
self.set_dnd()
|
||||
|
||||
# build the initial data
|
||||
self.rebuild()
|
||||
self.show_all()
|
||||
|
||||
def set_dnd(self):
|
||||
self.tree.drag_dest_set(gtk.DEST_DEFAULT_ALL,
|
||||
[DdTargets.NAME.target()],
|
||||
ACTION_COPY)
|
||||
self.tree.drag_source_set(BUTTON1_MASK,
|
||||
[DdTargets.NAME.target()],
|
||||
ACTION_COPY)
|
||||
self.tree.connect('drag_data_get', self.drag_data_get)
|
||||
self.tree.connect('drag_data_received', self.drag_data_received)
|
||||
|
||||
def drag_data_get(self,widget, context, sel_data, info, time):
|
||||
obj = self.get_selected()
|
||||
if not obj:
|
||||
return
|
||||
|
||||
bits_per = 8; # we're going to pass a string
|
||||
pickled = pickle.dumps(obj);
|
||||
data = str((self._DND_TYPE, id(self), pickled))
|
||||
sel_data.set(sel_data.target, bits_per, data)
|
||||
|
||||
def drag_data_received(self,widget,context,x,y,sel_data,info,time):
|
||||
row = self.tree.get_path_at_pos(x,y)
|
||||
if row == None:
|
||||
row = len(self.get_data())
|
||||
else:
|
||||
row = row[0][0]
|
||||
if sel_data and sel_data.data:
|
||||
exec 'dnddata = %s' % sel_data.data
|
||||
mytype = dnddata[0]
|
||||
selfid = dnddata[1]
|
||||
obj = pickle.loads(dnddata[2])
|
||||
if mytype == self._DND_TYPE:
|
||||
if id(self) == selfid:
|
||||
self.move(row,obj)
|
||||
else:
|
||||
self.handle_drag(row,obj)
|
||||
self.rebuild()
|
||||
|
||||
def handle_drag(self, row, obj):
|
||||
print "drag row=",row
|
||||
print "drag obj=", obj
|
||||
|
||||
def move(self, row, obj):
|
||||
print "move row=",row
|
||||
print "move obj=", obj
|
||||
|
||||
def get_icon_name(self):
|
||||
"""
|
||||
Specifies the basic icon used for a generic list. Typically,
|
||||
@ -295,6 +348,7 @@ class EmbeddedList(ButtonTab):
|
||||
# button press to the double click function.
|
||||
|
||||
self.tree = gtk.TreeView()
|
||||
self.tree.set_reorderable(True)
|
||||
self.tree.set_rules_hint(True)
|
||||
self.tree.connect('button_press_event',self.double_click)
|
||||
|
||||
@ -383,12 +437,13 @@ class EmbeddedList(ButtonTab):
|
||||
# assign it to the column name. The text value is extracted
|
||||
# from the model column specified in pair[1]
|
||||
name = self._column_names[pair[1]][0]
|
||||
column = gtk.TreeViewColumn(name, gtk.CellRendererText(),
|
||||
text=pair[1])
|
||||
renderer = gtk.CellRendererText()
|
||||
renderer.set_property('ellipsize',pango.ELLIPSIZE_END)
|
||||
column = gtk.TreeViewColumn(name, renderer, text=pair[1])
|
||||
|
||||
# insert the colum into the tree
|
||||
column.set_resizable(True)
|
||||
column.set_min_width(75)
|
||||
column.set_min_width(self._column_names[pair[1]][2])
|
||||
column.set_sort_column_id(self._column_names[pair[1]][1])
|
||||
self.columns.append(column)
|
||||
self.tree.append_column(column)
|
||||
@ -411,14 +466,15 @@ class EmbeddedList(ButtonTab):
|
||||
class EventEmbedList(EmbeddedList):
|
||||
|
||||
_HANDLE_COL = 6
|
||||
_DND_TYPE = DdTargets.EVENTREF.drag_type
|
||||
|
||||
_column_names = [
|
||||
(_('Type'),0),
|
||||
(_('Description'),1),
|
||||
(_('ID'),2),
|
||||
(_('Date'),3),
|
||||
(_('Place'),4),
|
||||
(_('Cause'),5),
|
||||
(_('Type'),0,100),
|
||||
(_('Description'),1,200),
|
||||
(_('ID'),2, 60),
|
||||
(_('Date'),3, 150),
|
||||
(_('Place'),4, 140),
|
||||
(_('Role'),5, 80),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,obj):
|
||||
@ -463,8 +519,20 @@ class EventEmbedList(EmbeddedList):
|
||||
self.rebuild()
|
||||
|
||||
def event_added(self,value):
|
||||
value[0].ref = value[1].handle
|
||||
self.obj.add_event_ref(value[0])
|
||||
self.changed = True
|
||||
self.rebuild()
|
||||
|
||||
class PersonEventEmbedList(EventEmbedList):
|
||||
|
||||
def __init__(self,dbstate,uistate,track,obj):
|
||||
EventEmbedList.__init__(self, dbstate, uistate, track, obj)
|
||||
|
||||
def get_data(self):
|
||||
return [ obj for obj in [ self.obj.get_birth_ref(), \
|
||||
self.obj.get_death_ref()] + self.obj.get_event_ref_list() \
|
||||
if obj ]
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -476,9 +544,9 @@ class SourceBackRefList(EmbeddedList):
|
||||
_HANDLE_COL = 3
|
||||
|
||||
_column_names = [
|
||||
(_('Type'),0),
|
||||
(_('ID'),1),
|
||||
(_('Name'),2),
|
||||
(_('Type'),0, 100),
|
||||
(_('ID'), 1, 75),
|
||||
(_('Name'),2, 250),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,obj):
|
||||
@ -541,8 +609,8 @@ class SourceBackRefList(EmbeddedList):
|
||||
class DataEmbedList(EmbeddedList):
|
||||
|
||||
_column_names = [
|
||||
(_('Key'),0),
|
||||
(_('Value'),1),
|
||||
(_('Key'),0,150),
|
||||
(_('Value'),1,250),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,obj):
|
||||
@ -580,10 +648,11 @@ class DataEmbedList(EmbeddedList):
|
||||
class AttrEmbedList(EmbeddedList):
|
||||
|
||||
_HANDLE_COL = 2
|
||||
_DND_TYPE = DdTargets.ATTRIBUTE.drag_type
|
||||
|
||||
_column_names = [
|
||||
(_('Type'),0),
|
||||
(_('Value'),1),
|
||||
(_('Type'),0,250),
|
||||
(_('Value'),1,200),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,data):
|
||||
@ -605,11 +674,12 @@ class AttrEmbedList(EmbeddedList):
|
||||
class WebEmbedList(EmbeddedList):
|
||||
|
||||
_HANDLE_COL = -1
|
||||
_DND_TYPE = DdTargets.URL.drag_type
|
||||
|
||||
_column_names = [
|
||||
(_('Type'),0),
|
||||
(_('Path'),1),
|
||||
(_('Description'),2),
|
||||
(_('Type') ,0, 100),
|
||||
(_('Path') ,1, 200),
|
||||
(_('Description'),2, 150),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,data):
|
||||
@ -631,10 +701,11 @@ class WebEmbedList(EmbeddedList):
|
||||
class NameEmbedList(EmbeddedList):
|
||||
|
||||
_HANDLE_COL = -1
|
||||
_DND_TYPE = DdTargets.NAME.drag_type
|
||||
|
||||
_column_names = [
|
||||
(_('Name'),0),
|
||||
(_('Type'),1),
|
||||
(_('Name'),0, 250),
|
||||
(_('Type'),1, 100),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,data):
|
||||
@ -656,13 +727,14 @@ class NameEmbedList(EmbeddedList):
|
||||
class AddrEmbedList(EmbeddedList):
|
||||
|
||||
_HANDLE_COL = -1
|
||||
_DND_TYPE = DdTargets.ADDRESS.drag_type
|
||||
|
||||
_column_names = [
|
||||
(_('Date'),0),
|
||||
(_('Street'),1),
|
||||
(_('State'),2),
|
||||
(_('City'),3),
|
||||
(_('Country'),4),
|
||||
(_('Date'), 0, 150),
|
||||
(_('Street'), 1, 225),
|
||||
(_('State'), 2, 100),
|
||||
(_('City'), 3, 100),
|
||||
(_('Country'), 4, 75),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,data):
|
||||
@ -820,12 +892,13 @@ class GalleryTab(ButtonTab):
|
||||
class SourceEmbedList(EmbeddedList):
|
||||
|
||||
_HANDLE_COL = 4
|
||||
|
||||
_DND_TYPE = DdTargets.SOURCEREF.drag_type
|
||||
|
||||
_column_names = [
|
||||
(_('ID'),0),
|
||||
(_('Title'),1),
|
||||
(_('Author'),2),
|
||||
(_('Page'),3),
|
||||
(_('ID'), 0, 75),
|
||||
(_('Title'), 1, 200),
|
||||
(_('Author'), 2, 125),
|
||||
(_('Page'), 3, 100),
|
||||
]
|
||||
|
||||
def __init__(self,dbstate,uistate,track,obj):
|
||||
@ -865,7 +938,8 @@ class SourceEmbedList(EmbeddedList):
|
||||
class ChildModel(gtk.ListStore):
|
||||
|
||||
_HANDLE_COL = -8
|
||||
|
||||
_DND_TYPE = DdTargets.PERSON_LINK.drag_type
|
||||
|
||||
def __init__(self, family, db):
|
||||
self.family = family
|
||||
gtk.ListStore.__init__(self,int,str,str,str,str,str,
|
||||
@ -991,7 +1065,7 @@ class EventRefModel(gtk.ListStore):
|
||||
event.get_gramps_id(),
|
||||
self.column_date(event_ref),
|
||||
self.column_place(event_ref),
|
||||
event.get_cause(),
|
||||
self.column_role(event_ref),
|
||||
event_ref
|
||||
])
|
||||
|
||||
@ -1005,6 +1079,13 @@ class EventRefModel(gtk.ListStore):
|
||||
else:
|
||||
return Utils.family_events[t]
|
||||
|
||||
def column_role(self,event_ref):
|
||||
t,v = event_ref.get_role()
|
||||
if t == RelLib.EventRef.CUSTOM:
|
||||
return v
|
||||
else:
|
||||
return Utils.event_roles[t]
|
||||
|
||||
def column_date(self,event_ref):
|
||||
event = self.db.get_event_from_handle(event_ref.ref)
|
||||
return DateHandler.get_date(event)
|
||||
|
@ -77,8 +77,6 @@ from DdTargets import DdTargets
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
_PICTURE_WIDTH = 200.0
|
||||
|
||||
_temple_names = const.lds_temple_codes.keys()
|
||||
_temple_names.sort()
|
||||
_temple_names = [""] + _temple_names
|
||||
@ -175,8 +173,6 @@ class EditPerson(DisplayState.ManagedWindow):
|
||||
self.prefix.set_editable(mod)
|
||||
self.given = self.top.get_widget("given_name")
|
||||
self.given.set_editable(mod)
|
||||
# self.nick = self.top.get_widget("nickname")
|
||||
# self.nick.set_editable(mod)
|
||||
self.title = self.top.get_widget("title")
|
||||
self.title.set_editable(mod)
|
||||
self.surname = self.top.get_widget("surname")
|
||||
@ -249,8 +245,8 @@ class EditPerson(DisplayState.ManagedWindow):
|
||||
self.gladeif.connect("button15", "clicked", self.on_cancel_edit)
|
||||
self.gladeif.connect("ok", "clicked", self.on_apply_person_clicked)
|
||||
self.gladeif.connect("button134", "clicked", self.on_help_clicked)
|
||||
# self.gladeif.connect("notebook", "switch_page", self.on_switch_page)
|
||||
self.gladeif.connect("given_name", "focus_out_event", self.on_given_focus_out_event)
|
||||
self.gladeif.connect("given_name", "focus_out_event",
|
||||
self.on_given_focus_out_event)
|
||||
self.gladeif.connect("button177", "clicked", self.on_edit_name_clicked)
|
||||
|
||||
self.private.set_active(self.person.get_privacy())
|
||||
@ -261,10 +257,10 @@ class EditPerson(DisplayState.ManagedWindow):
|
||||
self.vbox.pack_start(self.notebook,True)
|
||||
self.notebook.show_all()
|
||||
|
||||
self.event_list = EventEmbedList(self.dbstate,self.uistate,
|
||||
self.track,self.person)
|
||||
self.name_list = NameEmbedList(self.dbstate,self.uistate,
|
||||
self.track,self.person.get_alternate_names())
|
||||
self.event_list = PersonEventEmbedList(self.dbstate,self.uistate,
|
||||
self.track,self.person)
|
||||
self.name_list = NameEmbedList(self.dbstate, self.uistate, self.track,
|
||||
self.person.get_alternate_names())
|
||||
self.srcref_list = SourceEmbedList(self.dbstate,self.uistate,
|
||||
self.track,self.person.source_list)
|
||||
self.attr_list = AttrEmbedList(self.dbstate,self.uistate,self.track,
|
||||
@ -410,125 +406,6 @@ class EditPerson(DisplayState.ManagedWindow):
|
||||
"""Display the relevant portion of GRAMPS manual"""
|
||||
GrampsDisplay.help('adv-pers')
|
||||
|
||||
def lds_field(self,lds_ord,combo,date,place):
|
||||
build_combo(combo,_temple_names)
|
||||
temple_code = const.lds_temple_to_abrev.get(lds_ord.get_temple(),"")
|
||||
index = _temple_names.index(temple_code)
|
||||
combo.set_active(index)
|
||||
if not lds_ord.is_empty():
|
||||
stat = lds_ord.get_status()
|
||||
else:
|
||||
stat = 0
|
||||
date.set_text(DateHandler.get_date(lds_ord))
|
||||
|
||||
build_dropdown(place,self.place_list)
|
||||
if lds_ord and lds_ord.get_place_handle():
|
||||
handle = lds_ord.get_place_handle()
|
||||
lds_ord_place = self.db.get_place_from_handle(handle)
|
||||
place.set_text(lds_ord_place.get_title())
|
||||
return stat
|
||||
|
||||
def draw_lds(self):
|
||||
"""Draws the LDS window. This window is not always drawn, and in
|
||||
may cases is hidden."""
|
||||
|
||||
self.ldsbap_date = self.top.get_widget("ldsbapdate")
|
||||
self.ldsbap_date.set_editable(not self.db.readonly)
|
||||
self.ldsbap_temple = self.top.get_widget("ldsbaptemple")
|
||||
self.ldsbap_temple.set_sensitive(not self.db.readonly)
|
||||
self.ldsbapplace = self.top.get_widget("lds_bap_place")
|
||||
self.ldsbapplace.set_editable(not self.db.readonly)
|
||||
self.ldsbap_date_led = self.top.get_widget("ldsbap_stat")
|
||||
self.ldsbap_date_led.set_sensitive(not self.db.readonly)
|
||||
self.ldsbap_date_check = DateEdit.DateEdit(
|
||||
self.lds_baptism.get_date_object(), self.ldsbap_date,
|
||||
self.ldsbap_date_led, self.window)
|
||||
|
||||
self.ldsend_date = self.top.get_widget("endowdate")
|
||||
self.ldsend_date.set_editable(not self.db.readonly)
|
||||
self.ldsend_temple = self.top.get_widget("endowtemple")
|
||||
self.ldsend_temple.set_sensitive(not self.db.readonly)
|
||||
self.ldsendowplace = self.top.get_widget("lds_end_place")
|
||||
self.ldsendowplace.set_editable(not self.db.readonly)
|
||||
self.ldsendowstat = self.top.get_widget("endowstat")
|
||||
self.ldsendowstat.set_sensitive(not self.db.readonly)
|
||||
self.ldsend_date_led = self.top.get_widget("endow_stat")
|
||||
self.ldsend_date_led.set_sensitive(not self.db.readonly)
|
||||
self.ldsend_date_check = DateEdit.DateEdit(
|
||||
self.lds_endowment.get_date_object(), self.ldsend_date,
|
||||
self.ldsend_date_led, self.window)
|
||||
|
||||
self.ldsseal_date = self.top.get_widget("sealdate")
|
||||
self.ldsseal_temple = self.top.get_widget("sealtemple")
|
||||
self.ldssealplace = self.top.get_widget("lds_seal_place")
|
||||
self.ldsseal_date.set_editable(not self.db.readonly)
|
||||
self.ldsseal_temple.set_sensitive(not self.db.readonly)
|
||||
self.ldssealplace.set_editable(not self.db.readonly)
|
||||
self.ldsseal_date_led = self.top.get_widget("seal_stat")
|
||||
self.ldsseal_date_led.set_sensitive(not self.db.readonly)
|
||||
self.ldsseal_date_check = DateEdit.DateEdit(
|
||||
self.lds_sealing.get_date_object(), self.ldsseal_date,
|
||||
self.ldsseal_date_led, self.window)
|
||||
|
||||
self.ldsseal_fam = self.top.get_widget("sealparents")
|
||||
self.ldsseal_fam.set_sensitive(not self.db.readonly)
|
||||
|
||||
self.ldsbapstat = self.top.get_widget("ldsbapstat")
|
||||
self.ldsbapstat.set_sensitive(not self.db.readonly)
|
||||
|
||||
self.ldssealstat = self.top.get_widget("sealstat")
|
||||
self.ldssealstat.set_sensitive(not self.db.readonly)
|
||||
|
||||
self.bstat = self.lds_field(
|
||||
self.lds_baptism, self.ldsbap_temple,
|
||||
self.ldsbap_date, self.ldsbapplace)
|
||||
|
||||
self.estat = self.lds_field(
|
||||
self.lds_endowment, self.ldsend_temple,
|
||||
self.ldsend_date, self.ldsendowplace)
|
||||
|
||||
self.seal_stat = self.lds_field(
|
||||
self.lds_sealing, self.ldsseal_temple,
|
||||
self.ldsseal_date, self.ldssealplace)
|
||||
|
||||
if self.lds_sealing:
|
||||
self.ldsfam = self.lds_sealing.get_family_handle()
|
||||
else:
|
||||
self.ldsfam = None
|
||||
|
||||
cell = gtk.CellRendererText()
|
||||
self.ldsseal_fam.pack_start(cell,True)
|
||||
self.ldsseal_fam.add_attribute(cell,'text',0)
|
||||
|
||||
store = gtk.ListStore(str)
|
||||
store.append(row=[_("None")])
|
||||
|
||||
index = 0
|
||||
hist = 0
|
||||
self.lds_fam_list = [None]
|
||||
flist = [self.person.get_main_parents_family_handle()]
|
||||
for (fam,mrel,frel) in self.person.get_parent_family_handle_list():
|
||||
if fam not in flist:
|
||||
flist.append(fam)
|
||||
|
||||
for fam_id in flist:
|
||||
index += 1
|
||||
family = self.db.get_family_from_handle(fam_id)
|
||||
if family == None:
|
||||
continue
|
||||
name = Utils.family_name(family,self.db)
|
||||
store.append(row=[name])
|
||||
self.lds_fam_list.append(fam_id)
|
||||
if fam_id == self.ldsfam:
|
||||
hist = index
|
||||
self.ldsseal_fam.set_model(store)
|
||||
self.ldsseal_fam.set_active(hist)
|
||||
self.ldsseal_fam.connect("changed",self.menu_changed)
|
||||
|
||||
self.build_bap_menu()
|
||||
self.build_seal_menu()
|
||||
self.build_endow_menu()
|
||||
|
||||
def on_gender_activate (self, button):
|
||||
self.should_guess_gender = False
|
||||
|
||||
@ -551,37 +428,6 @@ class EditPerson(DisplayState.ManagedWindow):
|
||||
opt_menu.connect('changed',task)
|
||||
opt_menu.set_active(type)
|
||||
|
||||
def build_bap_menu(self):
|
||||
self.build_menu(const.lds_baptism,self.set_lds_bap,self.ldsbapstat,
|
||||
self.bstat)
|
||||
|
||||
def build_endow_menu(self):
|
||||
self.build_menu(const.lds_baptism,self.set_lds_endow,self.ldsendowstat,
|
||||
self.estat)
|
||||
|
||||
def build_seal_menu(self):
|
||||
self.build_menu(const.lds_csealing,self.set_lds_seal,self.ldssealstat,
|
||||
self.seal_stat)
|
||||
|
||||
def set_lds_bap(self,obj):
|
||||
self.lds_baptism.set_status(obj.get_active())
|
||||
|
||||
def set_lds_endow(self,obj):
|
||||
self.lds_endowment.set_status(obj.get_active())
|
||||
|
||||
def set_lds_seal(self,obj):
|
||||
self.lds_sealing.set_status(obj.get_active())
|
||||
|
||||
def menu_changed(self,obj):
|
||||
self.ldsfam = self.lds_fam_list[obj.get_active()]
|
||||
|
||||
def strip_id(self,text):
|
||||
index = text.rfind('[')
|
||||
if (index > 0):
|
||||
text = text[:index]
|
||||
text = text.rstrip()
|
||||
return text
|
||||
|
||||
def on_cancel_edit(self,obj):
|
||||
"""If the data has changed, give the user a chance to cancel
|
||||
the close window"""
|
||||
@ -728,19 +574,6 @@ class EditPerson(DisplayState.ManagedWindow):
|
||||
self.lds_sealing.set_family_handle(self.ldsfam)
|
||||
self.lds_sealing.set_place_handle(self.get_place(self.ldssealplace,1))
|
||||
|
||||
def aka_double_click(self,obj,event):
|
||||
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
||||
self.on_aka_update_clicked(obj)
|
||||
elif event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
|
||||
menu = gtk.Menu()
|
||||
item = gtk.TearoffMenuItem()
|
||||
item.show()
|
||||
menu.append(item)
|
||||
if not self.db.readonly:
|
||||
msg = _("Make the selected name the preferred name")
|
||||
Utils.add_menuitem(menu,msg,None,self.change_name)
|
||||
menu.popup(None,None,None,event.button,event.time)
|
||||
|
||||
def load_photo(self,photo):
|
||||
"""loads, scales, and displays the person's main photo"""
|
||||
self.load_obj = photo
|
||||
@ -760,6 +593,7 @@ class EditPerson(DisplayState.ManagedWindow):
|
||||
self.person_photo.hide()
|
||||
|
||||
def on_apply_person_clicked(self,obj):
|
||||
return
|
||||
|
||||
if self.gender.get_active() == RelLib.Person.UNKNOWN:
|
||||
dialog = QuestionDialog2(
|
||||
|
@ -655,28 +655,6 @@ Unknown</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="private">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Pri_vate</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">7</property>
|
||||
<property name="right_attach">8</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label443">
|
||||
<property name="visible">True</property>
|
||||
@ -721,6 +699,37 @@ Unknown</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToggleButton" id="private">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Indicates if the record is private</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NONE</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image2262">
|
||||
<property name="visible">True</property>
|
||||
<property name="pixbuf">unlocked.png</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">7</property>
|
||||
<property name="right_attach">8</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options"></property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">10</property>
|
||||
|
@ -1490,6 +1490,7 @@
|
||||
<child>
|
||||
<widget class="GtkToggleButton" id="private">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Indicates if the record is private</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NONE</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
|
Loading…
x
Reference in New Issue
Block a user