mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Make similar changes to account import CSV assistant
Remove the OK button from the file page.
This commit is contained in:
parent
1b2feacd4b
commit
92b587fa56
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- Generated with glade 3.20.0 -->
|
<!-- Generated with glade 3.20.4 -->
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.10"/>
|
<requires lib="gtk+" version="3.10"/>
|
||||||
<object class="GtkAdjustment" id="num_hrows_adj">
|
<object class="GtkAdjustment" id="num_hrows_adj">
|
||||||
@ -279,7 +279,6 @@ Enter file name and location for the Import...
|
|||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="page_type">progress</property>
|
|
||||||
<property name="title" translatable="yes">Import Account Preview, first 10 rows only</property>
|
<property name="title" translatable="yes">Import Account Preview, first 10 rows only</property>
|
||||||
<property name="complete">True</property>
|
<property name="complete">True</property>
|
||||||
<property name="has_padding">False</property>
|
<property name="has_padding">False</property>
|
||||||
|
@ -62,7 +62,7 @@ void csv_import_assistant_summary_page_prepare (GtkAssistant *assistant, gpointe
|
|||||||
void csv_import_sep_cb (GtkWidget *radio, gpointer user_data );
|
void csv_import_sep_cb (GtkWidget *radio, gpointer user_data );
|
||||||
void csv_import_hrows_cb (GtkWidget *spin, gpointer user_data );
|
void csv_import_hrows_cb (GtkWidget *spin, gpointer user_data );
|
||||||
|
|
||||||
void csv_import_file_chooser_confirm_cb (GtkWidget *button, CsvImportInfo *info);
|
void csv_import_file_chooser_selection_changed_cb (GtkFileChooser *chooser, CsvImportInfo *info);
|
||||||
|
|
||||||
static gchar *gnc_input_dialog (GtkWidget *parent, const gchar *title, const gchar *msg, const gchar *default_input);
|
static gchar *gnc_input_dialog (GtkWidget *parent, const gchar *title, const gchar *msg, const gchar *default_input);
|
||||||
|
|
||||||
@ -136,25 +136,22 @@ void create_regex (GString *regex_str, const gchar *sep)
|
|||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
/**************************************************
|
/**************************************************
|
||||||
* csv_file_chooser_confirm_cb
|
* csv_import_file_chooser_selection_changed_cb
|
||||||
*
|
*
|
||||||
* call back for ok button in file chooser widget
|
* call back for file chooser widget
|
||||||
**************************************************/
|
**************************************************/
|
||||||
void
|
void
|
||||||
csv_import_file_chooser_confirm_cb (GtkWidget *button, CsvImportInfo *info)
|
csv_import_file_chooser_selection_changed_cb (GtkFileChooser *chooser, CsvImportInfo *info)
|
||||||
{
|
{
|
||||||
GtkAssistant *assistant = GTK_ASSISTANT(info->window);
|
GtkAssistant *assistant = GTK_ASSISTANT(info->window);
|
||||||
gint num = gtk_assistant_get_current_page (assistant);
|
|
||||||
GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
|
|
||||||
|
|
||||||
gchar *file_name;
|
gchar *file_name;
|
||||||
csv_import_result res;
|
|
||||||
|
|
||||||
gtk_assistant_set_page_complete (assistant, page, FALSE);
|
gtk_assistant_set_page_complete (assistant, info->file_page, FALSE);
|
||||||
|
gtk_assistant_set_page_complete (assistant, info->account_page, FALSE);
|
||||||
|
|
||||||
file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(info->file_chooser));
|
file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(info->file_chooser));
|
||||||
|
|
||||||
if (file_name)
|
if (file_name && !g_file_test (file_name, G_FILE_TEST_IS_DIR))
|
||||||
{
|
{
|
||||||
gchar *filepath = gnc_uri_get_path (file_name);
|
gchar *filepath = gnc_uri_get_path (file_name);
|
||||||
gchar *filedir = g_path_get_dirname (filepath);
|
gchar *filedir = g_path_get_dirname (filepath);
|
||||||
@ -164,25 +161,12 @@ csv_import_file_chooser_confirm_cb (GtkWidget *button, CsvImportInfo *info)
|
|||||||
|
|
||||||
info->file_name = g_strdup (file_name);
|
info->file_name = g_strdup (file_name);
|
||||||
|
|
||||||
// generate preview
|
gtk_assistant_set_page_complete (assistant, info->file_page, TRUE);
|
||||||
gtk_list_store_clear (info->store);
|
|
||||||
res = csv_import_read_file (info->file_name, info->regexp->str, info->store, 1 );
|
|
||||||
if (res == RESULT_OPEN_FAILED)
|
|
||||||
gnc_error_dialog (GTK_WINDOW (info->window), _("The input file can not be opened."));
|
|
||||||
else if (res == RESULT_OK)
|
|
||||||
gtk_assistant_set_page_complete (assistant, page, TRUE);
|
|
||||||
else if (res == MATCH_FOUND)
|
|
||||||
gtk_assistant_set_page_complete (assistant, page, TRUE);
|
|
||||||
}
|
}
|
||||||
g_free (file_name);
|
g_free (file_name);
|
||||||
|
|
||||||
DEBUG("file_name selected is %s", info->file_name);
|
DEBUG("file_name selected is %s", info->file_name);
|
||||||
DEBUG("starting directory is %s", info->starting_dir);
|
DEBUG("starting directory is %s", info->starting_dir);
|
||||||
|
|
||||||
/* Step to next page if page is complete */
|
|
||||||
if(gtk_assistant_get_page_complete (assistant, page))
|
|
||||||
gtk_assistant_set_current_page (assistant, num + 1);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -385,15 +369,13 @@ csv_import_assistant_file_page_prepare (GtkAssistant *assistant,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
CsvImportInfo *info = user_data;
|
CsvImportInfo *info = user_data;
|
||||||
gint num = gtk_assistant_get_current_page (assistant);
|
|
||||||
GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
|
|
||||||
|
|
||||||
/* Set the default directory */
|
/* Set the default directory */
|
||||||
if (info->starting_dir)
|
if (info->starting_dir)
|
||||||
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
|
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
|
||||||
|
|
||||||
/* Disable the Forward Assistant Button */
|
/* Disable the Forward Assistant Button */
|
||||||
gtk_assistant_set_page_complete (assistant, page, FALSE);
|
gtk_assistant_set_page_complete (assistant, info->file_page, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -402,7 +384,25 @@ csv_import_assistant_account_page_prepare (GtkAssistant *assistant,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
CsvImportInfo *info = user_data;
|
CsvImportInfo *info = user_data;
|
||||||
|
csv_import_result res;
|
||||||
|
|
||||||
|
/* Disable the Forward Assistant Button */
|
||||||
|
gtk_assistant_set_page_complete (assistant, info->account_page, FALSE);
|
||||||
|
|
||||||
|
/* test read one line */
|
||||||
|
gtk_list_store_clear (info->store);
|
||||||
|
res = csv_import_read_file (info->file_name, info->regexp->str, info->store, 1 );
|
||||||
|
if (res == RESULT_OPEN_FAILED)
|
||||||
|
{
|
||||||
|
gnc_error_dialog (GTK_WINDOW (info->window), _("The input file can not be opened."));
|
||||||
|
gtk_assistant_previous_page (assistant);
|
||||||
|
}
|
||||||
|
else if (res == RESULT_OK)
|
||||||
|
gtk_assistant_set_page_complete (assistant, info->account_page, TRUE);
|
||||||
|
else if (res == MATCH_FOUND)
|
||||||
|
gtk_assistant_set_page_complete (assistant, info->account_page, TRUE);
|
||||||
|
|
||||||
|
// generate preview
|
||||||
gtk_list_store_clear (info->store);
|
gtk_list_store_clear (info->store);
|
||||||
|
|
||||||
gtk_widget_set_sensitive (info->header_row_spin, TRUE);
|
gtk_widget_set_sensitive (info->header_row_spin, TRUE);
|
||||||
@ -419,8 +419,6 @@ csv_import_assistant_finish_page_prepare (GtkAssistant *assistant,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
CsvImportInfo *info = user_data;
|
CsvImportInfo *info = user_data;
|
||||||
gint num = gtk_assistant_get_current_page (assistant);
|
|
||||||
GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
|
|
||||||
gchar *text;
|
gchar *text;
|
||||||
|
|
||||||
/* Set Finish page text */
|
/* Set Finish page text */
|
||||||
@ -441,7 +439,7 @@ csv_import_assistant_finish_page_prepare (GtkAssistant *assistant,
|
|||||||
gnc_set_default_directory (GNC_PREFS_GROUP, info->starting_dir);
|
gnc_set_default_directory (GNC_PREFS_GROUP, info->starting_dir);
|
||||||
|
|
||||||
/* Enable the Assistant Buttons */
|
/* Enable the Assistant Buttons */
|
||||||
gtk_assistant_set_page_complete (assistant, page, TRUE);
|
gtk_assistant_set_page_complete (assistant, info->finish_label, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -569,7 +567,6 @@ csv_import_assistant_create (CsvImportInfo *info)
|
|||||||
{
|
{
|
||||||
GtkBuilder *builder;
|
GtkBuilder *builder;
|
||||||
GtkWidget *window;
|
GtkWidget *window;
|
||||||
GtkWidget *box, *h_box;
|
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
GtkTreeViewColumn *column;
|
GtkTreeViewColumn *column;
|
||||||
@ -607,25 +604,16 @@ csv_import_assistant_create (CsvImportInfo *info)
|
|||||||
/* Start Page */
|
/* Start Page */
|
||||||
|
|
||||||
/* File chooser Page */
|
/* File chooser Page */
|
||||||
|
info->file_page = GTK_WIDGET(gtk_builder_get_object(builder, "file_page"));
|
||||||
info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_OPEN);
|
info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||||
g_signal_connect (G_OBJECT(info->file_chooser), "file-activated",
|
g_signal_connect (G_OBJECT(info->file_chooser), "selection-changed",
|
||||||
G_CALLBACK(csv_import_file_chooser_confirm_cb), info);
|
G_CALLBACK(csv_import_file_chooser_selection_changed_cb), info);
|
||||||
button = gtk_button_new_with_mnemonic (_("_OK"));
|
|
||||||
gtk_widget_set_size_request (button, 100, -1);
|
|
||||||
gtk_widget_show (button);
|
|
||||||
h_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
|
||||||
gtk_box_set_homogeneous (GTK_BOX (h_box), TRUE);
|
|
||||||
gtk_widget_set_hexpand (GTK_WIDGET(h_box), TRUE);
|
|
||||||
gtk_box_pack_start (GTK_BOX(h_box), button, FALSE, FALSE, 0);
|
|
||||||
gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER(info->file_chooser), h_box);
|
|
||||||
g_signal_connect (G_OBJECT(button), "clicked",
|
|
||||||
G_CALLBACK(csv_import_file_chooser_confirm_cb), info);
|
|
||||||
|
|
||||||
box = GTK_WIDGET(gtk_builder_get_object(builder, "file_page"));
|
gtk_box_pack_start (GTK_BOX(info->file_page), info->file_chooser, TRUE, TRUE, 6);
|
||||||
gtk_box_pack_start (GTK_BOX(box), info->file_chooser, TRUE, TRUE, 6);
|
|
||||||
gtk_widget_show (info->file_chooser);
|
gtk_widget_show (info->file_chooser);
|
||||||
|
|
||||||
/* Account Tree Page */
|
/* Account Tree Page */
|
||||||
|
info->account_page = GTK_WIDGET(gtk_builder_get_object(builder, "import_tree_page"));
|
||||||
info->header_row_spin = GTK_WIDGET(gtk_builder_get_object (builder, "num_hrows"));
|
info->header_row_spin = GTK_WIDGET(gtk_builder_get_object (builder, "num_hrows"));
|
||||||
info->tree_view = GTK_WIDGET(gtk_builder_get_object (builder, "treeview"));
|
info->tree_view = GTK_WIDGET(gtk_builder_get_object (builder, "treeview"));
|
||||||
|
|
||||||
|
@ -51,6 +51,9 @@ typedef struct
|
|||||||
GtkWidget *summary_label;
|
GtkWidget *summary_label;
|
||||||
GtkWidget *summary_error_view;
|
GtkWidget *summary_error_view;
|
||||||
|
|
||||||
|
GtkWidget *file_page;
|
||||||
|
GtkWidget *account_page;
|
||||||
|
|
||||||
gchar *starting_dir;
|
gchar *starting_dir;
|
||||||
gchar *file_name;
|
gchar *file_name;
|
||||||
gchar *error;
|
gchar *error;
|
||||||
|
Loading…
Reference in New Issue
Block a user