From 7691addfd0661f493672b2fab5274ca28612707d Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Thu, 16 Aug 2007 16:23:10 +0000 Subject: [PATCH] 2007-08-16 Murray Cumming * src/modest-search.c: (modest_search_folder): * src/modest-search.h: Rename ModestSearch::before to start_date and after to end_date, using the same names as the libogs struct fields. * src/dbus_api/modest-dbus-callbacks.c: (on_dbus_method_search): The start_date and end_date were swapped in the check. This fixes date range searches, fixing projects.maemo.org bug NB#63407. pmo-trunk-r3006 --- ChangeLog2 | 19 +++++ src/dbus_api/modest-dbus-callbacks.c | 8 +-- src/maemo/modest-account-view-window.c | 124 +++++++++++++++++++------------- src/modest-search.c | 4 +- src/modest-search.h | 2 +- 5 files changed, 99 insertions(+), 58 deletions(-) diff --git a/ChangeLog2 b/ChangeLog2 index ec72615..15dc7dd 100644 --- a/ChangeLog2 +++ b/ChangeLog2 @@ -1,5 +1,24 @@ 2007-08-16 Murray Cumming + * src/modest-search.c: (modest_search_folder): + * src/modest-search.h: Rename ModestSearch::before to start_date + and after to end_date, using the same names as the libogs struct + fields. + * src/dbus_api/modest-dbus-callbacks.c: (on_dbus_method_search): + The start_date and end_date were swapped in the check. This + fixes date range searches, fixing projects.maemo.org bug NB#63407. + +2007-08-16 Murray Cumming + + * src/maemo/modest-account-view-window.c: + Added (check_for_active_acount). + (on_delete_button_clicked), (on_edit_button_clicked): + When an account is doing something (such as refreshing), + show the same warning for account deletion as for account + editing, to fix projects.maemo.org bug NB#64588. + +2007-08-16 Murray Cumming + * src/widgets/modest-msg-view-window.h: * src/gnome/modest-msg-view-window.c: * src/maemo/modest-msg-view-window.c: diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index f182111..f374eaf 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -1143,8 +1143,8 @@ on_dbus_method_search (DBusConnection *con, DBusMessage *message) #endif /* Other criteria: */ - search.before = start_date; - search.after = end_date; + search.start_date = start_date; + search.end_date = end_date; search.flags = 0; /* Text to serach for in various parts of the message: */ @@ -1170,12 +1170,12 @@ on_dbus_method_search (DBusConnection *con, DBusMessage *message) if (sd_v > 0) { search.flags |= MODEST_SEARCH_BEFORE; - search.before = start_date; + search.start_date = start_date; } if (ed_v > 0) { search.flags |= MODEST_SEARCH_AFTER; - search.after = end_date; + search.end_date = end_date; } if (size_v > 0) { diff --git a/src/maemo/modest-account-view-window.c b/src/maemo/modest-account-view-window.c index e77b335..3c2dc72 100644 --- a/src/maemo/modest-account-view-window.c +++ b/src/maemo/modest-account-view-window.c @@ -157,6 +157,37 @@ on_selection_changed (GtkTreeSelection *sel, ModestAccountViewWindow *self) g_free (default_account_name); } +/** 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_acount (ModestAccountViewWindow *self, const gchar* account_name) +{ + /* Check whether any connections are active, and cancel them if + * the user wishes. + */ + ModestAccountMgr* mgr = modest_runtime_get_account_mgr (); + ModestMailOperationQueue* queue = modest_runtime_get_mail_operation_queue(); + if (modest_account_mgr_account_is_busy(mgr, account_name)) { + GtkWidget *note = hildon_note_new_confirmation (GTK_WINDOW (self), + _("emev_nc_disconnect_account")); + const int response = gtk_dialog_run (GTK_DIALOG(note)); + gtk_widget_destroy (note); + if (response == GTK_RESPONSE_OK) { + /* FIXME: We should only cancel those of this account */ + modest_mail_operation_queue_cancel_all(queue); + return TRUE; + } + else + return FALSE; + } + + return TRUE; +} + static void on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) { @@ -174,40 +205,43 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) if (account_name) { gchar *account_title = modest_account_mgr_get_display_name(account_mgr, account_name); - /* The warning text depends on the account type: */ - gchar *txt = NULL; - if (modest_account_mgr_get_store_protocol (account_mgr, account_name) - == MODEST_PROTOCOL_STORE_POP) { - txt = g_strdup_printf (_("emev_nc_delete_mailbox"), - account_title); - } else { - txt = g_strdup_printf (_("emev_nc_delete_mailboximap"), - account_title); - } - - GtkDialog *dialog = GTK_DIALOG (hildon_note_new_confirmation (GTK_WINDOW (self), - txt)); - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (self)); - g_free (txt); - txt = NULL; - - if (gtk_dialog_run (dialog) == GTK_RESPONSE_OK) { - /* Remove account. If it succeeds then it also removes - the account from the ModestAccountView: */ - - gboolean is_default = FALSE; - gchar *default_account_name = modest_account_mgr_get_default_account (account_mgr); - if (default_account_name && (strcmp (default_account_name, account_name) == 0)) - is_default = TRUE; - g_free (default_account_name); - - gboolean removed = modest_account_mgr_remove_account (account_mgr, account_name); - if (!removed) { - g_warning ("%s: modest_account_mgr_remove_account() failed.\n", __FUNCTION__); + if (check_for_active_acount (self, account_name)) { + /* The warning text depends on the account type: */ + gchar *txt = NULL; + if (modest_account_mgr_get_store_protocol (account_mgr, account_name) + == MODEST_PROTOCOL_STORE_POP) { + txt = g_strdup_printf (_("emev_nc_delete_mailbox"), + account_title); + } else { + txt = g_strdup_printf (_("emev_nc_delete_mailboximap"), + account_title); + } + + GtkDialog *dialog = GTK_DIALOG (hildon_note_new_confirmation (GTK_WINDOW (self), + txt)); + gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (self)); + g_free (txt); + txt = NULL; + + if (gtk_dialog_run (dialog) == GTK_RESPONSE_OK) { + /* Remove account. If it succeeds then it also removes + the account from the ModestAccountView: */ + + gboolean is_default = FALSE; + gchar *default_account_name = modest_account_mgr_get_default_account (account_mgr); + if (default_account_name && (strcmp (default_account_name, account_name) == 0)) + is_default = TRUE; + g_free (default_account_name); + + gboolean removed = modest_account_mgr_remove_account (account_mgr, account_name); + if (!removed) { + g_warning ("%s: modest_account_mgr_remove_account() failed.\n", __FUNCTION__); + } } + gtk_widget_destroy (GTK_WIDGET (dialog)); + g_free (account_title); } - gtk_widget_destroy (GTK_WIDGET (dialog)); - g_free (account_title); + g_free (account_name); } } @@ -224,26 +258,14 @@ on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) /* Check whether any connections are active, and cancel them if * the user wishes. */ - ModestAccountMgr* mgr = modest_runtime_get_account_mgr (); - ModestMailOperationQueue* queue = modest_runtime_get_mail_operation_queue(); - if (modest_account_mgr_account_is_busy(mgr, account_name)) { - GtkWidget *note = hildon_note_new_confirmation (GTK_WINDOW (self), - _("emev_nc_disconnect_account")); - const int response = gtk_dialog_run (GTK_DIALOG(note)); - gtk_widget_destroy (note); - if (response == GTK_RESPONSE_OK) { - /* FIXME: We should only cancel those of this account */ - modest_mail_operation_queue_cancel_all(queue); - } - else - return; - } + if (check_for_active_acount (self, account_name)) { - /* Show the Account Settings window: */ - ModestAccountSettingsDialog *dialog = modest_account_settings_dialog_new (); - modest_account_settings_dialog_set_account_name (dialog, account_name); - - modest_maemo_show_dialog_and_forget (GTK_WINDOW (self), GTK_DIALOG (dialog)); + /* Show the Account Settings window: */ + ModestAccountSettingsDialog *dialog = modest_account_settings_dialog_new (); + modest_account_settings_dialog_set_account_name (dialog, account_name); + + modest_maemo_show_dialog_and_forget (GTK_WINDOW (self), GTK_DIALOG (dialog)); + } g_free (account_name); } diff --git a/src/modest-search.c b/src/modest-search.c index 3ed4ed6..6e624d3 100644 --- a/src/modest-search.c +++ b/src/modest-search.c @@ -428,11 +428,11 @@ modest_search_folder (TnyFolder *folder, ModestSearch *search) goto go_next; if (search->flags & MODEST_SEARCH_BEFORE) - if (!(t <= search->before)) + if (!(t <= search->end_date)) goto go_next; if (search->flags & MODEST_SEARCH_AFTER) - if (!(t >= search->after)) + if (!(t >= search->start_date)) goto go_next; if (search->flags & MODEST_SEARCH_SIZE) diff --git a/src/modest-search.h b/src/modest-search.h index 0d1999f..81ef569 100644 --- a/src/modest-search.h +++ b/src/modest-search.h @@ -68,7 +68,7 @@ typedef struct { const gchar *body; /* Other criteria: */ - time_t before, after; + time_t start_date, end_date; guint32 minsize; ModestSearchFlags flags; #ifdef MODEST_HAVE_OGS -- 1.7.9.5