2642: Add or move the entry 'Patronymic' from the Name Editor to 'Prefered Names' area
svn: r11753
This commit is contained in:
parent
dfb3ee201b
commit
059a0deb02
@ -82,6 +82,8 @@ NOTE_HEIGHT = ('interface', 'note-height', 1)
|
||||
NOTE_WIDTH = ('interface', 'note-width', 1)
|
||||
PERSON_HEIGHT = ('interface', 'person-height', 1)
|
||||
PERSON_WIDTH = ('interface', 'person-width', 1)
|
||||
PREFIX_SUFFIX = ('interface', 'prefix-suffix', 1)
|
||||
PATRO_TITLE = ('interface', 'patro-title', 1)
|
||||
EVENT_HEIGHT = ('interface', 'event-height', 1)
|
||||
EVENT_WIDTH = ('interface', 'event-width', 1)
|
||||
EVENT_REF_HEIGHT = ('interface', 'event-ref-height', 1)
|
||||
@ -211,6 +213,8 @@ default_value = {
|
||||
NOTE_WIDTH : 700,
|
||||
PERSON_HEIGHT : 550,
|
||||
PERSON_WIDTH : 750,
|
||||
PREFIX_SUFFIX : 0,
|
||||
PATRO_TITLE : 0,
|
||||
EVENT_HEIGHT : 450,
|
||||
EVENT_WIDTH : 600,
|
||||
EVENT_REF_HEIGHT : 450,
|
||||
|
@ -76,10 +76,6 @@ _select_gender = ((True, False, False),
|
||||
(False, True, False),
|
||||
(False, False, True))
|
||||
|
||||
_use_patronymic = set(
|
||||
["ru", "RU", "ru_RU", "koi8r", "ru_koi8r", "russian", "Russian"]
|
||||
)
|
||||
|
||||
class EditPerson(EditPrimary):
|
||||
"""
|
||||
The EditPerson dialog is derived from the EditPrimary class.
|
||||
@ -88,7 +84,6 @@ class EditPerson(EditPrimary):
|
||||
|
||||
"""
|
||||
|
||||
use_patronymic = locale.getlocale(locale.LC_TIME)[0] in _use_patronymic
|
||||
QR_CATEGORY = CATEGORY_QR_PERSON
|
||||
|
||||
def __init__(self, dbstate, uistate, track, person, callback=None):
|
||||
@ -114,9 +109,13 @@ class EditPerson(EditPrimary):
|
||||
def get_menu_title(self):
|
||||
if self.obj.get_handle():
|
||||
name = name_displayer.display(self.obj)
|
||||
title = _('Person') + ': %s' % name
|
||||
title = _('Person: %(name)s') % {'name': name}
|
||||
else:
|
||||
title = _('New Person')
|
||||
name = name_displayer.display(self.obj)
|
||||
if name:
|
||||
title = _('New Person: %(name)s') % {'name': name}
|
||||
else:
|
||||
title = _('New Person')
|
||||
return title
|
||||
|
||||
def _local_init(self):
|
||||
@ -255,28 +254,23 @@ class EditPerson(EditPrimary):
|
||||
self.db.readonly,
|
||||
self.db.get_name_types())
|
||||
|
||||
if self.use_patronymic:
|
||||
self.prefix = widgets.MonitoredEntry(
|
||||
self.top.get_widget("prefix"),
|
||||
self.pname.set_patronymic,
|
||||
self.pname.get_patronymic,
|
||||
self.db.readonly)
|
||||
|
||||
prefix_label = self.top.get_widget('prefix_label')
|
||||
prefix_label.set_text(_('Patronymic:'))
|
||||
prefix_label.set_use_underline(True)
|
||||
else:
|
||||
self.prefix = widgets.MonitoredEntry(
|
||||
self.top.get_widget("prefix"),
|
||||
self.pname.set_surname_prefix,
|
||||
self.pname.get_surname_prefix,
|
||||
self.db.readonly)
|
||||
|
||||
self.suffix = widgets.MonitoredEntry(
|
||||
self.top.get_widget("suffix"),
|
||||
self.pname.set_suffix,
|
||||
self.pname.get_suffix,
|
||||
self.db.readonly)
|
||||
self.prefix_suffix = widgets.MonitoredComboSelectedEntry(
|
||||
self.top.get_widget("prefixcmb"),
|
||||
self.top.get_widget("prefixentry"),
|
||||
[_('Prefix'), _('Suffix')],
|
||||
[self.pname.set_surname_prefix, self.pname.set_suffix],
|
||||
[self.pname.get_surname_prefix, self.pname.get_suffix],
|
||||
default = Config.get(Config.PREFIX_SUFFIX),
|
||||
read_only = self.db.readonly)
|
||||
|
||||
self.patro_title = widgets.MonitoredComboSelectedEntry(
|
||||
self.top.get_widget("patrocmb"),
|
||||
self.top.get_widget("patroentry"),
|
||||
[_('Patronymic'), _('Title')],
|
||||
[self.pname.set_patronymic, self.pname.set_title],
|
||||
[self.pname.get_patronymic, self.pname.get_title],
|
||||
default = Config.get(Config.PATRO_TITLE),
|
||||
read_only = self.db.readonly)
|
||||
|
||||
self.call = widgets.MonitoredEntry(
|
||||
self.top.get_widget("call"),
|
||||
@ -290,12 +284,6 @@ class EditPerson(EditPrimary):
|
||||
self.pname.get_first_name,
|
||||
self.db.readonly)
|
||||
|
||||
self.title = widgets.MonitoredEntry(
|
||||
self.top.get_widget("title"),
|
||||
self.pname.set_title,
|
||||
self.pname.get_title,
|
||||
self.db.readonly)
|
||||
|
||||
self.surname_field = widgets.MonitoredEntry(
|
||||
self.top.get_widget("surname"),
|
||||
self.pname.set_surname,
|
||||
@ -309,6 +297,15 @@ class EditPerson(EditPrimary):
|
||||
self.obj.get_gramps_id,
|
||||
self.db.readonly)
|
||||
|
||||
#make sure title updates automatically
|
||||
for obj in [self.top.get_widget("surname"),
|
||||
self.top.get_widget("given_name"),
|
||||
self.top.get_widget("patroentry"),
|
||||
self.top.get_widget("call"),
|
||||
self.top.get_widget("prefixentry"),
|
||||
]:
|
||||
obj.connect('changed', self._changed_title)
|
||||
|
||||
def _create_tabbed_pages(self):
|
||||
"""
|
||||
Create the notebook tabs and insert them into the main window.
|
||||
@ -376,23 +373,26 @@ class EditPerson(EditPrimary):
|
||||
notebook.show_all()
|
||||
self.top.get_widget('vbox').pack_start(notebook, True)
|
||||
|
||||
def _changed_title(self, obj):
|
||||
"""
|
||||
callback to changes typed by user to the person name.
|
||||
Update the window title
|
||||
"""
|
||||
self.update_title(self.get_menu_title())
|
||||
|
||||
def name_callback(self):
|
||||
"""
|
||||
Callback if changes happen in the name tab.
|
||||
The Preferred Name is _NOT_ part of the name tab, but name tab allows
|
||||
reorder and hence setting of new primary name.
|
||||
"""
|
||||
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.prefix_suffix.reinit(
|
||||
[self.pname.set_surname_prefix, self.pname.set_suffix],
|
||||
[self.pname.get_surname_prefix, self.pname.get_suffix])
|
||||
|
||||
self.call.reinit(
|
||||
self.pname.set_call_name,
|
||||
@ -402,9 +402,9 @@ class EditPerson(EditPrimary):
|
||||
self.pname.set_first_name,
|
||||
self.pname.get_first_name)
|
||||
|
||||
self.title.reinit(
|
||||
self.pname.set_title,
|
||||
self.pname.get_title)
|
||||
self.patro_title.reinit(
|
||||
[self.pname.set_patronymic, self.pname.set_title],
|
||||
[self.pname.get_patronymic, self.pname.get_title])
|
||||
|
||||
self.surname_field.reinit(
|
||||
self.pname.set_surname,
|
||||
@ -740,7 +740,7 @@ class EditPerson(EditPrimary):
|
||||
This allows us to update the main form in response to any changes.
|
||||
|
||||
"""
|
||||
for obj in (self.suffix, self.prefix, self.given, self.title,
|
||||
for obj in (self.prefix_suffix, self.patro_title, self.given,
|
||||
self.ntype_field, self.surname_field, self.call):
|
||||
obj.update()
|
||||
|
||||
@ -855,6 +855,8 @@ class EditPerson(EditPrimary):
|
||||
(width, height) = self.window.get_size()
|
||||
Config.set(Config.PERSON_WIDTH, width)
|
||||
Config.set(Config.PERSON_HEIGHT, height)
|
||||
Config.set(Config.PREFIX_SUFFIX, self.prefix_suffix.active_key)
|
||||
Config.set(Config.PATRO_TITLE, self.patro_title.active_key)
|
||||
Config.sync()
|
||||
|
||||
|
||||
|
@ -379,6 +379,8 @@ class ManagedWindow:
|
||||
|
||||
"""
|
||||
self.isWindow = isWindow
|
||||
self.msg = msg
|
||||
self.titlelabel = title
|
||||
if self.isWindow :
|
||||
set_titles(self, title, text, msg)
|
||||
else :
|
||||
@ -386,6 +388,12 @@ class ManagedWindow:
|
||||
#closing the gtk.Window must also close ManagedWindow
|
||||
self.window = window
|
||||
self.window.connect('delete-event', self.close)
|
||||
|
||||
def update_title(self, text):
|
||||
if self.isWindow:
|
||||
set_titles(self, self.titlelabel, text, self.msg)
|
||||
else:
|
||||
set_titles(self.window, self.titlelabel, text, self.msg)
|
||||
|
||||
def build_menu_names(self, obj):
|
||||
return ('Undefined Menu','Undefined Submenu')
|
||||
|
@ -159,87 +159,6 @@
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="prefix_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Prefix:</property>
|
||||
<property name="use_underline">True</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>
|
||||
<property name="mnemonic_widget">prefix</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">5</property>
|
||||
<property name="right_attach">6</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="GtkLabel" id="label47">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Tit_le:</property>
|
||||
<property name="use_underline">True</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>
|
||||
<property name="mnemonic_widget">title</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="title">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">A title used to refer to the person, such as "Dr." or "Rev."</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<property name="width_chars">13</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label436">
|
||||
<property name="visible">True</property>
|
||||
@ -253,7 +172,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">gender</property>
|
||||
<property name="mnemonic_widget">gender</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
@ -272,6 +191,7 @@
|
||||
<child>
|
||||
<widget class="GtkEntry" id="surname">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">part of a person's name indicating the family to which the person belongs</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
@ -290,116 +210,6 @@
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label23">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">S_uffix:</property>
|
||||
<property name="use_underline">True</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>
|
||||
<property name="mnemonic_widget">suffix</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label437">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_ID:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</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>
|
||||
<property name="mnemonic_widget">gid</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="right_attach">4</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="label269">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Type:</property>
|
||||
<property name="use_underline">True</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>
|
||||
<property name="mnemonic_widget">ntype</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">5</property>
|
||||
<property name="right_attach">6</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="suffix">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">An optional suffix to the name, such as "Jr." or "III"</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<property name="width_chars">6</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">4</property>
|
||||
<property name="right_attach">5</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="gid">
|
||||
<property name="visible">True</property>
|
||||
@ -411,7 +221,7 @@
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<property name="width_chars">12</property>
|
||||
<property name="width_chars">7</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">4</property>
|
||||
@ -422,23 +232,6 @@
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkComboBoxEntry" id="ntype">
|
||||
<property name="visible">True</property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">6</property>
|
||||
<property name="right_attach">7</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label439">
|
||||
<property name="visible">True</property>
|
||||
@ -467,34 +260,6 @@
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label296">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>Preferred name</b></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</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>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">7</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="bottom_attach">1</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkFrame" id="frame5">
|
||||
<property name="width_request">124</property>
|
||||
@ -569,7 +334,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">marker</property>
|
||||
<property name="mnemonic_widget">marker</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
@ -598,7 +363,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">call</property>
|
||||
<property name="mnemonic_widget">call</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
@ -614,71 +379,6 @@
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox108">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">6</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="prefix">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">An optional prefix for the family name that is not used in sorting, such as "de" or "van"</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<property name="width_chars">10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button177">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Edit the preferred name</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_edit_name_clicked" last_modification_time="Tue, 28 Sep 2004 19:54:46 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image2261">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-edit</property>
|
||||
<property name="icon_size">4</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="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">6</property>
|
||||
<property name="right_attach">7</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="given_name">
|
||||
<property name="visible">True</property>
|
||||
@ -706,6 +406,7 @@
|
||||
<child>
|
||||
<widget class="GtkEntry" id="call">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Part of the Given name that is the normally used name. </property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
@ -724,25 +425,6 @@
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkComboBox" id="gender">
|
||||
<property name="visible">True</property>
|
||||
<property name="items" translatable="yes">Female
|
||||
Male
|
||||
Unknown</property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</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="GtkHBox" id="hbox109">
|
||||
<property name="visible">True</property>
|
||||
@ -801,6 +483,363 @@ Unknown</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox110">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label296">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>Preferred name</b></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</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>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label445">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b> - </b> </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</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>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button177">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Edit the preferred name</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_edit_name_clicked" last_modification_time="Tue, 28 Sep 2004 19:54:46 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image2261">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-edit</property>
|
||||
<property name="icon_size">4</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="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="bottom_attach">1</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label269">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Type:</property>
|
||||
<property name="use_underline">True</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>
|
||||
<property name="mnemonic_widget">ntype</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">5</property>
|
||||
<property name="right_attach">6</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="GtkComboBoxEntry" id="ntype">
|
||||
<property name="visible">True</property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">6</property>
|
||||
<property name="right_attach">7</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="prefixentry">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Prefix: An optional prefix for the family name that is not used in sorting, such as "de" or "van"
|
||||
Suffix: An optional suffix to the name, such as "Jr." or "III"</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<property name="width_chars">6</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox111">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">12</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkComboBox" id="gender">
|
||||
<property name="visible">True</property>
|
||||
<property name="items" translatable="yes">Female
|
||||
Male
|
||||
Unknown</property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label437">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_ID:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_RIGHT</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>
|
||||
<property name="mnemonic_widget">gid</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="patroentry">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Patronimic: component of a personal name based on the name of one's father, grandfather, ....
|
||||
Title: A title used to refer to the person, such as 'Dr.' or 'Rev.'</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">4</property>
|
||||
<property name="right_attach">5</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox112">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkComboBox" id="prefixcmb">
|
||||
<property name="visible">True</property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label446">
|
||||
<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_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">prefixentry</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox113">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkComboBox" id="patrocmb">
|
||||
<property name="visible">True</property>
|
||||
<property name="items" translatable="yes"></property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label447">
|
||||
<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_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">patroentry</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
@ -22,7 +22,8 @@
|
||||
|
||||
__all__ = ["MonitoredCheckbox", "MonitoredEntry", "MonitoredSpinButton",
|
||||
"MonitoredText", "MonitoredType", "MonitoredDataType",
|
||||
"MonitoredMenu", "MonitoredStrMenu", "MonitoredDate"]
|
||||
"MonitoredMenu", "MonitoredStrMenu", "MonitoredDate",
|
||||
"MonitoredComboSelectedEntry"]
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -31,6 +32,7 @@ __all__ = ["MonitoredCheckbox", "MonitoredEntry", "MonitoredSpinButton",
|
||||
#-------------------------------------------------------------------------
|
||||
import logging
|
||||
_LOG = logging.getLogger(".widgets.monitoredwidgets")
|
||||
import locale
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -479,3 +481,119 @@ class MonitoredDate:
|
||||
field.set_editable(not readonly)
|
||||
button.set_sensitive(not readonly)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# MonitoredComboSelectedEntry class
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class MonitoredComboSelectedEntry:
|
||||
"""
|
||||
A MonitoredEntry driven by a Combobox to select what the entry field
|
||||
works upon
|
||||
"""
|
||||
def __init__(self, objcombo, objentry, textlist, set_val_list,
|
||||
get_val_list, default=0, read_only=False):
|
||||
"""
|
||||
Create a MonitoredComboSelectedEntry
|
||||
Objcombo and objentry should be the gtk widgets to use
|
||||
textlist is the values that must be used in the combobox
|
||||
Every value needs an entry in set/get_val_list with the data retrieval
|
||||
and storage method of the data entered in the entry box
|
||||
Read_only should be true if no changes may be done
|
||||
default is the entry in the combobox that must be preselected
|
||||
"""
|
||||
self.objcombo = objcombo
|
||||
self.objentry = objentry
|
||||
self.set_val_list = set_val_list
|
||||
self.get_val_list = get_val_list
|
||||
|
||||
#fill the combobox, set on a specific entry
|
||||
self.mapping = dict([[i,x] for (i,x) in zip(range(len(textlist)),
|
||||
textlist)])
|
||||
|
||||
self.active_key = default
|
||||
self.active_index = 0
|
||||
|
||||
self.__fill()
|
||||
self.objcombo.clear()
|
||||
self.objcombo.set_model(self.store)
|
||||
cell = gtk.CellRendererText()
|
||||
self.objcombo.pack_start(cell, True)
|
||||
self.objcombo.add_attribute(cell, 'text', 1)
|
||||
self.objcombo.set_active(self.active_index)
|
||||
self.objcombo.connect('changed', self.on_combochange)
|
||||
|
||||
#fill the entrybox with required data
|
||||
self.entry_reinit()
|
||||
self.objentry.connect('changed', self._on_change_entry)
|
||||
|
||||
#set correct editable
|
||||
self.enable(not read_only)
|
||||
|
||||
def __fill(self):
|
||||
"""
|
||||
Fill combo with data
|
||||
"""
|
||||
self.store = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING)
|
||||
keys = self.mapping.keys()
|
||||
keys.sort(self.__by_value)
|
||||
index = 0
|
||||
for key in keys:
|
||||
self.store.append(row=[key, self.mapping[key]])
|
||||
if key == self.active_key:
|
||||
self.active_index = index
|
||||
index = index + 1
|
||||
|
||||
def __by_value(self, first, second):
|
||||
"""
|
||||
Method for sorting keys based on the values.
|
||||
"""
|
||||
fvalue = self.mapping[first]
|
||||
svalue = self.mapping[second]
|
||||
return locale.strcoll(fvalue, svalue)
|
||||
|
||||
def on_combochange(self, obj):
|
||||
"""
|
||||
callback for change on the combo, change active iter, update
|
||||
associated entrybox
|
||||
"""
|
||||
self.active_key = self.store.get_value(self.objcombo.get_active_iter(),
|
||||
0)
|
||||
self.entry_reinit()
|
||||
|
||||
def reinit(self, set_val_list, get_val_list):
|
||||
"""
|
||||
The interface is attached to another object, so the methods need to be
|
||||
reset.
|
||||
"""
|
||||
self.set_val_list = set_val_list
|
||||
self.get_val_list = get_val_list
|
||||
self.update()
|
||||
|
||||
def entry_reinit(self):
|
||||
"""
|
||||
Make the entry field show the value corresponding to the active key
|
||||
"""
|
||||
self.objentry.set_text(self.get_val_list[self.active_key]())
|
||||
self.set_val = self.set_val_list[self.active_key]
|
||||
self.get_val = self.get_val_list[self.active_key]
|
||||
|
||||
def _on_change_entry(self, obj):
|
||||
"""
|
||||
Callback when the entry field changes
|
||||
"""
|
||||
self.set_val_list[self.active_key](self.get_value_entry())
|
||||
|
||||
def get_value_entry(self):
|
||||
return unicode(self.objentry.get_text())
|
||||
|
||||
def enable(self, value):
|
||||
self.objentry.set_sensitive(value)
|
||||
self.objentry.set_editable(value)
|
||||
|
||||
def update(self):
|
||||
"""
|
||||
Method called when object changed without interface change
|
||||
Eg: name editor save brings you back to person editor that must update
|
||||
"""
|
||||
self.entry_reinit()
|
||||
|
Loading…
x
Reference in New Issue
Block a user