r400 - trunk/src/target/OM-2007/applications/openmoko-appmanager/src

caowai_song at gta01.hmw-consulting.de caowai_song at gta01.hmw-consulting.de
Wed Dec 13 10:21:01 CET 2006


Author: caowai_song
Date: 2006-12-13 10:20:47 +0100 (Wed, 13 Dec 2006)
New Revision: 400

Modified:
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c
   trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h
Log:
Basic complete the detail info


Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c	2006-12-13 09:20:47 UTC (rev 400)
@@ -53,6 +53,7 @@
     {
       data->statuspix[i] = NULL;
     }
+  data->searchhistory = NULL;
 
 }
 
@@ -270,6 +271,20 @@
 }
 
 /**
+ * @brief Set the search history to the application manager data
+ * @param appdata The application manager data struct
+ * @param pixbuf A GdkPixbuf
+ */
+void 
+application_manager_data_set_search_history (ApplicationManagerData *appdata,
+                                             gchar *searchhistory)
+{
+  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata));
+
+  appdata->searchhistory = searchhistory;
+}
+
+/**
  * @brief Init the pixbuf list.
  *
  * Load all pixbuf from the appointed file, and set the pixbuf to the
@@ -519,3 +534,16 @@
 
   return appdata->statuspix[id];
 }
+
+/**
+ * @brief Get the search history from the application manager data
+ * @param appdata The application manager data
+ * @return The search history
+ */
+gchar *
+application_manager_data_get_search_history (ApplicationManagerData *appdata)
+{
+  g_return_val_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata), NULL);
+
+  return appdata->searchhistory;
+}

Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h	2006-12-13 09:20:47 UTC (rev 400)
@@ -68,6 +68,7 @@
   gpointer         nosecpkglist;       ///<! The list of packages whose section name is NULL
   gpointer         currentlist;        ///<! The current list that display on the navigation list
   GdkPixbuf        *statuspix[N_COUNT_PKG_STATUS];    ///<! The all pixbufs that need by the package list store
+  gchar            *searchhistory;     ///<! The search history
 } ApplicationManagerData;
 
 /**
@@ -123,6 +124,9 @@
 
 void init_pixbuf_list (ApplicationManagerData *appdata);
 
+void application_manager_data_set_search_history (ApplicationManagerData *appdata,
+                                                 gchar *searchhistory);
+
 MokoPanedWindow *
      application_manager_get_main_window (ApplicationManagerData *appdata);
 
@@ -166,6 +170,8 @@
      application_manager_data_get_status_pixbuf (ApplicationManagerData *appdata, 
                                                  guint id);
 
+gchar *
+     application_manager_data_get_search_history (ApplicationManagerData *appdata);
 
 G_END_DECLS
 

Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c	2006-12-13 09:20:47 UTC (rev 400)
@@ -42,7 +42,7 @@
 main (int argc, char* argv[])
 {
   ApplicationManagerData *appdata;
-  MokoApplication *app;
+  //MokoApplication *app;
   MokoPanedWindow *window;
   GtkMenu         *appmenu;
   GtkMenu         *filtermenu;
@@ -71,8 +71,8 @@
 
   init_pixbuf_list (appdata);
 
-  app = MOKO_APPLICATION (moko_application_get_instance ());
-  g_set_application_name (_("Application manager"));
+  //app = MOKO_APPLICATION (moko_application_get_instance ());
+  //g_set_application_name (_("Application manager"));
 
   window = MOKO_PANED_WINDOW (moko_paned_window_new ());
   g_signal_connect (G_OBJECT (window), "delete_event", 

Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c	2006-12-13 09:20:47 UTC (rev 400)
@@ -18,6 +18,7 @@
  *  @author Chaowei Song (songcw at fic-sh.com.cn)
  */
 #include <libmokoui/moko-details-window.h>
+#include <string.h>
 
 #include "detail-area.h"
 #include "navigation-area.h"
