r18777 - gnucash/trunk/src/backend/sql - More changes where SQL backend uses gobject properties to load/save objects.

Phil Longstaff plongstaff at code.gnucash.org
Mon Mar 1 14:08:00 EST 2010


Author: plongstaff
Date: 2010-03-01 14:08:00 -0500 (Mon, 01 Mar 2010)
New Revision: 18777
Trac: http://svn.gnucash.org/trac/changeset/18777

Modified:
   gnucash/trunk/src/backend/sql/gnc-backend-sql.c
   gnucash/trunk/src/backend/sql/gnc-price-sql.c
   gnucash/trunk/src/backend/sql/gnc-schedxaction-sql.c
   gnucash/trunk/src/backend/sql/gnc-transaction-sql.c
Log:
More changes where SQL backend uses gobject properties to load/save objects.


Modified: gnucash/trunk/src/backend/sql/gnc-backend-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-backend-sql.c	2010-03-01 18:45:53 UTC (rev 18776)
+++ gnucash/trunk/src/backend/sql/gnc-backend-sql.c	2010-03-01 19:08:00 UTC (rev 18777)
@@ -1032,6 +1032,7 @@
 	g_return_if_fail( row != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
 	g_return_if_fail( val != NULL );
@@ -1117,6 +1118,7 @@
 	g_return_if_fail( row != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
     if( val == NULL ) {
@@ -1201,6 +1203,7 @@
 	g_return_if_fail( row != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
     if( val == NULL ) {
@@ -1284,14 +1287,18 @@
 	g_return_if_fail( be != NULL );
 	g_return_if_fail( row != NULL );
 	g_return_if_fail( setter != NULL );
-	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
     if( val != NULL ) {
         i64_value = gnc_sql_get_integer_value( val );
     }
-    (*i64_setter)( pObject, i64_value );
+	if( table_row->gobj_param_name != NULL ) {
+		g_object_set( pObject, table_row->gobj_param_name, i64_value, NULL );
+	} else {
+        (*i64_setter)( pObject, i64_value );
+	}
 }
 
 static void
@@ -1356,9 +1363,9 @@
 
 	g_return_if_fail( be != NULL );
 	g_return_if_fail( row != NULL );
-	g_return_if_fail( setter != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
     if( val == NULL ) {
@@ -1374,7 +1381,11 @@
 		    PWARN( "Unknown float value type: %s\n", g_type_name( G_VALUE_TYPE(val) ) );
 			d_value = 0;
 		}
-        (*setter)( pObject, (gpointer)&d_value );
+	    if( table_row->gobj_param_name != NULL ) {
+		    g_object_set( pObject, table_row->gobj_param_name, d_value, NULL );
+	    } else {
+            (*setter)( pObject, (gpointer)&d_value );
+		}
     }
 }
 
@@ -1445,6 +1456,7 @@
 	g_return_if_fail( row != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
     if( val == NULL ) {
@@ -1600,9 +1612,9 @@
 
 	g_return_if_fail( be != NULL );
 	g_return_if_fail( row != NULL );
-	g_return_if_fail( setter != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
 	ts_setter = (TimespecSetterFunc)setter;
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
@@ -1621,7 +1633,11 @@
 									    s[10], s[11],
 									    s[12], s[13] );
 		        ts = gnc_iso8601_to_timespec_gmt( buf );
-			    (*ts_setter)( pObject, ts );
+				if (table_row->gobj_param_name != NULL) {
+			        g_object_set( pObject, table_row->gobj_param_name, &ts, NULL );
+				} else {
+			        (*ts_setter)( pObject, ts );
+				}
 			    g_free( buf );
 		    }
 
@@ -1661,9 +1677,15 @@
 	g_return_if_fail( table_row != NULL );
 	g_return_if_fail( pList != NULL );
 
-    ts_getter = (TimespecAccessFunc)gnc_sql_get_getter( obj_name, table_row );
-	g_return_if_fail( ts_getter != NULL );
-    ts = (*ts_getter)( pObject );
+	if( table_row->gobj_param_name != NULL ) {
+	    Timespec* pts;
+		g_object_get( pObject, table_row->gobj_param_name, &pts, NULL );
+		ts = *pts;
+	} else {
+        ts_getter = (TimespecAccessFunc)gnc_sql_get_getter( obj_name, table_row );
+	    g_return_if_fail( ts_getter != NULL );
+        ts = (*ts_getter)( pObject );
+	}
 
     value = g_new0( GValue, 1 );
 	g_assert( value != NULL );
@@ -1694,9 +1716,9 @@
 
 	g_return_if_fail( be != NULL );
 	g_return_if_fail( row != NULL );
-	g_return_if_fail( setter != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
     if( val != NULL ) {
@@ -1721,7 +1743,11 @@
 
 			    if( year != 0 || month != 0 || day != (GDateDay)0 ) {
 				    date = g_date_new_dmy( day, month, year );
-				    (*setter)( pObject, date );
+					if( table_row->gobj_param_name != NULL ) {
+			            g_object_set( pObject, table_row->gobj_param_name, date, NULL );
+					} else {
+				        (*setter)( pObject, date );
+				    }
 				    g_date_free( date );
 			    }
 		    }
@@ -1810,6 +1836,7 @@
 	g_return_if_fail( row != NULL );
 	g_return_if_fail( pObject != NULL );
 	g_return_if_fail( table_row != NULL );
+	g_return_if_fail( table_row->gobj_param_name != NULL || setter != NULL );
 
     buf = g_strdup_printf( "%s_num", table_row->col_name );
     val = gnc_sql_row_get_value_at_col_name( row, buf );

Modified: gnucash/trunk/src/backend/sql/gnc-price-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-price-sql.c	2010-03-01 18:45:53 UTC (rev 18776)
+++ gnucash/trunk/src/backend/sql/gnc-price-sql.c	2010-03-01 19:08:00 UTC (rev 18777)
@@ -55,9 +55,9 @@
 {
 	/*@ -full_init_block @*/
     { "guid",           CT_GUID,           0,                    COL_NNUL|COL_PKEY, "guid" },
-    { "commodity_guid", CT_COMMODITYREF,   0,                    COL_NNUL,          NULL, PRICE_COMMODITY },
-    { "currency_guid",  CT_COMMODITYREF,   0,                    COL_NNUL,          NULL, PRICE_CURRENCY },
-    { "date",           CT_TIMESPEC,       0,                    COL_NNUL,          NULL, PRICE_DATE },
+    { "commodity_guid", CT_COMMODITYREF,   0,                    COL_NNUL,          "commodity" },
+    { "currency_guid",  CT_COMMODITYREF,   0,                    COL_NNUL,          "currency" },
+    { "date",           CT_TIMESPEC,       0,                    COL_NNUL,          "date" },
     { "source",         CT_STRING,         PRICE_MAX_SOURCE_LEN, 0,                 "source" },
     { "type",           CT_STRING,         PRICE_MAX_TYPE_LEN,   0,                 "type" },
     { "value",          CT_NUMERIC,        0,                    COL_NNUL,          "value" },

Modified: gnucash/trunk/src/backend/sql/gnc-schedxaction-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-schedxaction-sql.c	2010-03-01 18:45:53 UTC (rev 18776)
+++ gnucash/trunk/src/backend/sql/gnc-schedxaction-sql.c	2010-03-01 19:08:00 UTC (rev 18777)
@@ -55,7 +55,6 @@
 
 #define SX_MAX_NAME_LEN 2048
 
-static gint get_instance_count( gpointer pObject );
 static /*@ null @*/ gpointer get_template_act_guid( gpointer pObject );
 static void set_template_act_guid( gpointer pObject, /*@ null @*/ gpointer pValue );
 
@@ -64,20 +63,17 @@
 	/*@ -full_init_block @*/
     { "guid",              CT_GUID,    0,               COL_NNUL|COL_PKEY, "guid" },
     { "name",              CT_STRING,  SX_MAX_NAME_LEN, 0,                 "name" },
-	{ "enabled",           CT_BOOLEAN, 0,               COL_NNUL,          NULL, NULL,
-			(QofAccessFunc)xaccSchedXactionGetEnabled, (QofSetterFunc)xaccSchedXactionSetEnabled },
-    { "start_date",        CT_GDATE,   0,               0,                 NULL, GNC_SX_START_DATE },
-    { "end_date",          CT_GDATE,   0,               0,                 NULL, NULL,
-			(QofAccessFunc)xaccSchedXactionGetEndDate, (QofSetterFunc)xaccSchedXactionSetEndDate },
-    { "last_occur",        CT_GDATE,   0,               0,                 NULL, GNC_SX_LAST_DATE },
+	{ "enabled",           CT_BOOLEAN, 0,               COL_NNUL,          "enabled" },
+    { "start_date",        CT_GDATE,   0,               0,                 "start-date" },
+    { "end_date",          CT_GDATE,   0,               0,                 "end-date" },
+    { "last_occur",        CT_GDATE,   0,               0,                 "last-occurance-date" },
     { "num_occur",         CT_INT,     0,               COL_NNUL,          "num-occurance" },
     { "rem_occur",         CT_INT,     0,               COL_NNUL,          "rem-occurance" },
     { "auto_create",       CT_BOOLEAN, 0,               COL_NNUL,          "auto-create" },
     { "auto_notify",       CT_BOOLEAN, 0,               COL_NNUL,          "auto-create-notify" },
     { "adv_creation",      CT_INT,     0,               COL_NNUL,          "advance-creation-days" },
     { "adv_notify",        CT_INT,     0,               COL_NNUL,          "advance-reminder-days" },
-	{ "instance_count",    CT_INT,     0,               COL_NNUL,          NULL, NULL,
-			(QofAccessFunc)get_instance_count, (QofSetterFunc)gnc_sx_set_instance_count },
+	{ "instance_count",    CT_INT,     0,               COL_NNUL,          "instance-count" },
     { "template_act_guid", CT_GUID,    0,               COL_NNUL,          NULL, NULL,
 			(QofAccessFunc)get_template_act_guid, set_template_act_guid },
     { NULL }
@@ -86,15 +82,6 @@
 
 /* ================================================================= */
 
-static gint
-get_instance_count( gpointer pObject )
-{
-	g_return_val_if_fail( pObject != NULL, FALSE );
-	g_return_val_if_fail( GNC_IS_SX(pObject), FALSE );
-
-    return gnc_sx_get_instance_count( GNC_SX(pObject), NULL );
-}
-
 static gpointer
 get_template_act_guid( gpointer pObject )
 {
@@ -132,6 +119,7 @@
     const GUID* guid;
 	SchedXaction* pSx;
 	GList* schedule;
+	GDate start_date;
 
 	g_return_val_if_fail( be != NULL, NULL );
 	g_return_val_if_fail( row != NULL, NULL );
@@ -147,6 +135,8 @@
 	gnc_sx_commit_edit( pSx );
 	gnc_sql_transaction_load_tx_for_account( be, pSx->template_acct );
 
+    g_object_get(pSx, "start-date", &start_date, NULL);
+
     return pSx;
 }
 

Modified: gnucash/trunk/src/backend/sql/gnc-transaction-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-transaction-sql.c	2010-03-01 18:45:53 UTC (rev 18776)
+++ gnucash/trunk/src/backend/sql/gnc-transaction-sql.c	2010-03-01 19:08:00 UTC (rev 18777)
@@ -76,13 +76,10 @@
 {
 	/*@ -full_init_block @*/
     { "guid",          CT_GUID,           0,                      COL_NNUL|COL_PKEY, "guid" },
-    { "currency_guid", CT_COMMODITYREF,   0,                      COL_NNUL,          NULL, NULL,
-			(QofAccessFunc)xaccTransGetCurrency, (QofSetterFunc)xaccTransSetCurrency },
+    { "currency_guid", CT_COMMODITYREF,   0,                      COL_NNUL,          "currency" },
     { "num",           CT_STRING,         TX_MAX_NUM_LEN,         COL_NNUL,          "num" },
-    { "post_date",     CT_TIMESPEC,       0,                      0,                 NULL, NULL,
-			(QofAccessFunc)xaccTransRetDatePostedTS, (QofSetterFunc)gnc_transaction_set_date_posted },
-    { "enter_date",    CT_TIMESPEC,       0,                      0,                 NULL, NULL,
-			(QofAccessFunc)xaccTransRetDateEnteredTS, (QofSetterFunc)gnc_transaction_set_date_entered },
+    { "post_date",     CT_TIMESPEC,       0,                      0,                 "post-date" },
+    { "enter_date",    CT_TIMESPEC,       0,                      0,                 "enter-date" },
     { "description",   CT_STRING,         TX_MAX_DESCRIPTION_LEN, 0,                 "description" },
     { NULL }
 	/*@ +full_init_block @*/
@@ -100,14 +97,13 @@
 {
 	/*@ -full_init_block @*/
     { "guid",            CT_GUID,         0,                    COL_NNUL|COL_PKEY, "guid" },
-    { "tx_guid",         CT_TXREF,        0,                    COL_NNUL,          NULL, SPLIT_TRANS },
-    { "account_guid",    CT_ACCOUNTREF,   0,                    COL_NNUL,          NULL, SPLIT_ACCOUNT },
+    { "tx_guid",         CT_TXREF,        0,                    COL_NNUL,          "transaction" },
+    { "account_guid",    CT_ACCOUNTREF,   0,                    COL_NNUL,          "account" },
     { "memo",            CT_STRING,       SPLIT_MAX_MEMO_LEN,   COL_NNUL,          "memo" },
     { "action",          CT_STRING,       SPLIT_MAX_ACTION_LEN, COL_NNUL,          "action" },
     { "reconcile_state", CT_STRING,       1,                    COL_NNUL,          NULL, NULL,
 			(QofAccessFunc)get_split_reconcile_state, set_split_reconcile_state },
-    { "reconcile_date",  CT_TIMESPEC,     0,                    0,                 NULL, NULL,
-			(QofAccessFunc)xaccSplitRetDateReconciledTS, (QofSetterFunc)set_split_reconcile_date },
+    { "reconcile_date",  CT_TIMESPEC,     0,                    0,                 "reconcile-date" },
     { "value",           CT_NUMERIC,      0,                    COL_NNUL,          "value" },
     { "quantity",        CT_NUMERIC,      0,                    COL_NNUL,          "amount" },
 	{ "lot_guid",        CT_LOTREF,       0,                    0,                 NULL, NULL,



More information about the gnucash-changes mailing list