From d3012b383d8123e97d5ce5b6099380640d517f52 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Tue, 20 Jan 2009 16:55:40 +0000 Subject: [PATCH] * Properly set/unset filters when changing between edit modes pmo-trunk-r7204 --- src/hildon2/modest-folder-window.c | 9 ++++++++- src/hildon2/modest-hildon2-window.c | 13 ++++++------- src/hildon2/modest-hildon2-window.h | 2 +- src/modest-marshal.list | 1 + src/widgets/modest-folder-view.c | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/hildon2/modest-folder-window.c b/src/hildon2/modest-folder-window.c index 869b5ed..f587eda 100644 --- a/src/hildon2/modest-folder-window.c +++ b/src/hildon2/modest-folder-window.c @@ -82,6 +82,7 @@ static void modest_folder_window_pack_toolbar (ModestHildon2Window *self, GtkWidget *toolbar); static void edit_mode_changed (ModestFolderWindow *folder_window, gint edit_mode_id, + gboolean enabled, ModestFolderWindow *self); typedef struct _ModestFolderWindowPrivate ModestFolderWindowPrivate; @@ -469,6 +470,7 @@ modest_folder_window_pack_toolbar (ModestHildon2Window *self, static void edit_mode_changed (ModestFolderWindow *folder_window, gint edit_mode_id, + gboolean enabled, ModestFolderWindow *self) { ModestFolderWindowPrivate *priv; @@ -492,5 +494,10 @@ edit_mode_changed (ModestFolderWindow *folder_window, break; } - modest_folder_view_set_filter (MODEST_FOLDER_VIEW (priv->folder_view), filter); + if (enabled) + modest_folder_view_set_filter (MODEST_FOLDER_VIEW (priv->folder_view), + filter); + else + modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (priv->folder_view), + filter); } diff --git a/src/hildon2/modest-hildon2-window.c b/src/hildon2/modest-hildon2-window.c index 7e6f394..877910a 100644 --- a/src/hildon2/modest-hildon2-window.c +++ b/src/hildon2/modest-hildon2-window.c @@ -30,6 +30,7 @@ #include #include #include +#include "modest-marshal.h" #include #include #include @@ -148,8 +149,8 @@ modest_hildon2_window_class_init (gpointer klass, gpointer class_data) G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (ModestHildon2WindowClass, edit_mode_changed), NULL, NULL, - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, G_TYPE_INT); + modest_marshal_VOID__INT_BOOLEAN, + G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_BOOLEAN); g_type_class_add_private (gobject_class, sizeof(ModestHildon2WindowPrivate)); @@ -412,8 +413,7 @@ modest_hildon2_window_set_edit_mode (ModestHildon2Window *self, gtk_window_fullscreen (GTK_WINDOW (self)); g_signal_emit (G_OBJECT (self), signals[EDIT_MODE_CHANGED_SIGNAL], 0, - priv->edit_command); - + priv->edit_command, priv->edit_mode); } void @@ -431,7 +431,6 @@ modest_hildon2_window_unset_edit_mode (ModestHildon2Window *self) if (priv->edit_mode) { priv->edit_mode = FALSE; - priv->edit_command = MODEST_HILDON2_WINDOW_EDIT_MODE_NONE; if (priv->current_edit_tree_view) { g_object_set (G_OBJECT (priv->current_edit_tree_view), "hildon-ui-mode", HILDON_UI_MODE_NORMAL, @@ -441,8 +440,8 @@ modest_hildon2_window_unset_edit_mode (ModestHildon2Window *self) } gtk_window_unfullscreen (GTK_WINDOW (self)); g_signal_emit (G_OBJECT (self), signals[EDIT_MODE_CHANGED_SIGNAL], 0, - priv->edit_command); - + priv->edit_command, priv->edit_mode); + priv->edit_command = MODEST_HILDON2_WINDOW_EDIT_MODE_NONE; } } diff --git a/src/hildon2/modest-hildon2-window.h b/src/hildon2/modest-hildon2-window.h index 3c8f02e..0e41ce4 100644 --- a/src/hildon2/modest-hildon2-window.h +++ b/src/hildon2/modest-hildon2-window.h @@ -56,7 +56,7 @@ struct _ModestHildon2WindowClass { ModestWindowClass parent_class; void (*pack_toolbar_func) (ModestHildon2Window *self, GtkPackType pack_type, GtkWidget *toolbar); - void (*edit_mode_changed) (ModestHildon2Window *self, gint edit_mode); + void (*edit_mode_changed) (ModestHildon2Window *self, gint edit_mode, gboolean enabled); }; typedef void (*ModestHildon2AppMenuCallback) (GObject *control, gpointer userdata); diff --git a/src/modest-marshal.list b/src/modest-marshal.list index 060ea05..e2272e2 100644 --- a/src/modest-marshal.list +++ b/src/modest-marshal.list @@ -8,6 +8,7 @@ VOID:STRING,INT,INT VOID:STRING,BOOL VOID:STRING,POINTER,BOOL VOID:POINTER,INT +VOID:INT,BOOL BOOL:STRING BOOL:STRING,OBJECT BOOL:ENUM,BOOL diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index 868a6b1..0da3a04 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -3522,7 +3522,7 @@ modest_folder_view_set_filter (ModestFolderView *self, g_return_if_fail (MODEST_IS_FOLDER_VIEW (self)); priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self); - priv->filter = filter; + priv->filter |= filter; filter_model = gtk_tree_view_get_model (GTK_TREE_VIEW (self)); if (GTK_IS_TREE_MODEL_FILTER(filter_model)) { -- 1.7.9.5