dsreyes1014

GtkTreeViewColumn segfault

May 9th, 2015
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.72 KB | None | 0 0
  1. static gint
  2. create_audio_jack_ports_view (GtkListStore  *list_store,
  3.                               GtkWidget     *view,
  4.                               const gchar   *port_clicked,
  5.                               jack_client_t *client)
  6. {
  7.     GtkCellRenderer *renderer;
  8.     GtkTreeViewColumn *column;
  9.     GtkCellRenderer *toggle;
  10.     GtkTreeViewColumn *toggle_column;
  11.     jack_port_t *jack_port;
  12.     gint i;
  13.     gint j;
  14.     const gchar **from_ports_array;
  15.     const gchar **to_ports_array;
  16.     GtkTreeIter iter;
  17.  
  18.     i = 0;
  19.     renderer = gtk_cell_renderer_text_new ();
  20.     column = gtk_tree_view_column_new_with_attributes (NULL,
  21.                                                        renderer,
  22.                                                        "text",
  23.                                                        NULL);
  24.  
  25.     from_ports_array = jack_get_ports (client,
  26.                                        NULL,
  27.                                        JACK_DEFAULT_AUDIO_TYPE,
  28.                                        JackPortIsOutput);
  29.  
  30.     to_ports_array = jack_get_ports (client,
  31.                                      NULL,
  32.                                      JACK_DEFAULT_AUDIO_TYPE,
  33.                                      JackPortIsInput);
  34.  
  35.     while (to_ports_array[i])
  36.     {
  37.         i++;
  38.     }
  39.  
  40.     GType types[i];
  41.  
  42.     for (j = 0; j <= i; j++)
  43.     {
  44.         if (j == 0)
  45.         {
  46.            types[j] = G_TYPE_STRING;
  47.         }
  48.         else
  49.         {
  50.             types[j] = G_TYPE_BOOLEAN;
  51.         }
  52.     }
  53.  
  54.     list_store = gtk_list_store_newv (i, types);
  55.  
  56.     i = 0;
  57.     while (from_ports_array[i])
  58.     {
  59.         const gchar *jack_port_string;
  60.  
  61.         jack_port_string = get_matched_gtk_jack_port (from_ports_array[i],
  62.                                                       port_clicked,
  63.                                                       client);
  64.  
  65.         if (jack_port_string != NULL)
  66.         {
  67.             gtk_list_store_append (list_store, &iter);
  68.             gtk_list_store_set (list_store,
  69.                                 &iter,
  70.                                 0,
  71.                                 jack_port_string,
  72.                                 -1);
  73.         }
  74.  
  75.         i++;
  76.     }
  77.  
  78.     gtk_tree_view_append_column (GTK_TREE_VIEW (view), column);
  79.  
  80.     i = 0;
  81.     while (to_ports_array[i])
  82.     {
  83.         const gchar *jack_port_string;
  84.  
  85.         jack_port_string = get_matched_gtk_jack_port (to_ports_array[i],
  86.                                                       port_clicked,
  87.                                                       client);
  88.  
  89.         if (jack_port_string != NULL)
  90.         {
  91.             j = 1;
  92.  
  93.             /*gtk_list_store_set (list_store,
  94.                                 &iter,
  95.                                 j,
  96.                                 FALSE,
  97.                                 -1);*/
  98.  
  99.             toggle = gtk_cell_renderer_toggle_new ();
  100.  
  101.             gtk_cell_renderer_toggle_set_radio (GTK_CELL_RENDERER_TOGGLE (toggle),
  102.                                                 TRUE);
  103.         /*
  104.              * THIS WHERE MY PROBLEM SEEMS TO BE.
  105.              */
  106.       -----> toggle_column = gtk_tree_view_column_new_with_attributes (jack_port_string,
  107.                                                                       toggle,
  108.                                                                       NULL);
  109.  
  110.             gtk_tree_view_append_column (GTK_TREE_VIEW (view), toggle_column);
  111.         }
  112.  
  113.         i++;
  114.     }
  115.  
  116.     gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (list_store));
  117.  
  118.     g_object_unref (list_store);
  119.     jack_free (from_ports_array);
  120.     jack_free (to_ports_array);
  121.  
  122.     g_print ("From audio action success\n");
  123.  
  124.     return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment