Send commitlog mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r3467 - in
      trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
      ([EMAIL PROTECTED])
   2. r3468 - in
      trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
      ([EMAIL PROTECTED])
   3. r3469 - in
      trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
      ([EMAIL PROTECTED])
   4. r3470 - in
      trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
      ([EMAIL PROTECTED])
   5. r3471 - in
      trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
      ([EMAIL PROTECTED])
   6. r3472 - trunk/src/host/qemu-neo1973/openmoko
      ([EMAIL PROTECTED])
--- Begin Message ---
Author: chris
Date: 2007-11-21 17:11:23 +0100 (Wed, 21 Nov 2007)
New Revision: 3467

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: (contacts_iter_compare_func),
        (sms_contacts_page_new):
        Add a sort function for the contacts


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 16:05:13 UTC (rev 3466)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 16:11:23 UTC (rev 3467)
@@ -1,5 +1,11 @@
 2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
 
+       * src/sms-contacts.c: (contacts_iter_compare_func),
+       (sms_contacts_page_new):
+       Add a sort function for the contacts
+
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
        * src/sms-contacts.c: (nophoto_filter_func),
        (sms_contacts_page_new):
        Use a filter modify func to set contacts with no photo to the

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 16:05:13 UTC (rev 3466)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c   
    2007-11-21 16:11:23 UTC (rev 3467)
@@ -20,7 +20,10 @@
 #include "sms-contacts.h"
 #include <libmokoui2/moko-finger-scroll.h>
 #include <libmokoui2/moko-search-bar.h>
-#include <config.h>
+#include <string.h>
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
 
 /* Following two functions taken from pimlico Contacts */
 static void
@@ -176,6 +179,32 @@
        }
 }
 
+static gint
+contacts_iter_compare_func (GtkTreeModel *model, GtkTreeIter *a,
+                           GtkTreeIter *b, SmsData *data)
+{
+       gint result;
+       gchar *name1, *name2, *name1c, *name2c;
+       
+       gtk_tree_model_get (model, a, COL_NAME, &name1, -1);
+       gtk_tree_model_get (model, b, COL_NAME, &name2, -1);
+       
+       name1c = g_utf8_casefold (name1, -1);
+       name2c = g_utf8_casefold (name2, -1);
+       
+       if (name1c && name2c) result = strcmp (name1c, name2c);
+       else if (name1c) result = 1;
+       else if (name2c) result = -1;
+       else result = 0;
+       
+       g_free (name1c);
+       g_free (name1);
+       g_free (name2c);
+       g_free (name2);
+       
+       return result;
+}
+
 GtkWidget *
 sms_contacts_page_new (SmsData *data)
 {
@@ -231,8 +260,14 @@
                gtk_icon_theme_get_default (), "stock_person", 48, 0, NULL);
 
        /* Create contacts model */
-       data->contacts_store = gtk_list_store_new (COL_LAST,
+       data->contacts_store = (GtkTreeModel *)gtk_list_store_new (COL_LAST,
                G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF);
+       gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (
+               data->contacts_store), COL_NAME,
+               (GtkTreeIterCompareFunc)contacts_iter_compare_func,
+               data, NULL);
+       gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (
+               data->contacts_store), COL_NAME, GTK_SORT_ASCENDING);
        data->contacts = g_hash_table_new_full (g_str_hash, g_str_equal,
                (GDestroyNotify)g_free, (GDestroyNotify)free_iter_slice);
        




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-11-21 17:55:09 +0100 (Wed, 21 Nov 2007)
New Revision: 3468

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
Log:
        * src/sms-notes.c: (get_selected_contact), (page_hidden),
        (sms_notes_data_func), (sms_notes_page_new):
        * src/sms.h:
        Add some code to show avatars/change justification depending on whether
        a message was sent or received (unfinished)


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 16:11:23 UTC (rev 3467)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 16:55:09 UTC (rev 3468)
@@ -1,5 +1,13 @@
 2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
 
