r15809 - gnucash/branches/gobject-engine-dev-warlord - Convert GncBudget object to GObject initialization.

Derek Atkins warlord at cvs.gnucash.org
Wed Apr 4 20:24:10 EDT 2007


Author: warlord
Date: 2007-04-04 20:24:09 -0400 (Wed, 04 Apr 2007)
New Revision: 15809
Trac: http://svn.gnucash.org/trac/changeset/15809

Modified:
   gnucash/branches/gobject-engine-dev-warlord/
   gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.c
   gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.h
Log:
Convert GncBudget object to GObject initialization.



Property changes on: gnucash/branches/gobject-engine-dev-warlord
___________________________________________________________________
Name: svk:merge
   - 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/swig-redo:802
3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/trunk:1037
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord:14369
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord1:14389
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:14282
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk2:13366
   + 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/swig-redo:802
3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/trunk:1037
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord:14369
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord1:14390
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:14282
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk2:13366

Modified: gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.c
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.c	2007-04-05 00:23:58 UTC (rev 15808)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.c	2007-04-05 00:24:09 UTC (rev 15809)
@@ -48,6 +48,24 @@
     guint  num_periods;
 };
 
+struct _GncBudgetClass
+{
+  QofInstanceClass parent_class;
+};
+
+/* GObject Initialization */
+QOF_GOBJECT_IMPL(gnc_budget, GncBudget, QOF_TYPE_INSTANCE);
+
+static void
+gnc_budget_init(GncBudget* budget)
+{
+}
+
+static void
+gnc_budget_finalize_real(GObject* budgetp)
+{
+}
+
 static void commit_err (QofInstance *inst, QofBackendError errcode)
 {
   PERR ("Failed to commit: %d", errcode);
@@ -70,8 +88,8 @@
     CACHE_REMOVE(budget->name);
     CACHE_REMOVE(budget->description);
 
-    qof_instance_release (&budget->inst);
-    g_free(budget);
+    /* qof_instance_release (&budget->inst); */
+    g_object_unref(budget);
 }
 
 static void noop (QofInstance *inst) {}
@@ -98,8 +116,8 @@
     g_return_val_if_fail(book, NULL);
 
     ENTER(" ");
-    budget = g_new0(GncBudget, 1);
-    qof_instance_init (&budget->inst, GNC_ID_BUDGET, book);
+    budget = g_object_new(GNC_TYPE_BUDGET, NULL);
+    qof_instance_init_data (&budget->inst, GNC_ID_BUDGET, book);
 
     g_date_set_time_t(&date, time(NULL));
     g_date_subtract_days(&date, g_date_get_day(&date)-1);

Modified: gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.h
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.h	2007-04-05 00:23:58 UTC (rev 15808)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/gnc-budget.h	2007-04-05 00:24:09 UTC (rev 15809)
@@ -68,13 +68,25 @@
 
 /** The budget data.*/
 typedef struct gnc_budget_private GncBudget;
+typedef struct _GncBudgetClass GncBudgetClass;
 
 #include "qof.h"
 #include "Account.h"
 #include "Recurrence.h"
 
-#define GNC_IS_BUDGET(obj)  (QOF_CHECK_TYPE((obj), GNC_ID_BUDGET))
-#define GNC_BUDGET(obj)     (QOF_CHECK_CAST((obj), GNC_ID_BUDGET, GncBudget))
+/* --- type macros --- */
+#define GNC_TYPE_BUDGET            (gnc_budget_get_type ())
+#define GNC_BUDGET(o)              \
+     (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_BUDGET, GncBudget))
+#define GNC_BUDGET_CLASS(k)        \
+     (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_BUDGET, GncBudgetClass))
+#define GNC_IS_BUDGET(o)           \
+     (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_BUDGET))
+#define GNC_IS_BUDGET_CLASS(k)     \
+     (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_BUDGET))
+#define GNC_BUDGET_GET_CLASS(o)    \
+     (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_BUDGET, GncBudgetClass))
+GType gnc_budget_get_type(void);
 
 #define GNC_BUDGET_MAX_NUM_PERIODS_DIGITS 3 // max num periods == 999
 



More information about the gnucash-changes mailing list