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. r3463 - in
      trunk/src/target/OM-2007.2/applications/openmoko-dialer2: .
      src/phone-kit ([EMAIL PROTECTED])
   2. r3464 - in
      trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
      ([EMAIL PROTECTED])
   3. r3465 - in
      trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
      ([EMAIL PROTECTED])
   4. r3466 - in
      trunk/src/target/OM-2007.2/applications/openmoko-dialer2: .
      src/phone-kit ([EMAIL PROTECTED])
--- Begin Message ---
Author: chris
Date: 2007-11-21 14:18:47 +0100 (Wed, 21 Nov 2007)
New Revision: 3463

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer-sms.c
Log:
        * src/phone-kit/moko-dialer-sms.c: (moko_dialer_sms_finalize),
        (store_sms), (moko_dialer_sms_send):
        Fix compiler warnings, check the source exists before trying to
        destroy it on finalize


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-20 18:35:34 UTC (rev 3462)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-21 13:18:47 UTC (rev 3463)
@@ -1,3 +1,10 @@
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
+       * src/phone-kit/moko-dialer-sms.c: (moko_dialer_sms_finalize),
+       (store_sms), (moko_dialer_sms_send):
+       Fix compiler warnings, check the source exists before trying to 
+       destroy it on finalize
+
 2007-11-20  Chris Lord  <[EMAIL PROTECTED]>
 
        * src/phone-kit/moko-dialer-sms.c: (moko_dialer_sms_class_init):

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer-sms.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer-sms.c
    2007-11-20 18:35:34 UTC (rev 3462)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer-sms.c
    2007-11-21 13:18:47 UTC (rev 3463)
