r15808 - gnucash/branches/gobject-engine-dev-warlord - Convert the Transaction object to GObject Initialization

Derek Atkins warlord at cvs.gnucash.org
Wed Apr 4 20:23:59 EDT 2007


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

Modified:
   gnucash/branches/gobject-engine-dev-warlord/
   gnucash/branches/gobject-engine-dev-warlord/src/engine/Account.c
   gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.c
   gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.h
   gnucash/branches/gobject-engine-dev-warlord/src/engine/TransactionP.h
Log:
Convert the Transaction 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:14388
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:14389
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/Account.c
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/Account.c	2007-04-05 00:23:50 UTC (rev 15807)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/Account.c	2007-04-05 00:23:58 UTC (rev 15808)
@@ -108,6 +108,7 @@
 /********************************************************************\
 \********************************************************************/
 
+/* GObject Initialization */
 QOF_GOBJECT_IMPL(gnc_account, Account, QOF_TYPE_INSTANCE);
 
 static void

Modified: gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.c
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.c	2007-04-05 00:23:50 UTC (rev 15807)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.c	2007-04-05 00:23:58 UTC (rev 15808)
@@ -230,6 +230,20 @@
 #endif
 }
 
+/* GObject Initialization */
+QOF_GOBJECT_IMPL(gnc_transaction, Transaction, QOF_TYPE_INSTANCE);
+
+static void
+gnc_transaction_init(Transaction* txn)
+{
+}
+
+static void
+gnc_transaction_finalize_real(GObject* txnp)
+{
+}
+
+
 /********************************************************************\
  * xaccInitTransaction
  * Initialize a transaction structure
@@ -258,7 +272,7 @@
   trans->orig = NULL;
 
   trans->idata = 0;
-  qof_instance_init (&trans->inst, GNC_ID_TRANS, book);
+  qof_instance_init_data (&trans->inst, GNC_ID_TRANS, book);
   LEAVE (" ");
 }
 
@@ -272,7 +286,7 @@
 
   g_return_val_if_fail (book, NULL);
 
-  trans = g_new(Transaction, 1);
+  trans = g_object_new(GNC_TYPE_TRANSACTION, NULL);
   xaccInitTransaction (trans, book);
   qof_event_gen (&trans->inst, QOF_EVENT_CREATE, NULL);
 
@@ -354,7 +368,7 @@
   Transaction *trans;
   GList *node;
 
-  trans = g_new0 (Transaction, 1);
+  trans = g_object_new (GNC_TYPE_TRANSACTION, NULL);
 
   trans->num         = CACHE_INSERT (t->num);
   trans->description = CACHE_INSERT (t->description);
@@ -399,7 +413,7 @@
   GList *node;
 
   qof_event_suspend();
-  trans = g_new0 (Transaction, 1);
+  trans = g_object_new (GNC_TYPE_TRANSACTION, NULL);
 
   trans->date_entered    = t->date_entered;
   trans->date_posted     = t->date_posted;
@@ -412,7 +426,7 @@
   trans->orig            = NULL;
   trans->idata           = 0;
 
-  qof_instance_init (&trans->inst, GNC_ID_TRANS, t->inst.book);
+  qof_instance_init_data (&trans->inst, GNC_ID_TRANS, t->inst.book);
   kvp_frame_delete (trans->inst.kvp_data);
   trans->inst.kvp_data    = kvp_frame_copy (t->inst.kvp_data);
 
@@ -475,8 +489,8 @@
     trans->orig = NULL;
   }
 
-  qof_instance_release (&trans->inst);
-  g_free(trans);
+  /* qof_instance_release (&trans->inst); */
+  g_object_unref(trans);
 
   LEAVE ("(addr=%p)", trans);
 }

Modified: gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.h
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.h	2007-04-05 00:23:50 UTC (rev 15807)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/Transaction.h	2007-04-05 00:23:58 UTC (rev 15808)
@@ -86,15 +86,32 @@
 #ifndef XACC_TRANSACTION_H
 #define XACC_TRANSACTION_H
 
+typedef struct _TransactionClass TransactionClass;
+
 #include <time.h>
 
 #include "gnc-commodity.h"
 #include "gnc-engine.h"
 #include "Split.h"
 
+/* --- type macros --- */
+#define GNC_TYPE_TRANSACTION            (gnc_transaction_get_type ())
+#define GNC_TRANSACTION(o)              \
+     (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_TRANSACTION, Transaction))
+#define GNC_TRANSACTION_CLASS(k)        \
+     (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_TRANSACTION, TransactionClass))
+#define GNC_IS_TRANSACTION(o)           \
+     (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_TRANSACTION))
+#define GNC_IS_TRANSACTION_CLASS(k)     \
+     (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_TRANSACTION))
+#define GNC_TRANSACTION_GET_CLASS(o)    \
+     (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_TRANSACTION, TransactionClass))
+GType gnc_transaction_get_type(void);
+
+
 /* FIXME: These macros are not consistent with the type name */
-#define GNC_IS_TRANS(obj)  (QOF_CHECK_TYPE((obj), GNC_ID_TRANS))
-#define GNC_TRANS(obj)     (QOF_CHECK_CAST((obj), GNC_ID_TRANS, Transaction))
+#define GNC_IS_TRANS(obj)  GNC_IS_TRANSACTION(obj)
+#define GNC_TRANS(obj)     GNC_TRANSACTION(obj)
 
 /** @name Transaction Type field values
 @{

Modified: gnucash/branches/gobject-engine-dev-warlord/src/engine/TransactionP.h
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/TransactionP.h	2007-04-05 00:23:50 UTC (rev 15807)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/TransactionP.h	2007-04-05 00:23:58 UTC (rev 15808)
@@ -120,6 +120,11 @@
   guint32  idata;     /* used by the sql backend for kvp management */
 };
 
+struct _TransactionClass
+{
+  QofInstanceClass parent_class;
+};
+
 /* Set the transaction's GUID. This should only be done when reading
  * a transaction from a datafile, or some other external source. Never
  * call this on an existing transaction! */



More information about the gnucash-changes mailing list