]> git.street.me.uk Git - andy/viking.git/blobdiff - src/viktreeview.c
[QA] Better use of VikLayerTypeEnum rather than gints
[andy/viking.git] / src / viktreeview.c
index c12826ca34dbcf84f42803e5ba72d60911da4c10..c485562d5dc2823105a802eeee7f2ad3a5e4e97d 100644 (file)
@@ -508,7 +508,7 @@ void vik_treeview_item_delete ( VikTreeview *vt, GtkTreeIter *iter )
 
 void vik_treeview_item_set_icon ( VikTreeview *vt, GtkTreeIter *iter, const GdkPixbuf *icon )
 {
-  g_return_if_fail ( iter != NULL && icon != NULL );
+  g_return_if_fail ( iter != NULL );
   gtk_tree_store_set ( GTK_TREE_STORE(vt->model), iter, ICON_COLUMN, icon, -1);
 }
 
@@ -542,33 +542,40 @@ void vik_treeview_item_unselect ( VikTreeview *vt, GtkTreeIter *iter )
   gtk_tree_selection_unselect_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( vt ) ), iter );
 }
 
-void vik_treeview_add_layer ( VikTreeview *vt, GtkTreeIter *parent_iter, GtkTreeIter *iter, const gchar *name, gpointer parent,
-                              gpointer item, gint data, gint icon_type )
+void vik_treeview_add_layer ( VikTreeview *vt, GtkTreeIter *parent_iter, GtkTreeIter *iter, const gchar *name, gpointer parent, gboolean above,
+                              gpointer item, gint data, VikLayerTypeEnum layer_type )
 {
   g_assert ( iter != NULL );
-  g_assert ( icon_type < VIK_LAYER_NUM_TYPES );
-  gtk_tree_store_prepend ( GTK_TREE_STORE(vt->model), iter, parent_iter );
+  if ( above )
+    gtk_tree_store_prepend ( GTK_TREE_STORE(vt->model), iter, parent_iter );
+  else
+    gtk_tree_store_append ( GTK_TREE_STORE(vt->model), iter, parent_iter );
   gtk_tree_store_set ( GTK_TREE_STORE(vt->model), iter, NAME_COLUMN, name, VISIBLE_COLUMN, TRUE, 
     TYPE_COLUMN, VIK_TREEVIEW_TYPE_LAYER, ITEM_PARENT_COLUMN, parent, ITEM_POINTER_COLUMN, item, 
     ITEM_DATA_COLUMN, data, HAS_VISIBLE_COLUMN, TRUE, EDITABLE_COLUMN, parent == NULL ? FALSE : TRUE,
-    ICON_COLUMN, icon_type >= 0 ? vt->layer_type_icons[icon_type] : NULL, -1 );
+    ICON_COLUMN, layer_type >= 0 ? vt->layer_type_icons[layer_type] : NULL, -1 );
 }
 
-void vik_treeview_insert_layer ( VikTreeview *vt, GtkTreeIter *parent_iter, GtkTreeIter *iter, const gchar *name, gpointer parent,
-                              gpointer item, gint data, gint icon_type, GtkTreeIter *sibling )
+void vik_treeview_insert_layer ( VikTreeview *vt, GtkTreeIter *parent_iter, GtkTreeIter *iter, const gchar *name, gpointer parent, gboolean above,
+                              gpointer item, gint data, VikLayerTypeEnum layer_type, GtkTreeIter *sibling )
 {
   g_assert ( iter != NULL );
-  g_assert ( icon_type < VIK_LAYER_NUM_TYPES );
   if (sibling) {
-    gtk_tree_store_insert_before ( GTK_TREE_STORE(vt->model), iter, parent_iter, sibling );
+    if (above)
+      gtk_tree_store_insert_before ( GTK_TREE_STORE(vt->model), iter, parent_iter, sibling );
+    else
+      gtk_tree_store_insert_after ( GTK_TREE_STORE(vt->model), iter, parent_iter, sibling );
   } else {
-    gtk_tree_store_append ( GTK_TREE_STORE(vt->model), iter, parent_iter );
+    if (above)
+      gtk_tree_store_append ( GTK_TREE_STORE(vt->model), iter, parent_iter );
+    else
+      gtk_tree_store_prepend ( GTK_TREE_STORE(vt->model), iter, parent_iter );
   }
-    
+
   gtk_tree_store_set ( GTK_TREE_STORE(vt->model), iter, NAME_COLUMN, name, VISIBLE_COLUMN, TRUE, 
     TYPE_COLUMN, VIK_TREEVIEW_TYPE_LAYER, ITEM_PARENT_COLUMN, parent, ITEM_POINTER_COLUMN, item, 
     ITEM_DATA_COLUMN, data, HAS_VISIBLE_COLUMN, TRUE, EDITABLE_COLUMN, TRUE,
-    ICON_COLUMN, icon_type >= 0 ? vt->layer_type_icons[icon_type] : NULL, -1 );
+    ICON_COLUMN, layer_type >= 0 ? vt->layer_type_icons[layer_type] : NULL, -1 );
 }
 
 void vik_treeview_add_sublayer ( VikTreeview *vt, GtkTreeIter *parent_iter, GtkTreeIter *iter, const gchar *name, gpointer parent, gpointer item,
@@ -648,8 +655,7 @@ void vik_treeview_add_sublayer_alphabetized
 static void vik_treeview_finalize ( GObject *gob )
 {
   VikTreeview *vt = VIK_TREEVIEW ( gob );
-  guint16 i;
-
+  VikLayerTypeEnum i;
   for ( i = 0; i < VIK_LAYER_NUM_TYPES; i++ )
     if ( vt->layer_type_icons[i] != NULL )
       g_object_unref ( G_OBJECT(vt->layer_type_icons[i]) );