[Gnucash-changes] r13150 - gnucash/trunk/src/gnome-utils - Convert GncTreeModel from a GtkObject to a GObject.

Chris Shoemaker chris at cvs.gnucash.org
Wed Feb 8 00:55:05 EST 2006


Author: chris
Date: 2006-02-08 00:55:04 -0500 (Wed, 08 Feb 2006)
New Revision: 13150
Trac: http://svn.gnucash.org/trac/changeset/13150

Modified:
   gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model.h
   gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
   gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c
   gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c
   gnucash/trunk/src/gnome-utils/gnc-tree-view.c
Log:
   Convert GncTreeModel from a GtkObject to a GObject.
   Replace gtk_object_sink calls on the models with g_object_unref calls.
   Correctly increase the refcount of "remembered" models when we return them.


Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -284,6 +284,7 @@
 		model = (GncTreeModelAccount *)item->data;
 		priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 		if (priv->root == group) {
+			g_object_ref(G_OBJECT(model));
 			LEAVE("returning existing model %p", model);
 			return GTK_TREE_MODEL(model);
 		}

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -212,6 +212,7 @@
 		model = (GncTreeModelCommodity *)item->data;
 		priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 		if (priv->commodity_table == ct) {
+			g_object_ref(G_OBJECT(model));
 			LEAVE("returning existing model %p", model);
 			return GTK_TREE_MODEL(model);
 		}

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -238,6 +238,7 @@
 		model = (GncTreeModelPrice *)item->data;
 		priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 		if (priv->price_db == price_db) {
+			g_object_ref(G_OBJECT(model));
 			LEAVE("returning existing model %p", model);
 			return GTK_TREE_MODEL(model);
 		}

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -39,7 +39,6 @@
 static void gnc_tree_model_class_init (GncTreeModelClass *klass);
 static void gnc_tree_model_init (GncTreeModel *model, GncTreeModelClass *klass);
 static void gnc_tree_model_finalize (GObject *object);
-static void gnc_tree_model_destroy (GtkObject *object);
 
 /** The instance private data for a generic tree model. */
 typedef struct GncTreeModelPrivate
@@ -56,7 +55,7 @@
 /************************************************************/
 
 /** A pointer to the parent class of a generic tree model. */
-static GtkObjectClass *parent_class = NULL;
+static GObjectClass *parent_class = NULL;
 
 GType
 gnc_tree_model_get_type (void)
@@ -82,9 +81,7 @@
     //  NULL
     //};
 
-    /* CAS: I think this should subclass GObject, not GtkObject. */
-
-    gnc_tree_model_type = g_type_register_static (GTK_TYPE_OBJECT,
+    gnc_tree_model_type = g_type_register_static (G_TYPE_OBJECT,
 						  GNC_TREE_MODEL_NAME,
 						  &our_info, 0);
 
@@ -100,19 +97,14 @@
 gnc_tree_model_class_init (GncTreeModelClass *klass)
 {
   GObjectClass *o_class;
-  GtkObjectClass *object_class;
 
   parent_class = g_type_class_peek_parent (klass);
 
   o_class = G_OBJECT_CLASS (klass);
-  object_class = GTK_OBJECT_CLASS (klass);
 
   /* GObject signals */
   o_class->finalize = gnc_tree_model_finalize;
 
-  /* GtkObject signals */
-  object_class->destroy = gnc_tree_model_destroy;
-
   g_type_class_add_private(klass, sizeof(GncTreeModelPrivate));
 }
 
@@ -141,22 +133,6 @@
   gnc_gobject_tracking_forget(object);
 
   if (G_OBJECT_CLASS (parent_class)->finalize)
-    (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+      G_OBJECT_CLASS (parent_class)->finalize (object);
   LEAVE(" ");
 }
-
-static void
-gnc_tree_model_destroy (GtkObject *object)
-{
-  GncTreeModel *model;
-
-  ENTER("model %p", object);
-  g_return_if_fail (object != NULL);
-  g_return_if_fail (GNC_IS_TREE_MODEL (object));
-
-  model = GNC_TREE_MODEL (object);
-
-  if (GTK_OBJECT_CLASS (parent_class)->destroy)
-    (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-  LEAVE(" ");
-}

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model.h	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model.h	2006-02-08 05:55:04 UTC (rev 13150)
@@ -54,13 +54,13 @@
 
 /** The instance data structure for a generic tree model. */
 typedef struct {
-	GtkObject gtk_object;		/**< The parent object data. */
+	GObject g_object;		/**< The parent object data. */
 } GncTreeModel;
 
 
 /** The class data structure for a generic tree model. */
 typedef struct {
-	GtkObjectClass gtk_object;	/**< The parent object data. */
+	GObjectClass g_object;	/**< The parent object data. */
 } GncTreeModelClass;
 
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -372,10 +372,8 @@
     virtual_root_path = gtk_tree_path_new_first ();
   f_model = gtk_tree_model_filter_new (model, virtual_root_path);
   /* A GncTreeModelAccount is based on a GncTreeModel, which is a
-   * GtkObject that provides a GtkTreeModel interface.  This
-   * underlying model should probably be converted to a GObject at
-   * some point, eliminating the need for the call to sink().*/
-  gtk_object_sink(GTK_OBJECT(model));
+   * GObject that provides a GtkTreeModel interface. */
+  g_object_unref(G_OBJECT(model));
   if (virtual_root_path)
     gtk_tree_path_free(virtual_root_path);
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -464,7 +464,7 @@
 
   /* Set up the view private filter on the common model. */
   f_model = gtk_tree_model_filter_new (model, NULL);
-  gtk_object_sink(GTK_OBJECT(model));
+  g_object_unref(G_OBJECT(model));
   s_model = gtk_tree_model_sort_new_with_model (f_model);
   g_object_unref(G_OBJECT(f_model));
   gnc_tree_view_set_model (view, s_model);

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -405,7 +405,7 @@
 
   /* Set up the view private filter on the common model. */
   f_model = gtk_tree_model_filter_new (model, NULL);
-  gtk_object_sink(GTK_OBJECT(model));
+  g_object_unref(G_OBJECT(model));
   s_model = gtk_tree_model_sort_new_with_model (f_model);
   g_object_unref(G_OBJECT(f_model));
   gnc_tree_view_set_model (view, s_model);

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view.c	2006-02-08 02:23:59 UTC (rev 13149)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view.c	2006-02-08 05:55:04 UTC (rev 13150)
@@ -321,10 +321,10 @@
   gnc_gobject_tracking_forget(object);
 
   view = GNC_TREE_VIEW (object);
-  priv= GNC_TREE_VIEW_GET_PRIVATE (view);
+  priv = GNC_TREE_VIEW_GET_PRIVATE (view);
 
   if (G_OBJECT_CLASS (parent_class)->finalize)
-    (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+      G_OBJECT_CLASS (parent_class)->finalize (object);
   LEAVE(" ");
 }
 
@@ -369,7 +369,7 @@
   }
 
   if (GTK_OBJECT_CLASS (parent_class)->destroy)
-    (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+      GTK_OBJECT_CLASS (parent_class)->destroy (object);
   LEAVE(" ");
 }
 



More information about the gnucash-changes mailing list