@@ -51,8 +52,38 @@
 }
 
 /**
+ * @brief Format the depends list of package.
+ * @param depends The depends list
+ * @param The dest string
+ */
+static void 
+format_depends_list (char *dest, char *depends, int size)
+{
+  int i = 0;
+  char *src;
+
+  src = depends;
+  dest[i++] = '\t';
+  dest[i++] = '*';
+  while (*src)
+    {
+      if (*src == ',')
+        {
+          dest[i++] = '\n';
+          dest[i++] = '\t';
+          dest[i++] = '*';
+          src++;
+        }
+      dest[i++] = *src;
+      src++;
+    }
+  dest[i] = 0;
+}
+
+/**
  * @brief Update the detail area infomation base on the package that selected
  * @param appdata The application manager data
+ * @param pkg The package infomation
  */
 void 
 detail_area_update_info (ApplicationManagerData *appdata, 
@@ -63,6 +94,8 @@
   GtkTextIter    start, end;
   GdkPixbuf      *pix;
   GtkTextTagTable   *tagtable;
+  gint           pstart, pend;
+  char           *depends;
 
   g_debug ("Update the info in the detail area");
 
@@ -73,6 +106,7 @@
 
   buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
   gtk_text_buffer_set_text (buffer, "", -1);
+  g_return_if_fail (pkg != NULL);
 
   // Init tag
   tagtable = gtk_text_buffer_get_tag_table (buffer);
@@ -93,6 +127,7 @@
 
   // Insert package name
   gtk_text_buffer_get_end_iter (buffer, &end);
+  pstart = gtk_text_iter_get_offset (&end);
   gtk_text_buffer_insert (buffer, &end, 
                           package_list_get_package_name (pkg),
                           -1);
@@ -103,26 +138,70 @@
 
   // Insert the maintainer
   gtk_text_buffer_get_end_iter (buffer, &end);
+  pend = gtk_text_iter_get_offset (&end);
   gtk_text_buffer_insert (buffer, &end, 
                           package_list_get_package_maintainer (pkg),
                           -1);
 
   // Set bold to the first line
-  gtk_text_buffer_get_start_iter (buffer, &start);
-  gtk_text_buffer_get_start_iter (buffer, &end);
-  gtk_text_iter_forward_line (&end);
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
   gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
 
-  // Insert the "\n"
+  // Set the Version
   gtk_text_buffer_get_end_iter (buffer, &end);
-  gtk_text_buffer_insert (buffer, &end, "\n", -1);
+  pstart = gtk_text_iter_get_offset (&end);
+  gtk_text_buffer_insert (buffer, &end, "\nVersion\n\t", -1);
 
+  gtk_text_buffer_get_end_iter (buffer, &end);
+  pend = gtk_text_iter_get_offset (&end);
+  gtk_text_buffer_insert (buffer, &end, 
+                          package_list_get_package_version (pkg),
+                          -1);
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
+  gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
+
   // Set the descript
   gtk_text_buffer_get_end_iter (buffer, &end);
+  pstart = gtk_text_iter_get_offset (&end);
+  gtk_text_buffer_insert (buffer, &end, "\nDescription\n\t", -1);
+
+  gtk_text_buffer_get_end_iter (buffer, &end);
+  pend = gtk_text_iter_get_offset (&end);
   gtk_text_buffer_insert (buffer, &end, 
                           package_list_get_package_description (pkg),
                           -1);
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
+  gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
 
+  // Set the depends
+  depends = package_list_get_package_depends (pkg);
+  if (depends != NULL)
+    {
+      char *dep;
+      int size = strlen (depends) *2 +8;
+      dep = g_malloc (size);
+      g_return_if_fail (dep != NULL);
 
+      format_depends_list (dep, depends, size);
+
+      gtk_text_buffer_get_end_iter (buffer, &end);
+      pstart = gtk_text_iter_get_offset (&end);
+      gtk_text_buffer_insert (buffer, &end, "\nDepends\n", -1);
+
+      gtk_text_buffer_get_end_iter (buffer, &end);
+      pend = gtk_text_iter_get_offset (&end);
+      gtk_text_buffer_insert (buffer, &end, 
+                              dep,
+                              -1);
+      gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+      gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
+      gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
+
+      g_free (dep);
+    }
+
   g_object_unref (pix);
 }

Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c	2006-12-13 09:20:47 UTC (rev 400)
@@ -169,6 +169,11 @@
 
   moko_tree_view_append_column (MOKO_TREE_VIEW (treeview), col);
 
