[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