+void
+modest_connection_specific_smtp_edit_window_set_connection (
+ ModestConnectionSpecificSmtpEditWindow *window, const gchar* iap_id, const gchar* iap_name,
+ const ModestServerAccountData *data)
+{
+ 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 (data)
+ {
+ gtk_entry_set_text (GTK_ENTRY (priv->entry_outgoingserver), data->hostname);
+ gtk_entry_set_text (GTK_ENTRY (priv->entry_user_username), data->username);
+ gtk_entry_set_text (GTK_ENTRY (priv->entry_user_password), data->password);
+
+ modest_serversecurity_combo_box_set_active_serversecurity (
+ MODEST_SERVERSECURITY_COMBO_BOX (priv->combo_outgoing_security), data->security);
+
+ modest_secureauth_combo_box_set_active_secureauth (
+ MODEST_SECUREAUTH_COMBO_BOX (priv->combo_outgoing_auth), data->secure_auth);
+
+ /* port: */
+ hildon_number_editor_set_value (
+ HILDON_NUMBER_EDITOR (priv->entry_port), data->port);
+
+
+ /* This will cause changed signals so we set dirty back to FALSE */
+ priv->is_dirty = FALSE;
+ }
+}
+
+/*
+ * The result must be freed with modest_account_mgr_free_server_account_data(). */
+ModestServerAccountData*
+modest_connection_specific_smtp_edit_window_get_settings (
+ ModestConnectionSpecificSmtpEditWindow *window,
+ ModestAccountMgr *account_manager)
+{
+ ModestConnectionSpecificSmtpEditWindowPrivate *priv =
+ CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (window);
+
+ /* Use g_slice_new0(), because that's what modest_account_mgr_free_server_account_data()
+ * expects us to use. */
+ ModestServerAccountData *result = g_slice_new0 (ModestServerAccountData);
+
+ result->hostname = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->entry_outgoingserver)));
+ result->username = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->entry_user_username)));
+ result->password = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->entry_user_password)));
+
+ result->security = modest_serversecurity_combo_box_get_active_serversecurity (
+ MODEST_SERVERSECURITY_COMBO_BOX (priv->combo_outgoing_security));
+
+ result->secure_auth = modest_secureauth_combo_box_get_active_secureauth (
+ MODEST_SECUREAUTH_COMBO_BOX (priv->combo_outgoing_auth));
+
+ /* port: */
+ result->port = hildon_number_editor_get_value (
+ HILDON_NUMBER_EDITOR (priv->entry_port));
+
+ return result;
+}
+
+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;
+}