* src/Editors/_EditPerson.py: add name callback to update screen
after a primary name change * src/DisplayTabs/_NameEmbedList.py: add primary name change menu item * src/GrampsWidgets.py: add reinitalization method to handle change of associated data item svn: r7268
This commit is contained in:
parent
259d0678ae
commit
e2daccf0ae
@ -2,6 +2,11 @@
|
|||||||
* src/const.py.in: Disable thumbnailer for Windows.
|
* src/const.py.in: Disable thumbnailer for Windows.
|
||||||
|
|
||||||
2006-08-25 Don Allingham <don@gramps-project.org>
|
2006-08-25 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/Editors/_EditPerson.py: add name callback to update screen
|
||||||
|
after a primary name change
|
||||||
|
* src/DisplayTabs/_NameEmbedList.py: add primary name change menu item
|
||||||
|
* src/GrampsWidgets.py: add reinitalization method to handle change of
|
||||||
|
associated data item
|
||||||
* src/DisplayModels/_MediaModel.py (MediaModel.sort_date): add
|
* src/DisplayModels/_MediaModel.py (MediaModel.sort_date): add
|
||||||
sorting by date value instead of by text string
|
sorting by date value instead of by text string
|
||||||
|
|
||||||
|
@ -20,6 +20,13 @@
|
|||||||
|
|
||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Python classes
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
import gtk
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Python classes
|
# Python classes
|
||||||
@ -53,8 +60,11 @@ class NameEmbedList(EmbeddedList):
|
|||||||
(_('Type'), 1, 100),
|
(_('Type'), 1, 100),
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, dbstate, uistate, track, data):
|
def __init__(self, dbstate, uistate, track, data, person, callback):
|
||||||
self.data = data
|
self.data = data
|
||||||
|
self.person = person
|
||||||
|
self.callback = callback
|
||||||
|
|
||||||
EmbeddedList.__init__(self, dbstate, uistate, track,
|
EmbeddedList.__init__(self, dbstate, uistate, track,
|
||||||
_('Names'), NameModel)
|
_('Names'), NameModel)
|
||||||
|
|
||||||
@ -64,6 +74,24 @@ class NameEmbedList(EmbeddedList):
|
|||||||
def column_order(self):
|
def column_order(self):
|
||||||
return ((1, 0), (1, 1))
|
return ((1, 0), (1, 1))
|
||||||
|
|
||||||
|
def get_popup_menu_items(self):
|
||||||
|
return [
|
||||||
|
(True, gtk.STOCK_ADD, self.add_button_clicked),
|
||||||
|
(True, gtk.STOCK_EDIT, self.edit_button_clicked),
|
||||||
|
(True, gtk.STOCK_REMOVE, self.del_button_clicked),
|
||||||
|
(False, _('Set as default name'), self.name_button_clicked),
|
||||||
|
]
|
||||||
|
|
||||||
|
def name_button_clicked(self, obj):
|
||||||
|
name = self.get_selected()
|
||||||
|
pname = self.person.get_primary_name()
|
||||||
|
if name:
|
||||||
|
self.person.set_primary_name(name)
|
||||||
|
self.data.remove(name)
|
||||||
|
self.data.append(pname)
|
||||||
|
self.rebuild()
|
||||||
|
self.callback()
|
||||||
|
|
||||||
def add_button_clicked(self, obj):
|
def add_button_clicked(self, obj):
|
||||||
name = RelLib.Name()
|
name = RelLib.Name()
|
||||||
try:
|
try:
|
||||||
|
@ -175,13 +175,6 @@ class EditPerson(EditPrimary):
|
|||||||
),
|
),
|
||||||
self.db.readonly)
|
self.db.readonly)
|
||||||
|
|
||||||
self.ntype_field = GrampsWidgets.MonitoredDataType(
|
|
||||||
self.top.get_widget("ntype"),
|
|
||||||
self.pname.set_type,
|
|
||||||
self.pname.get_type,
|
|
||||||
self.db.readonly,
|
|
||||||
self.db.get_name_types())
|
|
||||||
|
|
||||||
self.marker = GrampsWidgets.MonitoredDataType(
|
self.marker = GrampsWidgets.MonitoredDataType(
|
||||||
self.top.get_widget('marker'),
|
self.top.get_widget('marker'),
|
||||||
self.obj.set_marker,
|
self.obj.set_marker,
|
||||||
@ -190,6 +183,13 @@ class EditPerson(EditPrimary):
|
|||||||
self.db.get_marker_types(),
|
self.db.get_marker_types(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.ntype_field = GrampsWidgets.MonitoredDataType(
|
||||||
|
self.top.get_widget("ntype"),
|
||||||
|
self.pname.set_type,
|
||||||
|
self.pname.get_type,
|
||||||
|
self.db.readonly,
|
||||||
|
self.db.get_name_types())
|
||||||
|
|
||||||
if self.use_patronymic:
|
if self.use_patronymic:
|
||||||
self.prefix = GrampsWidgets.MonitoredEntry(
|
self.prefix = GrampsWidgets.MonitoredEntry(
|
||||||
self.top.get_widget("prefix"),
|
self.top.get_widget("prefix"),
|
||||||
@ -260,7 +260,8 @@ class EditPerson(EditPrimary):
|
|||||||
self.name_list = self._add_tab(
|
self.name_list = self._add_tab(
|
||||||
notebook,
|
notebook,
|
||||||
NameEmbedList(self.dbstate, self.uistate, self.track,
|
NameEmbedList(self.dbstate, self.uistate, self.track,
|
||||||
self.obj.get_alternate_names()))
|
self.obj.get_alternate_names(), self.obj,
|
||||||
|
self.name_callback))
|
||||||
|
|
||||||
self.srcref_list = self._add_tab(
|
self.srcref_list = self._add_tab(
|
||||||
notebook,
|
notebook,
|
||||||
@ -306,6 +307,40 @@ class EditPerson(EditPrimary):
|
|||||||
notebook.show_all()
|
notebook.show_all()
|
||||||
self.top.get_widget('vbox').pack_start(notebook, True)
|
self.top.get_widget('vbox').pack_start(notebook, True)
|
||||||
|
|
||||||
|
def name_callback(self):
|
||||||
|
self.pname = self.obj.get_primary_name()
|
||||||
|
|
||||||
|
self.ntype_field.reinit(self.pname.set_type, self.pname.get_type)
|
||||||
|
|
||||||
|
if self.use_patronymic:
|
||||||
|
self.prefix.reinit(
|
||||||
|
self.pname.set_patronymic,
|
||||||
|
self.pname.get_patronymic)
|
||||||
|
else:
|
||||||
|
self.prefix.reinit(
|
||||||
|
self.pname.set_surname_prefix,
|
||||||
|
self.pname.get_surname_prefix)
|
||||||
|
|
||||||
|
self.suffix.reinit(
|
||||||
|
self.pname.set_suffix,
|
||||||
|
self.pname.get_suffix)
|
||||||
|
|
||||||
|
self.call.reinit(
|
||||||
|
self.pname.set_call_name,
|
||||||
|
self.pname.get_call_name)
|
||||||
|
|
||||||
|
self.given.reinit(
|
||||||
|
self.pname.set_first_name,
|
||||||
|
self.pname.get_first_name)
|
||||||
|
|
||||||
|
self.title.reinit(
|
||||||
|
self.pname.set_title,
|
||||||
|
self.pname.get_title)
|
||||||
|
|
||||||
|
self.surname_field.reinit(
|
||||||
|
self.pname.set_surname,
|
||||||
|
self.pname.get_surname)
|
||||||
|
|
||||||
def build_menu_names(self, person):
|
def build_menu_names(self, person):
|
||||||
"""
|
"""
|
||||||
Provides the information need by the base class to define the
|
Provides the information need by the base class to define the
|
||||||
|
@ -303,6 +303,11 @@ class MonitoredEntry:
|
|||||||
if autolist:
|
if autolist:
|
||||||
AutoComp.fill_entry(obj,autolist)
|
AutoComp.fill_entry(obj,autolist)
|
||||||
|
|
||||||
|
def reinit(self, set_val, get_val):
|
||||||
|
self.set_val = set_val
|
||||||
|
self.get_val = get_val
|
||||||
|
self.update()
|
||||||
|
|
||||||
def set_text(self, text):
|
def set_text(self, text):
|
||||||
self.obj.set_text(text)
|
self.obj.set_text(text)
|
||||||
|
|
||||||
@ -369,6 +374,11 @@ class MonitoredType:
|
|||||||
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 reinit(self, set_val, get_val):
|
||||||
|
self.set_val = set_val
|
||||||
|
self.get_val = get_val
|
||||||
|
self.update()
|
||||||
|
|
||||||
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())
|
||||||
@ -404,6 +414,11 @@ class MonitoredDataType:
|
|||||||
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 reinit(self, set_val, get_val):
|
||||||
|
self.set_val = set_val
|
||||||
|
self.get_val = get_val
|
||||||
|
self.update()
|
||||||
|
|
||||||
def fix_value(self, value):
|
def fix_value(self, value):
|
||||||
if value[0] == self.get_val().get_custom():
|
if value[0] == self.get_val().get_custom():
|
||||||
return value
|
return value
|
||||||
|
Loading…
Reference in New Issue
Block a user