[anjal] More tab specific search.



commit 54dd8c5151172df3cee1be6b3a596d39b25111b4
Author: Srinivasa Ragavan <sragavan novell com>
Date:   Fri Jun 5 14:27:29 2009 +0530

    More tab specific search.
---
 src/mail-folder-view.c |   22 ++++++++++++++++++++--
 src/mail-folder-view.h |    1 +
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/mail-folder-view.c b/src/mail-folder-view.c
index 6ec18a4..3ff6377 100644
--- a/src/mail-folder-view.c
+++ b/src/mail-folder-view.c
@@ -70,6 +70,7 @@ enum {
 	MESSAGE_SHOWN,
 	VIEW_CLOSE,
 	MESSAGE_NEW,
+	SEARCH_SET,
 	LAST_SIGNAL
 };
 
@@ -179,6 +180,10 @@ mfv_save (MailFolderView *mfv)
 	pos = gtk_adjustment_get_value(gtk_scrolled_window_get_vadjustment ((GtkScrolledWindow *)mfv->priv->view_scroller));
 	state = g_strdup_printf ("%lf", pos);
 	camel_object_meta_set (mfv->priv->folder, "anjal:scroll_position", state);
+	camel_object_meta_set (mfv->priv->folder, "anjal:search_state", mfv->search_state);
+	camel_object_meta_set (mfv->priv->folder, "anjal:search", mfv->search);
+	camel_object_meta_set (mfv->priv->folder, "anjal:search_str", mfv->search_str);
+
 	camel_object_state_write(mfv->priv->folder);
 	g_free(state);
 }
@@ -374,6 +379,10 @@ mfv_got_folder(char *uri, CamelFolder *folder, void *data)
 	}
 	
 	camel_object_ref(folder);
+
+	mfv->search = camel_object_meta_get (folder, "anjal:search");
+	mfv->search_state = camel_object_meta_get (folder, "anjal:search_state");
+	mfv->search_str = camel_object_meta_get (folder, "anjal:search_str");
 	mfv_db_load (mfv, uri, folder);
 }
 
@@ -405,7 +414,7 @@ void
 mail_folder_view_set_folder (MailFolderView *mfv, CamelFolder *folder, const char *uri)
 {
 	
-	if (mfv->priv->folder) {
+	if (mfv->priv->folder && 0) {
 		gtk_tree_view_set_model (GTK_TREE_VIEW (mfv->tree), NULL);
 		camel_object_unref (mfv->priv->folder);
 		g_object_unref (mfv->model);
@@ -449,6 +458,8 @@ mail_folder_view_set_folder (MailFolderView *mfv, CamelFolder *folder, const cha
 			 }
 		}
 		gtk_widget_grab_focus ((GtkWidget *)mfv->tree);
+		if (mfv->search_str && *mfv->search_str)
+			g_signal_emit (mfv, signals[SEARCH_SET], 0);			
 
 		/* FIXME: Set a signal emit and listen for it at note book and set the title appropriately */
 	}
@@ -487,7 +498,14 @@ mail_folder_view_class_init (MailFolderViewClass *klass)
 			      e_marshal_VOID__POINTER_POINTER,
 #endif			      
 			      G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER);
-
+	signals[SEARCH_SET] =
+		g_signal_new ("search-set",
+			      G_OBJECT_CLASS_TYPE (object_class),
+			      G_SIGNAL_RUN_FIRST,
+			      G_STRUCT_OFFSET (MailFolderViewClass , search_set),
+			      NULL, NULL,
+			      g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
 	mail_folder_view_parent_class = g_type_class_peek_parent (klass);
 	object_class->finalize = mail_folder_view_finalize;	
 
diff --git a/src/mail-folder-view.h b/src/mail-folder-view.h
index 403c3f0..6a0746c 100644
--- a/src/mail-folder-view.h
+++ b/src/mail-folder-view.h
@@ -64,6 +64,7 @@ typedef struct _MailFolderViewClass {
 	void (*message_shown) (MailConvView *);
 	void (*view_close) (MailConvView *);
 	void (*message_new) (MailConvView *, gpointer, gpointer);
+	void (*search_set) (MailFolderView *);
 } MailFolderViewClass;
 
 MailFolderView * mail_folder_view_new (void);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]