Changeset 332


Ignore:
Timestamp:
12/07/06 10:37:28 (6 years ago)
Author:
caowai_song
Message:

Connect the package list with the filter menu

Location:
trunk/src/target/OM-2007/applications/openmoko-appmanager/src
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007/applications/openmoko-appmanager/src/Makefile.am

    r307 r332  
    1212                              appmanager-data.c\ 
    1313                              package-list.c\ 
    14                               pixbuf-list.c 
     14                              pixbuf-list.c\ 
     15                              select-menu.c 
    1516 
    1617openmoko_appmanager_LDADD = @OPENMOKO_LIBS@ 
  • trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h

    r316 r332  
    3939#define MOKO_IS_APPLICATION_MANAGER_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ 
    4040                                                       MOKO_TYPE_APPLICATION_MANAGER_DATA)) 
    41 #define MOKO_APPLICATION_MANAGER_DATA_GET_TYPE(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ 
    42                                                      MOKO_TYPE_APPLICATION_MANAGER_DATA, \ 
    43                                                      ApplicationManagerDataClass)) 
     41#define MOKO_APPLICATION_MANAGER_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ 
     42                                                      MOKO_TYPE_APPLICATION_MANAGER_DATA, \ 
     43                                                      ApplicationManagerDataClass)) 
    4444 
    4545 
  • trunk/src/target/OM-2007/applications/openmoko-appmanager/src/filter-menu.c

    r316 r332  
    1818 *  @author Chaowei Song (songcw@fic-sh.com.cn) 
    1919 */ 
     20#include <string.h> 
    2021 
    2122#include "filter-menu.h" 
    2223#include "appmanager-window.h" 
     24#include "navigation-area.h" 
     25#include "package-list.h" 
    2326 
    2427/** 
     
    3740on_installed_activate (GtkMenuItem *menuitem, gpointer userdata) 
    3841{ 
     42  gpointer     pkglist; 
     43 
     44  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata)); 
    3945  g_debug ("Clicked the installed menuitem"); 
     46 
     47  pkglist = application_manager_data_get_installedlist ( 
     48                      MOKO_APPLICATION_MANAGER_DATA (userdata)); 
     49 
     50  navigation_area_refresh_with_package_list (MOKO_APPLICATION_MANAGER_DATA (userdata), 
     51                                             pkglist); 
    4052} 
    4153 
     
    4658on_upgradeable_activate (GtkMenuItem *menuitem, gpointer userdata) 
    4759{ 
     60  gpointer     pkglist; 
     61 
     62  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata)); 
    4863  g_debug ("Clicked the upgradeable menuitem"); 
     64 
     65  pkglist = application_manager_data_get_upgradelist ( 
     66                      MOKO_APPLICATION_MANAGER_DATA (userdata)); 
     67 
     68  navigation_area_refresh_with_package_list (MOKO_APPLICATION_MANAGER_DATA (userdata), 
     69                                             pkglist); 
    4970} 
    5071 
     
    5576on_selected_activate (GtkMenuItem *menuitem, gpointer userdata) 
    5677{ 
     78  gpointer     pkglist; 
     79 
     80  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata)); 
    5781  g_debug ("Click the selected menuitem"); 
     82 
     83  pkglist = application_manager_data_get_selectedlist ( 
     84                      MOKO_APPLICATION_MANAGER_DATA (userdata)); 
     85 
     86  navigation_area_refresh_with_package_list (MOKO_APPLICATION_MANAGER_DATA (userdata), 
     87                                             pkglist); 
    5888} 
    5989 
     
    6494on_dynamic_menu_item_activate (GtkMenuItem *menuitem, gpointer userdata) 
    6595{ 
     96  const gchar  *secname; 
     97  GtkWidget    *label; 
     98  gint         ret; 
     99  gpointer     pkglist; 
     100 
    66101  g_debug ("Click the dynamic menuitem"); 
     102  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata)); 
     103  label = gtk_bin_get_child (GTK_BIN (menuitem)); 
     104  g_return_if_fail (GTK_IS_LABEL (label)); 
     105 
     106  secname = gtk_label_get_text (GTK_LABEL (label)); 
     107  g_debug ("Chose the menuitem:%s", secname); 
     108  ret = strcmp (secname, PACKAGE_LIST_NO_SECTION_STRING); 
     109  if (ret == 0) 
     110    { 
     111      pkglist = application_manager_data_get_nosecpkglist ( 
     112                      MOKO_APPLICATION_MANAGER_DATA (userdata)); 
     113      navigation_area_refresh_with_package_list ( 
     114                      MOKO_APPLICATION_MANAGER_DATA (userdata),  
     115                      pkglist); 
     116      return; 
     117    } 
     118 
     119  pkglist = package_list_get_with_name (MOKO_APPLICATION_MANAGER_DATA (userdata), 
     120                                        secname); 
     121  if (pkglist == NULL) 
     122    { 
     123      g_debug ("Can not find the section that named:%s", secname); 
     124      return; 
     125    } 
     126  navigation_area_refresh_with_package_list (MOKO_APPLICATION_MANAGER_DATA (userdata), 
     127                                             pkglist); 
    67128} 
    68129 
     
    138199 
    139200} 
     201 
  • trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c

    r276 r332  
    2424#include "errorcode.h" 
    2525#include "detail-area.h" 
     26#include "package-list.h" 
    2627 
    2728/** 
     
    242243  return NULL; 
    243244} 
     245 
     246/** 
     247 * @brief Refresh the navigation area with the package list 
     248 */ 
     249void  
     250navigation_area_refresh_with_package_list (ApplicationManagerData *appdata,  
     251                                           gpointer pkglist) 
     252{ 
     253  GtkWidget     *treeview; 
     254  GtkTreeModel  *model; 
     255  GtkListStore  *store; 
     256 
     257  treeview = application_manager_get_tvpkglist (appdata); 
     258  g_return_if_fail (GTK_IS_TREE_VIEW (treeview)); 
     259 
     260  model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)); 
     261  g_return_if_fail (GTK_IS_TREE_MODEL (model)); 
     262  store = GTK_LIST_STORE (model); 
     263 
     264  g_object_ref (model); 
     265  gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), NULL); 
     266  gtk_list_store_clear (store); 
     267 
     268  translate_package_list_to_store (appdata, store, pkglist); 
     269 
     270  gtk_tree_view_set_model (GTK_TREE_VIEW(treeview), model); 
     271  g_object_unref (model); 
     272} 
  • trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.h

    r276 r332  
    3939gchar *treeview_get_selected_name (GtkWidget *treeview); 
    4040 
     41void navigation_area_refresh_with_package_list (ApplicationManagerData *appdata,  
     42                                                gpointer pkglist); 
     43 
    4144#endif 
  • trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c

    r316 r332  
    2424#include "filter-menu.h" 
    2525#include "errorcode.h" 
     26#include "navigation-area.h" 
    2627 
    2728/** 
     
    761762  if (tmppkg->next != tmppkg) 
    762763    { 
    763       filter_menu_add_item (filtermenu, "no section", appdata); 
    764     } 
    765 } 
     764      filter_menu_add_item (filtermenu, PACKAGE_LIST_NO_SECTION_STRING, appdata); 
     765    } 
     766} 
     767 
     768/** 
     769 * @brief Insert node to store 
     770 */ 
     771static void  
     772insert_node_to_store (ApplicationManagerData *appdata,  
     773                      GtkListStore *store,  
     774                      IPK_PACKAGE *pkg) 
     775{ 
     776  GtkTreeIter   iter; 
     777  GdkPixbuf    *pix = NULL; 
     778 
     779  pix = application_manager_data_get_status_pixbuf (appdata, pkg->mark); 
     780 
     781  gtk_list_store_append (store, &iter); 
     782 
     783  gtk_list_store_set (store, &iter, 
     784                      COL_STATUS, pix, 
     785                      COL_NAME, pkg->name, 
     786                      COL_SIZE, pkg->size, 
     787                      COL_POINTER, pkg, 
     788                      -1); 
     789 
     790} 
     791 
     792/** 
     793 * @brief Put the nodes in the package list to the GtkListStore 
     794 * 
     795 * @param appdata The application manager data 
     796 * @param store The list store 
     797 * @param pkglist The package list 
     798 */ 
     799void  
     800translate_package_list_to_store (ApplicationManagerData *appdata,  
     801                                 GtkListStore *store,  
     802                                 gpointer pkglist) 
     803{ 
     804  PackageList *pkglisthead = (PackageList *)pkglist; 
     805  PackageList *tmplist; 
     806 
     807  tmplist = pkglisthead->next; 
     808  while (tmplist != pkglisthead) 
     809    { 
     810      insert_node_to_store (appdata, store, tmplist->pkg); 
     811      tmplist = tmplist->next; 
     812    } 
     813} 
     814 
     815/** 
     816 * @brief Get the package list which section name equals the "name" 
     817 * from the dynamic section list 
     818 * @param appdata The application manager data 
     819 * @param name The section name 
     820 */ 
     821gpointer  
     822package_list_get_with_name (ApplicationManagerData *appdata, 
     823                            const gchar *name) 
     824{ 
     825  SectionList  *seclist; 
     826 
     827  g_return_val_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata), NULL); 
     828 
     829  seclist = application_manager_data_get_sectionlist (appdata); 
     830  if (seclist == NULL) 
     831    { 
     832      g_debug ("Section list is NULL"); 
     833      return NULL; 
     834    } 
     835 
     836  seclist = seclist->next; 
     837  while (seclist != NULL) 
     838    { 
     839      if ( 0 == strcmp (name, seclist->name)) 
     840        { 
     841          return &(seclist->head); 
     842        } 
     843      seclist = seclist->next; 
     844    } 
     845 
     846  return NULL; 
     847} 
  • trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.h

    r316 r332  
    2323#include <gtk/gtk.h> 
    2424 
     25#define PACKAGE_LIST_NO_SECTION_STRING "no section" 
     26 
    2527gint init_package_list (ApplicationManagerData *appdata); 
    2628 
     
    2931void package_list_add_section_to_filter_menu (ApplicationManagerData *appdata); 
    3032 
     33void translate_package_list_to_store (ApplicationManagerData *appdata,  
     34                                      GtkListStore *store,  
     35                                      gpointer pkglist); 
     36 
     37gpointer package_list_get_with_name (ApplicationManagerData *appdata, 
     38                                     const gchar *name); 
     39 
    3140#endif 
Note: See TracChangeset for help on using the changeset viewer.