diff options
-rw-r--r-- | addressbook/ChangeLog | 18 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/contact-editor.glade | 857 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.c | 74 |
3 files changed, 634 insertions, 315 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 411d5a0034..6727dfd5a8 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,21 @@ +2004-05-28 Hans Petter Jansson <hpj@ximian.com> + + * gui/contact-editor/contact-editor.glade: Add back office, spouse, + web log fields. Allow for 8 phone numbers, of which 4 can be hidden. + + * gui/contact-editor/e-contact-editor.c (phones_default): Add more + defaults. + (im_service_default): Add more defaults. + (expand_phone): Implement. + (fill_in_phone_record): Expand if we have any records past 4. + (init_im_record_location) + (fill_in_im_record) + (extract_im_record) + (sensitize_im_record): Remove location. + (simple_field_map): Add spouse, office, web log. + (expand_phone_toggle): Implement. + (e_contact_editor_init): Hook up expander button. + 2004-05-28 Christophe Fergeau <teuf@gnome.org> * gui/component/addressbook-config.c: added missing #ifdef HAVE_LDAP diff --git a/addressbook/gui/contact-editor/contact-editor.glade b/addressbook/gui/contact-editor/contact-editor.glade index 59d3c0cea5..a1a136a03b 100644 --- a/addressbook/gui/contact-editor/contact-editor.glade +++ b/addressbook/gui/contact-editor/contact-editor.glade @@ -385,7 +385,7 @@ <widget class="GtkVBox" id="vbox34"> <property name="visible">True</property> <property name="homogeneous">False</property> - <property name="spacing">12</property> + <property name="spacing">10</property> <child> <widget class="GtkFrame" id="frame65"> @@ -694,29 +694,27 @@ </child> <child> - <widget class="GtkFrame" id="frame64"> + <widget class="GtkVBox" id="vbox38"> <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> <child> - <widget class="GtkScrolledWindow" id="scrolledwindow40"> + <widget class="GtkFrame" id="frame64"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> - <property name="vscrollbar_policy">GTK_POLICY_NEVER</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> <child> - <widget class="GtkViewport" id="viewport24"> + <widget class="GtkVBox" id="vbox37"> + <property name="border_width">12</property> <property name="visible">True</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> + <property name="homogeneous">False</property> + <property name="spacing">6</property> <child> <widget class="GtkTable" id="table84"> - <property name="border_width">11</property> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">4</property> @@ -964,28 +962,333 @@ </packing> </child> </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkTable" id="table-phone-extended"> + <property name="n_rows">2</property> + <property name="n_columns">4</property> + <property name="homogeneous">False</property> + <property name="row_spacing">6</property> + <property name="column_spacing">6</property> + + <child> + <widget class="GtkOptionMenu" id="optionmenu-phone-5"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="history">0</property> + + <child> + <widget class="GtkMenu" id="menu187"> + + <child> + <widget class="GtkMenuItem" id="menuitem430"> + <property name="visible">True</property> + <property name="label" translatable="yes">Work</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menuitem431"> + <property name="visible">True</property> + <property name="label" translatable="yes">Personal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</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="GtkOptionMenu" id="optionmenu-phone-6"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="history">0</property> + + <child> + <widget class="GtkMenu" id="menu188"> + + <child> + <widget class="GtkMenuItem" id="menuitem432"> + <property name="visible">True</property> + <property name="label" translatable="yes">Work</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menuitem433"> + <property name="visible">True</property> + <property name="label" translatable="yes">Personal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</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="GtkEntry" id="entry-phone-5"> + <property name="visible">True</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" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="entry-phone-6"> + <property name="visible">True</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" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkOptionMenu" id="optionmenu-phone-7"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="history">0</property> + + <child> + <widget class="GtkMenu" id="menu189"> + + <child> + <widget class="GtkMenuItem" id="menuitem434"> + <property name="visible">True</property> + <property name="label" translatable="yes">Work</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menuitem435"> + <property name="visible">True</property> + <property name="label" translatable="yes">Personal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</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="GtkOptionMenu" id="optionmenu-phone-8"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="history">0</property> + + <child> + <widget class="GtkMenu" id="menu190"> + + <child> + <widget class="GtkMenuItem" id="menuitem436"> + <property name="visible">True</property> + <property name="label" translatable="yes">Work</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_work2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menuitem437"> + <property name="visible">True</property> + <property name="label" translatable="yes">Personal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_personal2_activate" last_modification_time="Fri, 12 Mar 2004 19:27:14 GMT"/> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</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="GtkEntry" id="entry-phone-7"> + <property name="visible">True</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" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="entry-phone-8"> + <property name="visible">True</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" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> </child> </widget> </child> - </widget> - </child> - <child> - <widget class="GtkLabel" id="label399"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Telephone</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.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> + <child> + <widget class="GtkHBox" id="hbox56"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">4</property> + + <child> + <widget class="GtkLabel" id="label399"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Telephone</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.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">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="button-phone-expand"> + <property name="width_request">20</property> + <property name="height_request">20</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + + <child> + <widget class="GtkArrow" id="arrow-phone-expand"> + <property name="visible">True</property> + <property name="arrow_type">GTK_ARROW_RIGHT</property> + <property name="shadow_type">GTK_SHADOW_NONE</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">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> </widget> <packing> - <property name="type">label_item</property> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> </packing> </child> </widget> @@ -1007,7 +1310,7 @@ <widget class="GtkTable" id="table86"> <property name="border_width">12</property> <property name="visible">True</property> - <property name="n_rows">3</property> + <property name="n_rows">2</property> <property name="n_columns">4</property> <property name="homogeneous">False</property> <property name="row_spacing">6</property> @@ -1190,10 +1493,10 @@ </child> </widget> <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> + <property name="left_attach">2</property> + <property name="right_attach">3</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> @@ -1212,280 +1515,79 @@ <property name="activates_default">False</property> </widget> <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="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkOptionMenu" id="optionmenu-im-location-1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu176"> - - <child> - <widget class="GtkMenuItem" id="menuitem397"> - <property name="visible">True</property> - <property name="label" translatable="yes">Home</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_home1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem398"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem399"> - <property name="visible">True</property> - <property name="label" translatable="yes">Other</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_other1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem400"> - <property name="visible">True</property> - <property name="label" translatable="yes">item7</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_item7_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem401"> - <property name="visible">True</property> - <property name="label" translatable="yes">item8</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_item8_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - </widget> - </child> - </widget> - <packing> <property name="left_attach">3</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"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label401"> - <property name="visible">True</property> - <property name="label" translatable="yes">Location:</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</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</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="GtkLabel" id="label402"> - <property name="visible">True</property> - <property name="label" translatable="yes">Location:</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</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</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="GtkOptionMenu" id="optionmenu-im-location-2"> + <widget class="GtkOptionMenu" id="optionmenu-im-service-4"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="history">0</property> <child> - <widget class="GtkMenu" id="menu177"> + <widget class="GtkMenu" id="menu183"> <child> - <widget class="GtkMenuItem" id="menuitem402"> + <widget class="GtkMenuItem" id="menuitem420"> <property name="visible">True</property> - <property name="label" translatable="yes">Home</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_home1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem403"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem404"> - <property name="visible">True</property> - <property name="label" translatable="yes">Other</property> + <property name="label" translatable="yes">AIM</property> <property name="use_underline">True</property> - <signal name="activate" handler="on_other1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> + <signal name="activate" handler="on_aim1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> </widget> </child> <child> - <widget class="GtkMenuItem" id="menuitem405"> + <widget class="GtkMenuItem" id="menuitem421"> <property name="visible">True</property> - <property name="label" translatable="yes">item7</property> + <property name="label" translatable="yes">Novell Groupwise</property> <property name="use_underline">True</property> - <signal name="activate" handler="on_item7_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> + <signal name="activate" handler="on_novell_groupwise1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> </widget> </child> <child> - <widget class="GtkMenuItem" id="menuitem406"> + <widget class="GtkMenuItem" id="menuitem422"> <property name="visible">True</property> - <property name="label" translatable="yes">item8</property> + <property name="label" translatable="yes">MSN Messenger</property> <property name="use_underline">True</property> - <signal name="activate" handler="on_item8_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> + <signal name="activate" handler="on_msn_messenger1_activate" last_modification_time="Fri, 12 Mar 2004 18:38:59 GMT"/> </widget> </child> </widget> </child> </widget> <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</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="label403"> - <property name="visible">True</property> - <property name="label" translatable="yes">Location:</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</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <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="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="GtkOptionMenu" id="optionmenu-im-location-3"> + <widget class="GtkEntry" id="entry-im-name-4"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu178"> - - <child> - <widget class="GtkMenuItem" id="menuitem407"> - <property name="visible">True</property> - <property name="label" translatable="yes">Home</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_home1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem408"> - <property name="visible">True</property> - <property name="label" translatable="yes">Work</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_work1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem409"> - <property name="visible">True</property> - <property name="label" translatable="yes">Other</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_other1_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem410"> - <property name="visible">True</property> - <property name="label" translatable="yes">item7</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_item7_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="menuitem411"> - <property name="visible">True</property> - <property name="label" translatable="yes">item8</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_item8_activate" last_modification_time="Tue, 16 Mar 2004 19:00:20 GMT"/> - </widget> - </child> - </widget> - </child> + <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" translatable="yes">*</property> + <property name="activates_default">False</property> </widget> <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="x_options">fill</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> @@ -1526,7 +1628,7 @@ </child> </widget> <packing> - <property name="tab_expand">False</property> + <property name="tab_expand">True</property> <property name="tab_fill">True</property> </packing> </child> @@ -1568,7 +1670,7 @@ <widget class="GtkTable" id="table87"> <property name="border_width">12</property> <property name="visible">True</property> - <property name="n_rows">4</property> + <property name="n_rows">5</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">6</property> @@ -1615,8 +1717,8 @@ <packing> <property name="left_attach">0</property> <property name="right_attach">1</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">fill</property> <property name="y_options"></property> </packing> @@ -1639,8 +1741,8 @@ <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> - <property name="top_attach">2</property> - <property name="bottom_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> @@ -1649,7 +1751,7 @@ <child> <widget class="GtkLabel" id="label-videourl"> <property name="visible">True</property> - <property name="label" translatable="yes">Webcam:</property> + <property name="label" translatable="yes">Video Chat:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> @@ -1663,8 +1765,8 @@ <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> @@ -1698,8 +1800,8 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</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="y_options">fill</property> </packing> </child> @@ -1715,8 +1817,8 @@ <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="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="y_options">fill</property> </packing> </child> @@ -1732,8 +1834,50 @@ <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="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label-weblog"> + <property name="visible">True</property> + <property name="label" translatable="yes">Web Log:</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</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</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="Custom" id="entry-weblog"> + <property name="visible">True</property> + <property name="creation_function">e_contact_editor_create_web</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Tue, 13 Apr 2004 22:04:21 GMT</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</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> @@ -2092,38 +2236,15 @@ <widget class="GtkTable" id="table89"> <property name="border_width">12</property> <property name="visible">True</property> - <property name="n_rows">2</property> + <property name="n_rows">3</property> <property name="n_columns">4</property> <property name="homogeneous">False</property> <property name="row_spacing">6</property> <property name="column_spacing">6</property> <child> - <widget class="GtkLabel" id="label-birthday"> - <property name="visible">True</property> - <property name="label" translatable="yes">Birthday:</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</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</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="GtkScrolledWindow" id="scrolledwindow41"> + <property name="height_request">38</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> @@ -2152,8 +2273,8 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">4</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> </packing> </child> @@ -2174,10 +2295,124 @@ <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label-office"> + <property name="visible">True</property> + <property name="label" translatable="yes">Office:</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</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</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="GtkLabel" id="label-spouse"> + <property name="visible">True</property> + <property name="label" translatable="yes">Spouse:</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</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</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> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="entry-office"> + <property name="visible">True</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" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="entry-spouse"> + <property name="visible">True</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" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label-birthday"> + <property name="visible">True</property> + <property name="label" translatable="yes">Birthday:</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</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</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> @@ -2198,38 +2433,38 @@ <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</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="Custom" id="dateedit-birthday"> + <widget class="Custom" id="dateedit-anniversary"> <property name="visible">True</property> <property name="creation_function">e_contact_editor_create_date</property> <property name="int1">0</property> <property name="int2">0</property> - <property name="last_modification_time">Tue, 13 Apr 2004 23:55:46 GMT</property> + <property name="last_modification_time">Tue, 13 Apr 2004 23:56:03 GMT</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> + <property name="left_attach">3</property> + <property name="right_attach">4</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="Custom" id="dateedit-anniversary"> + <widget class="Custom" id="dateedit-birthday"> <property name="visible">True</property> <property name="creation_function">e_contact_editor_create_date</property> <property name="int1">0</property> <property name="int2">0</property> - <property name="last_modification_time">Tue, 13 Apr 2004 23:56:03 GMT</property> + <property name="last_modification_time">Tue, 13 Apr 2004 23:55:46 GMT</property> </widget> <packing> <property name="left_attach">3</property> diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 2d058eca04..b0207439bb 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -72,8 +72,8 @@ #include "e-contact-editor-marshal.h" #define EMAIL_SLOTS 4 -#define PHONE_SLOTS 4 -#define IM_SLOTS 3 +#define PHONE_SLOTS 8 +#define IM_SLOTS 4 #define ADDRESS_SLOTS 3 #define EVOLUTION_UI_SLOT_PARAM "X-EVOLUTION-UI-SLOT" @@ -155,7 +155,7 @@ phones [] = { }; /* Defaults from the table above */ -gint phones_default [] = { 1, 6, 9, 2 }; +gint phones_default [] = { 1, 6, 9, 2, 7, 12, 10, 10 }; static EContactField addresses [] = { E_CONTACT_ADDRESS_WORK, @@ -184,7 +184,7 @@ im_service [] = }; /* Defaults from the table above */ -gint im_service_default [] = { 0, 2, 3 }; +gint im_service_default [] = { 0, 2, 4, 5 }; static struct { gchar *name; @@ -1024,6 +1024,24 @@ set_attributes_named (EVCard *vcard, const gchar *attr_name, GList *attr_list) } static void +expand_phone (EContactEditor *editor, gboolean expanded) +{ + GtkWidget *phone_ext_table; + GtkWidget *phone_ext_arrow; + + phone_ext_table = glade_xml_get_widget (editor->gui, "table-phone-extended"); + phone_ext_arrow = glade_xml_get_widget (editor->gui, "arrow-phone-expand"); + + if (expanded) { + gtk_arrow_set (GTK_ARROW (phone_ext_arrow), GTK_ARROW_DOWN, GTK_SHADOW_NONE); + gtk_widget_show (phone_ext_table); + } else { + gtk_arrow_set (GTK_ARROW (phone_ext_arrow), GTK_ARROW_RIGHT, GTK_SHADOW_NONE); + gtk_widget_hide (phone_ext_table); + } +} + +static void fill_in_phone_record (EContactEditor *editor, gint record, const gchar *phone, gint phone_type) { GtkWidget *phone_type_option_menu; @@ -1042,6 +1060,9 @@ fill_in_phone_record (EContactEditor *editor, gint record, const gchar *phone, g phone_type >= 0 ? phone_type : phones_default [record - 1]); set_entry_text (editor, GTK_ENTRY (phone_entry), phone ? phone : ""); + + if (phone && *phone && record >= 5) + expand_phone (editor, TRUE); } static void @@ -1197,6 +1218,8 @@ init_phone (EContactEditor *editor) { gint i; + expand_phone (editor, FALSE); + for (i = 1; i <= PHONE_SLOTS; i++) init_phone_record_type (editor, i); } @@ -1275,6 +1298,7 @@ init_im_record_location (EContactEditor *editor, gint record) name_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#ifdef ENABLE_IM_LOCATION widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); location_option_menu = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); @@ -1292,6 +1316,8 @@ init_im_record_location (EContactEditor *editor, gint record) gtk_option_menu_set_menu (GTK_OPTION_MENU (location_option_menu), location_menu); g_signal_connect (location_option_menu, "changed", G_CALLBACK (object_changed), editor); +#endif + g_signal_connect (name_entry, "changed", G_CALLBACK (object_changed), editor); g_signal_connect_swapped (name_entry, "activate", G_CALLBACK (entry_activated), editor); } @@ -1338,7 +1364,9 @@ static void fill_in_im_record (EContactEditor *editor, gint record, gint service, const gchar *name, gint location) { GtkWidget *service_option_menu; +#ifdef ENABLE_IM_LOCATION GtkWidget *location_option_menu; +#endif GtkWidget *name_entry; gchar *widget_name; @@ -1346,16 +1374,20 @@ fill_in_im_record (EContactEditor *editor, gint record, gint service, const gcha service_option_menu = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#ifdef ENABLE_IM_LOCATION widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); location_option_menu = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#endif widget_name = g_strdup_printf ("entry-im-name-%d", record); name_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#ifdef ENABLE_IM_LOCATION set_option_menu_history (editor, GTK_OPTION_MENU (location_option_menu), location >= 0 ? location : 0); +#endif set_option_menu_history (editor, GTK_OPTION_MENU (service_option_menu), service >= 0 ? service : im_service_default [record - 1]); set_entry_text (editor, GTK_ENTRY (name_entry), name ? name : ""); @@ -1402,7 +1434,9 @@ static void extract_im_record (EContactEditor *editor, gint record, gint *service, gchar **name, gint *location) { GtkWidget *service_option_menu; +#ifdef ENABLE_IM_LOCATION GtkWidget *location_option_menu; +#endif GtkWidget *name_entry; gchar *widget_name; @@ -1410,9 +1444,11 @@ extract_im_record (EContactEditor *editor, gint record, gint *service, gchar **n service_option_menu = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#ifdef ENABLE_IM_LOCATION widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); location_option_menu = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#endif widget_name = g_strdup_printf ("entry-im-name-%d", record); name_entry = glade_xml_get_widget (editor->gui, widget_name); @@ -1420,7 +1456,11 @@ extract_im_record (EContactEditor *editor, gint record, gint *service, gchar **n *name = g_strdup (gtk_entry_get_text (GTK_ENTRY (name_entry))); *service = gtk_option_menu_get_history (GTK_OPTION_MENU (service_option_menu)); +#ifdef ENABLE_IM_LOCATION *location = gtk_option_menu_get_history (GTK_OPTION_MENU (location_option_menu)); +#else + *location = -1; +#endif } static void @@ -1492,7 +1532,9 @@ static void sensitize_im_record (EContactEditor *editor, gint record, gboolean enabled) { GtkWidget *service_option_menu; +#ifdef ENABLE_IM_LOCATION GtkWidget *location_option_menu; +#endif GtkWidget *name_entry; gchar *widget_name; @@ -1500,16 +1542,20 @@ sensitize_im_record (EContactEditor *editor, gint record, gboolean enabled) service_option_menu = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#ifdef ENABLE_IM_LOCATION widget_name = g_strdup_printf ("optionmenu-im-location-%d", record); location_option_menu = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); +#endif widget_name = g_strdup_printf ("entry-im-name-%d", record); name_entry = glade_xml_get_widget (editor->gui, widget_name); g_free (widget_name); gtk_widget_set_sensitive (service_option_menu, enabled); +#ifdef ENABLE_IM_LOCATION gtk_widget_set_sensitive (location_option_menu, enabled); +#endif gtk_widget_set_sensitive (name_entry, enabled); } @@ -1826,6 +1872,12 @@ static FieldMapping simple_field_map [] = { { "dateedit-anniversary", E_CONTACT_ANNIVERSARY, TRUE, TRUE }, { "label-anniversary", E_CONTACT_ANNIVERSARY, FALSE, FALSE }, + { "entry-spouse", E_CONTACT_SPOUSE, TRUE, TRUE }, + { "label-spouse", E_CONTACT_SPOUSE, FALSE, FALSE }, + + { "entry-office", E_CONTACT_OFFICE, TRUE, TRUE }, + { "label-office", E_CONTACT_OFFICE, FALSE, FALSE }, + { "text-comments", E_CONTACT_NOTE, TRUE, TRUE }, { "label-comments", E_CONTACT_NOTE, FALSE, FALSE }, @@ -1835,6 +1887,9 @@ static FieldMapping simple_field_map [] = { { "entry-categories", E_CONTACT_CATEGORIES, TRUE, TRUE }, { "button-categories", E_CONTACT_CATEGORIES, FALSE, TRUE }, + { "entry-weblog", E_CONTACT_BLOG_URL, TRUE, TRUE }, + { "label-weblog", E_CONTACT_BLOG_URL, FALSE, FALSE }, + { "entry-caluri", E_CONTACT_CALENDAR_URI, TRUE, TRUE }, { "label-caluri", E_CONTACT_CALENDAR_URI, FALSE, FALSE }, @@ -2770,6 +2825,15 @@ setup_tab_order(GladeXML *gui) } static void +expand_phone_toggle (EContactEditor *ce) +{ + GtkWidget *phone_ext_table; + + phone_ext_table = glade_xml_get_widget (ce->gui, "table-phone-extended"); + expand_phone (ce, GTK_WIDGET_VISIBLE (phone_ext_table) ? FALSE : TRUE); +} + +static void e_contact_editor_init (EContactEditor *e_contact_editor) { GladeXML *gui; @@ -2816,6 +2880,8 @@ e_contact_editor_init (EContactEditor *e_contact_editor) g_signal_connect (widget, "clicked", G_CALLBACK (file_cancel_cb), e_contact_editor); widget = glade_xml_get_widget (e_contact_editor->gui, "button-help"); g_signal_connect (widget, "clicked", G_CALLBACK (show_help_cb), e_contact_editor); + widget = glade_xml_get_widget (e_contact_editor->gui, "button-phone-expand"); + g_signal_connect_swapped (widget, "clicked", G_CALLBACK (expand_phone_toggle), e_contact_editor); widget = glade_xml_get_widget (e_contact_editor->gui, "entry-fullname"); if (widget) |