+       * src/sms-notes.c: (get_selected_contact), (page_hidden),
+       (sms_notes_data_func), (sms_notes_page_new):
+       * src/sms.h:
+       Add some code to show avatars/change justification depending on whether
+       a message was sent or received (unfinished)
+
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
        * src/sms-contacts.c: (contacts_iter_compare_func),
        (sms_contacts_page_new):
        Add a sort function for the contacts

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c  
2007-11-21 16:11:23 UTC (rev 3467)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c  
2007-11-21 16:55:09 UTC (rev 3468)
@@ -23,6 +23,7 @@
 #include <libmokoui2/moko-finger-scroll.h>
 #include <libmokoui2/moko-search-bar.h>
 #include <libebook/e-book.h>
+#include <string.h>
 
 static GdkColor alt_color;
 static gboolean hidden = TRUE;
@@ -44,7 +45,8 @@
        
        if (!gtk_tree_selection_get_selected (selection, &model, &iter))
                return NULL;
-       gtk_tree_model_get (model, &iter, COL_UID, &uid, -1);
+       gtk_tree_model_get (model, &iter, COL_UID, &uid,
+               COL_ICON, &data->author_icon, -1);
        
        if (!e_book_get_contact (data->ebook, uid, &contact, &error)) {
                g_warning ("Error retrieving contact: %s", error->message);
@@ -100,6 +102,10 @@
                data->note_store), NULL);
        gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (
                data->new_button), FALSE);
+       if (data->recipient_icon) {
+               g_object_unref (data->recipient_icon);
+               data->recipient_icon = NULL;
+       }
 }
 
 static void
@@ -208,26 +214,47 @@
                                 GtkTreeIter *iter,
                                 SmsData *data)
 {
-       gchar *author, *recipient, *body;
+       gchar *author, *recipient, *body, **categories;
        JanaTime *created, *modified;
+       gboolean outgoing = FALSE;
+       gint i;
        
        gtk_tree_model_get (model, iter,
                JANA_GTK_NOTE_STORE_COL_AUTHOR, &author,
                JANA_GTK_NOTE_STORE_COL_RECIPIENT, &recipient,
                JANA_GTK_NOTE_STORE_COL_BODY, &body,
                JANA_GTK_NOTE_STORE_COL_CREATED, &created,
-               JANA_GTK_NOTE_STORE_COL_MODIFIED, &modified, -1);
+               JANA_GTK_NOTE_STORE_COL_MODIFIED, &modified,
+               JANA_GTK_NOTE_STORE_COL_CATEGORIES, &categories, -1);
 
+       if (categories) for (i = 0; categories[i]; i++) {
+               /* Note that this category is not meant for display and 
+                * shouldn't be translated... (see phone-kit)
+                */
+               if ((strcmp (categories[i], "Sent") == 0) ||
+                   (strcmp (categories[i], "Sending") == 0) ||
+                   (strcmp (categories[i], "Rejected") == 0)) {
+                       outgoing = TRUE;
+                       break;
+               }
+       }
+       
        g_object_set (cell,
                "author", author,
                "recipient", recipient,
                "body", body,
                "created", created,
-               "modified", modified, NULL);
+               "modified", modified,
+               "justify", outgoing ?
+                     GTK_JUSTIFY_LEFT : GTK_JUSTIFY_RIGHT,
+               "icon", outgoing ?
+                     data->author_icon : data->recipient_icon,
+               NULL);
        
        g_free (author);
        g_free (recipient);
        g_free (body);
+       g_strfreev (categories);
        if (created) g_object_unref (created);
        if (modified) g_object_unref (modified);
 }
@@ -247,6 +274,9 @@
        GtkCellRenderer *renderer;
        GHashTable *colours_hash;
        
