+void
+modest_connection_specific_smtp_edit_window_set_connection (
+ ModestConnectionSpecificSmtpEditWindow *window, const gchar* iap_id, const gchar* iap_name,
+ ModestServerAccountSettings *server_settings)
+{
+ ModestConnectionSpecificSmtpEditWindowPrivate *priv =
+ CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (window);
+
+ /* This causes a warning because of the %s in the translation, but not in the original string: */
+ gchar* title = g_strdup_printf (_("mcen_ti_connection_connection_name"), iap_name);
+ gtk_window_set_title (GTK_WINDOW (window), title);
+ g_free (title);
+
+ if (server_settings)
+ {
+
+ if (priv->account_name)
+ g_free (priv->account_name);
+ priv->account_name = g_strdup (modest_server_account_settings_get_account_name (server_settings));
+ gtk_entry_set_text (GTK_ENTRY (priv->entry_outgoingserver),
+ modest_server_account_settings_get_hostname (server_settings));
+ gtk_entry_set_text (GTK_ENTRY (priv->entry_user_username),
+ modest_server_account_settings_get_username (server_settings));
+ gtk_entry_set_text (GTK_ENTRY (priv->entry_user_password),
+ modest_server_account_settings_get_password (server_settings));
+
+ modest_serversecurity_combo_box_set_active_serversecurity (
+ MODEST_SERVERSECURITY_COMBO_BOX (priv->combo_outgoing_security),
+ modest_server_account_settings_get_security_protocol (server_settings));
+
+ modest_secureauth_combo_box_set_active_secureauth (
+ MODEST_SECUREAUTH_COMBO_BOX (priv->combo_outgoing_auth),
+ modest_server_account_settings_get_auth_protocol (server_settings));
+
+ /* port: */
+ hildon_number_editor_set_value (
+ HILDON_NUMBER_EDITOR (priv->entry_port),
+ modest_server_account_settings_get_port (server_settings));
+
+
+ /* This will cause changed signals so we set dirty back to FALSE */
+ priv->is_dirty = FALSE;
+ }
+}
+
+ModestServerAccountSettings*
+modest_connection_specific_smtp_edit_window_get_settings (ModestConnectionSpecificSmtpEditWindow *window)
+{
+ ModestConnectionSpecificSmtpEditWindowPrivate *priv = NULL;
+ ModestServerAccountSettings *server_settings = NULL;
+ const gchar *outgoing_server = NULL;
+
+ priv = CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (window);
+ outgoing_server = gtk_entry_get_text (GTK_ENTRY (priv->entry_outgoingserver));
+
+ /* If the outgoing server is NULL, we are removing the connection specific
+ * settings */
+ if ((outgoing_server == NULL) || (outgoing_server[0] == '\0')) {
+ return NULL;
+ }
+
+ server_settings = modest_server_account_settings_new ();
+
+ modest_server_account_settings_set_hostname (server_settings,
+ gtk_entry_get_text (GTK_ENTRY (priv->entry_outgoingserver)));
+ modest_server_account_settings_set_protocol (server_settings,
+ MODEST_PROTOCOLS_TRANSPORT_SMTP);
+ modest_server_account_settings_set_username (server_settings,
+ gtk_entry_get_text (GTK_ENTRY (priv->entry_user_username)));
+ modest_server_account_settings_set_password (server_settings,
+ gtk_entry_get_text (GTK_ENTRY (priv->entry_user_password)));
+
+ modest_server_account_settings_set_security_protocol (server_settings,
+ modest_serversecurity_combo_box_get_active_serversecurity (
+ MODEST_SERVERSECURITY_COMBO_BOX (priv->combo_outgoing_security)));
+ modest_server_account_settings_set_auth_protocol (server_settings,
+ modest_secureauth_combo_box_get_active_secureauth (
+ MODEST_SECUREAUTH_COMBO_BOX (priv->combo_outgoing_auth)));
+ modest_server_account_settings_set_account_name (server_settings,
+ priv->account_name);
+
+ /* port: */
+ modest_server_account_settings_set_port (server_settings,
+ hildon_number_editor_get_value (HILDON_NUMBER_EDITOR (priv->entry_port)));
+
+ return server_settings;
+}
+
+gboolean
+modest_connection_specific_smtp_edit_window_is_dirty(ModestConnectionSpecificSmtpEditWindow *window)
+{
+ ModestConnectionSpecificSmtpEditWindowPrivate *priv =
+ CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (window);
+
+ return priv->is_dirty;
+}