r3442 - in trunk/src/target/OM-2007.2/applications/openmoko-appmanager2: . src

thomas at sita.openmoko.org thomas at sita.openmoko.org
Mon Nov 19 18:26:25 CET 2007


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  <thomas at openedhand.com>
 
+	* 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  <thomas at openedhand.com>
+
 	* src/search-bar.c: (text_changed_cb): Don't leak the search string
 
 2007-11-19  Thomas Wood <thomas at openedhand.com>

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);





More information about the commitlog mailing list