* src/maemo/modest-account-settings-dialog.c,
authorJose Dapena Paz <jdapena@igalia.com>
Mon, 17 Mar 2008 13:31:11 +0000 (13:31 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Mon, 17 Mar 2008 13:31:11 +0000 (13:31 +0000)
  src/maemo/easysetup/modest-easysetup-wizard-dialog.c:
        * Now we dim the incoming auth checkbox if we're already using
          ssl/tls (fixes NB#81707).

pmo-trunk-r4321

src/maemo/easysetup/modest-easysetup-wizard-dialog.c
src/maemo/modest-account-settings-dialog.c

index 4b5e02f..74ba84d 100644 (file)
@@ -153,6 +153,22 @@ on_easysetup_changed(GtkWidget* widget, ModestEasysetupWizardDialog* wizard)
 }
 
 static void
+on_incoming_security_changed(GtkWidget* widget, ModestEasysetupWizardDialog* wizard)
+{
+       ModestEasysetupWizardDialogPrivate* priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE(wizard);
+       ModestConnectionProtocol protocol_security_incoming;
+
+       g_return_if_fail (priv != NULL);
+       protocol_security_incoming = modest_serversecurity_combo_box_get_active_serversecurity (
+               MODEST_SERVERSECURITY_COMBO_BOX (priv->combo_incoming_security));
+
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->checkbox_incoming_auth), modest_protocol_info_is_secure (protocol_security_incoming));
+       gtk_widget_set_sensitive (priv->checkbox_incoming_auth, !modest_protocol_info_is_secure (protocol_security_incoming));
+       
+       on_easysetup_changed (widget, wizard);
+}
+
+static void
 modest_easysetup_wizard_dialog_get_property (GObject *object, guint property_id,
                                             GValue *value, GParamSpec *pspec)
 {
@@ -872,7 +888,7 @@ create_page_custom_incoming (ModestEasysetupWizardDialog *self)
        caption = hildon_caption_new (sizegroup, _("mcen_li_emailsetup_secure_connection"), 
                                      priv->combo_incoming_security, NULL, HILDON_CAPTION_OPTIONAL);
        g_signal_connect (G_OBJECT (priv->combo_incoming_security), "changed",
-                         G_CALLBACK (on_easysetup_changed), self);
+                         G_CALLBACK (on_incoming_security_changed), self);
        gtk_widget_show (priv->combo_incoming_security);
        gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
        gtk_widget_show (caption);
index 18d7834..d96fbf0 100644 (file)
@@ -763,8 +763,10 @@ static void
 on_combo_incoming_security_changed (GtkComboBox *widget, gpointer user_data)
 {
        ModestAccountSettingsDialog *self = MODEST_ACCOUNT_SETTINGS_DIALOG (user_data);
+       ModestConnectionProtocol protocol_security_incoming;
+       gint port_number;
        
-       const gint port_number = 
+       port_number = 
                modest_serversecurity_combo_box_get_active_serversecurity_port (
                        MODEST_SERVERSECURITY_COMBO_BOX (self->combo_incoming_security));
 
@@ -772,6 +774,12 @@ on_combo_incoming_security_changed (GtkComboBox *widget, gpointer user_data)
                hildon_number_editor_set_value (
                        HILDON_NUMBER_EDITOR (self->entry_incoming_port), port_number);
        }               
+
+       protocol_security_incoming = modest_serversecurity_combo_box_get_active_serversecurity (
+               MODEST_SERVERSECURITY_COMBO_BOX (self->combo_incoming_security));
+       gtk_widget_set_sensitive (self->checkbox_incoming_auth, !modest_protocol_info_is_secure (protocol_security_incoming));
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->checkbox_incoming_auth), modest_protocol_info_is_secure (protocol_security_incoming));
+
 }
 
 
@@ -1002,14 +1010,9 @@ check_data (ModestAccountSettingsDialog *self)
                        HILDON_NUMBER_EDITOR (self->entry_incoming_port));
        const gchar* username = gtk_entry_get_text (GTK_ENTRY (self->entry_user_username));
 
