void xaccAccountScrubKvp (Account *account) { GValue v = G_VALUE_INIT; const gchar *str; gchar *str2; if (!account) return; qof_instance_get_kvp (QOF_INSTANCE (account), "notes", &v); if (G_VALUE_HOLDS_STRING (&v)) { str2 = g_strstrip(g_value_dup_string(&v)); if (strlen(str2) == 0) qof_instance_slot_delete (QOF_INSTANCE (account), "notes"); g_free(str2); } qof_instance_get_kvp (QOF_INSTANCE (account), "placeholder", &v); if ((G_VALUE_HOLDS_STRING (&v) && strcmp(g_value_get_string (&v), "false") == 0) || (G_VALUE_HOLDS_BOOLEAN (&v) && ! g_value_get_boolean (&v))) qof_instance_slot_delete (QOF_INSTANCE (account), "placeholder"); qof_instance_slot_delete_if_empty (QOF_INSTANCE (account), "hbci"); }
static void gnc_customer_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GncCustomer *cust; gchar *key; g_return_if_fail(GNC_IS_CUSTOMER(object)); cust = GNC_CUSTOMER(object); switch (prop_id) { case PROP_NAME: g_value_set_string(value, cust->name); break; case PROP_PDF_DIRNAME: key = OWNER_EXPORT_PDF_DIRNAME; qof_instance_get_kvp (QOF_INSTANCE (cust), key, value); break; case PROP_LAST_POSTED: key = LAST_POSTED_TO_ACCT; qof_instance_get_kvp (QOF_INSTANCE (cust), key, value); break; case PROP_PAYMENT_LAST_ACCT: key = GNC_PAYMENT "/" GNC_LAST_ACCOUNT; qof_instance_get_kvp (QOF_INSTANCE (cust), key, value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } }
void xaccAccountScrubColorNotSet (QofBook *book) { GValue value_s = G_VALUE_INIT; // get the run-once value qof_instance_get_kvp (QOF_INSTANCE (book), &value_s, 1, "remove-color-not-set-slots"); if (G_VALUE_HOLDS_STRING (&value_s) && (strcmp(g_value_get_string (&value_s), "true") == 0)) return; else { GValue value_b = G_VALUE_INIT; Account *root = gnc_book_get_root_account (book); GList *accts = gnc_account_get_descendants_sorted (root); GList *ptr; for (ptr = accts; ptr; ptr = g_list_next (ptr)) { const gchar *color = xaccAccountGetColor (ptr->data); if (g_strcmp0 (color, "Not Set") == 0) xaccAccountSetColor (ptr->data, ""); } g_list_free (accts); g_value_init (&value_b, G_TYPE_BOOLEAN); g_value_set_boolean (&value_b, TRUE); // set the run-once value qof_instance_set_kvp (QOF_INSTANCE (book), &value_b, 1, "remove-color-not-set-slots"); } }
static void qof_book_get_property (GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) { QofBook *book; gchar *key; g_return_if_fail (QOF_IS_BOOK (object)); book = QOF_BOOK (object); switch (prop_id) { case PROP_OPT_TRADING_ACCOUNTS: key = g_strdup_printf ("%s/%s/%s", KVP_OPTION_PATH, OPTION_SECTION_ACCOUNTS, OPTION_NAME_TRADING_ACCOUNTS); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); g_free (key); break; case PROP_OPT_BOOK_CURRENCY: key = g_strdup_printf ("%s/%s/%s", KVP_OPTION_PATH, OPTION_SECTION_ACCOUNTS, OPTION_NAME_BOOK_CURRENCY); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); g_free (key); break; case PROP_OPT_DEFAULT_GAINS_POLICY: key = g_strdup_printf ("%s/%s/%s", KVP_OPTION_PATH, OPTION_SECTION_ACCOUNTS, OPTION_NAME_DEFAULT_GAINS_POLICY); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); g_free (key); break; case PROP_OPT_AUTO_READONLY_DAYS: key = g_strdup_printf ("%s/%s/%s", KVP_OPTION_PATH, OPTION_SECTION_ACCOUNTS, OPTION_NAME_AUTO_READONLY_DAYS); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); g_free (key); break; case PROP_OPT_NUM_FIELD_SOURCE: key = g_strdup_printf ("%s/%s/%s", KVP_OPTION_PATH, OPTION_SECTION_ACCOUNTS, OPTION_NAME_NUM_FIELD_SOURCE); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); g_free (key); break; case PROP_OPT_DEFAULT_BUDGET: key = g_strdup_printf ("%s/%s/%s", KVP_OPTION_PATH, OPTION_SECTION_ACCOUNTS, OPTION_NAME_DEFAULT_BUDGET); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); g_free (key); break; case PROP_OPT_FY_END: key = const_cast<char*>("fy_end"); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); break; case PROP_AB_TEMPLATES: key = const_cast<char*>(AB_KEY "/" AB_TEMPLATES); qof_instance_get_kvp (QOF_INSTANCE (book), key, value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } }