From: Jose Dapena Paz Date: Thu, 24 Apr 2008 18:17:10 +0000 (+0000) Subject: Show the "Discard changes" confirmation note whenever the user X-Git-Tag: git_migration_finished~1417 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=12408690b2cda835dc08e32d2185eef864955c73 Show the "Discard changes" confirmation note whenever the user presses the cancel button after changing some configurations in that dialog (fixes NB#84260). pmo-trunk-r4473 --- diff --git a/src/maemo/modest-connection-specific-smtp-edit-window.c b/src/maemo/modest-connection-specific-smtp-edit-window.c index c9b26fc..a3aa05b 100644 --- a/src/maemo/modest-connection-specific-smtp-edit-window.c +++ b/src/maemo/modest-connection-specific-smtp-edit-window.c @@ -52,6 +52,10 @@ G_DEFINE_TYPE (ModestConnectionSpecificSmtpEditWindow, modest_connection_specifi #define CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), MODEST_TYPE_CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW, ModestConnectionSpecificSmtpEditWindowPrivate)) +static void on_response (GtkDialog *dialog, + gint arg1, + gpointer user_data); + typedef struct _ModestConnectionSpecificSmtpEditWindowPrivate ModestConnectionSpecificSmtpEditWindowPrivate; struct _ModestConnectionSpecificSmtpEditWindowPrivate @@ -227,8 +231,16 @@ on_response (GtkDialog *dialog, int response_id, gpointer user_data) gtk_editable_select_region (GTK_EDITABLE (priv->entry_outgoingserver), 0, -1); return; } + } else { + /* Ask user if they want to discard changes */ + if (priv->is_dirty) { + gint response; + response = modest_platform_run_confirmation_dialog (GTK_WINDOW (user_data), + _("imum_nc_wizard_confirm_lose_changes")); + if (response == GTK_RESPONSE_CANCEL) + g_signal_stop_emission_by_name (dialog, "response"); + } } - } static void on_set_focus_child (GtkContainer *container, GtkWidget *widget, gpointer user_data) @@ -503,8 +515,8 @@ modest_connection_specific_smtp_edit_window_get_settings (ModestConnectionSpecif return server_settings; } -gboolean modest_connection_specific_smtp_edit_window_is_dirty( - ModestConnectionSpecificSmtpEditWindow *window) +gboolean +modest_connection_specific_smtp_edit_window_is_dirty(ModestConnectionSpecificSmtpEditWindow *window) { ModestConnectionSpecificSmtpEditWindowPrivate *priv = CONNECTION_SPECIFIC_SMTP_EDIT_WINDOW_GET_PRIVATE (window); diff --git a/src/maemo/modest-connection-specific-smtp-window.c b/src/maemo/modest-connection-specific-smtp-window.c index e80a349..64513d2 100644 --- a/src/maemo/modest-connection-specific-smtp-window.c +++ b/src/maemo/modest-connection-specific-smtp-window.c @@ -264,7 +264,7 @@ on_button_edit (GtkButton *button, gpointer user_data) server_settings = NULL; } - gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (self)); + modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (window)); gboolean dialog_finished = FALSE; while (!dialog_finished)