4376: A different Edit Person dialog

svn: r16196
This commit is contained in:
Benny Malengier 2010-11-16 20:12:26 +00:00
parent a581b61cfd
commit 864b3b6ef7
4 changed files with 394 additions and 376 deletions

View File

@ -22,13 +22,12 @@
<object class="GtkTable" id="table3">
<property name="visible">True</property>
<property name="n_rows">9</property>
<property name="n_columns">10</property>
<property name="column_spacing">6</property>
<property name="n_columns">9</property>
<child>
<object class="GtkLabel" id="label21">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">6</property>
<property name="xpad">3</property>
<property name="ypad">3</property>
<property name="label" translatable="yes">_Given:</property>
<property name="use_underline">True</property>
@ -36,10 +35,13 @@
<property name="mnemonic_widget">given_name</property>
</object>
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<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">GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
@ -53,12 +55,13 @@
<signal name="focus_out_event" handler="on_given_focus_out"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">6</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="left_attach">2</property>
<property name="right_attach">7</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
<property name="y_padding">3</property>
</packing>
</child>
@ -66,17 +69,18 @@
<object class="GtkLabel" id="label444">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">C_all Name:</property>
<property name="label" translatable="yes">C_all:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">call</property>
</object>
<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="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
@ -89,91 +93,81 @@
</object>
<packing>
<property name="left_attach">7</property>
<property name="right_attach">8</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="right_attach">9</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="titlelabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">6</property>
<property name="xpad">3</property>
<property name="ypad">3</property>
<property name="label" translatable="yes">T_itle:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">title</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
<object class="UndoableEntry" id="title">
<property name="width_request">35</property>
<property name="width_request">100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">A title used to refer to the person, such as 'Dr.' or 'Rev.'</property>
<property name="invisible_char">●</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Suffi_x:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">suffix</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
<object class="UndoableEntry" id="suffix">
<property name="width_request">35</property>
<property name="width_request">75</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">An optional suffix to the name, such as "Jr." or "III"</property>
<property name="invisible_char">●</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="left_attach">7</property>
<property name="right_attach">8</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Nick Name:</property>
<property name="xpad">3</property>
<property name="label" translatable="yes">_Nick:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">nickname</property>
</object>
<packing>
<property name="left_attach">6</property>
<property name="right_attach">7</property>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
@ -182,18 +176,19 @@
</child>
<child>
<object class="UndoableEntry" id="nickname">
<property name="width_request">75</property>
<property name="width_request">100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">A descriptive name given in place of or in addition to the official given name.</property>
<property name="invisible_char">●</property>
</object>
<packing>
<property name="left_attach">7</property>
<property name="right_attach">8</property>
<property name="left_attach">4</property>
<property name="right_attach">6</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
@ -222,98 +217,31 @@
</child>
</object>
<packing>
<property name="left_attach">8</property>
<property name="right_attach">10</property>
<property name="bottom_attach">5</property>
<property name="bottom_attach">4</property>
<property name="x_options"></property>
<property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="prefixlabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Prefix:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">prefix</property>
</object>
<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">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="UndoableEntry" id="prefix">
<property name="width_request">35</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">An optional prefix for the family that is not used in sorting, such as "de" or "van".</property>
<property name="invisible_char">●</property>
</object>
<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">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="surnamelabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Surname:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">surname</property>
</object>
<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="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="UndoableEntry" id="surname">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">Part of a person's name indicating the family to which the person belongs</property>
<property name="invisible_char">●</property>
</object>
<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">GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label269">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">3</property>
<property name="ypad">3</property>
<property name="label" translatable="yes">_Type:</property>
<property name="use_underline">True</property>
<property name="justify">center</property>
<property name="mnemonic_widget">ntype</property>
</object>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<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">GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
@ -323,83 +251,13 @@
<property name="tooltip_text" translatable="yes">An identification of what type of Name this is, eg. Birth Name, Married Name.</property>
</object>
<packing>
<property name="left_attach">5</property>
<property name="right_attach">6</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="left_attach">7</property>
<property name="right_attach">9</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label436">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">6</property>
<property name="label" translatable="yes">G_ender:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">gender</property>
</object>
<packing>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="UndoableEntry" id="gid">
<property name="width_request">35</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">A unique ID for the person.</property>
<property name="invisible_char">●</property>
<property name="width_chars">6</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="y_options"></property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label437">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_ID:</property>
<property name="use_underline">True</property>
<property name="justify">right</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="gender">
<property name="width_request">35</property>
<property name="visible">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext2"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
@ -414,132 +272,51 @@
</child>
</object>
<packing>
<property name="right_attach">10</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="right_attach">9</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_SHRINK</property>
<property name="y_options">GTK_EXPAND | GTK_SHRINK</property>
<property name="x_padding">6</property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="originlabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">O_rigin:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">cmborigin</property>
</object>
<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">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkComboBoxEntry" id="cmborigin">
<property name="width_request">75</property>
<property name="visible">True</property>
<property name="tooltip_text" translatable="yes">The origin of this family name for this family, eg 'Inherited' or 'Patronymic'.</property>
</object>
<packing>
<property name="left_attach">7</property>
<property name="right_attach">8</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkButton" id="multsurnamebtn">
<property name="label" translatable="yes">_Multiple Surnames</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Indicate that the surname consists of different parts. Every surname has it's own prefix and a possible connector to the next surname. Eg., the surname Ramón y Cajal can be stored as Ramón, which is inherited from the father, the connector y, and Cajal, which is inherited from the mother.</property>
<property name="tooltip_text" translatable="yes">Use Multiple Surnames
Indicate that the surname consists of different parts. Every surname has it's own prefix and a possible connector to the next surname. Eg., the surname Ramón y Cajal can be stored as Ramón, which is inherited from the father, the connector y, and Cajal, which is inherited from the mother.</property>
<property name="image">image2</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="right_attach">2</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
<property name="left_attach">8</property>
<property name="right_attach">9</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options"></property>
<property name="x_padding">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="surnlabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="ypad">3</property>
<property name="label" translatable="yes">&lt;b&gt;Multiple Surnames&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="right_attach">2</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="right_attach">3</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_SHRINK</property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">6</property>
<property name="label" translatable="yes">Tags:</property>
</object>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<child>
<object class="GtkLabel" id="tag_label">
<property name="visible">True</property>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="tag_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Edit the tag list</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">5</property>
<property name="right_attach">10</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
@ -574,11 +351,12 @@
</child>
</object>
<packing>
<property name="right_attach">2</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
<property name="right_attach">9</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
@ -596,80 +374,242 @@
<property name="position">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">5</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox4">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="surnamelabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Surname:</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="padding">3</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="UndoableEntry" id="prefix">
<property name="width_request">70</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">An optional prefix for the family that is not used in sorting, such as "de" or "van".</property>
<property name="invisible_char">●</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="UndoableEntry" id="surname">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">Part of a person's name indicating the family to which the person belongs</property>
<property name="invisible_char">●</property>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="right_attach">6</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_padding">3</property>
<property name="y_padding">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="full_name">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">3</property>
<property name="ypad">3</property>
<property name="use_markup">True</property>
<property name="ellipsize">end</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">6</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options">GTK_FILL</property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="editnamebtn">
<property name="label" translatable="yes">More Name Details</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Go to Name Editor to add more information about this name</property>
<property name="image">image1</property>
<signal name="clicked" handler="on_edit_name_clicked"/>
</object>
<packing>
<property name="left_attach">8</property>
<property name="right_attach">9</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox5">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="originlabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">O_rigin:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">cmborigin</property>
</object>
<packing>
<property name="expand">False</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxEntry" id="cmborigin">
<property name="width_request">75</property>
<property name="visible">True</property>
<property name="tooltip_text" translatable="yes">The origin of this family name for this family, eg 'Inherited' or 'Patronymic'.</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="right_attach">4</property>
<property name="x_options">GTK_FILL</property>
<property name="left_attach">6</property>
<property name="right_attach">8</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="y_options"></property>
<property name="x_padding">3</property>
</packing>
</child>
<child>
<placeholder/>
<object class="GtkHBox" id="hbox6">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label436">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">6</property>
<property name="label" translatable="yes">G_ender:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">gender</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<placeholder/>
<object class="GtkComboBox" id="gender">
<property name="width_request">85</property>
<property name="visible">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext2"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
<object class="GtkLabel" id="label437">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_ID:</property>
<property name="use_underline">True</property>
<property name="justify">right</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<placeholder/>
<object class="UndoableEntry" id="gid">
<property name="width_request">75</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">A unique ID for the person.</property>
<property name="invisible_char">●</property>
<property name="width_chars">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">3</property>
</packing>
</child>
<child>
<placeholder/>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="xpad">6</property>
<property name="label" translatable="yes">Tags:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">4</property>
</packing>
</child>
<child>
<placeholder/>
<object class="GtkLabel" id="tag_label">
<property name="visible">True</property>
</object>
<packing>
<property name="position">5</property>
</packing>
</child>
<child>
<placeholder/>
<object class="GtkButton" id="tag_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">end</property>
<property name="position">6</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</object>
<packing>
<property name="right_attach">9</property>
<property name="top_attach">8</property>
<property name="bottom_attach">9</property>
<property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
<placeholder/>
@ -792,4 +732,8 @@
<property name="visible">True</property>
<property name="stock">gtk-edit</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
</object>
</interface>

View File

@ -79,8 +79,9 @@ class SurnameTab(EmbeddedList):
_column_combo = (_('Origin'), -1, 150, 3) # name, sort, width, modelcol
_column_toggle = (_('Primary'), -1, 80, 4)
def __init__(self, dbstate, uistate, track, name):
def __init__(self, dbstate, uistate, track, name, on_change=None):
self.obj = name
self.on_change = on_change
self.curr_col = -1
self.curr_cellr = None
self.curr_celle = None
@ -187,8 +188,9 @@ class SurnameTab(EmbeddedList):
"""
new_map = self._get_surn_from_model()
self.obj.set_surname_list(new_map)
# update name in title name editor
# TODO
# update name in previews
if self.on_change:
self.on_change()
def column_order(self):
# order of columns for EmbeddedList. Only the text columns here

View File

@ -41,6 +41,7 @@ from gen.ggettext import sgettext as _
#
#-------------------------------------------------------------------------
import gtk
import pango
#-------------------------------------------------------------------------
#
@ -86,7 +87,7 @@ class SingSurn(object):
self.top = gladeobj
def hide_all(self):
self.top.get_object('prefixlabel').hide()
#self.top.get_object('prefixlabel').hide()
self.top.get_object('prefix').hide()
self.top.get_object('surnamelabel').hide()
self.top.get_object('surname').hide()
@ -97,7 +98,7 @@ class SingSurn(object):
self.top.get_object('surnlabel').show()
def show_all(self):
self.top.get_object('prefixlabel').show()
#self.top.get_object('prefixlabel').show()
self.top.get_object('prefix').show()
self.top.get_object('surnamelabel').show()
self.top.get_object('surname').show()
@ -153,6 +154,10 @@ class EditPerson(EditPrimary):
title = _('New Person')
return title
def get_preview_name(self):
prevname = name_displayer.display(self.obj)
return prevname
def _local_init(self):
"""
Performs basic initialization, including setting up widgets and the
@ -177,12 +182,14 @@ class EditPerson(EditPrimary):
self.get_menu_title())
self.obj_photo = self.top.get_object("personPix")
self.frame_photo = self.top.get_object("frame5")
self.eventbox = self.top.get_object("eventbox1")
self.singsurnfr = SingSurn(self.top)
self.multsurnfr = self.top.get_object("hboxmultsurnames")
self.singlesurn_active = True
self.surntab = SurnameTab(self.dbstate, self.uistate, self.track,
self.obj.get_primary_name())
self.obj.get_primary_name(),
on_change=self._changed_name)
self.top.get_object("hboxmultsurnames").pack_start(self.surntab)
self.set_contexteventbox(self.top.get_object("eventboxtop"))
@ -199,6 +206,7 @@ class EditPerson(EditPrimary):
"""
self.load_person_image()
self.given.grab_focus()
self._changed_name(None)
if len(self.obj.get_primary_name().get_surname_list()) > 1:
self.singsurnfr.hide_all()
@ -347,10 +355,11 @@ class EditPerson(EditPrimary):
self.pname.get_title,
self.db.readonly)
self.suffix = widgets.MonitoredEntry(
self.suffix = widgets.MonitoredEntryIndicator(
self.top.get_object("suffix"),
self.pname.set_suffix,
self.pname.get_suffix,
_('suffix'),
self.db.readonly)
self.nick = widgets.MonitoredEntry(
@ -367,10 +376,11 @@ class EditPerson(EditPrimary):
self.db.readonly,
autolist=self.db.get_surname_list() if not self.db.readonly else [])
self.prefix = widgets.MonitoredEntry(
self.prefix = widgets.MonitoredEntryIndicator(
self.top.get_object("prefix"),
self.pname.get_primary_surname().set_prefix,
self.pname.get_primary_surname().get_prefix,
_('prefix'),
self.db.readonly)
self.ortype_field = widgets.MonitoredDataType(
@ -406,6 +416,10 @@ class EditPerson(EditPrimary):
]:
obj.connect('changed', self._changed_name)
self.preview_name = self.top.get_object("full_name")
self.preview_name.modify_font(pango.FontDescription('sans bold 12'))
def _create_tabbed_pages(self):
"""
Create the notebook tabs and insert them into the main window.
@ -498,12 +512,13 @@ class EditPerson(EditPrimary):
notebook.show_all()
self.top.get_object('vbox').pack_start(notebook, True)
def _changed_name(self, obj):
def _changed_name(self, *obj):
"""
callback to changes typed by user to the person name.
Update the window title, and default name in name tab
"""
self.update_title(self.get_menu_title())
self.preview_name.set_text(self.get_preview_name())
self.name_list.update_defname()
def name_callback(self):
@ -709,6 +724,7 @@ class EditPerson(EditPrimary):
self.load_rect = rectangle
if path is None:
self.obj_photo.hide()
self.frame_photo.hide_all()
else:
try:
i = gtk.gdk.pixbuf_new_from_file(path)
@ -734,8 +750,10 @@ class EditPerson(EditPrimary):
i = i.scale_simple(x, y, gtk.gdk.INTERP_BILINEAR)
self.obj_photo.set_from_pixbuf(i)
self.obj_photo.show()
self.frame_photo.show_all()
except:
self.obj_photo.hide()
self.frame_photo.hide_all()
def _check_for_unknown_gender(self):
if self.obj.get_gender() == gen.lib.Person.UNKNOWN:
@ -876,6 +894,8 @@ class EditPerson(EditPrimary):
"""
self.singsurnfr.hide_all()
self.singlesurn_active = False
#update multsurnfr for possible changes
self.__renewmultsurnames()
self.multsurnfr.show_all()
def _update_name(self, name):
@ -891,12 +911,7 @@ class EditPerson(EditPrimary):
self.ortype_field):
obj.update()
#remove present surname tab, and put new one
msurhbox = self.top.get_object("hboxmultsurnames")
msurhbox.remove(self.surntab)
self.surntab = SurnameTab(self.dbstate, self.uistate, self.track,
self.obj.get_primary_name())
msurhbox.pack_start(self.surntab)
self.__renewmultsurnames()
if len(self.obj.get_primary_name().get_surname_list()) == 1:
self.singlesurn_active = True
@ -910,6 +925,19 @@ class EditPerson(EditPrimary):
self.singsurnfr.hide_all()
self.multsurnfr.show_all()
def __renewmultsurnames(self):
"""Update mult surnames section with what is presently the
correct surname.
It is easier to recreate the entire mult surnames GUI than
changing what has changed visually.
"""
#remove present surname tab, and put new one
msurhbox = self.top.get_object("hboxmultsurnames")
msurhbox.remove(self.surntab)
self.surntab = SurnameTab(self.dbstate, self.uistate, self.track,
self.obj.get_primary_name())
msurhbox.pack_start(self.surntab)
def load_person_image(self):
"""
Load the primary image into the main form if it exists.

