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