/********************************************************************\ * gnc_file_csv_account_import * * opens up a assistant to import accounts. * * * * Args: import_type * * Return: nothing * \********************************************************************/ void gnc_file_csv_account_import(void) { CsvImportInfo *info; info = g_new0 (CsvImportInfo, 1); /* In order to trigger a book options display on the creation of a new book, * we need to detect when we are dealing with a new book. */ info->new_book = gnc_is_new_book(); csv_import_assistant_create (info); gnc_register_gui_component (ASSISTANT_CSV_IMPORT_CM_CLASS, NULL, csv_import_close_handler, info); gtk_widget_show_all (info->window); gnc_window_adjust_for_screen (GTK_WINDOW(info->window)); }
static GtkWidget * gnc_create_hierarchy_assistant (gboolean use_defaults, GncHierarchyAssistantFinishedCallback when_completed) { hierarchy_data *data; GtkWidget *dialog; GtkTreeView *tree_view; GtkWidget *box; GtkBuilder *builder; data = g_new0 (hierarchy_data, 1); /* Presumably this assistant is only used to create a new book but we check. * When gnucash is started with --nofile, there is initially no session (and * no book), but by the time we get here, one could have been created (for * example, if an empty account tree tab is opened, a session is created * which creates a new, but empty, book). */ data->new_book = gnc_is_new_book(); builder = gtk_builder_new(); gnc_builder_add_from_file (builder, "assistant-hierarchy.glade", "Hierarchy Assistant"); dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Hierarchy Assistant")); data->dialog = dialog; /* If we have a callback, make this window stay on top */ if (when_completed != NULL) gtk_window_set_keep_above (GTK_WINDOW(data->dialog), TRUE); gnc_assistant_set_colors (GTK_ASSISTANT (data->dialog)); /* Enable buttons on first and last page. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), GTK_WIDGET(gtk_builder_get_object(builder, "intro_page_label")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), GTK_WIDGET(gtk_builder_get_object(builder, "currency_book_option_page_vbox")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), GTK_WIDGET(gtk_builder_get_object(builder, "final_account_vbox")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), GTK_WIDGET(gtk_builder_get_object(builder, "finish_page_label")), TRUE); /* Currency Page */ data->currency_selector = gnc_currency_edit_new(); gnc_currency_edit_set_currency (GNC_CURRENCY_EDIT(data->currency_selector), gnc_default_currency()); gtk_widget_show (data->currency_selector); box = GTK_WIDGET(gtk_builder_get_object (builder, "currency_chooser_hbox")); gtk_box_pack_start(GTK_BOX(box), data->currency_selector, TRUE, TRUE, 0); /* Categories Page */ tree_view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "account_categories_tree_view")); g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (tree_view)), "changed", G_CALLBACK (categories_tree_selection_changed), data); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (tree_view), GTK_SELECTION_SINGLE); data->categories_tree = tree_view; data->category_accounts_label = GTK_LABEL(gtk_builder_get_object (builder, "accounts_in_category_label")); data->category_accounts_container = GTK_WIDGET(gtk_builder_get_object (builder, "accounts_in_category")); data->category_description = GTK_TEXT_VIEW(gtk_builder_get_object (builder, "account_types_description")); data->account_list_added = FALSE; /* Book options page - only on new books */ if (data->new_book) assistant_instert_book_options_page (data); /* Final Accounts Page */ data->final_account_tree_container = GTK_WIDGET(gtk_builder_get_object (builder, "final_account_tree_box")); data->final_account_tree = NULL; data->balance_hash = g_hash_table_new(NULL, NULL); gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(data->dialog)); g_signal_connect (G_OBJECT(dialog), "destroy", G_CALLBACK (gnc_hierarchy_destroy_cb), data); gtk_builder_connect_signals(builder, data); g_object_unref(G_OBJECT(builder)); data->when_completed = when_completed; data->use_defaults = use_defaults; return dialog; }
int ofx_proc_account_cb(struct OfxAccountData data, void * account_user_data) { gnc_commodity_table * commodity_table; gnc_commodity * default_commodity; GNCAccountType default_type = ACCT_TYPE_NONE; gchar * account_description; /* In order to trigger a book options display on the creation of a new book, * we need to detect when we are dealing with a new book. */ gboolean new_book = gnc_is_new_book(); const gchar * account_type_name = _("Unknown OFX account"); if (data.account_id_valid) { commodity_table = gnc_get_current_commodities (); if (data.currency_valid) { DEBUG("Currency from libofx: %s", data.currency); default_commodity = gnc_commodity_table_lookup(commodity_table, GNC_COMMODITY_NS_CURRENCY, data.currency); } else { default_commodity = NULL; } if (data.account_type_valid) { switch (data.account_type) { case OFX_CHECKING : default_type = ACCT_TYPE_BANK; account_type_name = _("Unknown OFX checking account"); break; case OFX_SAVINGS : default_type = ACCT_TYPE_BANK; account_type_name = _("Unknown OFX savings account"); break; case OFX_MONEYMRKT : default_type = ACCT_TYPE_MONEYMRKT; account_type_name = _("Unknown OFX money market account"); break; case OFX_CREDITLINE : default_type = ACCT_TYPE_CREDITLINE; account_type_name = _("Unknown OFX credit line account"); break; case OFX_CMA : default_type = ACCT_TYPE_NONE; account_type_name = _("Unknown OFX CMA account"); break; case OFX_CREDITCARD : default_type = ACCT_TYPE_CREDIT; account_type_name = _("Unknown OFX credit card account"); break; case OFX_INVESTMENT : default_type = ACCT_TYPE_BANK; account_type_name = _("Unknown OFX investment account"); break; default: PERR("WRITEME: ofx_proc_account() This is an unknown account type!"); break; } } /* If the OFX importer was started in Gnucash in a 'new_book' situation, * as described above, the first time the 'ofx_proc_account_cb' function * is called a book is created. (This happens after the 'new_book' flag * is set in 'gnc_get_current_commodities', called above.) So, before * calling 'gnc_import_select_account', allow the user to set book * options. */ if (new_book) new_book = gnc_new_book_option_display(); gnc_utf8_strip_invalid(data.account_name); account_description = g_strdup_printf( /* This string is a default account name. It MUST NOT contain the character ':' anywhere in it or in any translation. */ "%s \"%s\"", account_type_name, data.account_name); gnc_import_select_account(NULL, data.account_id, 1, account_description, default_commodity, default_type, NULL, NULL); g_free(account_description); } else { PERR("account online ID not available"); } return 0; }