GtkWidget *button_ok;
GtkWidget *button_cancel;
+
+ gboolean is_dirty;
};
static void
};
static void
+on_change(GtkWidget* widget, ModestConnectionSpecificSmtpEditWindow *self)
+{
+ ModestConnectionSpecificSmtpEditWindowPrivate *priv =
+ CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (self);
+ priv->is_dirty = TRUE;
+}
+
+static void
on_combo_security_changed (GtkComboBox *widget, gpointer user_data)
{
ModestConnectionSpecificSmtpEditWindow *self =
ModestConnectionSpecificSmtpEditWindowPrivate *priv =
CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (self);
+ on_change(GTK_WIDGET(widget), self);
+
const gint port_number =
modest_serversecurity_combo_box_get_active_serversecurity_port (
MODEST_SERVERSECURITY_COMBO_BOX (priv->combo_outgoing_security));
priv->entry_outgoingserver = gtk_entry_new ();
/* Auto-capitalization is the default, so let's turn it off: */
hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->entry_outgoingserver), HILDON_GTK_INPUT_MODE_FULL);
+ g_signal_connect(G_OBJECT(priv->entry_outgoingserver), "changed", G_CALLBACK(on_change), self);
+
GtkWidget *caption = hildon_caption_new (sizegroup,
_("mcen_li_emailsetup_smtp"), priv->entry_outgoingserver, NULL, HILDON_CAPTION_OPTIONAL);
gtk_widget_show (priv->entry_outgoingserver);
priv->combo_outgoing_auth = GTK_WIDGET (modest_secureauth_combo_box_new ());
caption = hildon_caption_new (sizegroup, _("mcen_li_emailsetup_secure_authentication"),
priv->combo_outgoing_auth, NULL, HILDON_CAPTION_OPTIONAL);
+ g_signal_connect (G_OBJECT (priv->combo_outgoing_auth), "changed", G_CALLBACK(on_change), self);
gtk_widget_show (priv->combo_outgoing_auth);
gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
gtk_widget_show (caption);
hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->entry_user_username), HILDON_GTK_INPUT_MODE_FULL);
caption = hildon_caption_new (sizegroup, _("mail_fi_username"),
priv->entry_user_username, NULL, HILDON_CAPTION_MANDATORY);
+ g_signal_connect(G_OBJECT(priv->entry_user_username), "changed", G_CALLBACK(on_change), self);
gtk_widget_show (priv->entry_user_username);
gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
gtk_widget_show (caption);
/* gtk_entry_set_invisible_char (GTK_ENTRY (priv->entry_user_password), '*'); */
caption = hildon_caption_new (sizegroup,
_("mail_fi_password"), priv->entry_user_password, NULL, HILDON_CAPTION_OPTIONAL);
+ g_signal_connect(G_OBJECT(priv->entry_user_password), "changed", G_CALLBACK(on_change), self);
gtk_widget_show (priv->entry_user_password);
gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
gtk_widget_show (caption);
priv->entry_port = GTK_WIDGET (hildon_number_editor_new (0, 65535));
caption = hildon_caption_new (sizegroup,
_("mcen_li_emailsetup_smtp"), priv->entry_port, NULL, HILDON_CAPTION_OPTIONAL);
+ g_signal_connect(G_OBJECT(priv->entry_port), "changed", G_CALLBACK(on_change), self);
gtk_widget_show (priv->entry_port);
gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
gtk_widget_show (caption);
/* Show a default port number when the security method changes, as per the UI spec: */
g_signal_connect (G_OBJECT (priv->combo_outgoing_security), "changed", (GCallback)on_combo_security_changed, self);
+ on_combo_security_changed (GTK_COMBO_BOX (priv->combo_outgoing_security), self);
/* Add the buttons: */
gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_OK, GTK_RESPONSE_OK);
gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ priv->is_dirty = FALSE;
gtk_widget_show (box);
/* 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;
}
}
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;
+}