From b0b8d064aa113d298a44f9328cfded07e9ad6d49 Mon Sep 17 00:00:00 2001 From: Mike Evans Date: Sat, 1 Sep 2012 14:54:52 +0000 Subject: [PATCH] Bug #682869 - In CSV transaction importer, re-implement double mouse click for file selection. From a patch by Bob. Patch also resizes small OK button. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@22353 57a11ea4-9604-0410-9ed3-97b8803252fd --- .../csv-export/assistant-csv-export.c | 14 ++++++++-- .../csv-import/assistant-csv-account-import.c | 26 +++++++++++++++++-- .../assistant-csv-account-import.glade | 1 - .../csv-import/assistant-csv-trans-import.c | 3 +++ 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/import-export/csv-export/assistant-csv-export.c b/src/import-export/csv-export/assistant-csv-export.c index 91b8540aa7..eaaaf2df89 100644 --- a/src/import-export/csv-export/assistant-csv-export.c +++ b/src/import-export/csv-export/assistant-csv-export.c @@ -145,6 +145,10 @@ csv_export_file_chooser_confirm_cb (GtkWidget *button, CsvExportInfo *info) DEBUG("file_name selected is %s", info->file_name); 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); } @@ -849,7 +853,7 @@ csv_export_assistant_create (CsvExportInfo *info) { GtkBuilder *builder; GtkWidget *window; - GtkWidget *box; + GtkWidget *box, *h_box; GtkWidget *button; GtkWidget *table, *hbox; time_t start_time, end_time; @@ -975,11 +979,17 @@ csv_export_assistant_create (CsvExportInfo *info) /* File chooser Page */ info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_SAVE); button = gtk_button_new_from_stock(GTK_STOCK_OK); + gtk_widget_set_size_request (button, 100, -1); gtk_widget_show (button); - gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER(info->file_chooser), button); + h_box = gtk_hbox_new(TRUE, 0); + 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_export_file_chooser_confirm_cb), info); + + + box = GTK_WIDGET(gtk_builder_get_object(builder, "file_page")); gtk_box_pack_start (GTK_BOX (box), info->file_chooser, TRUE, TRUE, 6); gtk_widget_show (info->file_chooser); diff --git a/src/import-export/csv-import/assistant-csv-account-import.c b/src/import-export/csv-import/assistant-csv-account-import.c index cdaaf281dc..2aa8780bad 100644 --- a/src/import-export/csv-import/assistant-csv-account-import.c +++ b/src/import-export/csv-import/assistant-csv-account-import.c @@ -494,7 +494,7 @@ csv_import_assistant_create (CsvImportInfo *info) { GtkBuilder *builder; GtkWidget *window; - GtkWidget *box; + GtkWidget *box, *h_box; GtkWidget *button; GtkCellRenderer *renderer; GtkTreeViewColumn *column; @@ -511,13 +511,35 @@ csv_import_assistant_create (CsvImportInfo *info) /* Load default settings */ load_settings (info); + /* Enable buttons on all page. */ + gtk_assistant_set_page_complete (GTK_ASSISTANT (window), + GTK_WIDGET(gtk_builder_get_object(builder, "start_page")), + TRUE); + gtk_assistant_set_page_complete (GTK_ASSISTANT (window), + GTK_WIDGET(gtk_builder_get_object(builder, "file_page")), + FALSE); + gtk_assistant_set_page_complete (GTK_ASSISTANT (window), + GTK_WIDGET(gtk_builder_get_object(builder, "import_tree_page")), + TRUE); + gtk_assistant_set_page_complete (GTK_ASSISTANT (window), + GTK_WIDGET(gtk_builder_get_object(builder, "end_page")), + FALSE); + gtk_assistant_set_page_complete (GTK_ASSISTANT (window), + GTK_WIDGET(gtk_builder_get_object(builder, "summary_page")), + TRUE); + /* Start Page */ /* File chooser Page */ info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_OPEN); + g_signal_connect (G_OBJECT (info->file_chooser), "file-activated", + G_CALLBACK (csv_import_file_chooser_confirm_cb), info); button = gtk_button_new_from_stock(GTK_STOCK_OK); + gtk_widget_set_size_request (button, 100, -1); gtk_widget_show (button); - gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER(info->file_chooser), button); + h_box = gtk_hbox_new(TRUE, 0); + 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); diff --git a/src/import-export/csv-import/assistant-csv-account-import.glade b/src/import-export/csv-import/assistant-csv-account-import.glade index 715d34badd..bbdcfe38f2 100644 --- a/src/import-export/csv-import/assistant-csv-account-import.glade +++ b/src/import-export/csv-import/assistant-csv-account-import.glade @@ -69,7 +69,6 @@ Enter file name and location for the Import... - progress Choose File to Import diff --git a/src/import-export/csv-import/assistant-csv-trans-import.c b/src/import-export/csv-import/assistant-csv-trans-import.c index 2521e5b503..8b51f63109 100644 --- a/src/import-export/csv-import/assistant-csv-trans-import.c +++ b/src/import-export/csv-import/assistant-csv-trans-import.c @@ -1666,7 +1666,10 @@ csv_import_trans_assistant_create (CsvImportTrans *info) /* File chooser Page */ info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_OPEN); + g_signal_connect (G_OBJECT (info->file_chooser), "file-activated", + G_CALLBACK (csv_import_trans_file_chooser_confirm_cb), info); button = gtk_button_new_from_stock(GTK_STOCK_OK); + gtk_widget_set_size_request (button, 100, -1); gtk_widget_show (button); h_box = gtk_hbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(h_box), button, FALSE, FALSE, 0);