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"> <object class="GtkTable" id="table3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">9</property> <property name="n_rows">9</property>
<property name="n_columns">10</property> <property name="n_columns">9</property>
<property name="column_spacing">6</property>
<child> <child>
<object class="GtkLabel" id="label21"> <object class="GtkLabel" id="label21">
<property name="visible">True</property> <property name="visible">True</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<property name="xpad">6</property> <property name="xpad">3</property>
<property name="ypad">3</property> <property name="ypad">3</property>
<property name="label" translatable="yes">_Given:</property> <property name="label" translatable="yes">_Given:</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
@ -36,10 +35,13 @@
<property name="mnemonic_widget">given_name</property> <property name="mnemonic_widget">given_name</property>
</object> </object>
<packing> <packing>
<property name="top_attach">1</property> <property name="left_attach">1</property>
<property name="bottom_attach">2</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="x_options">GTK_FILL</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -53,12 +55,13 @@
<signal name="focus_out_event" handler="on_given_focus_out"/> <signal name="focus_out_event" handler="on_given_focus_out"/>
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">2</property>
<property name="right_attach">6</property> <property name="right_attach">7</property>
<property name="top_attach">1</property> <property name="top_attach">3</property>
<property name="bottom_attach">2</property> <property name="bottom_attach">4</property>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property> <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
<property name="y_padding">3</property> <property name="y_padding">3</property>
</packing> </packing>
</child> </child>
@ -66,17 +69,18 @@
<object class="GtkLabel" id="label444"> <object class="GtkLabel" id="label444">
<property name="visible">True</property> <property name="visible">True</property>
<property name="xalign">0</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="use_underline">True</property>
<property name="mnemonic_widget">call</property> <property name="mnemonic_widget">call</property>
</object> </object>
<packing> <packing>
<property name="left_attach">6</property> <property name="left_attach">6</property>
<property name="right_attach">7</property> <property name="right_attach">7</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
<property name="bottom_attach">2</property> <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property> <property name="x_options">GTK_FILL</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -89,91 +93,81 @@
</object> </object>
<packing> <packing>
<property name="left_attach">7</property> <property name="left_attach">7</property>
<property name="right_attach">8</property> <property name="right_attach">9</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
<property name="bottom_attach">2</property> <property name="bottom_attach">3</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="titlelabel"> <object class="GtkLabel" id="titlelabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<property name="xpad">6</property> <property name="xpad">3</property>
<property name="ypad">3</property> <property name="ypad">3</property>
<property name="label" translatable="yes">T_itle:</property> <property name="label" translatable="yes">T_itle:</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="mnemonic_widget">title</property> <property name="mnemonic_widget">title</property>
</object> </object>
<packing> <packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property> <property name="top_attach">2</property>
<property name="bottom_attach">3</property> <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property> <property name="x_options">GTK_FILL</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="UndoableEntry" id="title"> <object class="UndoableEntry" id="title">
<property name="width_request">35</property> <property name="width_request">100</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">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="tooltip_text" translatable="yes">A title used to refer to the person, such as 'Dr.' or 'Rev.'</property>
<property name="invisible_char">●</property> <property name="invisible_char">●</property>
</object> </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> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="right_attach">3</property> <property name="right_attach">3</property>
<property name="top_attach">2</property> <property name="top_attach">2</property>
<property name="bottom_attach">3</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="y_options"></property>
<property name="x_padding">3</property>
<property name="y_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="UndoableEntry" id="suffix"> <object class="UndoableEntry" id="suffix">
<property name="width_request">35</property> <property name="width_request">75</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">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="tooltip_text" translatable="yes">An optional suffix to the name, such as "Jr." or "III"</property>
<property name="invisible_char">●</property> <property name="invisible_char">●</property>
</object> </object>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">7</property>
<property name="right_attach">4</property> <property name="right_attach">8</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
<property name="bottom_attach">3</property> <property name="bottom_attach">4</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="label6"> <object class="GtkLabel" id="label6">
<property name="visible">True</property> <property name="visible">True</property>
<property name="xalign">0</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="use_underline">True</property>
<property name="mnemonic_widget">nickname</property> <property name="mnemonic_widget">nickname</property>
</object> </object>
<packing> <packing>
<property name="left_attach">6</property> <property name="left_attach">3</property>
<property name="right_attach">7</property> <property name="right_attach">4</property>
<property name="top_attach">2</property> <property name="top_attach">2</property>
<property name="bottom_attach">3</property> <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property> <property name="x_options">GTK_FILL</property>
@ -182,18 +176,19 @@
</child> </child>
<child> <child>
<object class="UndoableEntry" id="nickname"> <object class="UndoableEntry" id="nickname">
<property name="width_request">75</property> <property name="width_request">100</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">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="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> <property name="invisible_char">●</property>
</object> </object>
<packing> <packing>
<property name="left_attach">7</property> <property name="left_attach">4</property>
<property name="right_attach">8</property> <property name="right_attach">6</property>
<property name="top_attach">2</property> <property name="top_attach">2</property>
<property name="bottom_attach">3</property> <property name="bottom_attach">3</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -222,98 +217,31 @@
</child> </child>
</object> </object>
<packing> <packing>
<property name="left_attach">8</property> <property name="bottom_attach">4</property>
<property name="right_attach">10</property>
<property name="bottom_attach">5</property>
<property name="x_options"></property> <property name="x_options"></property>
<property name="y_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property>
</packing> <property name="x_padding">3</property>
</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>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="label269"> <object class="GtkLabel" id="label269">
<property name="visible">True</property> <property name="visible">True</property>
<property name="xalign">0</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="label" translatable="yes">_Type:</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="justify">center</property> <property name="justify">center</property>
<property name="mnemonic_widget">ntype</property> <property name="mnemonic_widget">ntype</property>
</object> </object>
<packing> <packing>
<property name="left_attach">4</property> <property name="left_attach">6</property>
<property name="right_attach">5</property> <property name="right_attach">7</property>
<property name="top_attach">2</property> <property name="top_attach">1</property>
<property name="bottom_attach">3</property> <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property> <property name="x_options">GTK_FILL</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">3</property>
</packing> </packing>
</child> </child>
<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> <property name="tooltip_text" translatable="yes">An identification of what type of Name this is, eg. Birth Name, Married Name.</property>
</object> </object>
<packing> <packing>
<property name="left_attach">5</property> <property name="left_attach">7</property>
<property name="right_attach">6</property> <property name="right_attach">9</property>
<property name="top_attach">2</property> <property name="top_attach">1</property>
<property name="bottom_attach">3</property> <property name="bottom_attach">2</property>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property> <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
<property name="y_options"></property> <property name="y_options"></property>
</packing> <property name="x_padding">3</property>
</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>
</packing> </packing>
</child> </child>
<child> <child>
@ -414,132 +272,51 @@
</child> </child>
</object> </object>
<packing> <packing>
<property name="right_attach">10</property> <property name="right_attach">9</property>
<property name="top_attach">5</property> <property name="top_attach">6</property>
<property name="bottom_attach">6</property> <property name="bottom_attach">7</property>
<property name="x_options">GTK_FILL</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="x_padding">6</property>
<property name="y_padding">3</property> <property name="y_padding">3</property>
</packing> </packing>
</child> </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> <child>
<object class="GtkButton" id="multsurnamebtn"> <object class="GtkButton" id="multsurnamebtn">
<property name="label" translatable="yes">_Multiple Surnames</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">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> <property name="use_underline">True</property>
</object> </object>
<packing> <packing>
<property name="right_attach">2</property> <property name="left_attach">8</property>
<property name="top_attach">3</property> <property name="right_attach">9</property>
<property name="bottom_attach">4</property> <property name="top_attach">4</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property> <property name="bottom_attach">5</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options"></property> <property name="y_options"></property>
<property name="x_padding">6</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="surnlabel"> <object class="GtkLabel" id="surnlabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="xalign">0</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="label" translatable="yes">&lt;b&gt;Multiple Surnames&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</object> </object>
<packing> <packing>
<property name="right_attach">2</property> <property name="right_attach">3</property>
<property name="top_attach">4</property> <property name="top_attach">5</property>
<property name="bottom_attach">5</property> <property name="bottom_attach">6</property>
<property name="x_options">GTK_FILL</property> <property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_SHRINK</property> <property name="y_options">GTK_SHRINK</property>
<property name="y_padding">3</property> <property name="y_padding">3</property>
</packing> </packing>
</child> </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> <child>
<object class="GtkHBox" id="hbox1"> <object class="GtkHBox" id="hbox1">
<property name="visible">True</property> <property name="visible">True</property>
@ -574,11 +351,12 @@
</child> </child>
</object> </object>
<packing> <packing>
<property name="right_attach">2</property> <property name="right_attach">9</property>
<property name="top_attach">6</property> <property name="top_attach">7</property>
<property name="bottom_attach">7</property> <property name="bottom_attach">8</property>
<property name="x_options">GTK_FILL</property> <property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property>
<property name="y_padding">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -597,79 +375,241 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="editnamebtn"> <placeholder/>
<property name="label" translatable="yes">More Name Details</property> </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="visible">True</property>
<property name="can_focus">True</property> <property name="xalign">0</property>
<property name="receives_default">True</property> <property name="label" translatable="yes">_Surname:</property>
<property name="image">image1</property> <property name="use_underline">True</property>
<signal name="clicked" handler="on_edit_name_clicked"/>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="pack_type">end</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="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="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> <property name="position">1</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing> <packing>
<property name="right_attach">4</property> <property name="left_attach">6</property>
<property name="x_options">GTK_FILL</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> </packing>
</child> </child>
<child> <child>
<placeholder/> <object class="GtkHBox" id="hbox6">
</child> <property name="visible">True</property>
<child> <property name="spacing">6</property>
<placeholder/> <child>
</child> <object class="GtkLabel" id="label436">
<child> <property name="visible">True</property>
<placeholder/> <property name="xalign">0</property>
</child> <property name="xpad">6</property>
<child> <property name="label" translatable="yes">G_ender:</property>
<placeholder/> <property name="use_underline">True</property>
</child> <property name="mnemonic_widget">gender</property>
<child> </object>
<placeholder/> <packing>
</child> <property name="expand">False</property>
<child> <property name="position">0</property>
<placeholder/> </packing>
</child> </child>
<child> <child>
<placeholder/> <object class="GtkComboBox" id="gender">
</child> <property name="width_request">85</property>
<child> <property name="visible">True</property>
<placeholder/> <child>
</child> <object class="GtkCellRendererText" id="cellrenderertext2"/>
<child> <attributes>
<placeholder/> <attribute name="text">0</attribute>
</child> </attributes>
<child> </child>
<placeholder/> </object>
</child> <packing>
<child> <property name="expand">False</property>
<placeholder/> <property name="position">1</property>
</child> </packing>
<child> </child>
<placeholder/> <child>
</child> <object class="GtkLabel" id="label437">
<child> <property name="visible">True</property>
<placeholder/> <property name="xalign">0</property>
</child> <property name="label" translatable="yes">_ID:</property>
<child> <property name="use_underline">True</property>
<placeholder/> <property name="justify">right</property>
</child> </object>
<child> <packing>
<placeholder/> <property name="expand">False</property>
</child> <property name="position">2</property>
<child> </packing>
<placeholder/> </child>
</child> <child>
<child> <object class="UndoableEntry" id="gid">
<placeholder/> <property name="width_request">75</property>
</child> <property name="visible">True</property>
<child> <property name="can_focus">True</property>
<placeholder/> <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>
<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>
<object class="GtkLabel" id="tag_label">
<property name="visible">True</property>
</object>
<packing>
<property name="position">5</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="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>
</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>
<child> <child>
<placeholder/> <placeholder/>
@ -792,4 +732,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-edit</property> <property name="stock">gtk-edit</property>
</object> </object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
</object>
</interface> </interface>

