Tidied up a bit more. Eliminated some warnings
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 27 Jan 2013 09:03:35 +0000 (10:03 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 16 Feb 2013 14:03:48 +0000 (15:03 +0100)
src/data/gnumeric-reader.c
src/ui/gui/psppire-spreadsheet-model.c

index c083721f39ebc498ac909f8556489f58eb814236..89b7271a6791ffe895db56267f090af87ec10fda 100644 (file)
@@ -86,6 +86,12 @@ enum reader_state
     STATE_CELL             /* Found a cell */
   };
 
+struct sheet_detail
+{
+  xmlChar *name;
+  char *range;
+};
+
 
 struct gnumeric_reader
 {
@@ -101,7 +107,7 @@ struct gnumeric_reader
   int node_type;
   int sheet_index;
   
-  xmlChar **sheet_names;
+  struct sheet_detail *sheets;
 
   const xmlChar *target_sheet;
   int target_sheet_index;
@@ -124,7 +130,7 @@ gnumeric_get_sheet_name (struct spreadsheet *s, int n)
   struct gnumeric_reader *gr = (struct gnumeric_reader *) s;
   assert (n < s->sheets);
 
-  return gr->sheet_names[n];
+  return gr->sheets[n].name;
 }
 
 const char *
@@ -158,10 +164,10 @@ gnm_file_casereader_destroy (struct casereader *reader UNUSED, void *r_)
 
   for (i = 0; i < r->spreadsheet.sheets; ++i)
     {
-      xmlFree (r->sheet_names[i]);
+      xmlFree (r->sheets[i].name);
     }
     
-  free (r->sheet_names);
+  free (r->sheets);
 
   free (r);
 }
@@ -192,7 +198,7 @@ process_node (struct gnumeric_reader *r)
          XML_READER_TYPE_ELEMENT  == r->node_type)
        {
          r->spreadsheet.sheets++;
-         r->sheet_names = xrealloc (r->sheet_names, r->spreadsheet.sheets * sizeof *r->sheet_names);
+         r->sheets = xrealloc (r->sheets, r->spreadsheet.sheets * sizeof *r->sheets);
        }
       else if (0 == xmlStrcasecmp (name, _xml("gnm:SheetNameIndex")) &&
          XML_READER_TYPE_END_ELEMENT  == r->node_type)
@@ -201,7 +207,7 @@ process_node (struct gnumeric_reader *r)
        }
       else if (XML_READER_TYPE_TEXT == r->node_type)
        {
-         r->sheet_names [r->spreadsheet.sheets - 1] = xmlTextReaderValue (r->xtr);
+         r->sheets [r->spreadsheet.sheets - 1].name = xmlTextReaderValue (r->xtr);
        }
       break;
 
@@ -340,8 +346,8 @@ struct var_spec
 void 
 gnumeric_destroy (struct spreadsheet *s)
 {
-    struct gnumeric_reader *r = s;
-    gnm_file_casereader_destroy (NULL, s);
+  struct gnumeric_reader *r = (struct gnumeric *) s;
+  gnm_file_casereader_destroy (NULL, s);
 }
 
 struct spreadsheet *
index 4742cee9c08cc81d1f728c9861836bb1bb5cf5b7..9bdb030b233187a5edc3945c17171d20b0f1cb55 100644 (file)
@@ -89,7 +89,7 @@ psppire_spreadsheet_model_set_property (GObject * object,
                                         const GValue * value,
                                         GParamSpec * pspec)
 {
-  PsppireSpreadsheetModel *spreadsheetModel =
+  PsppireSpreadsheetModel *spreadsheetModel = 
     PSPPIRE_SPREADSHEET_MODEL (object);
 
   switch (prop_id)
@@ -216,7 +216,7 @@ tree_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter,
 }
 
 static gboolean
-tree_model_iter_next (GtkTreeModel * model, GtkTreeIter * iter)
+tree_model_iter_next (GtkTreeModel *model, GtkTreeIter *iter)
 {
   PsppireSpreadsheetModel *spreadsheetModel =
     PSPPIRE_SPREADSHEET_MODEL (model);
@@ -305,7 +305,7 @@ tree_model_n_children (GtkTreeModel * model, GtkTreeIter * iter)
 }
 
 static gboolean
-tree_model_iter_has_child (GtkTreeModel * tree_model, GtkTreeIter * iter)
+tree_model_iter_has_child (GtkTreeModel *tree_model, GtkTreeIter *iter)
 {
   return FALSE;
 }
@@ -328,6 +328,21 @@ tree_model_get_path (GtkTreeModel * model, GtkTreeIter * iter)
 }
 
 
+static gboolean
+tree_model_children (GtkTreeModel *model, GtkTreeIter *iter, GtkTreeIter *parent)
+{
+  PsppireSpreadsheetModel *spreadsheetModel = PSPPIRE_SPREADSHEET_MODEL (model);
+
+  if (parent != NULL)
+    return FALSE;
+
+  iter->stamp = spreadsheetModel->stamp;
+  iter->user_data = 0;
+    
+  return TRUE;
+}
+
+
 
 static void
 spreadsheet_tree_model_init (GtkTreeModelIface * iface)
@@ -339,7 +354,7 @@ spreadsheet_tree_model_init (GtkTreeModelIface * iface)
   iface->iter_next = tree_model_iter_next;
   iface->get_value = tree_model_get_value;
 
-  iface->iter_children = NULL;
+  iface->iter_children = tree_model_children;
   iface->iter_parent = NULL;
 
   iface->get_path = tree_model_get_path;