/* gnc_configure_date_completion * sets dateCompletion to the current value on the scheme side. * QOF_DATE_COMPLETION_THISYEAR: use current year * QOF_DATE_COMPLETION_SLIDING: use a sliding 12-month window * backmonths 0-11: windows starts this many months before current month * * Args: Nothing * Returns: Nothing */ static void gnc_configure_date_completion (void) { QofDateCompletion dc = QOF_DATE_COMPLETION_THISYEAR; int backmonths = gnc_prefs_get_float(GNC_PREFS_GROUP_GENERAL, GNC_PREF_DATE_BACKMONTHS); if (backmonths < 0) backmonths = 0; else if (backmonths > 11) backmonths = 11; if (gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_DATE_COMPL_SLIDING)) dc = QOF_DATE_COMPLETION_SLIDING; qof_date_completion_set(dc, backmonths); }
/* gnc_configure_date_completion * sets dateCompletion to the current value on the scheme side. * QOF_DATE_COMPLETION_THISYEAR: use current year * QOF_DATE_COMPLETION_SLIDING: use a sliding 12-month window * backmonths 0-11: windows starts this many months before current month * * Args: Nothing * Returns: Nothing */ static void gnc_configure_date_completion (void) { char *date_completion = gnc_gconf_get_string(GCONF_GENERAL, KEY_DATE_COMPLETION, NULL); int backmonths = gnc_gconf_get_float(GCONF_GENERAL, KEY_DATE_BACKMONTHS, NULL); QofDateCompletion dc; if (backmonths < 0) { backmonths = 0; } else if (backmonths > 11) { backmonths = 11; } if (date_completion && strcmp(date_completion, "sliding") == 0) { dc = QOF_DATE_COMPLETION_SLIDING; } else if (date_completion && strcmp(date_completion, "thisyear") == 0) { dc = QOF_DATE_COMPLETION_THISYEAR; } else { /* No preference has been set yet */ PINFO("Incorrect date completion code, using defaults"); dc = QOF_DATE_COMPLETION_THISYEAR; backmonths = 6; gnc_gconf_set_string (GCONF_GENERAL, KEY_DATE_COMPLETION, "thisyear", NULL); gnc_gconf_set_float (GCONF_GENERAL, KEY_DATE_BACKMONTHS, 6.0, NULL); } qof_date_completion_set(dc, backmonths); if (date_completion != NULL) { free(date_completion); } }