+       /* FIXME: Set recipient pixbuf */
+       data->recipient_icon = g_object_ref (data->no_photo);
+       
        /* Create note store */
        data->notes = jana_ecal_store_new (JANA_COMPONENT_NOTE);
        g_signal_connect (data->notes, "opened",
@@ -259,6 +289,7 @@
        /* Create a category-colour hash for the cell renderer */
        colours_hash = g_hash_table_new (g_str_hash, g_str_equal);
        g_hash_table_insert (colours_hash, "Sent", &alt_color);
+       g_hash_table_insert (colours_hash, "Sending", &alt_color);
        
        /* Create treeview and cell renderer */
        treeview = gtk_tree_view_new_with_model (data->note_filter);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h        
2007-11-21 16:11:23 UTC (rev 3467)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h        
2007-11-21 16:55:09 UTC (rev 3468)
@@ -47,6 +47,8 @@
        GtkWidget *notes_combo;
        GtkWidget *sms_hbox;
        GtkWidget *sms_textview;
+       GdkPixbuf *author_icon;
+       GdkPixbuf *recipient_icon;
 
        GtkWidget *contacts_treeview;
        GtkWidget *contacts_combo;




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-11-21 18:01:11 +0100 (Wed, 21 Nov 2007)
New Revision: 3469

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am
Log:
        * src/Makefile.am:
        Remove spurious libhito bits


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 16:55:09 UTC (rev 3468)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 17:01:11 UTC (rev 3469)
@@ -1,5 +1,10 @@
 2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
 
+       * src/Makefile.am:
+       Remove spurious libhito bits
+
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
        * src/sms-notes.c: (get_selected_contact), (page_hidden),
        (sms_notes_data_func), (sms_notes_page_new):
        * src/sms.h:

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am  
2007-11-21 16:55:09 UTC (rev 3468)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am  
2007-11-21 17:01:11 UTC (rev 3469)
@@ -1,5 +1,4 @@
 
-INCLUDES = -I$(top_srcdir)/libhito
 AM_CPPFLAGS = -DPKGDATADIR=\"$(pkgdatadir)\" $(GTK_CFLAGS) $(JANA_CFLAGS) 
$(MOKOUI_CFLAGS) $(EBOOK_CFLAGS) $(DBUS_CFLAGS) -Wall
 AM_LDFLAGS = $(GTK_LIBS) $(JANA_LIBS) $(MOKOUI_LIBS) $(EBOOK_LIBS) $(DBUS_LIBS)
 
@@ -13,5 +12,3 @@
        sms-notes.c \
        sms-notes.h
 
-openmoko_messages_LDADD = $(top_srcdir)/libhito/libhito.a
-




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-11-21 18:07:03 +0100 (Wed, 21 Nov 2007)
New Revision: 3470

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
Log:
        * src/sms-notes.c: (sms_notes_page_new):
        Check if no-photo icon is NULL before reffing it


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 17:01:11 UTC (rev 3469)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 17:07:03 UTC (rev 3470)
@@ -1,5 +1,10 @@
 2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
 
+       * src/sms-notes.c: (sms_notes_page_new):
+       Check if no-photo icon is NULL before reffing it
+
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
        * src/Makefile.am:
        Remove spurious libhito bits
 

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c  
2007-11-21 17:01:11 UTC (rev 3469)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c  
2007-11-21 17:07:03 UTC (rev 3470)
@@ -275,7 +275,8 @@
        GHashTable *colours_hash;
        
        /* FIXME: Set recipient pixbuf */
-       data->recipient_icon = g_object_ref (data->no_photo);
+       data->recipient_icon = data->no_photo ?
+               g_object_ref (data->no_photo) : NULL;
        
        /* Create note store */
        data->notes = jana_ecal_store_new (JANA_COMPONENT_NOTE);




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-11-21 19:31:53 +0100 (Wed, 21 Nov 2007)
New Revision: 3471

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   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.h
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
Log:
        * src/sms-contacts.c: (sms_contacts_load_photo),
        (clear_numbers_cb), (clear_numbers), (contacts_store),
        (contacts_changed_cb), (contacts_removed_cb),
        (sms_contacts_page_new):
        Maintain a number->contact uid hash table

        * src/sms-contacts.h:
        Make contact photo-loading function public

        * src/sms-notes.c: (get_selected_contact), (note_changed_cb),
        (page_shown), (page_hidden), (send_clicked_cb),
        (sms_notes_data_func), (sms_notes_page_new):
        Don't use categories to determine outgoing status, retrieve avatars for
        conversation participants

        * src/sms.h:
        Extra variables for new features


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 17:07:03 UTC (rev 3470)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 18:31:53 UTC (rev 3471)
@@ -1,5 +1,25 @@
 2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
 
+       * src/sms-contacts.c: (sms_contacts_load_photo),
+       (clear_numbers_cb), (clear_numbers), (contacts_store),
+       (contacts_changed_cb), (contacts_removed_cb),
+       (sms_contacts_page_new):
+       Maintain a number->contact uid hash table
+
+       * src/sms-contacts.h:
+       Make contact photo-loading function public
+
+       * src/sms-notes.c: (get_selected_contact), (note_changed_cb),
+       (page_shown), (page_hidden), (send_clicked_cb),
+       (sms_notes_data_func), (sms_notes_page_new):
+       Don't use categories to determine outgoing status, retrieve avatars for
+       conversation participants
+
+       * src/sms.h:
+       Extra variables for new features
+
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
        * src/sms-notes.c: (sms_notes_page_new):
        Check if no-photo icon is NULL before reffing it
 

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 17:07:03 UTC (rev 3470)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c   
    2007-11-21 18:31:53 UTC (rev 3471)
@@ -40,7 +40,7 @@
 }
 
 GdkPixbuf *
