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. r3437 - in
      trunk/src/target/OM-2007.2/applications/openmoko-dialer2: .
      src/phone-kit ([EMAIL PROTECTED])
   2. r3438 - in
      trunk/src/target/OM-2007.2/applications/openmoko-dialer2: .
      src/phone-kit ([EMAIL PROTECTED])
   3. r3439 - in
      trunk/src/target/OM-2007.2/applications/openmoko-appmanager2: .
      src ([EMAIL PROTECTED])
   4. r3440 - in
      trunk/src/target/OM-2007.2/applications/openmoko-appmanager2: .
      src ([EMAIL PROTECTED])
   5. r3441 - in
      trunk/src/target/OM-2007.2/applications/openmoko-appmanager2: .
      src ([EMAIL PROTECTED])
   6. r3442 - in
      trunk/src/target/OM-2007.2/applications/openmoko-appmanager2: .
      src ([EMAIL PROTECTED])
--- Begin Message ---
Author: chris
Date: 2007-11-19 14:24:53 +0100 (Mon, 19 Nov 2007)
New Revision: 3437

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: (status_report_added_cb),
        (store_sms), (gsmd_eventhandler), (sms_msghandler),
        (moko_dialer_sms_init):
        Handle non in-line SMS events, move all SMS's on SIM to journal on
        startup, add lots of debugging statements


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-18 22:48:31 UTC (rev 3436)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-19 13:24:53 UTC (rev 3437)
@@ -1,3 +1,11 @@
+2007-11-19  Chris Lord  <[EMAIL PROTECTED]>
+
+       * src/phone-kit/moko-dialer-sms.c: (status_report_added_cb),
+       (store_sms), (gsmd_eventhandler), (sms_msghandler),
+       (moko_dialer_sms_init):
+       Handle non in-line SMS events, move all SMS's on SIM to journal on 
+       startup, add lots of debugging statements
+
 2007-11-14  Chris Lord  <[EMAIL PROTECTED]>
 
        * src/phone-kit/moko-dialer-sms-dbus.xml:

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-18 22:48:31 UTC (rev 3436)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer-sms.c
    2007-11-19 13:24:53 UTC (rev 3437)
@@ -87,6 +87,7 @@
                        jana_utils_component_remove_category (comp, "Sending");
                        jana_utils_component_insert_category (comp, "Sent", 0);
                        jana_store_modify_component (priv->note_store, comp);
+                       g_debug ("Setting message status to confirmed sent");
                }
                g_free (ref);
        }
@@ -101,6 +102,76 @@
        g_free (ref);
 }
 
+static void
+store_sms (MokoDialerSMS *dialer_sms, struct gsmd_sms_list *sms)
+{
+       gchar *message;
+
+       MokoDialerSMSPrivate *priv = SMS_PRIVATE (dialer_sms);
+
+       /* Ignore voicemail notifications */
+       if (sms->payload.is_voicemail) return;
+
+       /* TODO: Verify type of message for journal (sent/received) - 
+        *       Assuming received for now, as messages sent with phone-kit 
+        *       will be marked already.
+        */
+       message = NULL;
+       switch (sms->payload.coding_scheme) {
+           case ALPHABET_DEFAULT :
+               message = g_malloc (GSMD_SMS_DATA_MAXLEN);
+               unpacking_7bit_character (
+                       &sms->payload, message);
+               break;
+           case ALPHABET_8BIT :
+               /* TODO: Verify: Is this encoding just UTF-8? */
+               message = g_strdup (sms->payload.data);
+               break;
+           case ALPHABET_UCS2 :
+               message = g_utf16_to_utf8 ((const gunichar2 *)
+                       sms->payload.data, sms->payload.length,
+                       NULL, NULL, NULL);
+               break;
+       }
+       
+       /* Store message in the journal */
+       if (message) {
+               struct lgsm_sms_delete sms_del;
+               gchar *author, *recipient;
+               JanaNote *note = jana_ecal_note_new ();
+               
+               g_debug ("Moving message to journal:\n\"%s\"", message);
+               
+               author = g_strconcat (((sms->addr.type &
+                       __GSMD_TOA_TON_MASK) ==
+                       GSMD_TOA_TON_INTERNATIONAL) ? "+" : "",
+                       sms->addr.number, NULL);
+               jana_note_set_author (note, author);
+               g_free (author);
+               
+               /* TODO: Normalise number necessary? */
+               recipient = g_strdup_printf ("%d",
+                       lgsm_get_subscriber_num (priv->handle));
+               jana_note_set_recipient (note, recipient);
+               g_free (recipient);
+               
+               jana_note_set_body (note, message);
+               
+               /* TODO: Set creation time from SMS timestamp */
+               
+               /* Add SMS to store */
+               jana_store_add_component (priv->note_store,
+                       JANA_COMPONENT (note));
+               
+               /* Delete SMS from internal storage */
+               sms_del.index = sms->index;
+               sms_del.delflg = LGSM_SMS_DELFLG_INDEX;
+               lgsm_sms_delete (priv->handle, &sms_del);
+               
+               g_free (message);
+       }
+}
+
 static int 
 gsmd_eventhandler (struct lgsm_handle *lh, int evt_type,
                   struct gsmd_evt_auxdata *aux)
