static void load_gnucash_modules() { int i, len; struct { gchar * name; int version; gboolean optional; } modules[] = { { "gnucash/app-utils", 0, FALSE }, { "gnucash/engine", 0, FALSE }, { "gnucash/register/ledger-core", 0, FALSE }, { "gnucash/register/register-core", 0, FALSE }, { "gnucash/register/register-gnome", 0, FALSE }, { "gnucash/import-export/qif-import", 0, FALSE }, { "gnucash/import-export/ofx", 0, TRUE }, { "gnucash/import-export/csv", 0, TRUE }, { "gnucash/import-export/log-replay", 0, TRUE }, { "gnucash/import-export/aqbanking", 0, TRUE }, { "gnucash/import-export/hbci", 0, TRUE }, { "gnucash/report/report-system", 0, FALSE }, { "gnucash/report/stylesheets", 0, FALSE }, { "gnucash/report/standard-reports", 0, FALSE }, { "gnucash/report/utility-reports", 0, FALSE }, { "gnucash/report/locale-specific/us", 0, FALSE }, { "gnucash/report/report-gnome", 0, FALSE }, { "gnucash/business-gnome", 0, TRUE } }; /* module initializations go here */ len = sizeof(modules) / sizeof(*modules); for (i = 0; i < len; i++) { gnc_update_splash_screen(modules[i].name, GNC_SPLASH_PERCENTAGE_UNKNOWN); if (modules[i].optional) gnc_module_load_optional(modules[i].name, modules[i].version); else gnc_module_load(modules[i].name, modules[i].version); } if (!gnc_engine_is_initialized()) { /* On Windows this check used to fail anyway, see * https://lists.gnucash.org/pipermail/gnucash-devel/2006-September/018529.html * but more recently it seems to work as expected * again. 2006-12-20, cstim. */ g_warning("GnuCash engine failed to initialize. Exiting.\n"); exit(1); } }
void gnc_window_show_progress (const char *message, double percentage) { GncWindow *window; GtkWidget *progressbar; window = progress_bar_hack_window; if (window == NULL) return; progressbar = gnc_window_get_progressbar (window); if (progressbar == NULL) { DEBUG( "no progressbar in hack-window" ); return; } gnc_update_splash_screen(message, percentage); if (percentage < 0) { gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), " "); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar), 0.0); if (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL) GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, TRUE); } else { if (message) gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), message); if ((percentage == 0) && (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL)) GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, FALSE); if (percentage <= 100) { gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar), percentage / 100); } else { gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progressbar)); } } /* make sure new text is up */ while (gtk_events_pending ()) gtk_main_iteration (); }
static void inner_main (void *closure, int argc, char **argv) { SCM main_mod; char* fn; GError *error = NULL; scm_c_eval_string("(debug-set! stack 200000)"); main_mod = scm_c_resolve_module("gnucash main"); scm_set_current_module(main_mod); load_gnucash_modules(); /* Load the config before starting up the gui. This insures that * custom reports have been read into memory before the Reports * menu is created. */ load_system_config(); load_user_config(); /* Setting-up the report menu must come after the module loading but before the gui initialization. */ scm_c_use_module("gnucash report report-gnome"); scm_c_eval_string("(gnc:report-menu-setup)"); /* TODO: After some more guile-extraction, this should happen even before booting guile. */ gnc_main_gui_init(); gnc_hook_add_dangler(HOOK_UI_SHUTDOWN, (GFunc)gnc_file_quit, NULL); scm_c_eval_string("(gnc:main)"); /* Install Price Quote Sources */ gnc_update_splash_screen(_("Checking Finance::Quote..."), GNC_SPLASH_PERCENTAGE_UNKNOWN); scm_c_use_module("gnucash price-quotes"); scm_c_eval_string("(gnc:price-quotes-install-sources)"); gnc_hook_run(HOOK_STARTUP, NULL); if (!nofile && (fn = get_file_to_load())) { gnc_update_splash_screen(_("Loading data..."), GNC_SPLASH_PERCENTAGE_UNKNOWN); gnc_file_open_file(fn); g_free(fn); } else if (gnc_gconf_get_bool("dialogs/new_user", "first_startup", &error) && !error) { gnc_destroy_splash_screen(); gnc_ui_new_user_dialog(); } gnc_destroy_splash_screen(); gnc_main_window_show_all_windows(); gnc_hook_run(HOOK_UI_POST_STARTUP, NULL); gnc_ui_start_event_loop(); gnc_hook_remove_dangler(HOOK_UI_SHUTDOWN, (GFunc)gnc_file_quit); gnc_shutdown(0); return; }
static void update_message(const gchar *msg) { gnc_update_splash_screen(msg, GNC_SPLASH_PERCENTAGE_UNKNOWN); g_message("%s", msg); }