-contacts_load_photo (EContact *contact)
+sms_contacts_load_photo (EContact *contact)
 {
        EContactPhoto *photo;
        GdkPixbuf *pixbuf = NULL;
@@ -85,15 +85,50 @@
        return pixbuf;
 }
 
+static const gchar *clear_numbers_uid;
+
 static void
+clear_numbers_cb (gchar *number, gchar *uid, GList **list)
+{
+       if (strcmp (uid, clear_numbers_uid) == 0)
+               *list = g_list_prepend (*list, number);
+}
+
+static void
+clear_numbers (SmsData *data, const gchar *uid)
+{
+       GList *n, *numbers = NULL;
+
+       clear_numbers_uid = uid;
+       g_hash_table_foreach (data->numbers,
+               (GHFunc)clear_numbers_cb, &numbers);
+       
+       for (n = numbers; n; n = n->next)
+               g_hash_table_remove (data->numbers, n->data);
+       g_list_free (numbers);
+}
+
+static void
 contacts_store (SmsData *data, GtkTreeIter *iter, EContact *contact)
 {
-       GdkPixbuf *photo = contacts_load_photo (contact);
+       gint i;
+       
+       GdkPixbuf *photo = sms_contacts_load_photo (contact);
+
        gtk_list_store_set ((GtkListStore *)data->contacts_store, iter,
                COL_UID, e_contact_get_const (contact, E_CONTACT_UID),
                COL_NAME, e_contact_get_const (contact, E_CONTACT_FULL_NAME),
                COL_ICON, photo, -1);
        if (photo) g_object_unref (photo);
+       
+       for (i = E_CONTACT_FIRST_PHONE_ID; i <= E_CONTACT_LAST_PHONE_ID; i++) {
+               gchar *number = e_contact_get (contact, (EContactField)i);
+
+               if (!number) continue;
+               
+               g_hash_table_insert (data->numbers, number,
+                       e_contact_get (contact, E_CONTACT_UID));
+       }
 }
 
 static void
@@ -127,7 +162,10 @@
                
                uid = e_contact_get_const (contact, E_CONTACT_UID);
                iter = g_hash_table_lookup (data->contacts, uid);
-               if (iter) contacts_store (data, iter, contact);
+               if (iter) {
+                       clear_numbers (data, uid);
+                       contacts_store (data, iter, contact);
+               }
        }
 }
 
@@ -140,6 +178,7 @@
 
                if (!iter) continue;
                
+               clear_numbers (data, (const gchar *)uids->data);
                gtk_list_store_remove ((GtkListStore *)
                        data->contacts_store, iter);
                g_hash_table_remove (data->contacts, uids->data);
@@ -270,6 +309,8 @@
                data->contacts_store), COL_NAME, GTK_SORT_ASCENDING);
        data->contacts = g_hash_table_new_full (g_str_hash, g_str_equal,
                (GDestroyNotify)g_free, (GDestroyNotify)free_iter_slice);
+       data->numbers = g_hash_table_new_full (g_str_hash, g_str_equal,
+               (GDestroyNotify)g_free, (GDestroyNotify)g_free);
        
        /* Create filter */
        data->contacts_filter = gtk_tree_model_filter_new (

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.h   
    2007-11-21 17:07:03 UTC (rev 3470)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.h   
    2007-11-21 18:31:53 UTC (rev 3471)
@@ -31,6 +31,7 @@
 };
 
 GtkWidget *sms_contacts_page_new (SmsData *data);
