X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-connection-specific-smtp-edit-window.c;h=ae1a07dc49915b7afd8588e89dea09946bcaee6f;hb=cf63d171adc697c5d87d48c4b4b6ff57c7221979;hp=7a8f4be19f8d34b39a63194c53112877804d91c0;hpb=a96bf3c5a2633123c492174b6d1a79beb7a0b4c9;p=modest diff --git a/src/maemo/modest-connection-specific-smtp-edit-window.c b/src/maemo/modest-connection-specific-smtp-edit-window.c index 7a8f4be..ae1a07d 100644 --- a/src/maemo/modest-connection-specific-smtp-edit-window.c +++ b/src/maemo/modest-connection-specific-smtp-edit-window.c @@ -61,6 +61,8 @@ struct _ModestConnectionSpecificSmtpEditWindowPrivate GtkWidget *button_ok; GtkWidget *button_cancel; + + gboolean is_dirty; }; static void @@ -116,6 +118,14 @@ enum MODEL_COLS { }; 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 = @@ -123,6 +133,8 @@ on_combo_security_changed (GtkComboBox *widget, gpointer user_data) 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)); @@ -153,21 +165,20 @@ modest_connection_specific_smtp_edit_window_init (ModestConnectionSpecificSmtpEd 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); 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); - - /* The secure authentication widgets: */ if (!priv->combo_outgoing_auth) 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); @@ -178,6 +189,7 @@ modest_connection_specific_smtp_edit_window_init (ModestConnectionSpecificSmtpEd 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); @@ -200,6 +212,7 @@ modest_connection_specific_smtp_edit_window_init (ModestConnectionSpecificSmtpEd /* 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); @@ -222,14 +235,20 @@ modest_connection_specific_smtp_edit_window_init (ModestConnectionSpecificSmtpEd 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); + /* FIXME: There is no changed signal for hildon_number_editor */ 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); @@ -274,6 +293,10 @@ modest_connection_specific_smtp_edit_window_set_connection ( /* 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; } } @@ -282,13 +305,11 @@ modest_connection_specific_smtp_edit_window_set_connection ( ModestServerAccountData* modest_connection_specific_smtp_edit_window_get_settings ( ModestConnectionSpecificSmtpEditWindow *window, - ModestAccountMgr *account_manager, const gchar* server_account_name) + ModestAccountMgr *account_manager) { ModestConnectionSpecificSmtpEditWindowPrivate *priv = CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (window); - g_assert (server_account_name); - /* 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); @@ -309,3 +330,12 @@ modest_connection_specific_smtp_edit_window_get_settings ( 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; +}