@@ -113,67 +184,13 @@
        switch (evt_type) {
            case GSMD_EVT_IN_SMS : /* Incoming SMS */
                /* TODO: Read UDH for multi-part messages */
+               g_debug ("Received incoming SMS");
                if (aux->u.sms.inlined) {
-                       gchar *message;
-
                        struct gsmd_sms_list * sms =
                                (struct gsmd_sms_list *)aux->data;
-
-                       /* Ignore voicemail notifications */
-                       if (sms->payload.is_voicemail) break;
-
-                       message = NULL;
-                       switch (sms->payload.coding_scheme) {
-                           case ALPHABET_DEFAULT :
-                               message = g_malloc (GSMD_SMS_DATA_MAXLEN);
-                               unpacking_7bit_character (
-                                       &sms->payload, message);
-                               break;
-                           case ALPHABET_8BIT :
-                               /* TODO: Verify: Is this encoding just UTF-8? */
-                               message = g_strdup (sms->payload.data);
-                               break;
-                           case ALPHABET_UCS2 :
-                               message = g_utf16_to_utf8 ((const gunichar2 *)
-                                       sms->payload.data, sms->payload.length,
-                                       NULL, NULL, NULL);
-                               break;
-                       }
-                       
-                       /* Store message in the journal */
-                       if (message) {
-                               struct lgsm_sms_delete sms_del;
-                               gchar *author, *recipient;
-                               JanaNote *note = jana_ecal_note_new ();
-                               
-                               author = g_strconcat (((sms->addr.type &
-                                       __GSMD_TOA_TON_MASK) ==
-                                       GSMD_TOA_TON_INTERNATIONAL) ? "+" : "",
-                                       sms->addr.number, NULL);
-                               jana_note_set_author (note, author);
-                               g_free (author);
-                               
-                               /* TODO: Normalise number necessary? */
-                               recipient = g_strdup_printf ("%d",
-                                       lgsm_get_subscriber_num (priv->handle));
-                               jana_note_set_recipient (note, recipient);
-                               g_free (recipient);
-                               
-                               jana_note_set_body (note, message);
-                               
-                               /* TODO: Set creation time from SMS timestamp */
-                               
-                               /* Add SMS to store */
-                               jana_store_add_component (priv->note_store,
-                                       JANA_COMPONENT (note));
-                               
-                               /* Delete SMS from internal storage */
-                               sms_del.index = sms->index;
-                               sms_del.delflg = LGSM_SMS_DELFLG_INDEX;
-                               lgsm_sms_delete (priv->handle, &sms_del);
-                       }
+                       store_sms (moko_dialer_sms_get_default (), sms);
                } else {
-                       g_warning ("Not an in-line event, unhandled");
+                       lgsm_sms_read (priv->handle, aux->u.sms.index);
                }
                break;
            case GSMD_EVT_IN_DS : /* SMS status report */
@@ -188,6 +205,7 @@
                                gchar *ref = g_strdup_printf ("%d", sms->index);
                                JanaStoreView *view = jana_store_get_view (
                                        priv->note_store);
+                               g_debug ("Received sent SMS status report");
                                jana_store_view_add_match (view,
                                        JANA_STORE_VIEW_CATEGORY, "Sending");
                                g_signal_connect (view, "added", G_CALLBACK (
@@ -224,7 +242,9 @@
                                JANA_COMPONENT (priv->last_msg),
                                "X-PHONEKIT-SMS-REF", ref);
                        g_free (ref);
+                       g_debug ("Sent message accepted");
                } else {
+                       g_debug ("Sent message rejected");
                        jana_utils_component_remove_category (
                                JANA_COMPONENT(priv->last_msg), "Sending");
                        jana_utils_component_insert_category (
@@ -237,6 +257,13 @@
                g_free (uid);
                g_object_unref (priv->last_msg);
                priv->last_msg = NULL;
+       } else if ((gmh->msg_subtype == GSMD_SMS_LIST) ||
+                  (gmh->msg_subtype == GSMD_SMS_READ)) {
+               struct gsmd_sms_list *sms_list = (struct gsmd_sms_list *)
+                       ((void *) gmh + sizeof(*gmh));
+
+               g_debug ("Storing message on SIM");
+               store_sms (sms, sms_list);
        }
        
        return 0;
@@ -271,7 +298,8 @@
        /* Connect SMS message handler (to get sent message references) */
        lgsm_register_handler (priv->handle, GSMD_MSG_SMS, &sms_msghandler);
        
-       /* TODO: Move any existing SMS messages off of sim and to journal */
+       /* List all messages to move to journal */
+       lgsm_sms_list (priv->handle, GSMD_SMS_ALL);
 }
 
 MokoDialerSMS*




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-11-19 14:59:28 +0100 (Mon, 19 Nov 2007)
New Revision: 3438

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),
        (connection_source_prepare), (connection_source_check),
        (connection_source_dispatch), (moko_dialer_sms_init):
        Don't forget to actually poll for events...


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-19 13:24:53 UTC (rev 3437)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-11-19 13:59:28 UTC (rev 3438)
@@ -1,5 +1,12 @@
 2007-11-19  Chris Lord  <[EMAIL PROTECTED]>
 