+GdkPixbuf *sms_contacts_load_photo (EContact *contact);
 
 #endif
 

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c  
2007-11-21 17:07:03 UTC (rev 3470)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c  
2007-11-21 18:31:53 UTC (rev 3471)
@@ -36,7 +36,6 @@
        GtkTreeModel *model;
        EContact *contact;
        GtkTreeIter iter;
-       gchar *uid;
        
        GError *error = NULL;
        
@@ -45,21 +44,67 @@
        
        if (!gtk_tree_selection_get_selected (selection, &model, &iter))
                return NULL;
-       gtk_tree_model_get (model, &iter, COL_UID, &uid,
+       gtk_tree_model_get (model, &iter, COL_UID, &data->author_uid,
                COL_ICON, &data->author_icon, -1);
        
-       if (!e_book_get_contact (data->ebook, uid, &contact, &error)) {
+       if (!e_book_get_contact (data->ebook,
+            data->author_uid, &contact, &error)) {
                g_warning ("Error retrieving contact: %s", error->message);
                g_error_free (error);
                contact = NULL;
        }
        
-       g_free (uid);
-       
        return contact;
 }
 
 static void
+note_changed_cb (JanaStoreView *store_view, GList *components, SmsData *data)
+{
+       if (data->recipient_number) goto note_changed_cb_end;
+       
+       /* Set recipient icon */
+       for (; components; components = components->next) {
+               EContact *contact;
+               const gchar *uid;
+               JanaNote *note;
+               
+               GError *error = NULL;
+
+               note = JANA_NOTE (components->data);
+               data->recipient_number = jana_note_get_recipient (note);
+               
+               if (!data->recipient_number) continue;
+               
+               uid = g_hash_table_lookup (data->numbers,
+                       data->recipient_number);
+               if ((!uid) || (!data->author_uid) ||
+                   strcmp (uid, data->author_uid) == 0) {
+                       g_free (data->recipient_number);
+                       data->recipient_number = NULL;
+                       continue;
+               }
+
+               if (!e_book_get_contact (data->ebook, uid, &contact, &error)) {
+                       /* TODO: Unknown contact, probably */
+               } else {
+                       data->recipient_icon =
+                               sms_contacts_load_photo (contact);
+                       if ((!data->recipient_icon) && (data->no_photo))
+                               data->recipient_icon =
+                                       g_object_ref (data->no_photo);
+                       g_object_unref (contact);
+                       break;
+               }
+       }
+
+note_changed_cb_end:
+       /* Remove handlers */
+       if (data->recipient_number)
+               g_signal_handlers_disconnect_by_func (
+                       store_view, note_changed_cb, data);
+}
+
+static void
 page_shown (SmsData *data)
 {
        JanaStoreView *store_view;
@@ -88,6 +133,10 @@
        if (found_match) {
                jana_gtk_note_store_set_view (JANA_GTK_NOTE_STORE (
                        data->note_store), store_view);
+               g_signal_connect (store_view, "added",
+                       G_CALLBACK (note_changed_cb), data);
+               g_signal_connect (store_view, "modified",
+                       G_CALLBACK (note_changed_cb), data);
                jana_store_view_start (store_view);
        }
        g_object_unref (store_view);
@@ -102,6 +151,18 @@
                data->note_store), NULL);
        gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (
                data->new_button), FALSE);
