From ae06a114724e713c7cc743f8ea792ca91f65c4d4 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Thu, 18 Jun 2009 19:13:17 +0200 Subject: [PATCH 1/1] Moved check_for_active_account to modest_ui_actions --- src/gnome/modest-account-view-window.c | 72 +----------------------- src/hildon2/modest-account-view-window.c | 88 +----------------------------- src/maemo/modest-account-view-window.c | 88 +----------------------------- src/modest-ui-actions.c | 86 +++++++++++++++++++++++++++++ src/modest-ui-actions.h | 14 +++++ 5 files changed, 107 insertions(+), 241 deletions(-) diff --git a/src/gnome/modest-account-view-window.c b/src/gnome/modest-account-view-window.c index 68b5f8d..70bea39 100644 --- a/src/gnome/modest-account-view-window.c +++ b/src/gnome/modest-account-view-window.c @@ -32,7 +32,7 @@ #include #include - +#include "modest-ui-actions.h" #include #include #include @@ -45,8 +45,6 @@ static void modest_account_view_window_class_init (ModestAccountViewWindowClass *klass); static void modest_account_view_window_init (ModestAccountViewWindow *obj); static void modest_account_view_window_finalize (GObject *obj); -static gboolean check_for_active_account (ModestAccountViewWindow *self, - const gchar* account_name); /* list my signals */ enum { /* MY_SIGNAL_1, */ @@ -168,7 +166,7 @@ on_remove_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) if (!account_title) return; - if (check_for_active_account (self, account_name)) { + if (modest_ui_actions_check_for_active_account (self, account_name)) { gboolean removed; gchar *txt; gint response; @@ -202,70 +200,6 @@ on_remove_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) } } -/** Check whether any connections are active, and cancel them if - * the user wishes. - * Returns TRUE is there was no problem, - * or if an operation was cancelled so we can continue. - * Returns FALSE if the user chose to cancel his request instead. - */ -static gboolean -check_for_active_account (ModestAccountViewWindow *self, const gchar* account_name) -{ - ModestTnyAccountStore *acc_store; - ModestMailOperationQueue* queue; - TnyConnectionStatus store_conn_status, transport_conn_status; - TnyAccount *store_account = NULL, *transport_account = NULL; - gboolean retval = TRUE; - - acc_store = modest_runtime_get_account_store (); - queue = modest_runtime_get_mail_operation_queue (); - - store_account = - modest_tny_account_store_get_server_account (acc_store, - account_name, - TNY_ACCOUNT_TYPE_STORE); - transport_account = - modest_tny_account_store_get_server_account (acc_store, - account_name, - TNY_ACCOUNT_TYPE_TRANSPORT); - - store_conn_status = tny_account_get_connection_status (store_account); - transport_conn_status = tny_account_get_connection_status (transport_account); - - if (store_conn_status == TNY_CONNECTION_STATUS_CONNECTED || - transport_conn_status == TNY_CONNECTION_STATUS_CONNECTED) { - gint response; - - response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), - _("emev_nc_disconnect_account")); - if (response == GTK_RESPONSE_OK) { - /* FIXME: We should only cancel those of this account */ - modest_mail_operation_queue_cancel_all (queue); - - /* Also disconnect the account */ - if (tny_account_get_connection_status (store_account) == TNY_CONNECTION_STATUS_CONNECTED) { - tny_account_cancel (store_account); - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (store_account), - FALSE, NULL, NULL); - } - if (tny_account_get_connection_status (transport_account) == TNY_CONNECTION_STATUS_CONNECTED) { - tny_account_cancel (transport_account); - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (transport_account), - FALSE, NULL, NULL); - } - retval = TRUE; - } else { - retval = FALSE; - } - } - - /* Frees */ - g_object_unref (store_account); - g_object_unref (transport_account); - - return retval; -} - static void on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) { @@ -278,7 +212,7 @@ on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) /* Check whether any connections are active, and cancel them if * the user wishes. */ - if (check_for_active_account (self, account_name)) { + if (modest_ui_actions_check_for_active_account (self, account_name)) { ModestAccountProtocol *proto; ModestProtocolType proto_type; diff --git a/src/hildon2/modest-account-view-window.c b/src/hildon2/modest-account-view-window.c index 96930cf..5253bcc 100644 --- a/src/hildon2/modest-account-view-window.c +++ b/src/hildon2/modest-account-view-window.c @@ -34,6 +34,7 @@ #include #include +#include "modest-ui-actions.h" #include "modest-platform.h" #include "modest-text-utils.h" #include "modest-account-protocol.h" @@ -125,91 +126,6 @@ modest_account_view_window_finalize (GObject *self) G_OBJECT_CLASS(parent_class)->finalize (self); } - -/** Check whether any connections are active, and cancel them if - * the user wishes. - * Returns TRUE is there was no problem, - * or if an operation was cancelled so we can continue. - * Returns FALSE if the user chose to cancel his request instead. - */ -static gboolean -check_for_active_account (ModestAccountViewWindow *self, const gchar* account_name) -{ - ModestTnySendQueue *send_queue; - ModestTnyAccountStore *acc_store; - ModestMailOperationQueue* queue; - TnyConnectionStatus store_conn_status; - TnyAccount *store_account = NULL, *transport_account = NULL; - gboolean retval = TRUE, sending = FALSE; - - acc_store = modest_runtime_get_account_store (); - queue = modest_runtime_get_mail_operation_queue (); - - store_account = - modest_tny_account_store_get_server_account (acc_store, - account_name, - TNY_ACCOUNT_TYPE_STORE); - - /* This could happen if the account was deleted before the - call to this function */ - if (!store_account) - return FALSE; - - transport_account = - modest_tny_account_store_get_server_account (acc_store, - account_name, - TNY_ACCOUNT_TYPE_TRANSPORT); - - /* This could happen if the account was deleted before the - call to this function */ - if (!transport_account) { - g_object_unref (store_account); - return FALSE; - } - - /* If the transport account was not used yet, then the send - queue could not exist (it's created on demand) */ - send_queue = modest_runtime_get_send_queue (TNY_TRANSPORT_ACCOUNT (transport_account), FALSE); - if (TNY_IS_SEND_QUEUE (send_queue)) - sending = modest_tny_send_queue_sending_in_progress (send_queue); - - store_conn_status = tny_account_get_connection_status (store_account); - if (store_conn_status == TNY_CONNECTION_STATUS_CONNECTED || sending) { - gint response; - - response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), - _("emev_nc_disconnect_account")); - if (response == GTK_RESPONSE_OK) { - retval = TRUE; - } else { - retval = FALSE; - } - } - - if (retval) { - - /* FIXME: We should only cancel those of this account */ - modest_mail_operation_queue_cancel_all (queue); - - /* Also disconnect the account */ - if ((tny_account_get_connection_status (store_account) != TNY_CONNECTION_STATUS_DISCONNECTED) && - (tny_account_get_connection_status (store_account) != TNY_CONNECTION_STATUS_DISCONNECTED_BROKEN)) { - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (store_account), - FALSE, NULL, NULL); - } - if (sending) { - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (transport_account), - FALSE, NULL, NULL); - } - } - - /* Frees */ - g_object_unref (store_account); - g_object_unref (transport_account); - - return retval; -} - static void on_account_settings_dialog_response (GtkDialog *dialog, gint response, @@ -255,7 +171,7 @@ on_account_activated (GtkTreeView *account_view, /* Check whether any connections are active, and cancel them if * the user wishes. */ - if (check_for_active_account (self, account_name)) { + if (modest_ui_actions_check_for_active_account ((ModestWindow *) self, account_name)) { ModestAccountProtocol *proto; ModestProtocolType proto_type; diff --git a/src/maemo/modest-account-view-window.c b/src/maemo/modest-account-view-window.c index 8e4a312..6c1375b 100644 --- a/src/maemo/modest-account-view-window.c +++ b/src/maemo/modest-account-view-window.c @@ -146,90 +146,6 @@ on_selection_changed (GtkTreeSelection *sel, ModestAccountViewWindow *self) gtk_widget_set_sensitive (priv->delete_button, has_selection); } -/** Check whether any connections are active, and cancel them if - * the user wishes. - * Returns TRUE is there was no problem, - * or if an operation was cancelled so we can continue. - * Returns FALSE if the user chose to cancel his request instead. - */ -static gboolean -check_for_active_account (ModestAccountViewWindow *self, const gchar* account_name) -{ - ModestTnySendQueue *send_queue; - ModestTnyAccountStore *acc_store; - ModestMailOperationQueue* queue; - TnyConnectionStatus store_conn_status; - TnyAccount *store_account = NULL, *transport_account = NULL; - gboolean retval = TRUE, sending = FALSE; - - acc_store = modest_runtime_get_account_store (); - queue = modest_runtime_get_mail_operation_queue (); - - store_account = - modest_tny_account_store_get_server_account (acc_store, - account_name, - TNY_ACCOUNT_TYPE_STORE); - - /* This could happen if the account was deleted before the - call to this function */ - if (!store_account) - return FALSE; - - transport_account = - modest_tny_account_store_get_server_account (acc_store, - account_name, - TNY_ACCOUNT_TYPE_TRANSPORT); - - /* This could happen if the account was deleted before the - call to this function */ - if (!transport_account) { - g_object_unref (store_account); - return FALSE; - } - - /* If the transport account was not used yet, then the send - queue could not exist (it's created on demand) */ - send_queue = modest_runtime_get_send_queue (TNY_TRANSPORT_ACCOUNT (transport_account), FALSE); - if (TNY_IS_SEND_QUEUE (send_queue)) - sending = modest_tny_send_queue_sending_in_progress (send_queue); - - store_conn_status = tny_account_get_connection_status (store_account); - if (store_conn_status == TNY_CONNECTION_STATUS_CONNECTED || sending) { - gint response; - - response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), - _("emev_nc_disconnect_account")); - if (response == GTK_RESPONSE_OK) { - retval = TRUE; - } else { - retval = FALSE; - } - } - - if (retval) { - - /* FIXME: We should only cancel those of this account */ - modest_mail_operation_queue_cancel_all (queue); - - /* Also disconnect the account */ - if ((tny_account_get_connection_status (store_account) != TNY_CONNECTION_STATUS_DISCONNECTED) && - (tny_account_get_connection_status (store_account) != TNY_CONNECTION_STATUS_DISCONNECTED_BROKEN)) { - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (store_account), - FALSE, NULL, NULL); - } - if (sending) { - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (transport_account), - FALSE, NULL, NULL); - } - } - - /* Frees */ - g_object_unref (store_account); - g_object_unref (transport_account); - - return retval; -} - static void on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) { @@ -243,7 +159,7 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) account_name = modest_account_view_get_selected_account (priv->account_view); account_title = modest_account_mgr_get_display_name(account_mgr, account_name); - if (check_for_active_account (self, account_name)) + if (modest_ui_actions_check_for_active_account (self, account_name)) modest_ui_actions_on_delete_account (GTK_WINDOW (self), account_name, account_title); g_free (account_title); @@ -292,7 +208,7 @@ on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) /* Check whether any connections are active, and cancel them if * the user wishes. */ - if (check_for_active_account (self, account_name)) { + if (modest_ui_actions_check_for_active_account (self, account_name)) { ModestAccountProtocol *proto; ModestProtocolType proto_type; diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 26effc7..c69a15e 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -6917,3 +6917,89 @@ modest_ui_actions_on_reload_message (const gchar *msg_id) modest_msg_view_window_reload (MODEST_MSG_VIEW_WINDOW (window)); } + +/** Check whether any connections are active, and cancel them if + * the user wishes. + * Returns TRUE is there was no problem, + * or if an operation was cancelled so we can continue. + * Returns FALSE if the user chose to cancel his request instead. + */ + +gboolean +modest_ui_actions_check_for_active_account (ModestWindow *self, + const gchar* account_name) +{ + ModestTnySendQueue *send_queue; + ModestTnyAccountStore *acc_store; + ModestMailOperationQueue* queue; + TnyConnectionStatus store_conn_status; + TnyAccount *store_account = NULL, *transport_account = NULL; + gboolean retval = TRUE, sending = FALSE; + + acc_store = modest_runtime_get_account_store (); + queue = modest_runtime_get_mail_operation_queue (); + + store_account = + modest_tny_account_store_get_server_account (acc_store, + account_name, + TNY_ACCOUNT_TYPE_STORE); + + /* This could happen if the account was deleted before the + call to this function */ + if (!store_account) + return FALSE; + + transport_account = + modest_tny_account_store_get_server_account (acc_store, + account_name, + TNY_ACCOUNT_TYPE_TRANSPORT); + + /* This could happen if the account was deleted before the + call to this function */ + if (!transport_account) { + g_object_unref (store_account); + return FALSE; + } + + /* If the transport account was not used yet, then the send + queue could not exist (it's created on demand) */ + send_queue = modest_runtime_get_send_queue (TNY_TRANSPORT_ACCOUNT (transport_account), FALSE); + if (TNY_IS_SEND_QUEUE (send_queue)) + sending = modest_tny_send_queue_sending_in_progress (send_queue); + + store_conn_status = tny_account_get_connection_status (store_account); + if (store_conn_status == TNY_CONNECTION_STATUS_CONNECTED || sending) { + gint response; + + response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), + _("emev_nc_disconnect_account")); + if (response == GTK_RESPONSE_OK) { + retval = TRUE; + } else { + retval = FALSE; + } + } + + if (retval) { + + /* FIXME: We should only cancel those of this account */ + modest_mail_operation_queue_cancel_all (queue); + + /* Also disconnect the account */ + if ((tny_account_get_connection_status (store_account) != TNY_CONNECTION_STATUS_DISCONNECTED) && + (tny_account_get_connection_status (store_account) != TNY_CONNECTION_STATUS_DISCONNECTED_BROKEN)) { + tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (store_account), + FALSE, NULL, NULL); + } + if (sending) { + tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (transport_account), + FALSE, NULL, NULL); + } + } + + /* Frees */ + g_object_unref (store_account); + g_object_unref (transport_account); + + return retval; +} diff --git a/src/modest-ui-actions.h b/src/modest-ui-actions.h index 73971d1..4e79ab4 100644 --- a/src/modest-ui-actions.h +++ b/src/modest-ui-actions.h @@ -554,6 +554,20 @@ void modest_ui_actions_transfer_messages_helper (GtkWindow *win, void modest_ui_actions_on_fetch_images (GtkAction *action, ModestWindow *window); +/** + * modest_ui_actions_check_for_active_account: + * @win: a #ModestWindow + * @account_name: the account name of the account to check + * + * Check whether any connections are active, and cancel them if + * the user wants. + * + * Returns: Returns TRUE if there was no problem, or if an operation + * was cancelled so we can continue. Returns FALSE if the user chose + * to cancel his request instead. + **/ +gboolean modest_ui_actions_check_for_active_account (ModestWindow *win, + const gchar* account_name); G_END_DECLS #endif /* __MODEST_UI_ACTIONS_H__ */ -- 1.7.9.5