static void gs_cmd_show_results_categories (GPtrArray *list) { GPtrArray *subcats; GsCategory *cat; GsCategory *parent; guint i; for (i = 0; i < list->len; i++) { g_autofree gchar *tmp = NULL; cat = GS_CATEGORY (g_ptr_array_index (list, i)); parent = gs_category_get_parent (cat); if (parent != NULL){ g_autofree gchar *id = NULL; id = g_strdup_printf ("%s/%s [%u]", gs_category_get_id (parent), gs_category_get_id (cat), gs_category_get_size (cat)); tmp = gs_cmd_pad_spaces (id, 32); g_print ("%s : %s\n", tmp, gs_category_get_name (cat)); } else { tmp = gs_cmd_pad_spaces (gs_category_get_id (cat), 32); g_print ("%s : %s\n", tmp, gs_category_get_name (cat)); subcats = gs_category_get_children (cat); gs_cmd_show_results_categories (subcats); } } }
/** * gs_cmd_show_results_categories: **/ static void gs_cmd_show_results_categories (GList *list) { GList *l; GList *subcats; GsCategory *cat; GsCategory *parent; for (l = list; l != NULL; l = l->next) { _cleanup_free_ gchar *tmp = NULL; cat = GS_CATEGORY (l->data); parent = gs_category_get_parent (cat); if (parent != NULL){ _cleanup_free_ gchar *id = NULL; id = g_strdup_printf ("%s/%s", gs_category_get_id (parent), gs_category_get_id (cat)); tmp = gs_cmd_pad_spaces (id, 32); g_print ("%s : %s\n", tmp, gs_category_get_name (cat)); } else { tmp = gs_cmd_pad_spaces (gs_category_get_id (cat), 32); g_print ("%s : %s\n", tmp, gs_category_get_name (cat)); subcats = gs_category_get_subcategories (cat); gs_cmd_show_results_categories (subcats); } } }
static void gs_shell_category_create_filter_list (GsShellCategory *shell, GsCategory *category, GsCategory *subcategory) { GsShellCategoryPrivate *priv = shell->priv; GtkWidget *row; GList *l; GsCategory *s; _cleanup_list_free_ GList *list = NULL; gs_container_remove_all (GTK_CONTAINER (priv->category_detail_grid)); list = gs_category_get_subcategories (category); if (!list) return; gtk_grid_attach (GTK_GRID (priv->category_detail_grid), priv->col0_placeholder, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID (priv->category_detail_grid), priv->col1_placeholder, 1, 0, 1, 1); gs_container_remove_all (GTK_CONTAINER (priv->listbox_filter)); for (l = list; l; l = l->next) { s = l->data; if (gs_category_get_size (s) < 1) continue; row = gtk_label_new (gs_category_get_name (s)); g_object_set_data_full (G_OBJECT (row), "category", g_object_ref (s), g_object_unref); g_object_set (row, "xalign", 0.0, "margin", 10, NULL); gtk_widget_show (row); gtk_list_box_insert (GTK_LIST_BOX (priv->listbox_filter), row, -1); if (subcategory == s) gtk_list_box_select_row (GTK_LIST_BOX (priv->listbox_filter), GTK_LIST_BOX_ROW (gtk_widget_get_parent (row))); } }
void gs_shell_category_switch_to (GsShellCategory *shell) { GsShellCategoryPrivate *priv = shell->priv; GtkWidget *widget; widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "application_details_header")); gtk_widget_show (widget); gtk_label_set_label (GTK_LABEL (widget), gs_category_get_name (priv->category)); }
void gs_category_tile_set_category (GsCategoryTile *tile, GsCategory *cat) { g_return_if_fail (GS_IS_CATEGORY_TILE (tile)); g_return_if_fail (GS_IS_CATEGORY (cat)); g_clear_object (&tile->cat); tile->cat = g_object_ref (cat); gtk_label_set_label (GTK_LABEL (tile->label), gs_category_get_name (cat)); }
void gs_category_tile_set_category (GsCategoryTile *tile, GsCategory *cat) { GsCategoryTilePrivate *priv; g_return_if_fail (GS_IS_CATEGORY_TILE (tile)); g_return_if_fail (GS_IS_CATEGORY (cat)); priv = gs_category_tile_get_instance_private (tile); g_clear_object (&priv->cat); priv->cat = g_object_ref (cat); gtk_label_set_label (GTK_LABEL (priv->label), gs_category_get_name (cat)); }