All pastes #765871 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-11-08 12:52 UTC
rendered paste body
/* Returns a list of localisedNode elements containing all the information stored in a localised treeview. */
GSList *
obtain_list_from_localised_treemodel (GtkTreeModel *model)
{
  GtkTreeIter iter;
  gboolean valid;
  localisedNode *localisedRow;
  GSList *list = NULL;

  /* Obtain the first row iter to scan the treemodel and extract the information row by row. */
  valid = gtk_tree_model_get_iter_first (model, &iter);

  while (valid)
  {
    /* Allocate node memory */
    localisedRow = g_new (localisedNode, 1);

    /* Extract the information of the current row */
    gtk_tree_model_get (model, &iter,
                        COL_LANG, &(localisedRow->language),
                        COL_TEXT, &(localisedRow->text),
                        -1);

    /* Insert the node */
    list = g_slist_append (list, localisedRow);

    /* Obtain the next row iter (if it exists) */
    valid = gtk_tree_model_iter_next (model, &iter);
  }

  return list;
}