View File

@ -21,7 +21,8 @@
# $Id$
__all__ = ["MonitoredCheckbox", "MonitoredEntry", "MonitoredSpinButton",
__all__ = ["MonitoredCheckbox", "MonitoredEntry",
"MonitoredEntryIndicator", "MonitoredSpinButton",
"MonitoredText", "MonitoredType", "MonitoredDataType",
"MonitoredMenu", "MonitoredStrMenu", "MonitoredDate",
"MonitoredComboSelectedEntry", "MonitoredTagList"]
@ -148,6 +149,49 @@ class MonitoredEntry(object):
if self.get_val() is not None:
self.obj.set_text(self.get_val())
#-------------------------------------------------------------------------
#
# MonitoredEntryIndicator class
#
#-------------------------------------------------------------------------
class MonitoredEntryIndicator(MonitoredEntry):
"""
Show an Entry box with an indicator in it that disappears when
entry becomes active
"""
def __init__(self, obj, set_val, get_val, indicator, read_only=False,
autolist=None, changed=None):
MonitoredEntry.__init__(self, obj, set_val, get_val, read_only,
autolist, changed)
if get_val():
self.indicatorshown = False
else:
self.indicatorshown = True
self.indicator = indicator
self.obj.set_text(indicator)
self.obj.modify_text(gtk.STATE_NORMAL,
gtk.gdk.color_parse('grey'))
self.obj.modify_font(pango.FontDescription('sans italic'))
self.fockey = self.obj.connect('focus-in-event',
self._obj_focus)
def _on_change(self, obj):
if not self.indicatorshown:
self.set_val(unicode(obj.get_text()))
if self.changed:
self.changed(obj)
def _obj_focus(self, widg, eve):
"""
callback for when prefix obtains focus
"""
self.set_text('')
self.obj.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
self.obj.modify_font(pango.FontDescription('normal'))
self.obj.disconnect(self.fockey)
self.indicatorshown = False
return False
#-------------------------------------------------------------------------
#
# MonitoredSpinButton class