+       * src/phone-kit/moko-dialer-sms.c: (moko_dialer_sms_finalize),
+       (connection_source_prepare), (connection_source_check),
+       (connection_source_dispatch), (moko_dialer_sms_init):
+       Don't forget to actually poll for events...
+
+2007-11-19  Chris Lord  <[EMAIL PROTECTED]>
+
        * src/phone-kit/moko-dialer-sms.c: (status_report_added_cb),
        (store_sms), (gsmd_eventhandler), (sms_msghandler),
        (moko_dialer_sms_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-19 13:24:53 UTC (rev 3437)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer-sms.c
    2007-11-19 13:59:28 UTC (rev 3438)
@@ -9,6 +9,7 @@
 #include <libjana/jana.h>
 #include <libjana-ecal/jana-ecal.h>
 #include <string.h>
+#include <unistd.h>
 
 #include "moko-dialer-sms-glue.h"
 
@@ -19,10 +20,17 @@
 
 typedef struct _MokoDialerSMSPrivate MokoDialerSMSPrivate;
 
+typedef struct {
+       GSource source;
+       GPollFD pollfd;
+       struct lgsm_handle *handle;
+} MokoDialerSMSSource;
+
 struct _MokoDialerSMSPrivate {
        struct lgsm_handle *handle;
        JanaStore *note_store;
        JanaNote *last_msg;
+       MokoDialerSMSSource *source;
 };
 
 static void
@@ -55,6 +63,11 @@
 static void
 moko_dialer_sms_finalize (GObject *object)
 {
+       MokoDialerSMSPrivate *priv = SMS_PRIVATE (object);
+       
+       g_source_destroy ((GSource *)priv->source);
+       lgsm_exit (priv->handle);
+
        G_OBJECT_CLASS (moko_dialer_sms_parent_class)->finalize (object);
 }
 
@@ -269,10 +282,52 @@
        return 0;
 }
 
