static void do_find_cb (QofQuery *query, gpointer user_data, gpointer *result) { struct _ftd_data *ftd = user_data; GNCLedgerDisplay2 *ledger; gboolean new_ledger = FALSE; GncPluginPage *page; ledger = gnc_ledger_display2_find_by_query (ftd->ledger_q); if (!ledger) { new_ledger = TRUE; ledger = gnc_ledger_display2_query (query, SEARCH_LEDGER2, REG2_STYLE_JOURNAL); } else gnc_ledger_display2_set_query (ledger, query); gnc_ledger_display2_refresh (ledger); if (new_ledger) { page = gnc_plugin_page_register2_new_ledger (ledger); gnc_main_window_open_page (NULL, page); } qof_query_destroy (ftd->q); gnc_search_dialog_destroy (ftd->sw); }
/** Create a new owner tree page based on the information saved * during a previous instantiation of gnucash. * * @param window The window where this page should be installed. * * @param key_file A pointer to the GKeyFile data structure where the * page information should be read. * * @param group_name The group name to use when restoring data. */ static GncPluginPage * gnc_plugin_page_owner_tree_recreate_page (GtkWidget *window, GKeyFile *key_file, const gchar *group_name) { GncPluginPageOwnerTree *owner_page; GncPluginPageOwnerTreePrivate *priv; GncPluginPage *page; GncOwnerType owner_type; g_return_val_if_fail(key_file, NULL); g_return_val_if_fail(group_name, NULL); ENTER("key_file %p, group_name %s", key_file, group_name); /* Create the new page. */ owner_type = g_key_file_get_integer(key_file, group_name, OWNER_TYPE_LABEL, NULL); page = gnc_plugin_page_owner_tree_new(owner_type); owner_page = GNC_PLUGIN_PAGE_OWNER_TREE(page); priv = GNC_PLUGIN_PAGE_OWNER_TREE_GET_PRIVATE(owner_page); /* Install it now so we can then manipulate the created widget */ gnc_main_window_open_page(GNC_MAIN_WINDOW(window), page); gnc_tree_view_owner_restore(GNC_TREE_VIEW_OWNER(priv->tree_view), &priv->fd, key_file, group_name, owner_type); LEAVE(" "); return page; }
static void _show_created_transactions(GncSxSinceLastRunDialog *app_dialog, GList *created_txn_guids) { GNCLedgerDisplay *ledger; GncPluginPage *page; Query *book_query, *guid_query, *query; GList *guid_iter; book_query = qof_query_create_for(GNC_ID_SPLIT); guid_query = qof_query_create_for(GNC_ID_SPLIT); qof_query_set_book(book_query, gnc_get_current_book()); for (guid_iter = created_txn_guids; guid_iter != NULL; guid_iter = guid_iter->next) { xaccQueryAddGUIDMatch(guid_query, (GncGUID*)guid_iter->data, GNC_ID_TRANS, QOF_QUERY_OR); } query = qof_query_merge(book_query, guid_query, QOF_QUERY_AND); // inspired by dialog-find-transactions:do_find_cb: ledger = gnc_ledger_display_query(query, SEARCH_LEDGER, REG_STYLE_JOURNAL); gnc_ledger_display_refresh(ledger); page = gnc_plugin_page_register_new_ledger(ledger); g_object_set(G_OBJECT(page), "page-name", _("Created Transactions"), NULL); gnc_main_window_open_page(NULL, page); qof_query_destroy(query); qof_query_destroy(book_query); qof_query_destroy(guid_query); }
static void gnc_plugin_register2_cmd_general_ledger (GtkAction *action, GncMainWindowActionData *data) { GncPluginPage *page; g_return_if_fail (data != NULL); page = gnc_plugin_page_register2_new_gl (); gnc_main_window_open_page (data->window, page); }
static void gnc_plugin_account_tree_cmd_new_account_tree (GtkAction *action, GncMainWindowActionData *data) { GncPluginPage *page; g_return_if_fail (data != NULL); page = gnc_plugin_page_account_tree_new (); gnc_main_window_open_page (data->window, page); }
static void gnc_plugin_business_cmd_employee_page (GtkAction *action, GncMainWindowActionData *mw) { GncPluginPage *page; g_return_if_fail (mw != NULL); g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data)); page = gnc_plugin_page_owner_tree_new (GNC_OWNER_EMPLOYEE); gnc_main_window_open_page (mw->window, page); }
static void after_hierarchy_assistant(void) { GncPluginPage *page; gncp_new_user_finish (); gnc_set_first_startup (FALSE); page = gnc_plugin_page_account_tree_new(); gnc_main_window_open_page(NULL, page); qof_book_mark_session_dirty(gnc_get_current_book()); gnc_ui_file_access_for_save_as(); }
/** * Create a new sx list page based on the information saved during a previous * instantiation of gnucash. * @param window The window where this page should be installed. * @param key_file A pointer to the GKeyFile data structure where the * page information should be read. * @param group_name The group name to use when restoring data. **/ static GncPluginPage * gnc_plugin_page_sx_list_recreate_page (GtkWidget *window, GKeyFile *key_file, const gchar *group_name) { GncPluginPageSxList *page; GncPluginPageSxListPrivate *priv; g_return_val_if_fail(key_file, NULL); g_return_val_if_fail(group_name, NULL); /* Create the new page. */ page = GNC_PLUGIN_PAGE_SX_LIST(gnc_plugin_page_sx_list_new()); priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page); /* Install it now so we can them manipulate the created widget */ gnc_main_window_open_page(GNC_MAIN_WINDOW(window), GNC_PLUGIN_PAGE(page)); { GError *err = NULL; gint num_months = g_key_file_get_integer(key_file, group_name, "dense_cal_num_months", &err); if (err == NULL) gnc_dense_cal_set_num_months(priv->gdcal, num_months); else g_error_free(err); } { GError *err = NULL; gint paned_position = g_key_file_get_integer(key_file, group_name, "paned_position", &err); if (err == NULL) gtk_paned_set_position(GTK_PANED(priv->widget), paned_position); else g_error_free(err); } return GNC_PLUGIN_PAGE(page); }
static gboolean gnc_html_register_url_cb (const char *location, const char *label, gboolean new_window, GNCURLResult *result) { GncPluginPage *page = NULL; GNCSplitReg * gsr = NULL; Split * split = NULL; Account * account = NULL; Transaction * trans; GList * node; QofBook * book = gnc_get_current_book(); GncGUID guid; QofInstance * entity = NULL; g_return_val_if_fail (location != NULL, FALSE); g_return_val_if_fail (result != NULL, FALSE); result->load_to_stream = FALSE; /* href="gnc-register:account=My Bank Account" */ if (strncmp("account=", location, 8) == 0) { account = gnc_account_lookup_by_full_name (gnc_get_current_root_account (), location + 8); } /* href="gnc-register:guid=12345678901234567890123456789012" */ else if (strncmp ("acct-guid=", location, strlen ("acct-guid=")) == 0) { if (!validate_type("acct-guid=", location, GNC_ID_ACCOUNT, result, &guid, &entity)) return FALSE; account = GNC_ACCOUNT(entity); } else if (strncmp ("trans-guid=", location, strlen ("trans-guid=")) == 0) { if (!validate_type("trans-guid=", location, GNC_ID_TRANS, result, &guid, &entity)) return FALSE; trans = (Transaction *) entity; for (node = xaccTransGetSplitList (trans); node; node = node->next) { split = node->data; account = xaccSplitGetAccount(split); if (account) break; } if (!account) { result->error_message = g_strdup_printf (_("Transaction with no Accounts: %s"), location); return FALSE; } } else if (strncmp ("split-guid=", location, strlen ("split-guid=")) == 0) { if (!validate_type("split-guid=", location, GNC_ID_SPLIT, result, &guid, &entity)) return FALSE; split = (Split *) entity; account = xaccSplitGetAccount(split); } else { result->error_message = g_strdup_printf (_("Unsupported entity type: %s"), location); return FALSE; } page = gnc_plugin_page_register_new (account, FALSE); gnc_main_window_open_page (NULL, page); if (split) { gsr = gnc_plugin_page_register_get_gsr(page); gnc_split_reg_jump_to_split( gsr, split ); } return TRUE; }
static void gnc_main_window_cmd_actions_scheduled_transaction_editor (GtkAction *action, GncMainWindowActionData *data) { GncPluginPage *page = gnc_plugin_page_sx_list_new(); gnc_main_window_open_page(NULL, page); }