diff options
Diffstat (limited to 'addressbook/gui/component/addressbook-config.c')
-rw-r--r-- | addressbook/gui/component/addressbook-config.c | 111 |
1 files changed, 18 insertions, 93 deletions
diff --git a/addressbook/gui/component/addressbook-config.c b/addressbook/gui/component/addressbook-config.c index b2e7798277..0ed3b67b28 100644 --- a/addressbook/gui/component/addressbook-config.c +++ b/addressbook/gui/component/addressbook-config.c @@ -91,10 +91,7 @@ struct _AddressbookSourceDialog { GtkWidget *host; GtkWidget *auth_optionmenu; AddressbookLDAPAuthType auth; - GtkWidget *auth_label_notebook; - GtkWidget *auth_entry_notebook; - GtkWidget *email; - GtkWidget *binddn; + GtkWidget *auth_principal; /* connecting page fields */ ModifyFunc connecting_modify_func; @@ -224,8 +221,10 @@ dialog_to_source (AddressbookSourceDialog *dialog, ESource *source, gboolean tem if (!strcmp ("ldap://", e_source_group_peek_base_uri (dialog->source_group))) { #ifdef HAVE_LDAP - e_source_set_property (source, "email_addr", gtk_entry_get_text (GTK_ENTRY (dialog->email))); - e_source_set_property (source, "binddn", gtk_entry_get_text (GTK_ENTRY (dialog->binddn))); + if (dialog->auth != ADDRESSBOOK_LDAP_AUTH_NONE) + e_source_set_property (source, + dialog->auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE_EMAIL ? "email_addr" : "binddn", + gtk_entry_get_text (GTK_ENTRY (dialog->auth_principal))); str = g_strdup_printf ("%d", gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->limit_spinbutton))); e_source_set_property (source, "limit", str); g_free (str); @@ -331,59 +330,6 @@ source_to_uri_parts (ESource *source, gchar **host, gchar **rootdn, #define SOURCE_PROP_STRING(source, prop) \ (source && e_source_get_property (source, prop) ? e_source_get_property (source, prop) : "") - -static void -source_to_dialog_new (AddressbookSourceDialog *dialog) -{ - ESource *source = dialog->source; - - gtk_entry_set_text (GTK_ENTRY (dialog->display_name), source ? e_source_peek_name (source) : ""); - -#ifdef HAVE_LDAP - gtk_entry_set_text (GTK_ENTRY (dialog->email), SOURCE_PROP_STRING (source, "email_addr")); - if (dialog->binddn) - gtk_entry_set_text (GTK_ENTRY (dialog->binddn), SOURCE_PROP_STRING (source, "binddn")); - gtk_spin_button_set_value ( GTK_SPIN_BUTTON (dialog->limit_spinbutton), - g_strtod ( source && e_source_get_property (source, "limit") ? - e_source_get_property (source, "limit") : "100", NULL)); - gtk_adjustment_set_value (GTK_RANGE(dialog->timeout_scale)->adjustment, - g_strtod ( source && e_source_get_property (source, "timeout") ? - e_source_get_property (source, "timeout") : "3", NULL)); - - dialog->auth = source && e_source_get_property (source, "auth") ? - ldap_parse_auth (e_source_get_property (source, "auth")) : ADDRESSBOOK_LDAP_AUTH_NONE; - dialog->ssl = source && e_source_get_property (source, "ssl") ? - ldap_parse_ssl (e_source_get_property (source, "ssl")) : ADDRESSBOOK_LDAP_SSL_WHENEVER_POSSIBLE; - - if (source && !strcmp ("ldap://", e_source_group_peek_base_uri (dialog->source_group))) { - gchar *host; - gchar *rootdn; - AddressbookLDAPScopeType scope; - gint port; - - if (source_to_uri_parts (source, &host, &rootdn, &scope, &port)) { - gchar *port_str; - - gtk_entry_set_text (GTK_ENTRY (dialog->host), host); - gtk_entry_set_text (GTK_ENTRY (dialog->rootdn), rootdn); - - dialog->scope = scope; - - port_str = g_strdup_printf ("%d", port); - gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (dialog->port_combo)->entry), port_str); - g_free (port_str); - - g_free (host); - g_free (rootdn); - } - } - - gtk_option_menu_set_history (GTK_OPTION_MENU(dialog->auth_optionmenu), dialog->auth); - gtk_option_menu_set_history (GTK_OPTION_MENU(dialog->scope_optionmenu), dialog->scope); - gtk_option_menu_set_history (GTK_OPTION_MENU(dialog->ssl_optionmenu), dialog->ssl); -#endif -} - static void source_to_dialog (AddressbookSourceDialog *dialog) { @@ -392,8 +338,6 @@ source_to_dialog (AddressbookSourceDialog *dialog) gtk_entry_set_text (GTK_ENTRY (dialog->display_name), source ? e_source_peek_name (source) : ""); #ifdef HAVE_LDAP - gtk_entry_set_text (GTK_ENTRY (dialog->email), SOURCE_PROP_STRING (source, "email_addr")); - gtk_entry_set_text (GTK_ENTRY (dialog->binddn), SOURCE_PROP_STRING (source, "binddn")); gtk_spin_button_set_value ( GTK_SPIN_BUTTON (dialog->limit_spinbutton), g_strtod ( source && e_source_get_property (source, "limit") ? e_source_get_property (source, "limit") : "100", NULL)); @@ -406,6 +350,11 @@ source_to_dialog (AddressbookSourceDialog *dialog) dialog->ssl = source && e_source_get_property (source, "ssl") ? ldap_parse_ssl (e_source_get_property (source, "ssl")) : ADDRESSBOOK_LDAP_SSL_WHENEVER_POSSIBLE; + if (dialog->auth != ADDRESSBOOK_LDAP_AUTH_NONE) + gtk_entry_set_text (GTK_ENTRY (dialog->auth_principal), + SOURCE_PROP_STRING (source, + dialog->auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE_EMAIL ? "email_addr" : "binddn")); + if (source && !strcmp ("ldap://", e_source_group_peek_base_uri (dialog->source_group))) { gchar *host; gchar *rootdn; @@ -430,11 +379,6 @@ source_to_dialog (AddressbookSourceDialog *dialog) } gtk_option_menu_set_history (GTK_OPTION_MENU(dialog->auth_optionmenu), dialog->auth); - if (dialog->auth != ADDRESSBOOK_LDAP_AUTH_NONE) { - gtk_notebook_set_current_page (GTK_NOTEBOOK(dialog->auth_entry_notebook), dialog->auth - 1); - } - gtk_widget_set_sensitive (dialog->auth_entry_notebook, dialog->auth != ADDRESSBOOK_LDAP_AUTH_NONE); - gtk_option_menu_set_history (GTK_OPTION_MENU(dialog->scope_optionmenu), dialog->scope); gtk_option_menu_set_history (GTK_OPTION_MENU(dialog->ssl_optionmenu), dialog->ssl); #endif @@ -531,14 +475,6 @@ auth_optionmenu_activated (GtkWidget *item, AddressbookSourceDialog *dialog) item); dialog->general_modify_func (item, dialog); - - if (dialog->auth == 0) { - gtk_widget_set_sensitive (dialog->auth_entry_notebook, FALSE); - } - else { - gtk_widget_set_sensitive (dialog->auth_entry_notebook, TRUE); - gtk_notebook_set_current_page (GTK_NOTEBOOK(dialog->auth_entry_notebook), dialog->auth - 1); - } } static void @@ -559,16 +495,10 @@ setup_general_tab (AddressbookSourceDialog *dialog, ModifyFunc modify_func) g_signal_connect (dialog->host, "changed", G_CALLBACK (modify_func), dialog); - dialog->auth_entry_notebook = glade_xml_get_widget (dialog->gui, "auth-entry-notebook"); - dialog->email = glade_xml_get_widget (dialog->gui, "email-entry"); - g_signal_connect (dialog->email, "changed", + dialog->auth_principal = glade_xml_get_widget (dialog->gui, "auth-entry"); + g_signal_connect (dialog->auth_principal, "changed", G_CALLBACK (modify_func), dialog); - dialog->binddn = glade_xml_get_widget (dialog->gui, "dn-entry"); - if (dialog->binddn) - g_signal_connect (dialog->binddn, "changed", - G_CALLBACK (modify_func), dialog); - dialog->auth_optionmenu = glade_xml_get_widget (dialog->gui, "auth-optionmenu"); menu = gtk_option_menu_get_menu (GTK_OPTION_MENU(dialog->auth_optionmenu)); gtk_container_foreach (GTK_CONTAINER (menu), (GtkCallback)add_auth_activate_cb, dialog); @@ -589,10 +519,7 @@ general_tab_check (AddressbookSourceDialog *dialog) if (valid) { if (dialog->auth != ADDRESSBOOK_LDAP_AUTH_NONE) { - if (dialog->auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE_BINDDN) - string = gtk_entry_get_text (GTK_ENTRY (dialog->binddn)); - else - string = gtk_entry_get_text (GTK_ENTRY (dialog->email)); + string = gtk_entry_get_text (GTK_ENTRY (dialog->auth_principal)); if (!string || !string[0]) valid = FALSE; @@ -927,7 +854,7 @@ add_folder_modify (GtkWidget *widget, AddressbookSourceDialog *sdialog) gtk_widget_set_sensitive (sdialog->auth_frame, remote); #ifdef HAVE_LDAP - gtk_widget_set_sensitive (sdialog->email, sdialog->auth != ADDRESSBOOK_LDAP_AUTH_NONE); + gtk_widget_set_sensitive (sdialog->auth_principal, sdialog->auth != ADDRESSBOOK_LDAP_AUTH_NONE); if (valid) valid = general_tab_check (sdialog); @@ -1022,9 +949,10 @@ addressbook_add_server_dialog (void) setup_general_tab (sdialog, add_folder_modify); #ifdef HAVE_LDAP + setup_connecting_tab (sdialog, add_folder_modify); + setup_searching_tab (sdialog, add_folder_modify); #endif - setup_connecting_tab (sdialog, add_folder_modify); sdialog->auth_frame = glade_xml_get_widget (sdialog->gui, "authentication-frame"); sdialog->server_frame = glade_xml_get_widget (sdialog->gui, "server-frame"); @@ -1043,7 +971,7 @@ addressbook_add_server_dialog (void) g_object_unref (gconf_client); /* make sure we fill in the default values */ - source_to_dialog_new (sdialog); + source_to_dialog (sdialog); gtk_window_set_type_hint (GTK_WINDOW (sdialog->window), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_modal (GTK_WINDOW (sdialog->window), TRUE); @@ -1276,14 +1204,11 @@ addressbook_config_edit_source (GtkWidget *parent, ESource *source) g_signal_connect (sdialog->display_name, "changed", G_CALLBACK (editor_modify_cb), sdialog); -#ifdef HAVE_LDAP - setup_general_tab (sdialog, editor_modify_cb); - +#ifdef HAVE_LDAP setup_connecting_tab (sdialog, editor_modify_cb); setup_searching_tab (sdialog, editor_modify_cb); - #endif sdialog->notebook = glade_xml_get_widget (sdialog->gui, "account-editor-notebook"); |