+static gboolean 
+connection_source_prepare (GSource* self, gint* timeout)
+{
+    return FALSE;
+}
+
+static gboolean 
+connection_source_check (GSource* source)
+{
+       MokoDialerSMSSource *self = (MokoDialerSMSSource *)source;
+       return self->pollfd.revents & G_IO_IN;
+}
+
+static gboolean 
+connection_source_dispatch (GSource *source, GSourceFunc callback,
+                           gpointer data)
+{
+       char buf[1025];
+       int size;
+
+       MokoDialerSMSSource *self = (MokoDialerSMSSource *)source;
+
+       size = read (self->pollfd.fd, &buf, sizeof(buf));
+       if (size < 0) {
+               g_warning ("moko_gsmd_connection_source_dispatch:%s %s",
+                       "read error from libgsmd:", strerror (errno));
+       } else {
+               if (size == 0) /* EOF */
+                       return FALSE;
+               lgsm_handle_packet (self->handle, buf, size);
+       }
+       
+       return TRUE;
+}
+
 static void
 moko_dialer_sms_init (MokoDialerSMS *self)
 {
        static gboolean first_init = TRUE;
+       static GSourceFuncs funcs = {
+               connection_source_prepare,
+               connection_source_check,
+               connection_source_dispatch,
+               NULL,
+       };
+       
        MokoDialerSMSPrivate *priv = SMS_PRIVATE (self);
        
        /* We can only have one of these objects per process, as the gsmd 
@@ -300,6 +355,16 @@
        
        /* List all messages to move to journal */
        lgsm_sms_list (priv->handle, GSMD_SMS_ALL);
+       
+       /* Start polling for events */
+       priv->source = (MokoDialerSMSSource *)
+               g_source_new (&funcs, sizeof (MokoDialerSMSSource));
+       priv->source->handle = priv->handle;
+       priv->source->pollfd.fd = lgsm_fd (priv->handle);
+       priv->source->pollfd.events = G_IO_IN | G_IO_HUP | G_IO_ERR;
+       priv->source->pollfd.revents = 0;
+       g_source_add_poll ((GSource*)priv->source, &priv->source->pollfd);
+       g_source_attach ((GSource*)priv->source, NULL);
 }
 
 MokoDialerSMS*




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-11-19 15:01:02 +0100 (Mon, 19 Nov 2007)
New Revision: 3439

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
Log:
* src/navigation-area.c: (model_filter_func):
* src/search-bar.c: (text_changed_cb), (combo_changed_cb): Fix text
   searching


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 13:59:28 UTC (rev 3438)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 14:01:02 UTC (rev 3439)
@@ -1,3 +1,9 @@
+2007-11-19  Thomas Wood  <[EMAIL PROTECTED]>
+
+       * src/navigation-area.c: (model_filter_func):
+       * src/search-bar.c: (text_changed_cb), (combo_changed_cb): Fix text
+          searching
+
 2007-11-16  Thomas Wood  <[EMAIL PROTECTED]>
 
        * src/ipkg-utils.c: (update_package_list):

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
  2007-11-19 13:59:28 UTC (rev 3438)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
  2007-11-19 14:01:02 UTC (rev 3439)
@@ -86,11 +86,11 @@
  
   if (data->searchbar_search_type == SEARCH_ON_SECTION)
   {
-    return (strstr (pkg->name, data->searchbar_needle) != NULL);
+    return (g_str_equal (pkg->section, data->searchbar_needle));
   }
   else if (data->searchbar_search_type == SEARCH_ON_NAME)
   {
-    return (!strcmp (pkg->section, data->searchbar_needle));
+    return (g_strrstr (pkg->name, data->searchbar_needle));
   }
   else if (data->searchbar_search_type == SEARCH_ON_STATUS)
   {

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c   
    2007-11-19 13:59:28 UTC (rev 3438)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c   
    2007-11-19 14:01:02 UTC (rev 3439)
@@ -42,13 +42,32 @@
   needle = gtk_entry_get_text (entry);
  
   data->searchbar_search_type = SEARCH_ON_NAME;
-  data->searchbar_needle = needle;
+  data->searchbar_needle = g_strdup (needle);
 
+  g_debug ("Search = %s", needle);
+
+
+  GTimer *timer = g_timer_new ();
   filter = gtk_tree_view_get_model (GTK_TREE_VIEW (data->tvpkglist));
   g_object_ref (G_OBJECT (filter));
   gtk_tree_view_set_model (GTK_TREE_VIEW (data->tvpkglist), NULL);
+
+  g_timer_stop (timer);
+  g_debug ("Unsetting model took %f seconds", g_timer_elapsed (timer, NULL));
+  g_timer_start (timer);
+
   gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter));
+
+  g_timer_stop (timer);
+  g_debug ("Search took %f seconds", g_timer_elapsed (timer, NULL));
+  g_timer_start (timer);
+
   gtk_tree_view_set_model (GTK_TREE_VIEW (data->tvpkglist), filter);