View File

@ -79,8 +79,9 @@ class SurnameTab(EmbeddedList):
_column_combo = (_('Origin'), -1, 150, 3) # name, sort, width, modelcol _column_combo = (_('Origin'), -1, 150, 3) # name, sort, width, modelcol
_column_toggle = (_('Primary'), -1, 80, 4) _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.obj = name
self.on_change = on_change
self.curr_col = -1 self.curr_col = -1
self.curr_cellr = None self.curr_cellr = None
self.curr_celle = None self.curr_celle = None
@ -187,8 +188,9 @@ class SurnameTab(EmbeddedList):
""" """
new_map = self._get_surn_from_model() new_map = self._get_surn_from_model()
self.obj.set_surname_list(new_map) self.obj.set_surname_list(new_map)
# update name in title name editor # update name in previews
# TODO if self.on_change:
self.on_change()
def column_order(self): def column_order(self):
# order of columns for EmbeddedList. Only the text columns here # 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 gtk
import pango
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -86,7 +87,7 @@ class SingSurn(object):
self.top = gladeobj self.top = gladeobj
def hide_all(self): 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('prefix').hide()
self.top.get_object('surnamelabel').hide() self.top.get_object('surnamelabel').hide()
self.top.get_object('surname').hide() self.top.get_object('surname').hide()
@ -97,7 +98,7 @@ class SingSurn(object):
self.top.get_object('surnlabel').show() self.top.get_object('surnlabel').show()
def show_all(self): 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('prefix').show()
self.top.get_object('surnamelabel').show() self.top.get_object('surnamelabel').show()
self.top.get_object('surname').show() self.top.get_object('surname').show()
@ -152,6 +153,10 @@ class EditPerson(EditPrimary):
else: else:
title = _('New Person') title = _('New Person')
return title return title
def get_preview_name(self):
prevname = name_displayer.display(self.obj)
return prevname
def _local_init(self): def _local_init(self):
""" """
@ -177,12 +182,14 @@ class EditPerson(EditPrimary):
self.get_menu_title()) self.get_menu_title())
self.obj_photo = self.top.get_object("personPix") self.obj_photo = self.top.get_object("personPix")
self.frame_photo = self.top.get_object("frame5")
self.eventbox = self.top.get_object("eventbox1") self.eventbox = self.top.get_object("eventbox1")
self.singsurnfr = SingSurn(self.top) self.singsurnfr = SingSurn(self.top)
self.multsurnfr = self.top.get_object("hboxmultsurnames") self.multsurnfr = self.top.get_object("hboxmultsurnames")
self.singlesurn_active = True self.singlesurn_active = True
self.surntab = SurnameTab(self.dbstate, self.uistate, self.track, 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.top.get_object("hboxmultsurnames").pack_start(self.surntab)
self.set_contexteventbox(self.top.get_object("eventboxtop")) self.set_contexteventbox(self.top.get_object("eventboxtop"))
@ -199,6 +206,7 @@ class EditPerson(EditPrimary):
""" """
self.load_person_image() self.load_person_image()
self.given.grab_focus() self.given.grab_focus()
self._changed_name(None)
if len(self.obj.get_primary_name().get_surname_list()) > 1: if len(self.obj.get_primary_name().get_surname_list()) > 1:
self.singsurnfr.hide_all() self.singsurnfr.hide_all()
@ -347,10 +355,11 @@ class EditPerson(EditPrimary):
self.pname.get_title, self.pname.get_title,
self.db.readonly) self.db.readonly)
self.suffix = widgets.MonitoredEntry( self.suffix = widgets.MonitoredEntryIndicator(
self.top.get_object("suffix"), self.top.get_object("suffix"),
self.pname.set_suffix, self.pname.set_suffix,
self.pname.get_suffix, self.pname.get_suffix,
_('suffix'),
self.db.readonly) self.db.readonly)
self.nick = widgets.MonitoredEntry( self.nick = widgets.MonitoredEntry(
@ -367,10 +376,11 @@ class EditPerson(EditPrimary):
self.db.readonly, self.db.readonly,
autolist=self.db.get_surname_list() if not self.db.readonly else []) 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.top.get_object("prefix"),
self.pname.get_primary_surname().set_prefix, self.pname.get_primary_surname().set_prefix,
self.pname.get_primary_surname().get_prefix, self.pname.get_primary_surname().get_prefix,
_('prefix'),
self.db.readonly) self.db.readonly)
self.ortype_field = widgets.MonitoredDataType( self.ortype_field = widgets.MonitoredDataType(
@ -405,6 +415,10 @@ class EditPerson(EditPrimary):
self.top.get_object("surname"), self.top.get_object("surname"),
]: ]:
obj.connect('changed', self._changed_name) 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): def _create_tabbed_pages(self):
""" """
@ -498,12 +512,13 @@ class EditPerson(EditPrimary):
notebook.show_all() notebook.show_all()
self.top.get_object('vbox').pack_start(notebook, True) 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. callback to changes typed by user to the person name.
Update the window title, and default name in name tab Update the window title, and default name in name tab
""" """
self.update_title(self.get_menu_title()) self.update_title(self.get_menu_title())
self.preview_name.set_text(self.get_preview_name())
self.name_list.update_defname() self.name_list.update_defname()
def name_callback(self): def name_callback(self):
@ -709,6 +724,7 @@ class EditPerson(EditPrimary):
self.load_rect = rectangle self.load_rect = rectangle
if path is None: if path is None:
self.obj_photo.hide() self.obj_photo.hide()
self.frame_photo.hide_all()
else: else:
try: try:
i = gtk.gdk.pixbuf_new_from_file(path) 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) i = i.scale_simple(x, y, gtk.gdk.INTERP_BILINEAR)
self.obj_photo.set_from_pixbuf(i) self.obj_photo.set_from_pixbuf(i)
self.obj_photo.show() self.obj_photo.show()
self.frame_photo.show_all()
except: except:
self.obj_photo.hide() self.obj_photo.hide()
self.frame_photo.hide_all()
def _check_for_unknown_gender(self): def _check_for_unknown_gender(self):
if self.obj.get_gender() == gen.lib.Person.UNKNOWN: if self.obj.get_gender() == gen.lib.Person.UNKNOWN:
@ -876,6 +894,8 @@ class EditPerson(EditPrimary):
""" """
self.singsurnfr.hide_all() self.singsurnfr.hide_all()
self.singlesurn_active = False self.singlesurn_active = False
#update multsurnfr for possible changes
self.__renewmultsurnames()
self.multsurnfr.show_all() self.multsurnfr.show_all()
def _update_name(self, name): def _update_name(self, name):
@ -891,12 +911,7 @@ class EditPerson(EditPrimary):
self.ortype_field): self.ortype_field):
obj.update() obj.update()
#remove present surname tab, and put new one self.__renewmultsurnames()
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)
if len(self.obj.get_primary_name().get_surname_list()) == 1: if len(self.obj.get_primary_name().get_surname_list()) == 1:
self.singlesurn_active = True self.singlesurn_active = True
@ -910,6 +925,19 @@ class EditPerson(EditPrimary):
self.singsurnfr.hide_all() self.singsurnfr.hide_all()
self.multsurnfr.show_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): def load_person_image(self):
""" """
Load the primary image into the main form if it exists. Load the primary image into the main form if it exists.

View File

@ -21,7 +21,8 @@
# $Id$ # $Id$
__all__ = ["MonitoredCheckbox", "MonitoredEntry", "MonitoredSpinButton", __all__ = ["MonitoredCheckbox", "MonitoredEntry",
"MonitoredEntryIndicator", "MonitoredSpinButton",
"MonitoredText", "MonitoredType", "MonitoredDataType", "MonitoredText", "MonitoredType", "MonitoredDataType",
"MonitoredMenu", "MonitoredStrMenu", "MonitoredDate", "MonitoredMenu", "MonitoredStrMenu", "MonitoredDate",
"MonitoredComboSelectedEntry", "MonitoredTagList"] "MonitoredComboSelectedEntry", "MonitoredTagList"]
@ -148,6 +149,49 @@ class MonitoredEntry(object):
if self.get_val() is not None: if self.get_val() is not None:
self.obj.set_text(self.get_val()) 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 # MonitoredSpinButton class