r3465 - in trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src

chris at sita.openmoko.org chris at sita.openmoko.org
Wed Nov 21 17:00:09 CET 2007


Author: chris
Date: 2007-11-21 17:00:08 +0100 (Wed, 21 Nov 2007)
New Revision: 3465

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
Log:
        * src/sms-contacts.c: (nophoto_filter_func),
        (sms_contacts_page_new):
        Use a filter modify func to set contacts with no photo to the
        stock_person icon


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2007-11-21 15:17:58 UTC (rev 3464)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2007-11-21 16:00:08 UTC (rev 3465)
@@ -1,5 +1,12 @@
 2007-11-21  Chris Lord  <chris at openedhand.com>
 
+	* src/sms-contacts.c: (nophoto_filter_func),
+	(sms_contacts_page_new):
+	Use a filter modify func to set contacts with no photo to the
+	stock_person icon
+
+2007-11-21  Chris Lord  <chris at openedhand.com>
+
 	* configure.ac:
 	* Makefile.am:
 	Remove libhito

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c	2007-11-21 15:17:58 UTC (rev 3464)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c	2007-11-21 16:00:08 UTC (rev 3465)
@@ -149,6 +149,33 @@
 	g_slice_free (GtkTreeIter, iter);
 }
 
+static void
+nophoto_filter_func (GtkTreeModel *model, GtkTreeIter *iter, GValue *value,
+		     gint column, SmsData *data)
+{
+	GtkTreeIter real_iter;
+	gpointer pointer;
+	
+	gtk_tree_model_filter_convert_iter_to_child_iter (
+	     (GtkTreeModelFilter *)model, &real_iter, iter);
+	
+	gtk_tree_model_get (data->contacts_store, &real_iter,
+		column, &pointer, -1);
+	switch (column) {
+	    case COL_UID :
+	    case COL_NAME :
+	    case COL_DETAIL :
+		g_value_take_string (value, pointer);
+		break;
+	    case COL_ICON :
+		if (pointer)
+			g_value_take_object (value, pointer);
+		else
+			g_value_set_object (value, data->no_photo);
+		break;
+	}
+}
+
 GtkWidget *
 sms_contacts_page_new (SmsData *data)
 {
@@ -212,6 +239,11 @@
 	/* Create filter */
 	data->contacts_filter = gtk_tree_model_filter_new (
 		data->contacts_store, NULL);
+	gtk_tree_model_filter_set_modify_func ((GtkTreeModelFilter *)
+		data->contacts_filter, COL_LAST,
+		(GType []){G_TYPE_STRING, G_TYPE_STRING,
+			G_TYPE_STRING, GDK_TYPE_PIXBUF},
+		(GtkTreeModelFilterModifyFunc)nophoto_filter_func, data, NULL);
 	
 	/* Create groups model */
 	data->contacts_combo = gtk_combo_box_new_text ();





More information about the commitlog mailing list