+
+  g_timer_stop (timer);
+  g_debug ("Setting model took %f seconds", g_timer_elapsed (timer, NULL));
+  g_timer_destroy (timer);
+
   g_object_unref (G_OBJECT (filter));
 }
 
@@ -91,7 +110,11 @@
   }
 
   filter = gtk_tree_view_get_model (GTK_TREE_VIEW (data->tvpkglist));
+  g_object_ref (filter);
+  gtk_tree_view_set_model (GTK_TREE_VIEW (data->tvpkglist), NULL);
   gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter));
+  gtk_tree_view_set_model (GTK_TREE_VIEW (data->tvpkglist), filter);
+  g_object_unref (filter);
 }
 
 static void




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-11-19 15:30:53 +0100 (Mon, 19 Nov 2007)
New Revision: 3440

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
Log:
* src/navigation-area.c: (model_filter_func),
(navigation_area_new): Enable fixed height rows in treeview to speed up
 filtering

* src/search-bar.c: (text_changed_cb): Fast path blank search


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 14:01:02 UTC (rev 3439)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 14:30:53 UTC (rev 3440)
@@ -1,3 +1,11 @@
+2007-11-19  Thomas Wood <[EMAIL PROTECTED]>
+
+       * src/navigation-area.c: (model_filter_func),
+       (navigation_area_new): Enable fixed height rows in treeview to speed up
+        filtering
+
+       * src/search-bar.c: (text_changed_cb): Fast path blank search
+
 2007-11-19  Thomas Wood  <[EMAIL PROTECTED]>
 
        * src/navigation-area.c: (model_filter_func):

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
  2007-11-19 14:01:02 UTC (rev 3439)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
  2007-11-19 14:30:53 UTC (rev 3440)
@@ -90,7 +90,11 @@
   }
   else if (data->searchbar_search_type == SEARCH_ON_NAME)
   {
-    return (g_strrstr (pkg->name, data->searchbar_needle));
+    /* fast path initial blank search */
+    if (g_str_equal ("", data->searchbar_needle))
+      return FALSE;
+
+    return (g_strrstr (pkg->name, data->searchbar_needle) != NULL);
   }
   else if (data->searchbar_search_type == SEARCH_ON_STATUS)
   {
@@ -123,9 +127,10 @@
   gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE);
 
   /* Add the status as the first column. */
+  /*
   col = gtk_tree_view_column_new ();
   gtk_tree_view_column_set_title (col, _("S"));
-
+  */
   /*
   renderer = gtk_cell_renderer_pixbuf_new ();
   gtk_tree_view_column_pack_start (col, renderer, FALSE);
@@ -142,7 +147,7 @@
 
   renderer = gtk_cell_renderer_text_new ();
   gtk_tree_view_column_pack_start (col, renderer, TRUE);
-  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
   gtk_tree_view_column_set_attributes (col, renderer, "text", COL_NAME, NULL);
   g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
 
@@ -162,6 +167,9 @@
   gtk_container_add (GTK_CONTAINER (scrollwindow), treeview);
   application_manager_data_set_tvpkglist (appdata, treeview);
 
+  /* set fixed height mode to speed up filtering */
+  gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (treeview), TRUE);
+
   /* Connect signal to the treeview */
   g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
                     "changed", G_CALLBACK (on_selection_changed), appdata);

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c   
    2007-11-19 14:01:02 UTC (rev 3439)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c   
    2007-11-19 14:30:53 UTC (rev 3440)
@@ -46,7 +46,6 @@
 
   g_debug ("Search = %s", needle);
 
-
   GTimer *timer = g_timer_new ();
   filter = gtk_tree_view_get_model (GTK_TREE_VIEW (data->tvpkglist));
   g_object_ref (G_OBJECT (filter));




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-11-19 16:27:14 +0100 (Mon, 19 Nov 2007)
New Revision: 3441

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
Log:
* src/search-bar.c: (text_changed_cb): Don't leak the search string


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 14:30:53 UTC (rev 3440)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 15:27:14 UTC (rev 3441)
@@ -1,3 +1,7 @@
+2007-11-19  Thomas Wood  <[EMAIL PROTECTED]>
+
+       * src/search-bar.c: (text_changed_cb): Don't leak the search string
+
 2007-11-19  Thomas Wood <[EMAIL PROTECTED]>
 
        * src/navigation-area.c: (model_filter_func),

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c   
    2007-11-19 14:30:53 UTC (rev 3440)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c   
    2007-11-19 15:27:14 UTC (rev 3441)
