evolution r35783 - in trunk: addressbook addressbook/gui/widgets mail



Author: abharath
Date: Sun Jul 20 19:23:41 2008
New Revision: 35783
URL: http://svn.gnome.org/viewvc/evolution?rev=35783&view=rev

Log:
Committing on behalf of Milan Crha  <mcrha redhat com>

2008-07-09  Milan Crha  <mcrha redhat com>

       ** Fix for bug #228725

       * gui/widgets/e-minicard-view.h: (struct _EMinicardView):
       * gui/widgets/e-minicard-view.c: (set_empty_message),
       (stop_state_changed), (e_minicard_view_set_property),
       (e_minicard_view_dispose), (e_minicard_view_init):
       Show different message in a view when searching.



Modified:
   trunk/addressbook/ChangeLog
   trunk/addressbook/gui/widgets/e-minicard-view.c
   trunk/addressbook/gui/widgets/e-minicard-view.h
   trunk/mail/ChangeLog
   trunk/mail/message-list.c

Modified: trunk/addressbook/gui/widgets/e-minicard-view.c
==============================================================================
--- trunk/addressbook/gui/widgets/e-minicard-view.c	(original)
+++ trunk/addressbook/gui/widgets/e-minicard-view.c	Sun Jul 20 19:23:41 2008
@@ -155,28 +155,34 @@
 set_empty_message (EMinicardView *view)
 {
 	char *empty_message;
-	gboolean editable = FALSE, perform_initial_query = FALSE;
+	gboolean editable = FALSE, perform_initial_query = FALSE, searching = FALSE;
 	EBook *book;
 
 	if (view->adapter) {
+		EABModel *model = NULL;
+
 		g_object_get (view->adapter,
 			      "editable", &editable,
+			      "model", &model,
 			      NULL);
 
 		g_object_get (view->adapter, "book", &book, NULL);
 		if (!e_book_check_static_capability (book, "do-initial-query"))
 			perform_initial_query = TRUE;
+
+		searching = model && eab_model_can_stop (model);
 	}
 
-	if (editable) {
+	if (searching) {
+		empty_message = _("\n\nSearching for the Contacts...");
+	} else if (editable) {
 		if (perform_initial_query)
 			empty_message = _("\n\nSearch for the Contact\n\n"
 					  "or double-click here to create a new Contact.");
 		else
 			empty_message = _("\n\nThere are no items to show in this view.\n\n"
 					  "Double-click here to create a new Contact.");
-	}
-	else {
+	} else {
 		if (perform_initial_query)
 			empty_message = _("\n\nSearch for the Contact.");
 		else
@@ -195,6 +201,12 @@
 }
 
 static void
+stop_state_changed (EABModel *model, EMinicardView *view)
+{
+	set_empty_message (view);
+}
+
+static void
 adapter_changed (EMinicardView *view)
 {
 	set_empty_message (view);
@@ -216,19 +228,23 @@
 	switch (prop_id){
 	case PROP_ADAPTER:
 		if (view->adapter) {
-			if (view->writable_status_id) {
+			if (view->writable_status_id || view->stop_state_id) {
 				EABModel *model;
 				g_object_get (view->adapter,
 					      "model", &model,
 					      NULL);
 				if (model) {
-					g_signal_handler_disconnect (model, view->writable_status_id);
+					if (view->writable_status_id)
+						g_signal_handler_disconnect (model, view->writable_status_id);
+					if (view->stop_state_id)
+						g_signal_handler_disconnect (model, view->stop_state_id);
 				}
 			}
 
 			g_object_unref (view->adapter);
 		}
 		view->writable_status_id = 0;
+		view->stop_state_id = 0;
 		view->adapter = g_value_get_object (value);
 		g_object_ref (view->adapter);
 		adapter_changed (view);
@@ -244,6 +260,9 @@
 				view->writable_status_id =
 					g_signal_connect (model, "writable_status",
 							  G_CALLBACK (writable_status_change), view);
+				view->stop_state_id =
+					g_signal_connect (model, "stop_state_changed",
+							  G_CALLBACK (stop_state_changed), view);
 			}
 
 		}
@@ -317,19 +336,23 @@
 	}
 
 	if (view->adapter) {
-		if (view->writable_status_id) {
+		if (view->writable_status_id || view->stop_state_id) {
 			EABModel *model;
 			g_object_get (view->adapter,
 				      "model", &model,
 				      NULL);
 			if (model) {
-				g_signal_handler_disconnect (model, view->writable_status_id);
+				if (view->writable_status_id)
+					g_signal_handler_disconnect (model, view->writable_status_id);
+				if (view->stop_state_id)
+					g_signal_handler_disconnect (model, view->stop_state_id);
 			}
 		}
 
 		g_object_unref (view->adapter);
 	}
 	view->writable_status_id = 0;
+	view->stop_state_id = 0;
 	view->adapter = NULL;
 
 	if (G_OBJECT_CLASS(parent_class)->dispose)
@@ -548,6 +571,7 @@
 	view->adapter = NULL;
 	view->canvas_drag_data_get_id = 0;
 	view->writable_status_id = 0;
+	view->stop_state_id = 0;
 
 	set_empty_message (view);
 }

Modified: trunk/addressbook/gui/widgets/e-minicard-view.h
==============================================================================
--- trunk/addressbook/gui/widgets/e-minicard-view.h	(original)
+++ trunk/addressbook/gui/widgets/e-minicard-view.h	Sun Jul 20 19:23:41 2008
@@ -70,6 +70,7 @@
 
 	guint canvas_drag_data_get_id;
 	guint writable_status_id;
+	guint stop_state_id;
 };
 
 struct _EMinicardViewClass

Modified: trunk/mail/message-list.c
==============================================================================
--- trunk/mail/message-list.c	(original)
+++ trunk/mail/message-list.c	Sun Jul 20 19:23:41 2008
@@ -4316,6 +4316,15 @@
 		camel_folder_thread_messages_ref(m->tree);
 	}
 
+	if (message_list_length (ml) <= 0) {
+		/* there is some info why the message list is empty, let it be something useful */
+		char *txt = g_strconcat (_("Generating message list"), "..." , NULL);
+
+		e_tree_set_info_message (m->ml->tree, txt);
+
+		g_free (txt);
+	}
+
 	/* if we're busy already kick off timeout processing, so normal updates are immediate */
 	if (ml->regen == NULL)
 		ml_regen_timeout(m);



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