+  ///<! For some reason, there must set the column length to fixed
+  gtk_tree_view_column_set_resizable (col, FALSE);
+  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
+  gtk_tree_view_column_set_fixed_width (col, 20);
+
   ///<! Add the name as the second column.
   col = gtk_tree_view_column_new ();
   gtk_tree_view_column_set_title (col, _("Name"));
@@ -182,6 +187,11 @@
 
   moko_tree_view_append_column (MOKO_TREE_VIEW (treeview), col);
 
+  ///<! For some reason, there must set the column length to fixed
+  gtk_tree_view_column_set_resizable (col, FALSE);
+  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
+  gtk_tree_view_column_set_fixed_width (col, 240);
+
   ///<! Add the size as the third column.
   col = gtk_tree_view_column_new ();
   gtk_tree_view_column_set_title (col, _("Size"));

Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c	2006-12-13 09:20:47 UTC (rev 400)
@@ -1019,3 +1019,4 @@
 
   return package->maintainer;
 }
+

Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c	2006-12-13 09:20:47 UTC (rev 400)
@@ -17,6 +17,7 @@
  *
  *  @author Chaowei Song (songcw at fic-sh.com.cn)
  */
+#include <string.h>
 
 #include "tool-box.h"
 
@@ -39,6 +40,58 @@
 }
 
 /**
+ * @brief The callback function of the search entry
+ */
+void 
+on_search_entry_changed (GtkEditable *entryedit, gpointer data)
+{
+  ApplicationManagerData *appdata;
+  GtkEntry               *entry;
+  const gchar            *searchstr;
+  gchar                  *searchhistory;
+
+  g_debug ("Change the contant of entry");
+  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (data));
+
+  appdata = data;
+  entry = application_manager_get_search_entry (appdata);
+  g_return_if_fail (GTK_IS_ENTRY (entry));
+  searchstr = gtk_entry_get_text (entry);
+
+  g_return_if_fail (searchstr != NULL);
+
+  if (searchstr[0] == '\0')
+    {
+      //FIXME Add code later
+      g_debug ("The length of search string is 0");
+      return;
+    }
+
+  searchhistory = application_manager_data_get_search_history (appdata);
+  if (searchhistory == NULL)
+    {
+      searchhistory = g_malloc (MAX_SEARCH_ENTRY_TEXT_LENGTH + 1);
+      g_return_if_fail (searchhistory != NULL);
+
+      searchhistory[0] = '\0';
+      application_manager_data_set_search_history (appdata, searchhistory);
+    }
+
+  if (strstr ((char *)searchstr, (char *)searchhistory) != NULL)
+    {
+      //FIXME Add code later
+      g_debug ("Increase search");
+    }
+  else 
+    {
+      //FIXME Add code later
+      g_debug ("Search from the beginning");
+    }
+
+  strncpy (searchhistory, searchstr, MAX_SEARCH_ENTRY_TEXT_LENGTH);
+}
+
+/**
  * @brief Create a new tool box for the application manager data
  * @param appdata The application manager data
  * @return The toplevel widget of the tool box
@@ -67,6 +120,10 @@
 
   searchentry = moko_tool_box_get_entry (toolbox);
   application_manager_data_set_search_entry (appdata, searchentry);
+  gtk_entry_set_max_length (searchentry, MAX_SEARCH_ENTRY_TEXT_LENGTH);
+  g_signal_connect ((gpointer) searchentry, "changed",
+                    G_CALLBACK (on_search_entry_changed),
+                    appdata);
 
   return toolbox;
 }

Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h	2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h	2006-12-13 09:20:47 UTC (rev 400)
@@ -26,6 +26,8 @@
 #include <libmokoui/moko-tool-box.h>
 #include "appmanager-data.h"
 
+#define MAX_SEARCH_ENTRY_TEXT_LENGTH   50
+
 MokoToolBox *tool_box_new (ApplicationManagerData *appdata);
 
 #endif





More information about the commitlog mailing list