GDate values weren't being properly fetched from objects to be saved in a database column if they were fetched as a gobject property.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18805 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Phil Longstaff 2010-03-03 23:34:49 +00:00
parent dbb5d0ddda
commit c080f3a8bd

View File

@ -1777,7 +1777,7 @@ add_gvalue_date_to_slist( const GncSqlBackend* be, QofIdTypeConst obj_name,
const gpointer pObject, const gpointer pObject,
const GncSqlColumnTableEntry* table_row, GSList** pList ) const GncSqlColumnTableEntry* table_row, GSList** pList )
{ {
GDate* date; GDate* date = NULL;
QofAccessFunc getter; QofAccessFunc getter;
gchar* buf; gchar* buf;
GValue* value; GValue* value;
@ -1790,14 +1790,18 @@ add_gvalue_date_to_slist( const GncSqlBackend* be, QofIdTypeConst obj_name,
value = g_new0( GValue, 1 ); value = g_new0( GValue, 1 );
g_assert( value != NULL ); g_assert( value != NULL );
(void)g_value_init( value, G_TYPE_STRING ); (void)g_value_init( value, G_TYPE_STRING );
getter = gnc_sql_get_getter( obj_name, table_row ); if( table_row->gobj_param_name != NULL ) {
if( getter != NULL ) { g_object_get( pObject, table_row->gobj_param_name, &date, NULL );
date = (GDate*)(*getter)( pObject, NULL ); } else {
if( g_date_valid( date ) ) { getter = gnc_sql_get_getter( obj_name, table_row );
buf = g_strdup_printf( "%04d%02d%02d", if( getter != NULL ) {
g_date_get_year( date ), g_date_get_month( date ), g_date_get_day( date ) ); date = (GDate*)(*getter)( pObject, NULL );
g_value_take_string( value, buf ); }
} }
if( g_date_valid( date ) ) {
buf = g_strdup_printf( "%04d%02d%02d",
g_date_get_year( date ), g_date_get_month( date ), g_date_get_day( date ) );
g_value_take_string( value, buf );
} }
(*pList) = g_slist_append( (*pList), value ); (*pList) = g_slist_append( (*pList), value );