@@ -66,7 +66,7 @@
 {
        MokoDialerSMSPrivate *priv = SMS_PRIVATE (object);
        
-       g_source_destroy ((GSource *)priv->source);
+       if (priv->source) g_source_destroy ((GSource *)priv->source);
        g_free (priv->own_number);
        lgsm_exit (priv->handle);
 
@@ -158,7 +158,7 @@
        /* Store message in the journal */
        if (message) {
                struct lgsm_sms_delete sms_del;
-               gchar *author, *recipient;
+               gchar *author;
                JanaNote *note = jana_ecal_note_new ();
                
                g_debug ("Moving message to journal:\n\"%s\"", message);
@@ -442,7 +442,6 @@
        gint msg_length, c;
        gboolean ascii;
        JanaNote *note;
-       gchar *author;
        
        g_assert (self && number && message);
 




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-11-21 16:17:58 +0100 (Wed, 21 Nov 2007)
New Revision: 3464

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/Makefile.am
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac
   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:
        * configure.ac:
        * Makefile.am:
        Remove libhito

        * src/sms.h:
        * src/sms-contacts.[ch]:
        Replace libhito code with ebook code, implement showing of contact
        avatars.

        * src/sms-notes.c:
        Update due to new ebook code



Property changes on: trunk/src/target/OM-2007.2/applications/openmoko-messages2
___________________________________________________________________
Name: svn:externals
   - libhito http://svn.o-hand.com/repos/contacts/branches/hito/libhito


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 13:18:47 UTC (rev 3463)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog        
2007-11-21 15:17:58 UTC (rev 3464)
@@ -1,3 +1,17 @@
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
+       * configure.ac:
+       * Makefile.am:
+       Remove libhito
+
+       * src/sms.h:
+       * src/sms-contacts.[ch]:
+       Replace libhito code with ebook code, implement showing of contact
+       avatars.
+
+       * src/sms-notes.c:
+       Update due to new ebook code
+
 2007-11-20  Chris Lord  <[EMAIL PROTECTED]>
 
        * configure.ac:

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/Makefile.am      
2007-11-21 13:18:47 UTC (rev 3463)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/Makefile.am      
2007-11-21 15:17:58 UTC (rev 3464)
@@ -1 +1 @@
-SUBDIRS=libhito src
+SUBDIRS=src

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac     
2007-11-21 13:18:47 UTC (rev 3463)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac     
2007-11-21 15:17:58 UTC (rev 3464)
@@ -10,10 +10,14 @@
 AC_STDC_HEADERS
 AC_PROG_LIBTOOL
 
-PKG_CHECK_MODULES(CONTACTS, glib-2.0 glib-2.0 gtk+-2.0 libebook-1.2)
+PKG_CHECK_MODULES(EBOOK, libebook-1.2)
+PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6.0)
+PKG_CHECK_MODULES(MOKOUI, libmokoui2 >= 0.3)
+PKG_CHECK_MODULES(JANA, libjana libjana-ecal libjana-gtk)
+PKG_CHECK_MODULES(DBUS, dbus-glib-1)
 
 old_cflags=$CFLAGS
-CFLAGS=$CONTACTS_CFLAGS
+CFLAGS=$EBOOK_CFLAGS
 AC_CHECK_TYPE(EContactPhotoType, [], [], [#include <libebook/e-book.h>])
 CFLAGS=$old_cflags
 
@@ -21,15 +25,8 @@
         AC_DEFINE(HAVE_PHOTO_TYPE, 1, [Defined if EContactPhotoType exists])
 fi
 
-PKG_CHECK_MODULES(EBOOK, libebook-1.2)
-PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6.0)
-PKG_CHECK_MODULES(MOKOUI, libmokoui2 >= 0.3)
-PKG_CHECK_MODULES(JANA, libjana libjana-ecal libjana-gtk)
-PKG_CHECK_MODULES(DBUS, dbus-glib-1)
-
 AC_OUTPUT([
 Makefile
-libhito/Makefile
 src/Makefile
 ])
 

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 13:18:47 UTC (rev 3463)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c   
    2007-11-21 15:17:58 UTC (rev 3464)
@@ -20,46 +20,145 @@
 #include "sms-contacts.h"
 #include <libmokoui2/moko-finger-scroll.h>
 #include <libmokoui2/moko-search-bar.h>
-#include <libhito/hito-contact-store.h>
-#include <libhito/hito-group-store.h>
-#include <libhito/hito-all-group.h>
-#include <libhito/hito-group-combo.h>
-#include <libebook/e-book.h>
+#include <config.h>
 
-static void sms_contacts_data_func (GtkTreeViewColumn *tree_column,
-                                   GtkCellRenderer *cell,
-                                   GtkTreeModel *model,
-                                   GtkTreeIter *iter,
-                                   SmsData *data)
+/* Following two functions taken from pimlico Contacts */
+static void
+contact_photo_size (GdkPixbufLoader * loader, gint width, gint height,
+                   gpointer user_data)
 {
-       EContact *contact = NULL;
+       /* Max height of GTK_ICON_SIZE_DIALOG */
+       gint iconwidth, iconheight;
+       gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &iconwidth, &iconheight);
        
-       gtk_tree_model_get (model, iter, COLUMN_CONTACT, &contact, -1);
-       if (!contact) return;
+       gdk_pixbuf_loader_set_size (loader,
+                                   width / ((gdouble) height /
+                                            iconheight), iconheight);
+}
+
+GdkPixbuf *
+contacts_load_photo (EContact *contact)
+{
+       EContactPhoto *photo;
+       GdkPixbuf *pixbuf = NULL;
        
-       g_object_set (cell,
-               "author", e_contact_get_const (contact, E_CONTACT_FULL_NAME),
-               "body", "0 sent, 0 received", NULL);
+       /* Retrieve contact picture and resize */
+       photo = e_contact_get (contact, E_CONTACT_PHOTO);
+       if (photo) {
+               GdkPixbufLoader *loader = gdk_pixbuf_loader_new ();
+               if (loader) {
+                       g_signal_connect (G_OBJECT (loader),
+                                         "size-prepared",
+                                         G_CALLBACK (contact_photo_size),
+                                         NULL);
+#if HAVE_PHOTO_TYPE
+                       switch (photo->type) {
+                       case E_CONTACT_PHOTO_TYPE_INLINED :
+                               gdk_pixbuf_loader_write (loader,
+                                       photo->data.inlined.data,
+                                       photo->data.inlined.length, NULL);
+                               break;
+                       case E_CONTACT_PHOTO_TYPE_URI :
+                       default :
+                               g_warning ("Cannot handle URI photos yet");
+                               g_object_unref (loader);
+                               loader = NULL;
+                               break;
+                       }
+#else
+                       gdk_pixbuf_loader_write (loader, (const guchar *)
+                               photo->data, photo->length, NULL);
+#endif
+                       if (loader) {
+                               gdk_pixbuf_loader_close (loader, NULL);
+                               pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
+                               if (pixbuf) g_object_ref (pixbuf);
+                               g_object_unref (loader);
+                       }
+               }
+               e_contact_photo_free (photo);
+       }
        
-       g_object_unref (contact);
+       return pixbuf;
 }
 
+static void
+contacts_store (SmsData *data, GtkTreeIter *iter, EContact *contact)
+{
+       GdkPixbuf *photo = 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);
+}
+
+static void
+contacts_added_cb (EBookView *ebookview, GList *contacts, SmsData *data)
+{
+       for (; contacts; contacts = contacts->next) {
+               GtkTreeIter *iter;
+               EContact *contact = (EContact *)contacts->data;
+               
+               if (!contact) continue;
+               
+               iter = g_slice_new (GtkTreeIter);
+               gtk_list_store_append ((GtkListStore *)data->contacts_store,
+                       iter);
+               contacts_store (data, iter, contact);
+               g_hash_table_insert (data->contacts,
+                       e_contact_get (contact, E_CONTACT_UID), iter);
+       }
+}
+
+static void
+contacts_changed_cb (EBookView *ebookview, GList *contacts, SmsData *data)
+{
+       for (; contacts; contacts = contacts->next) {
+               GtkTreeIter *iter;
+               const gchar *uid;
+               
+               EContact *contact = (EContact *)contacts->data;
+               
+               if (!contact) continue;
+               
+               uid = e_contact_get_const (contact, E_CONTACT_UID);
+               iter = g_hash_table_lookup (data->contacts, uid);
+               if (iter) contacts_store (data, iter, contact);
+       }
+}
+
+static void
+contacts_removed_cb (EBookView *ebookview, GList *uids, SmsData *data)
+{
+       for (; uids; uids = uids->next) {
+               GtkTreeIter *iter = g_hash_table_lookup (
+                       data->contacts, uids->data);
+
+               if (!iter) continue;
+               
+               gtk_list_store_remove ((GtkListStore *)
+                       data->contacts_store, iter);
+               g_hash_table_remove (data->contacts, uids->data);
+       }
+}
+
+static void
+free_iter_slice (GtkTreeIter *iter)
+{
+       g_slice_free (GtkTreeIter, iter);
+}
+
 GtkWidget *
 sms_contacts_page_new (SmsData *data)
 {
        EBookQuery *qrys[(E_CONTACT_LAST_PHONE_ID-E_CONTACT_FIRST_PHONE_ID)+1];
        GtkWidget *searchbar, *scroll, *vbox;
        GtkCellRenderer *renderer;
-       GtkTreeModel *group_store;
        EBookQuery *tel_query;
        EBookView *view;
-       EBook *book;
        gint i;
 
-       /* Temporary, just for testing */
-       GdkPixbuf *pixbuf = gtk_icon_theme_load_icon (
-               gtk_icon_theme_get_default (), "stock_person", 48, 0, NULL);
-
        GError *error = NULL;
        
        /* Create query for all contacts with telephone numbers */
@@ -77,14 +176,14 @@
        
        /* Create/retrieve and open system address book */
        /* TODO: async opening? */
-       if (!(book = e_book_new_system_addressbook (&error))) {
+       if (!(data->ebook = e_book_new_system_addressbook (&error))) {
                g_warning ("Error retrieving system addressbook: %s",
                        error->message);
                g_error_free (error);
                return gtk_label_new ("Error, see console output");
        }
        
-       if (!e_book_open (book, FALSE, &error)) {
+       if (!e_book_open (data->ebook, FALSE, &error)) {
                g_warning ("Error opening system addressbook: %s",
                        error->message);
                g_error_free (error);
@@ -92,47 +191,57 @@
        }
        
        /* Get view on telephone number query */
-       if (!(e_book_get_book_view (book, tel_query, NULL, 0, &view, &error))) {
+       if (!(e_book_get_book_view (data->ebook, tel_query,
+             NULL, 0, &view, &error))) {
                g_warning ("Error retrieving addressbook view: %s",
                        error->message);
                g_error_free (error);
                return gtk_label_new ("Error, see console output");
        }
        
+       /* Get icon to use when no contact photo exists */
+       data->no_photo = gtk_icon_theme_load_icon (
+               gtk_icon_theme_get_default (), "stock_person", 48, 0, NULL);
+
        /* Create contacts model */
-       data->contacts_store = hito_contact_store_new (view);
+       data->contacts_store = gtk_list_store_new (COL_LAST,
+               G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF);
+       data->contacts = g_hash_table_new_full (g_str_hash, g_str_equal,
+               (GDestroyNotify)g_free, (GDestroyNotify)free_iter_slice);
        
        /* Create filter */
-       data->contacts_filter = hito_contact_model_filter_new (
-               HITO_CONTACT_STORE (data->contacts_store));
+       data->contacts_filter = gtk_tree_model_filter_new (
+               data->contacts_store, NULL);
        
        /* Create groups model */
-       group_store = hito_group_store_new ();
-       hito_group_store_add_group (HITO_GROUP_STORE (group_store),
-               hito_all_group_new ());
-       hito_group_store_set_view (HITO_GROUP_STORE (group_store), view);
+       data->contacts_combo = gtk_combo_box_new_text ();
        
        /* Create search box */
-       searchbar = moko_search_bar_new_with_combo (GTK_COMBO_BOX (
-               hito_group_combo_new (HITO_GROUP_STORE (group_store))));
+       searchbar = moko_search_bar_new_with_combo (
+               GTK_COMBO_BOX (data->contacts_combo));
        
-       /* Create cell renderer and tree view */
+       /* Create tree view */
        data->contacts_treeview = gtk_tree_view_new_with_model (
                data->contacts_filter);
        gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (
                data->contacts_treeview), TRUE);
        gtk_tree_view_set_headers_visible (
                GTK_TREE_VIEW (data->contacts_treeview), FALSE);
+       
+       /* Create renderer and column */
+       /* Slight abuse of the note cell renderer I suppose... */
        renderer = jana_gtk_cell_renderer_note_new ();
-       g_signal_connect (data->contacts_treeview, "size-allocate",
-               G_CALLBACK (jana_gtk_utils_treeview_resize), renderer);
        g_object_set (G_OBJECT (renderer), "show_created", FALSE,
-               "show_recipient", FALSE, "icon", pixbuf, NULL);
-       gtk_tree_view_insert_column_with_data_func (
+               "show_recipient", FALSE, NULL);
+       
+       gtk_tree_view_insert_column_with_attributes (
                GTK_TREE_VIEW (data->contacts_treeview),
-               0, NULL, renderer, (GtkTreeCellDataFunc)sms_contacts_data_func,
-               data, NULL);
+               0, NULL, renderer, "author", COL_NAME,
+               "body", COL_DETAIL, "icon", COL_ICON, NULL);
        
+       g_signal_connect (data->contacts_treeview, "size-allocate",
+               G_CALLBACK (jana_gtk_utils_treeview_resize), renderer);
+
        /* Pack treeview into a finger-scroll */
        scroll = moko_finger_scroll_new ();
        gtk_container_add (GTK_CONTAINER (scroll), data->contacts_treeview);
@@ -144,6 +253,12 @@
        gtk_widget_show_all (vbox);
        
        /* Start book view */
+       g_signal_connect (view, "contacts-added",
+               G_CALLBACK (contacts_added_cb), data);
+       g_signal_connect (view, "contacts-changed",
+               G_CALLBACK (contacts_changed_cb), data);
+       g_signal_connect (view, "contacts-removed",
+               G_CALLBACK (contacts_removed_cb), data);
        e_book_view_start (view);
        
        return vbox;

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 13:18:47 UTC (rev 3463)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.h   
    2007-11-21 15:17:58 UTC (rev 3464)
@@ -22,6 +22,14 @@
 
 #include "sms.h"
 
+enum {
+       COL_UID,
+       COL_NAME,
+       COL_DETAIL,
+       COL_ICON,
+       COL_LAST
+};
+
 GtkWidget *sms_contacts_page_new (SmsData *data);
 
 #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 13:18:47 UTC (rev 3463)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c  
2007-11-21 15:17:58 UTC (rev 3464)
@@ -18,10 +18,10 @@
  */
 
 #include "sms-notes.h"
+#include "sms-contacts.h"
 #include <libjana-ecal/jana-ecal.h>
 #include <libmokoui2/moko-finger-scroll.h>
 #include <libmokoui2/moko-search-bar.h>
-#include <libhito/hito-contact-store.h>
 #include <libebook/e-book.h>
 
 static GdkColor alt_color;
@@ -33,16 +33,27 @@
 {
        GtkTreeSelection *selection;
        GtkTreeModel *model;
+       EContact *contact;
        GtkTreeIter iter;
-       EContact *contact = NULL;
+       gchar *uid;
        
+       GError *error = NULL;
+       
        selection = gtk_tree_view_get_selection (
                GTK_TREE_VIEW (data->contacts_treeview));
        
        if (!gtk_tree_selection_get_selected (selection, &model, &iter))
                return NULL;
-       gtk_tree_model_get (model, &iter, COLUMN_CONTACT, &contact, -1);
+       gtk_tree_model_get (model, &iter, COL_UID, &uid, -1);
        
+       if (!e_book_get_contact (data->ebook, uid, &contact, &error)) {
+               g_warning ("Error retrieving contact: %s", error->message);
+               g_error_free (error);
+               contact = NULL;
+       }
+       
+       g_free (uid);
+       
        return contact;
 }
 

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 13:18:47 UTC (rev 3463)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h        
2007-11-21 15:17:58 UTC (rev 3464)
@@ -25,24 +25,32 @@
 #include <libjana-gtk/jana-gtk.h>
 #include <dbus/dbus-glib.h>
 #include <dbus/dbus-glib-bindings.h>
+#include <libebook/e-book.h>
 
 typedef struct {
        JanaStore *notes;
        JanaStoreView *notes_view;
+       GtkTreeModel *note_store;
+       GtkTreeModel *note_filter;
+
+       EBook *ebook;
        GtkTreeModel *contacts_store;
        GtkTreeModel *contacts_filter;
-       GtkTreeModel *note_store;
-       GtkTreeModel *note_filter;
+       GHashTable *contacts;
        
        GtkWidget *window;
        GtkWidget *notebook;
        GtkToolItem *new_button;
        GtkToolItem *delete_all_button;
        GtkToolItem *delete_button;
-       GtkWidget *contacts_treeview;
+
        GtkWidget *notes_combo;
        GtkWidget *sms_hbox;
        GtkWidget *sms_textview;
+
+       GtkWidget *contacts_treeview;
+       GtkWidget *contacts_combo;
+       GdkPixbuf *no_photo;
        
        gulong delete_all_handler;
        gulong delete_handler;




--- End Message ---
--- Begin Message ---
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  <[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
+       stock_person icon
+
+2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
+
        * 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 ();




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-11-21 17:05:13 +0100 (Wed, 21 Nov 2007)
New Revision: 3466

Added:
   
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.c
   
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.h
Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am
   
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
Log:
* src/phone-kit/Makefile.am:
* src/phone-kit/moko-dialer.c: (on_incoming_call),
(on_pin_requested), (moko_dialer_init):
* src/phone-kit/moko-pin.c:
* src/phone-kit/moko-pin.h:

Add new code to request PIN from user


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-21 16:00:08 UTC (rev 3465)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-21 16:05:13 UTC (rev 3466)
@@ -1,3 +1,13 @@
+2007-11-21  Thomas Wood  <[EMAIL PROTECTED]>
+
+       * src/phone-kit/Makefile.am:
+       * src/phone-kit/moko-dialer.c: (on_incoming_call),
+       (on_pin_requested), (moko_dialer_init):
+       * src/phone-kit/moko-pin.c:
+       * src/phone-kit/moko-pin.h:
+
+       Add new code to request PIN from user
+
 2007-11-21  Chris Lord  <[EMAIL PROTECTED]>
 
        * src/phone-kit/moko-dialer-sms.c: (moko_dialer_sms_finalize),

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am
  2007-11-21 16:00:08 UTC (rev 3465)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am
  2007-11-21 16:05:13 UTC (rev 3466)
@@ -11,7 +11,9 @@
        moko-notify.c moko-notify.h \
        moko-sound.c moko-sound.h \
        moko-talking.c moko-talking.h \
-       moko-dialer-sms.c moko-dialer-sms.h
+       moko-dialer-sms.c moko-dialer-sms.h \
+       moko-pin.c \
+       moko-pin.h
 
 phone_kit_LDADD = @DIALER_LIBS@ @JANA_LIBS@ 
$(top_srcdir)/src/common/libdialer-common.a
 

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
        2007-11-21 16:00:08 UTC (rev 3465)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
        2007-11-21 16:05:13 UTC (rev 3466)
@@ -34,6 +34,7 @@
 #include "moko-notify.h"
 #include "moko-talking.h"
 #include "moko-sound.h"
+#include "moko-pin.h"
 
 G_DEFINE_TYPE (MokoDialer, moko_dialer, G_TYPE_OBJECT)
 
@@ -434,7 +435,7 @@
   if (priv->status == DIALER_STATUS_INCOMING  
         || priv->status == DIALER_STATUS_TALKING)
   {
-    /*g_debug ("We are already showing the incoming page");*/
+    g_debug ("We are already showing the incoming page");
     return;
   }
   priv->status = DIALER_STATUS_INCOMING;
@@ -497,11 +498,17 @@
 on_pin_requested (MokoGsmdConnection *conn, int type, MokoDialer *dialer)
 {
   MokoDialerPrivate *priv;
+  gchar *pin;
 
   g_return_if_fail (MOKO_IS_DIALER (dialer));
+  g_debug ("Pin Requested");
   priv = dialer->priv;
   
-  g_debug ("Pin Requested");
+  pin = get_pin_from_user ();
+  if (!pin)
+    return;
+  moko_gsmd_connection_send_pin (priv->connection, pin);
+  g_free (pin);
 }
 
 static void
@@ -771,7 +778,6 @@
   g_signal_connect (G_OBJECT (priv->talking), "speaker_toggle",
                     G_CALLBACK (on_talking_speaker_toggle), (gpointer)dialer);
 
-
 }
 
 MokoDialer*

Added: 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.c
   2007-11-21 16:00:08 UTC (rev 3465)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.c
   2007-11-21 16:05:13 UTC (rev 3466)
@@ -0,0 +1,106 @@
+/*
+ *  Authored by OpenedHand Ltd <[EMAIL PROTECTED]>
+ *
+ *  Copyright (C) 2007 OpenMoko Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser Public License as published by
+ *  the Free Software Foundation; version 2 of the license.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser Public License for more details.
+ */
+
+#include <gtk/gtk.h>
+
+#include "moko-dialer-textview.h"
+#include "moko-dialer-panel.h"
+
+#include <string.h>
+
+typedef struct
+{
+  GtkWidget *display;
+  GtkWidget *dialog;
+  gchar *pin;
+} MokoPinData;
+
+static void
+on_pad_user_input (MokoDialerPanel *panel, const gchar digit,
+                   MokoPinData *data)
+{
+  gchar buf[2];
+  gchar *new_pin;
+
+  /* Phones use '#' for PIN 'entered' signal */
+  if (digit == '#')
+  {
+    gtk_dialog_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK);
+    return;
+  }
+  
+  /* "*" acts as delete for now */
+  if (digit == '*')
+  {
+    moko_dialer_textview_delete (MOKO_DIALER_TEXTVIEW (data->display));
+    data->pin[strlen(data->pin)-1] = '\0';
+    return;
+  }
+
+  /* Create a string from the new digit */
+  buf[0] = digit;
+  buf[1] = '\0';
+  
+  if (!data->pin)
+  {
+    new_pin = g_strdup (buf);
+  }
+  else
+  {
+    new_pin = g_strconcat (data->pin, buf, NULL);
+    g_free (data->pin);
+  }
+  data->pin = new_pin;
+
+  moko_dialer_textview_insert (MOKO_DIALER_TEXTVIEW (data->display), "*");
+}
+
+
+
+char*
+get_pin_from_user ()
+{
+  GtkWidget *pad;
+  gchar *pin;
+  MokoPinData data;
+  
+  data.dialog = gtk_dialog_new_with_buttons ("Enter PIN", NULL, 0,
+                                             GTK_STOCK_CANCEL, 
GTK_RESPONSE_CANCEL,
+                                             GTK_STOCK_OK, GTK_RESPONSE_OK, 
NULL);
+  gtk_dialog_set_has_separator (GTK_DIALOG (data.dialog), FALSE);
+
+  data.display = moko_dialer_textview_new ();
+  gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (data.dialog)->vbox), 
data.display);
+  
+  pad = moko_dialer_panel_new ();
+  gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (data.dialog)->vbox), pad);
+  g_signal_connect (pad, "user_input", G_CALLBACK (on_pad_user_input), &data);
+  
+  gtk_widget_show_all (GTK_DIALOG (data.dialog)->vbox);
+  
+  data.pin = NULL;
+  if (gtk_dialog_run (GTK_DIALOG (data.dialog)) == GTK_RESPONSE_OK)
+  {
+    pin = data.pin;
+  }
+  else
+  {
+    pin = NULL;
+    g_free (data.pin);
+  }
+  gtk_widget_destroy (data.dialog);
+
+  return pin;
+}

Added: 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.h
   2007-11-21 16:00:08 UTC (rev 3465)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-pin.h
   2007-11-21 16:05:13 UTC (rev 3466)
@@ -0,0 +1,16 @@
+/*
+ *  Authored by OpenedHand Ltd <[EMAIL PROTECTED]>
+ *
+ *  Copyright (C) 2007 OpenMoko Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser Public License as published by
+ *  the Free Software Foundation; version 2 of the license.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser Public License for more details.
+ */
+
+char *get_pin_from_user ();




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

Reply via email to