static void move_quote_source (Account *account, gpointer data) { gnc_commodity *com; gnc_quote_source *quote_source; gboolean new_style = GPOINTER_TO_INT(data); const char *source, *tz; com = xaccAccountGetCommodity(account); if (!com) return; if (!new_style) { source = dxaccAccountGetPriceSrc(account); if (!source || !*source) return; tz = dxaccAccountGetQuoteTZ(account); PINFO("to %8s from %s", gnc_commodity_get_mnemonic(com), xaccAccountGetName(account)); gnc_commodity_set_quote_flag(com, TRUE); quote_source = gnc_quote_source_lookup_by_internal(source); if (!quote_source) quote_source = gnc_quote_source_add_new(source, FALSE); gnc_commodity_set_quote_source(com, quote_source); gnc_commodity_set_quote_tz(com, tz); } dxaccAccountSetPriceSrc(account, NULL); dxaccAccountSetQuoteTZ(account, NULL); return; }
static void set_commodity_value(xmlNodePtr node, gnc_commodity* com) { if (g_strcmp0((char*) node->name, cmdty_fraction) == 0) { gint64 val; char *string; string = (char*) xmlNodeGetContent (node->xmlChildrenNode); if (string_to_gint64(string, &val)) { gnc_commodity_set_fraction(com, val); } xmlFree (string); } else if (g_strcmp0((char*)node->name, cmdty_get_quotes) == 0) { gnc_commodity_set_quote_flag(com, TRUE); } else if (g_strcmp0((char*)node->name, cmdty_quote_source) == 0) { gnc_quote_source *source; char *string; string = (char*) xmlNodeGetContent (node->xmlChildrenNode); source = gnc_quote_source_lookup_by_internal(string); if (!source) source = gnc_quote_source_add_new(string, FALSE); gnc_commodity_set_quote_source(com, source); xmlFree (string); } else if (g_strcmp0((char*)node->name, cmdty_slots) == 0) { /* We ignore the results here */ dom_tree_create_instance_slots(node, QOF_INSTANCE(com)); } else { struct com_char_handler *mark; for (mark = com_handlers; mark->tag; mark++) { if (g_strcmp0(mark->tag, (char*)node->name) == 0) { gchar* val = dom_tree_to_text(node); g_strstrip(val); (mark->func)(com, val); g_free(val); break; } } } }
static void set_quote_source_name( gpointer pObject, gpointer pValue ) { gnc_commodity* pCommodity; const gchar* quote_source_name = (const gchar*)pValue; gnc_quote_source* quote_source; g_return_if_fail( pObject != NULL ); // g_return_if_fail( GNC_IS_COMMODITY(pObject) ); if ( pValue == NULL ) return; pCommodity = (gnc_commodity*)(pObject); quote_source = gnc_quote_source_lookup_by_internal( quote_source_name ); gnc_commodity_set_quote_source( pCommodity, quote_source ); }