@@ -42,7 +42,7 @@
   needle = gtk_entry_get_text (entry);
  
   data->searchbar_search_type = SEARCH_ON_NAME;
-  data->searchbar_needle = g_strdup (needle);
+  data->searchbar_needle = needle;
 
   g_debug ("Search = %s", needle);
 




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-11-19 18:26:24 +0100 (Mon, 19 Nov 2007)
New Revision: 3442

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.h
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c
Log:
* src/ipkg-utils.c: (check_for_upgrade), (get_upgrade_list):
* src/ipkg-utils.h:
* src/tool-box.c: (on_upgrade_clicked):

Add upgrade package functionality


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 15:27:14 UTC (rev 3441)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog      
2007-11-19 17:26:24 UTC (rev 3442)
@@ -1,5 +1,13 @@
 2007-11-19  Thomas Wood  <[EMAIL PROTECTED]>
 
+       * src/ipkg-utils.c: (check_for_upgrade), (get_upgrade_list):
+       * src/ipkg-utils.h:
+       * src/tool-box.c: (on_upgrade_clicked):
+
+       Add upgrade package functionality
+
+2007-11-19  Thomas Wood  <[EMAIL PROTECTED]>
+
        * src/search-bar.c: (text_changed_cb): Don't leak the search string
 
 2007-11-19  Thomas Wood <[EMAIL PROTECTED]>

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.c   
    2007-11-19 15:27:14 UTC (rev 3441)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.c   
    2007-11-19 17:26:24 UTC (rev 3442)
@@ -184,12 +184,13 @@
     {
       gint ret;
       
-      ret = verrevcmp (package->version, p->version);
+      ret = verrevcmp (p->version, package->version);
       
       if (ret > 0)
+      {
+        g_debug ("Found upgradeable package: %s (old: %s, new: %s)", p->name, 
package->version, p->version);
         return TRUE;
-      else
-        return FALSE;
+      }
     }
     p = p->next;
   }
@@ -213,13 +214,41 @@
     if (check_for_upgrade (p, &list))
     {
       upgradelist = g_list_prepend (upgradelist, p);
-      g_debug ("Found upgradeable package: %p", p->name);
     }
     p = p->next;
   }
   return upgradelist;
 }
 
+static gpointer
+upgrade_packages_thread (AmProgressDialog *dlg)
+{
+  args_t args;
+
+  memset (&args, 0, sizeof (args));
+  args_init (&args);
+
+  ipkg_packages_upgrade (&args);
+
+  gdk_threads_enter ();
+  am_progress_dialog_set_progress (dlg, 1);
+  am_progress_dialog_set_label_text (dlg, "Upgrading finished");
+  gdk_threads_leave ();
+}
+
+void
+upgrade_packages ()
+{
+  GtkWidget *dlg;
+
+  dlg = am_progress_dialog_new_full ("Upgrade", "Upgrading packages...", -1);
+  
+  g_thread_create ((GThreadFunc) upgrade_packages_thread, dlg, FALSE, NULL);
+
+  gtk_dialog_run (GTK_DIALOG (dlg));
+  gtk_widget_destroy (dlg);
+}
+
 /*
  * @brief Version compare
  *

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.h   
    2007-11-19 15:27:14 UTC (rev 3441)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/ipkg-utils.h   
    2007-11-19 17:26:24 UTC (rev 3442)
@@ -23,5 +23,6 @@
 void remove_package (ApplicationManagerData *data, gchar *name);
 void update_package_list (ApplicationManagerData *data);
 GList * get_upgrade_list ();
+void upgrade_pacakges ();
 
 #endif /* IPKG_UTILS_H */

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c 
2007-11-19 15:27:14 UTC (rev 3441)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c 
2007-11-19 17:26:24 UTC (rev 3442)
@@ -46,8 +46,15 @@
     dlg = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_INFO, 
GTK_BUTTONS_YES_NO,
                             "There are %d updates available. Would you like to 
install them now?",
                             upgrades);
-    gtk_dialog_run (GTK_DIALOG (dlg));
-    gtk_widget_destroy (dlg);
+    if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_YES)
+    {
+      gtk_widget_destroy (dlg);
+      upgrade_packages ();
+    }
+    else
+    {
+      gtk_widget_destroy (dlg);
+    }
   }
   
   g_list_free (list);




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

Reply via email to