From 442ed02adb1d86a177b465fa656f2148a71230b1 Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Mon, 25 Nov 2002 04:04:20 +0000 Subject: [ roll forward from the 1.2 branch. fixes #25540, part of #29630, as well 2002-11-23 Chris Toshok [ roll forward from the 1.2 branch. fixes #25540, part of #29630, as well as other selection issues in the contact editor and ACL issues in the ldap backend ] * backend/pas/pas-backend-ldap.c (check_schema_support): reset the schema check state to FALSE if the read returned nothing (and the user had not authenticated). we'll requery if/when they auth. (query_ldap_root_dse): free the schema dn before assigning over it. (pas_backend_ldap_connect): added a diagnostic warning about the root dse query failing in anonymous mode (if it in fact did fail.) (pas_backend_ldap_process_authenticate_user): if we successfully authed, requery the root dse to pick up any attributes that might be protected, and retry the schema query if that failed before. * gui/contact-editor/e-contact-editor.c (full_name_clicked): set the dialog's editable state based on the new field "fullname_editable", and only do the Ok button handling if this flag is TRUE. (full_addr_clicked): set the dialog's editable state based on the editable state for the particular address (from editor->address_editable[]). also, only do the Ok button handling if this flag is TRUE. (_address_arrow_pressed): use the address_editable array to determine whether the address text and the mailing address checkbutton are sensitive. (enable_writable_fields): figure out if fullname_editable is TRUE/FALSE, also, init the address_editable flags based on the field list, and handle the address checkbutton. * gui/contact-editor/fulladdr.glade: change the label names to label- to match {entry,combo}-. * gui/contact-editor/fullname.glade: same. * gui/contact-editor/e-contact-editor-fullname.c (e_contact_editor_fullname_class_init): rename ARG_IS_READ_ONLY to ARG_EDITABLE, to reflect the correct sense of the flag. (e_contact_editor_fullname_set_arg): same, and make the labels sensitive/insensitive depending on the editable state of the dialog. * gui/contact-editor/e-contact-editor-address.c (e_contact_editor_address_class_init): rename ARG_IS_READ_ONLY to ARG_EDITABLE, to reflect the correct sense of the flag. (e_contact_editor_address_set_arg): same, and make the labels sensitive/insensitive depending on the editable state of the dialog. svn path=/trunk/; revision=18910 --- addressbook/ChangeLog | 50 + addressbook/backend/pas/pas-backend-ldap.c | 36 +- .../gui/contact-editor/e-contact-editor-address.c | 24 +- .../gui/contact-editor/e-contact-editor-fullname.c | 22 +- addressbook/gui/contact-editor/e-contact-editor.c | 24 +- addressbook/gui/contact-editor/e-contact-editor.h | 6 + addressbook/gui/contact-editor/fulladdr.glade | 832 ++++++------- addressbook/gui/contact-editor/fullname.glade | 1220 +++++++++++--------- 8 files changed, 1230 insertions(+), 984 deletions(-) diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index ecacba942b..8fb8cec789 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,53 @@ +2002-11-23 Chris Toshok + + [ roll forward from the 1.2 branch. fixes #25540, part of #29630, + as well as other selection issues in the contact editor and ACL + issues in the ldap backend ] + * backend/pas/pas-backend-ldap.c (check_schema_support): reset the + schema check state to FALSE if the read returned nothing (and the + user had not authenticated). we'll requery if/when they auth. + (query_ldap_root_dse): free the schema dn before assigning over + it. + (pas_backend_ldap_connect): added a diagnostic warning about the + root dse query failing in anonymous mode (if it in fact did fail.) + (pas_backend_ldap_process_authenticate_user): if we successfully + authed, requery the root dse to pick up any attributes that might + be protected, and retry the schema query if that failed before. + + * gui/contact-editor/e-contact-editor.c (full_name_clicked): set + the dialog's editable state based on the new field + "fullname_editable", and only do the Ok button handling if this + flag is TRUE. + (full_addr_clicked): set the dialog's editable state based on the + editable state for the particular address (from + editor->address_editable[]). also, only do the Ok button handling + if this flag is TRUE. + (_address_arrow_pressed): use the address_editable array to + determine whether the address text and the mailing address + checkbutton are sensitive. + (enable_writable_fields): figure out if fullname_editable is + TRUE/FALSE, also, init the address_editable flags based on the + field list, and handle the address checkbutton. + + * gui/contact-editor/fulladdr.glade: change the label names to + label- to match {entry,combo}-. + + * gui/contact-editor/fullname.glade: same. + + * gui/contact-editor/e-contact-editor-fullname.c + (e_contact_editor_fullname_class_init): rename ARG_IS_READ_ONLY to + ARG_EDITABLE, to reflect the correct sense of the flag. + (e_contact_editor_fullname_set_arg): same, and make the labels + sensitive/insensitive depending on the editable state of the + dialog. + + * gui/contact-editor/e-contact-editor-address.c + (e_contact_editor_address_class_init): rename ARG_IS_READ_ONLY to + ARG_EDITABLE, to reflect the correct sense of the flag. + (e_contact_editor_address_set_arg): same, and make the labels + sensitive/insensitive depending on the editable state of the + dialog. + 2002-11-22 Chris Toshok [ roll forward Sean.Gao@sun.com's fix for #16870 from the 1.2 diff --git a/addressbook/backend/pas/pas-backend-ldap.c b/addressbook/backend/pas/pas-backend-ldap.c index 3e56e02146..9a44ee6aad 100644 --- a/addressbook/backend/pas/pas-backend-ldap.c +++ b/addressbook/backend/pas/pas-backend-ldap.c @@ -477,6 +477,22 @@ check_schema_support (PASBackendLDAP *bl) ldap_value_free (values); } + else { + /* the reason for this is so that if the user + ends up authenticating to the ldap server, + we will requery for the subschema values. + This makes it a bit more robust in the face + of draconian acl's that keep subschema + reads from working until the user is + authed. */ + if (!bl->priv->writable) { + g_warning ("subschema read returned nothing before successful auth"); + bl->priv->evolutionPersonChecked = FALSE; + } + else { + g_warning ("subschema read returned nothing after successful auth"); + } + } ldap_msgfree (resp); } @@ -584,6 +600,7 @@ query_ldap_root_dse (PASBackendLDAP *bl) values = ldap_get_values (ldap, resp, "schemaNamingContext"); } if (values && values[0]) { + g_free (bl->priv->schema_dn); bl->priv->schema_dn = g_strdup (values[0]); } else { @@ -663,6 +680,9 @@ pas_backend_ldap_connect (PASBackendLDAP *bl) return GNOME_Evolution_Addressbook_BookListener_Success; } + else + g_warning ("Failed to perform root dse query anonymously, (ldap_error 0x%02x)", ldap_error); + } g_warning ("pas_backend_ldap_connect failed for " @@ -3130,8 +3150,20 @@ pas_backend_ldap_process_authenticate_user (PASBackend *backend, bl->priv->writable = (ldap_error == LDAP_SUCCESS); - if (!bl->priv->evolutionPersonChecked) - check_schema_support (bl); + /* if the bind was successful we force a requery on the root + dse since some ldap servers are set up such that they don't + report anything (including the schema DN) until the user is + authenticated */ + if (!bl->priv->evolutionPersonChecked && ldap_error == LDAP_SUCCESS) { + ldap_error = query_ldap_root_dse (bl); + + if (LDAP_SUCCESS == ldap_error) { + if (!bl->priv->evolutionPersonChecked) + check_schema_support (bl); + } + else + g_warning ("Failed to perform root dse query after authenticating, (ldap_error 0x%02x)", ldap_error); + } pas_book_report_writable (book, bl->priv->writable); } diff --git a/addressbook/gui/contact-editor/e-contact-editor-address.c b/addressbook/gui/contact-editor/e-contact-editor-address.c index 1c54b3c122..81ee9b9330 100644 --- a/addressbook/gui/contact-editor/e-contact-editor-address.c +++ b/addressbook/gui/contact-editor/e-contact-editor-address.c @@ -49,7 +49,7 @@ static GtkDialogClass *parent_class = NULL; enum { PROP_0, PROP_ADDRESS, - PROP_IS_READ_ONLY + PROP_EDITABLE }; GType @@ -95,7 +95,7 @@ e_contact_editor_address_class_init (EContactEditorAddressClass *klass) /*_( */"XXX blurb" /*)*/, G_PARAM_READWRITE)); - g_object_class_install_property (object_class, PROP_IS_READ_ONLY, + g_object_class_install_property (object_class, PROP_EDITABLE, g_param_spec_boolean ("editable", _("Editable"), /*_( */"XXX blurb" /*)*/, @@ -481,9 +481,9 @@ e_contact_editor_address_set_property (GObject *object, guint prop_id, e_contact_editor_address->address = e_card_delivery_address_copy(g_value_get_pointer (value)); fill_in_info(e_contact_editor_address); break; - case PROP_IS_READ_ONLY: { + case PROP_EDITABLE: { int i; - char *entry_names[] = { + char *widget_names[] = { "entry-street", "entry-city", "entry-ext", @@ -491,11 +491,18 @@ e_contact_editor_address_set_property (GObject *object, guint prop_id, "entry-region", "combo-country", "entry-code", + "label-street", + "label-city", + "label-ext", + "label-po", + "label-region", + "label-country", + "label-code", NULL }; e_contact_editor_address->editable = g_value_get_boolean (value) ? TRUE : FALSE; - for (i = 0; entry_names[i] != NULL; i ++) { - GtkWidget *w = glade_xml_get_widget(e_contact_editor_address->gui, entry_names[i]); + for (i = 0; widget_names[i] != NULL; i ++) { + GtkWidget *w = glade_xml_get_widget(e_contact_editor_address->gui, widget_names[i]); if (GTK_IS_ENTRY (w)) { gtk_entry_set_editable (GTK_ENTRY (w), e_contact_editor_address->editable); @@ -505,6 +512,9 @@ e_contact_editor_address_set_property (GObject *object, guint prop_id, e_contact_editor_address->editable); gtk_widget_set_sensitive (GTK_COMBO (w)->button, e_contact_editor_address->editable); } + else if (GTK_IS_LABEL (w)) { + gtk_widget_set_sensitive (w, e_contact_editor_address->editable); + } } break; } @@ -527,7 +537,7 @@ e_contact_editor_address_get_property (GObject *object, guint prop_id, extract_info(e_contact_editor_address); g_value_set_pointer (value, e_card_delivery_address_ref(e_contact_editor_address->address)); break; - case PROP_IS_READ_ONLY: + case PROP_EDITABLE: g_value_set_boolean (value, e_contact_editor_address->editable ? TRUE : FALSE); break; default: diff --git a/addressbook/gui/contact-editor/e-contact-editor-fullname.c b/addressbook/gui/contact-editor/e-contact-editor-fullname.c index bf733b6af1..bd51c71605 100644 --- a/addressbook/gui/contact-editor/e-contact-editor-fullname.c +++ b/addressbook/gui/contact-editor/e-contact-editor-fullname.c @@ -43,7 +43,7 @@ static GtkDialogClass *parent_class = NULL; enum { PROP_0, PROP_NAME, - PROP_IS_READ_ONLY + PROP_EDITABLE }; GType @@ -89,7 +89,7 @@ e_contact_editor_fullname_class_init (EContactEditorFullnameClass *klass) /*_( */"XXX blurb" /*)*/, G_PARAM_READWRITE)); - g_object_class_install_property (object_class, PROP_IS_READ_ONLY, + g_object_class_install_property (object_class, PROP_EDITABLE, g_param_spec_boolean ("editable", _("Editable"), /*_( */"XXX blurb" /*)*/, @@ -170,19 +170,24 @@ e_contact_editor_fullname_set_property (GObject *object, guint prop_id, e_contact_editor_fullname->name = e_card_name_copy(g_value_get_pointer (value)); fill_in_info(e_contact_editor_fullname); break; - case PROP_IS_READ_ONLY: { + case PROP_EDITABLE: { int i; - char *entry_names[] = { + char *widget_names[] = { "combo-title", "combo-suffix", "entry-first", "entry-middle", "entry-last", + "label-title", + "label-suffix", + "label-first", + "label-middle", + "label-last", NULL }; e_contact_editor_fullname->editable = g_value_get_boolean (value) ? TRUE : FALSE; - for (i = 0; entry_names[i] != NULL; i ++) { - GtkWidget *w = glade_xml_get_widget(e_contact_editor_fullname->gui, entry_names[i]); + for (i = 0; widget_names[i] != NULL; i ++) { + GtkWidget *w = glade_xml_get_widget(e_contact_editor_fullname->gui, widget_names[i]); if (GTK_IS_ENTRY (w)) { gtk_entry_set_editable (GTK_ENTRY (w), e_contact_editor_fullname->editable); @@ -192,6 +197,9 @@ e_contact_editor_fullname_set_property (GObject *object, guint prop_id, e_contact_editor_fullname->editable); gtk_widget_set_sensitive (GTK_COMBO (w)->button, e_contact_editor_fullname->editable); } + else if (GTK_IS_LABEL (w)) { + gtk_widget_set_sensitive (w, e_contact_editor_fullname->editable); + } } break; } @@ -214,7 +222,7 @@ e_contact_editor_fullname_get_property (GObject *object, guint prop_id, extract_info(e_contact_editor_fullname); g_value_set_pointer (value, e_card_name_ref(e_contact_editor_fullname->name)); break; - case PROP_IS_READ_ONLY: + case PROP_EDITABLE: g_value_set_boolean (value, e_contact_editor_fullname->editable ? TRUE : FALSE); break; default: diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index d48066f72b..ef45fbe426 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -759,13 +759,13 @@ full_name_clicked(GtkWidget *button, EContactEditor *editor) int result; g_object_set (dialog, - "editable", editor->editable, + "editable", editor->fullname_editable, NULL); gtk_widget_show(GTK_WIDGET(dialog)); result = gtk_dialog_run (dialog); gtk_widget_hide (GTK_WIDGET (dialog)); - if (result == GTK_RESPONSE_OK) { + if (editor->fullname_editable && result == GTK_RESPONSE_OK) { ECardName *name; GtkWidget *fname_widget; int style = 0; @@ -802,7 +802,7 @@ full_addr_clicked(GtkWidget *button, EContactEditor *editor) dialog = GTK_DIALOG(e_contact_editor_address_new(address)); g_object_set (dialog, - "editable", editor->editable, + "editable", editor->address_editable[editor->address_choice], NULL); gtk_widget_show(GTK_WIDGET(dialog)); @@ -810,7 +810,7 @@ full_addr_clicked(GtkWidget *button, EContactEditor *editor) gtk_widget_hide (GTK_WIDGET (dialog)); - if (result == GTK_RESPONSE_OK) { + if (editor->address_editable[editor->address_choice] && result == GTK_RESPONSE_OK) { ECardDeliveryAddress *new_address; GtkWidget *address_widget; @@ -2026,7 +2026,8 @@ _address_arrow_pressed (GtkWidget *widget, GdkEventButton *button, EContactEdito /* make sure the buttons/entry is/are sensitive */ enable_widget (glade_xml_get_widget (editor->gui, "label-address"), TRUE); - enable_widget (glade_xml_get_widget (editor->gui, "text-address"), editor->editable); + enable_widget (glade_xml_get_widget (editor->gui, "text-address"), editor->address_editable[result]); + enable_widget (glade_xml_get_widget (editor->gui, "checkbutton-mailingaddress"), editor->address_editable[result]); } } @@ -2398,14 +2399,18 @@ enable_writable_fields(EContactEditor *editor) enable_widget (glade_xml_get_widget (editor->gui, "label-email1"), FALSE); enable_widget (glade_xml_get_widget (editor->gui, "entry-email1"), FALSE); enable_widget (glade_xml_get_widget (editor->gui, "checkbutton-htmlmail"), FALSE); + enable_widget (glade_xml_get_widget (editor->gui, "checkbutton-mailingaddress"), FALSE); enable_widget (glade_xml_get_widget (editor->gui, "label-address"), FALSE); enable_widget (glade_xml_get_widget (editor->gui, "text-address"), FALSE); + editor->fullname_editable = FALSE; + /* enable widgets that map directly from a field to a widget (the drop down items) */ iter = e_list_get_iterator (fields); for (; e_iterator_is_valid (iter); e_iterator_next (iter)) { char *field = (char*)e_iterator_get (iter); GtkWidget *widget = g_hash_table_lookup (dropdown_hash, field); + int i; if (widget) { enable_widget (widget, TRUE); @@ -2417,6 +2422,12 @@ enable_writable_fields(EContactEditor *editor) g_hash_table_insert (supported_hash, field, field); } + for (i = 0; i < E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) { + if (!strcmp (field, e_card_simple_get_ecard_field (simple, e_card_simple_map_address_to_field(i)))) { + editor->address_editable [i] = TRUE; + } + } + /* ugh - this is needed to make sure we don't have a disabled label next to a drop down when the item in the menu (the one reflected in the label) is @@ -2428,6 +2439,7 @@ enable_writable_fields(EContactEditor *editor) } else if (!strcmp (field, e_card_simple_get_ecard_field (simple, e_card_simple_map_address_to_field(editor->address_choice)))) { enable_widget (glade_xml_get_widget (editor->gui, "label-address"), TRUE); + enable_widget (glade_xml_get_widget (editor->gui, "checkbutton-mailingaddress"), editor->editable); enable_widget (glade_xml_get_widget (editor->gui, "text-address"), editor->editable); } else for (i = 0; i < 4; i ++) { @@ -2467,6 +2479,8 @@ enable_writable_fields(EContactEditor *editor) enable_widget (w, enabled); } + editor->fullname_editable = (g_hash_table_lookup (supported_hash, "full_name") != NULL); + g_hash_table_destroy (dropdown_hash); g_hash_table_destroy (supported_hash); g_object_unref (simple); diff --git a/addressbook/gui/contact-editor/e-contact-editor.h b/addressbook/gui/contact-editor/e-contact-editor.h index eb3b294af8..f4b8051fed 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.h +++ b/addressbook/gui/contact-editor/e-contact-editor.h @@ -96,6 +96,12 @@ struct _EContactEditor /* Whether the contact editor will accept modifications */ guint editable : 1; + /* Whether the fullname will accept modifications */ + guint fullname_editable : 1; + + /* Whether each of the addresses are editable */ + gboolean address_editable[E_CARD_SIMPLE_ADDRESS_ID_LAST]; + /* Whether an async wombat call is in progress */ guint in_async_call : 1; diff --git a/addressbook/gui/contact-editor/fulladdr.glade b/addressbook/gui/contact-editor/fulladdr.glade index d8c43c5742..023c0b57be 100644 --- a/addressbook/gui/contact-editor/fulladdr.glade +++ b/addressbook/gui/contact-editor/fulladdr.glade @@ -1,440 +1,446 @@ - + - - no - Check Address - GTK_WINDOW_TOPLEVEL - yes - no - yes - GTK_WIN_POS_NONE - - - no - 8 - yes + + Check Address + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + True + True + False + True - - - GTK_BUTTONBOX_END - 8 - yes + + + True + False + 8 - - - yes - yes - yes - yes - gtk-ok - yes - yes - - + + + True + GTK_BUTTONBOX_END - - - yes - yes - yes - gtk-cancel - yes - yes - - - - - 0 - no - yes - GTK_PACK_END - - + + + True + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + 0 + + - - - 8 - no - 6 - 6 - 4 - 4 - yes + + + True + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + 0 + + + + + 0 + False + True + GTK_PACK_END + + - - - _Address: - GTK_JUSTIFY_LEFT - no - 1 - 0.5 - 0 - 0 - entry-street - yes - yes - - - 0 - 1 - 0 - 1 - 0 - 0 - fill - fill - - + + + 8 + True + 4 + 4 + False + 6 + 6 - - - _City: - GTK_JUSTIFY_CENTER - no - 1 - 0.5 - 0 - 0 - entry-city - yes - yes - - - 0 - 1 - 2 - 3 - 0 - 0 - fill - fill - - + + + True + _Address: + True + False + GTK_JUSTIFY_LEFT + False + False + 1 + 0.5 + 0 + 0 + entry-street + + + 0 + 1 + 0 + 1 + fill + fill + + - - - yes - yes - - 0 - yes - yes - - - 1 - 2 - 2 - 3 - 0 - 0 - expand|fill - fill - - + + + True + _City: + True + False + GTK_JUSTIFY_CENTER + False + False + 1 + 0.5 + 0 + 0 + entry-city + + + 0 + 1 + 2 + 3 + fill + fill + + - - - yes - yes - - 100 - 0 - yes - yes - - - 1 - 2 - 1 - 2 - 0 - 0 - expand|fill - fill - - + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 2 + 3 + fill + + - - - _PO Box: - GTK_JUSTIFY_CENTER - no - 1 - 0.5 - 0 - 0 - entry-po - yes - yes - - - 2 - 3 - 1 - 2 - 0 - 0 - fill - fill - - + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 1 + 2 + fill + + - - - Address _2: - GTK_JUSTIFY_CENTER - no - 1 - 0.5 - 0 - 0 - entry-ext - yes - yes - - - 0 - 1 - 1 - 2 - 0 - 0 - fill - fill - - + + + True + _PO Box: + True + False + GTK_JUSTIFY_CENTER + False + False + 1 + 0.5 + 0 + 0 + entry-po + + + 2 + 3 + 1 + 2 + fill + fill + + - - - yes - yes - - 100 - 0 - yes - yes - - - 3 - 4 - 1 - 2 - 0 - 0 - fill - fill - - + + + True + Address _2: + True + False + GTK_JUSTIFY_CENTER + False + False + 1 + 0.5 + 0 + 0 + entry-ext + + + 0 + 1 + 1 + 2 + fill + fill + + - - - yes - yes - yes - - 0 - yes - yes - - - 1 - 4 - 0 - 1 - 0 - 0 - expand|fill - fill - - + + + True + True + True + True + 0 + + True + * + False + + + 3 + 4 + 1 + 2 + fill + fill + + - - - _State/Province: - GTK_JUSTIFY_CENTER - no - 1 - 0.5 - 0 - 0 - entry-region - yes - yes - - - 0 - 1 - 3 - 4 - 0 - 0 - fill - fill - - + + + True + True + True + True + True + 0 + + True + * + False + + + 1 + 4 + 0 + 1 + fill + + - - - yes - yes - - 0 - yes - yes - - - 1 - 2 - 3 - 4 - 0 - 0 - expand|fill - fill - - + + + True + _State/Province: + True + False + GTK_JUSTIFY_CENTER + False + False + 1 + 0.5 + 0 + 0 + entry-region + + + 0 + 1 + 3 + 4 + fill + fill + + - - - yes - no - no - 100 - yes - no - yes - yes + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 3 + 4 + fill + + - - - yes - yes - - 0 - yes - yes - - + + + True + True + False + True + False + True + False - - - yes + + + True + True + True + True + 0 + + True + * + False + + - - - yes + + + True + GTK_SELECTION_BROWSE - - - - 0.0 - yes - - - - - - - - - 3 - 4 - 3 - 4 - 0 - 0 - fill - fill - - + + + True - - - yes - yes - - 100 - 0 - yes - yes - - - 3 - 4 - 2 - 3 - 0 - 0 - fill - fill - - + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + + 3 + 4 + 3 + 4 + fill + fill + + - - - _ZIP Code: - GTK_JUSTIFY_CENTER - no - 1 - 0.5 - 0 - 0 - entry-code - yes - yes - - - 2 - 3 - 2 - 3 - 0 - 0 - fill - fill - - + + + True + True + True + True + 0 + + True + * + False + + + 3 + 4 + 2 + 3 + fill + fill + + + + + + True + _ZIP Code: + True + False + GTK_JUSTIFY_CENTER + False + False + 1 + 0.5 + 0 + 0 + entry-code + + + 2 + 3 + 2 + 3 + fill + fill + + + + + + True + Countr_y: + True + False + GTK_JUSTIFY_CENTER + False + False + 1 + 0.5 + 0 + 0 + entry-country + + + 2 + 3 + 3 + 4 + fill + fill + + + + + 0 + True + True + + + + + - - - Countr_y: - GTK_JUSTIFY_CENTER - no - 1 - 0.5 - 0 - 0 - entry-country - yes - yes - - - 2 - 3 - 3 - 4 - 0 - 0 - fill - fill - - - - - 0 - yes - yes - - - - - 4 - yes - yes - - - diff --git a/addressbook/gui/contact-editor/fullname.glade b/addressbook/gui/contact-editor/fullname.glade index 04501b4bec..f890d2cb88 100644 --- a/addressbook/gui/contact-editor/fullname.glade +++ b/addressbook/gui/contact-editor/fullname.glade @@ -1,554 +1,674 @@ - + - - no - Check Full Name - GTK_WINDOW_TOPLEVEL - yes - yes - yes - GTK_WIN_POS_NONE - - - - no - 8 - yes - - - - GTK_BUTTONBOX_END - 8 - yes - - - - yes - yes - yes - gtk-ok - yes - yes - - - - - - yes - yes - yes - gtk-cancel - yes - yes - - - - - 0 - no - yes - GTK_PACK_END - - - - - - 8 - no - 6 - 21 - 5 - 3 - yes - - - - no - no - yes - no - yes - yes - - - - yes - yes - - 0 - yes - yes - - - - - - yes - - - - yes - - - - - 0.0 - yes - - - - - - - - yes - - - - Mr. - 0.0 - yes - - - - - - - - yes - - - - Mrs. - 0.0 - yes - - - - - - - - yes - - - - Ms. - 0.0 - yes - - - - - - - - yes - - - - Miss - 0.0 - yes - - - - - - - - yes - - - - Dr. - 0.0 - yes - - - - - - - - yes - - - - - 0.0 - yes - - - - - - - - - 1 - 2 - 0 - 1 - 0 - 0 - expand|fill - - - - - - - no - no - yes - no - yes - yes - - - - yes - yes - - 0 - yes - yes - - - - - - yes - - - - yes - - - - - 0.0 - yes - - - - - - - - yes - - - - Sr. - 0.0 - yes - - - - - - - - yes - - - - Jr. - 0.0 - yes - - - - - - - - yes - - - - I - 0.0 - yes - - - - - - - - yes - - - - II - 0.0 - yes - - - - - - - - yes - - - - III - 0.0 - yes - - - - - - - - yes - - - - Esq. - 0.0 - yes - - - - - - - - yes - - - - - 0.0 - yes - - - - - - - - - 1 - 2 - 4 - 5 - 0 - 0 - expand|fill - - - - - - - yes - yes - - 0 - yes - yes - - - 1 - 3 - 1 - 2 - 0 - 0 - expand|fill - - - - - - - yes - yes - - 0 - yes - yes - - - 1 - 3 - 2 - 3 - 0 - 0 - expand|fill - - - - - - - yes - yes - - 0 - yes - yes - - - 1 - 3 - 3 - 4 - 0 - 0 - expand|fill - - - - - - - _First: - GTK_JUSTIFY_CENTER - no - 0 - 0.5 - 0 - 0 - entry-first - yes - yes - - - 0 - 1 - 1 - 2 - 0 - 0 - fill - fill - - - - - - _Title: - GTK_JUSTIFY_CENTER - no - 0 - 0.5 - 0 - 0 - entry-title - yes - yes - - - 0 - 1 - 0 - 1 - 0 - 0 - fill - fill - - - - - - _Middle: - GTK_JUSTIFY_CENTER - no - 0 - 0.5 - 0 - 0 - entry-middle - yes - yes - - - 0 - 1 - 2 - 3 - 0 - 0 - fill - fill - - - - - - _Last: - GTK_JUSTIFY_CENTER - no - 0 - 0.5 - 0 - 0 - entry-last - yes - yes - - - 0 - 1 - 3 - 4 - 0 - 0 - fill - fill - - - - - - _Suffix: - GTK_JUSTIFY_CENTER - no - 0 - 0.5 - 0 - 0 - entry-suffix - yes - yes - - - 0 - 1 - 4 - 5 - 0 - 0 - fill - fill - - - - - 0 - yes - yes - - - - - 4 - yes - yes - - - + + + Check Full Name + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + True + True + False + True + + + + True + False + 8 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + 0 + + + + + + True + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + 0 + + + + + 0 + False + True + GTK_PACK_END + + + + + + 8 + True + 5 + 3 + False + 6 + 21 + + + + True + False + True + False + True + False + + + + True + True + True + True + 0 + + True + * + False + + + + + + True + GTK_SELECTION_BROWSE + + + + True + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Mr. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Mrs. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Ms. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Miss + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Dr. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + + 1 + 2 + 0 + 1 + + + + + + + True + False + True + False + True + False + + + + True + True + True + True + 0 + + True + * + False + + + + + + True + GTK_SELECTION_BROWSE + + + + True + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Sr. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Jr. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + I + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + II + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + III + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + Esq. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + True + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + + + + + 1 + 2 + 4 + 5 + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 3 + 1 + 2 + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 3 + 2 + 3 + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 3 + 3 + 4 + + + + + + + True + _First: + True + False + GTK_JUSTIFY_CENTER + False + False + 0 + 0.5 + 0 + 0 + entry-first + + + 0 + 1 + 1 + 2 + fill + fill + + + + + + True + _Title: + True + False + GTK_JUSTIFY_CENTER + False + False + 0 + 0.5 + 0 + 0 + entry-title + + + 0 + 1 + 0 + 1 + fill + fill + + + + + + True + _Middle: + True + False + GTK_JUSTIFY_CENTER + False + False + 0 + 0.5 + 0 + 0 + entry-middle + + + 0 + 1 + 2 + 3 + fill + fill + + + + + + True + _Last: + True + False + GTK_JUSTIFY_CENTER + False + False + 0 + 0.5 + 0 + 0 + entry-last + + + 0 + 1 + 3 + 4 + fill + fill + + + + + + True + _Suffix: + True + False + GTK_JUSTIFY_CENTER + False + False + 0 + 0.5 + 0 + 0 + entry-suffix + + + 0 + 1 + 4 + 5 + fill + fill + + + + + 0 + True + True + + + + + + -- cgit