+       if (data->author_uid) {
+               g_free (data->author_uid);
+               data->author_uid = NULL;
+       }
+       if (data->author_icon) {
+               g_object_unref (data->author_icon);
+               data->author_icon = NULL;
+       }
+       if (data->recipient_number) {
+               g_free (data->recipient_number);
+               data->recipient_number = NULL;
+       }
        if (data->recipient_icon) {
                g_object_unref (data->recipient_icon);
                data->recipient_icon = NULL;
@@ -198,7 +259,7 @@
                if (!dbus_g_proxy_call (data->sms_proxy, "Send", &error,
                        G_TYPE_STRING, number, G_TYPE_STRING, message,
                        G_TYPE_INVALID, G_TYPE_STRING, NULL, G_TYPE_INVALID)) {
-                       g_debug ("Error sending message: %s", error->message);
+                       g_warning ("Error sending message: %s", error->message);
                        g_error_free (error);
                }
                
@@ -214,9 +275,9 @@
                                 GtkTreeIter *iter,
                                 SmsData *data)
 {
-       gchar *author, *recipient, *body, **categories;
+       gchar *author, *recipient, *body;
        JanaTime *created, *modified;
-       gboolean outgoing = FALSE;
+       gboolean outgoing;
        gint i;
        
        gtk_tree_model_get (model, iter,
@@ -225,19 +286,13 @@
                JANA_GTK_NOTE_STORE_COL_BODY, &body,
                JANA_GTK_NOTE_STORE_COL_CREATED, &created,
                JANA_GTK_NOTE_STORE_COL_MODIFIED, &modified,
-               JANA_GTK_NOTE_STORE_COL_CATEGORIES, &categories, -1);
+               -1);
 
-       if (categories) for (i = 0; categories[i]; i++) {
-               /* Note that this category is not meant for display and 
-                * shouldn't be translated... (see phone-kit)
-                */
-               if ((strcmp (categories[i], "Sent") == 0) ||
-                   (strcmp (categories[i], "Sending") == 0) ||
-                   (strcmp (categories[i], "Rejected") == 0)) {
-                       outgoing = TRUE;
-                       break;
-               }
-       }
+       if (recipient && data->recipient_number &&
+           (strcmp (recipient, data->recipient_number) == 0))
+               outgoing = TRUE;
+       else
+               outgoing = FALSE;
        
        g_object_set (cell,
                "author", author,
@@ -254,7 +309,6 @@
        g_free (author);
        g_free (recipient);
        g_free (body);
-       g_strfreev (categories);
        if (created) g_object_unref (created);
        if (modified) g_object_unref (modified);
 }
@@ -274,9 +328,10 @@
        GtkCellRenderer *renderer;
        GHashTable *colours_hash;
        
-       /* FIXME: Set recipient pixbuf */
-       data->recipient_icon = data->no_photo ?
-               g_object_ref (data->no_photo) : NULL;
+       data->author_uid = NULL;
+       data->author_icon = NULL;
+       data->recipient_number = NULL;
+       data->recipient_icon = NULL;
        
        /* Create note store */
        data->notes = jana_ecal_store_new (JANA_COMPONENT_NOTE);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h        
2007-11-21 17:07:03 UTC (rev 3470)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h        
2007-11-21 18:31:53 UTC (rev 3471)
@@ -37,6 +37,7 @@
        GtkTreeModel *contacts_store;
        GtkTreeModel *contacts_filter;
        GHashTable *contacts;
+       GHashTable *numbers;
        
        GtkWidget *window;
        GtkWidget *notebook;
@@ -49,6 +50,8 @@
        GtkWidget *sms_textview;
        GdkPixbuf *author_icon;
        GdkPixbuf *recipient_icon;
+       gchar *recipient_number;
+       gchar *author_uid;
 
        GtkWidget *contacts_treeview;
        GtkWidget *contacts_combo;




--- End Message ---
--- Begin Message ---
Author: andrew
Date: 2007-11-21 22:36:01 +0100 (Wed, 21 Nov 2007)
New Revision: 3472

Modified:
   trunk/src/host/qemu-neo1973/openmoko/env
Log:
Update rootfs wildcard to match new buildhost filenames.


Modified: trunk/src/host/qemu-neo1973/openmoko/env
===================================================================
--- trunk/src/host/qemu-neo1973/openmoko/env    2007-11-21 18:31:53 UTC (rev 
3471)
+++ trunk/src/host/qemu-neo1973/openmoko/env    2007-11-21 21:36:01 UTC (rev 
3472)
@@ -20,7 +20,7 @@
 
 # We don't want the "-latest" symlinks to match
 kernel_wildcard="uImage-2.6.*-neo1973.bin"
-rootfs_wildcard="OpenMoko-openmoko-devel-image-*.rootfs.jffs2"
+rootfs_wildcard="OpenMoko-openmoko-*image*.rootfs.jffs2"
 uboot_wildcard="u-boot-gta01bv4-1*.bin"
 
 
download_dir="http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/images/neo1973/";




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to