-       /*
        const ModestConnectionProtocol protocol_security_incoming = modest_serversecurity_combo_box_get_active_serversecurity (
                MODEST_SERVERSECURITY_COMBO_BOX (self->combo_incoming_security));
-       */
-       /* If we use an encrypted protocol then there is no need to encrypt the password */
-       /* I don't think this is a good assumption. It overrides the user's request. murrayc: 
-        *  if (!modest_protocol_info_is_secure(protocol_security_incoming)) */
-       if (TRUE)
+       if (!modest_protocol_info_is_secure(protocol_security_incoming))
        {
                if (gtk_toggle_button_get_active (
                                GTK_TOGGLE_BUTTON (self->checkbox_incoming_auth))) {
@@ -1244,8 +1247,7 @@ void modest_account_settings_dialog_set_account (ModestAccountSettingsDialog *di
                            null_means_empty (modest_account_settings_get_fullname (settings)));
        gtk_entry_set_text( GTK_ENTRY (dialog->entry_user_email), 
                            null_means_empty (modest_account_settings_get_email_address (settings)));
-       modest_retrieve_combo_box_fill (MODEST_RETRIEVE_COMBO_BOX (dialog->combo_retrieve), 
-                                       modest_server_account_settings_get_protocol (incoming_account));
+       modest_retrieve_combo_box_fill (MODEST_RETRIEVE_COMBO_BOX (dialog->combo_retrieve), modest_server_account_settings_get_protocol (incoming_account));
        modest_retrieve_combo_box_set_active_retrieve_conf (MODEST_RETRIEVE_COMBO_BOX (dialog->combo_retrieve), 
                                                            modest_account_settings_get_retrieve_type (settings));
        modest_limit_retrieve_combo_box_set_active_limit_retrieve (
@@ -1300,7 +1302,8 @@ void modest_account_settings_dialog_set_account (ModestAccountSettingsDialog *di
                const ModestAuthProtocol secure_auth = modest_server_account_settings_get_auth_protocol (incoming_account);
                dialog->protocol_authentication_incoming = (secure_auth != MODEST_PROTOCOL_AUTH_NONE)?
                        secure_auth:MODEST_PROTOCOL_AUTH_PASSWORD;
-               if (modest_protocol_info_auth_is_secure(secure_auth))
+               ModestConnectionProtocol secure_protocol = modest_server_account_settings_get_security (incoming_account);
+               if (modest_protocol_info_is_secure (secure_protocol) || modest_protocol_info_auth_is_secure(secure_auth))
                {
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dialog->checkbox_incoming_auth), 
                                                     TRUE);
@@ -1310,6 +1313,8 @@ void modest_account_settings_dialog_set_account (ModestAccountSettingsDialog *di
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dialog->checkbox_incoming_auth), 
                                                     FALSE);
                };
+
+               gtk_widget_set_sensitive (dialog->checkbox_incoming_auth, !modest_protocol_info_is_secure (secure_protocol));
                                        
                update_incoming_server_title (dialog, dialog->incoming_protocol);
                
@@ -1482,8 +1487,13 @@ save_configuration (ModestAccountSettingsDialog *dialog)
        
        const ModestConnectionProtocol protocol_security_incoming = modest_serversecurity_combo_box_get_active_serversecurity (
                MODEST_SERVERSECURITY_COMBO_BOX (dialog->combo_incoming_security));
-       modest_server_account_settings_set_security (store_settings, protocol_security_incoming);       
-       modest_server_account_settings_set_auth_protocol (store_settings, dialog->protocol_authentication_incoming);
+       modest_server_account_settings_set_security (store_settings, protocol_security_incoming);
+       if (modest_protocol_info_is_secure (protocol_security_incoming)) {
+               modest_server_account_settings_set_auth_protocol (store_settings, FALSE);
+       } else {
+               modest_server_account_settings_set_auth_protocol (store_settings, 
+                                                                 dialog->protocol_authentication_incoming);
+       }
 
        g_object_unref (store_settings);