gnucash stable: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Sun Nov 12 14:17:12 EST 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/6be12c57 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b7f23103 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/dcb24a24 (commit)
	from  https://github.com/Gnucash/gnucash/commit/fdcb8b46 (commit)



commit 6be12c57cd1c7d7dc70acd668f1a69548829ae05
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Nov 12 11:08:35 2023 -0800

    Qif Import assistant: Extract function mark_page_complete
    
    and remove unnecessary calls to gtk_assistant_update_buttons_state
    because gtk_assistant_set_page_complete does that.

diff --git a/gnucash/import-export/qif-imp/assistant-qif-import.c b/gnucash/import-export/qif-imp/assistant-qif-import.c
index 0ae747ab90..c91caa8845 100644
--- a/gnucash/import-export/qif-imp/assistant-qif-import.c
+++ b/gnucash/import-export/qif-imp/assistant-qif-import.c
@@ -286,6 +286,13 @@ void gnc_ui_qif_import_end_page_prepare (GtkAssistant *assistant, gpointer user_
 
 void gnc_ui_qif_import_summary_page_prepare (GtkAssistant *assistant, gpointer user_data);
 
+static inline void
+mark_page_complete (GtkAssistant *assistant, gboolean page_status)
+{
+    gint num = gtk_assistant_get_current_page (assistant);
+    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
+    gtk_assistant_set_page_complete (assistant, page, page_status);
+}
 
 /****************************************************************
  * update_account_picker_page
@@ -1739,8 +1746,6 @@ gnc_ui_qif_import_load_file_prepare (GtkAssistant *assistant, gpointer user_data
     const gchar * path_to_load;
     gboolean page_status = FALSE;
 
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     /* Get the file name. */
     path_to_load = gtk_entry_get_text (GTK_ENTRY(wind->filename_entry));
@@ -1750,7 +1755,7 @@ gnc_ui_qif_import_load_file_prepare (GtkAssistant *assistant, gpointer user_data
     {
        page_status = gnc_ui_qif_import_load_file_complete (assistant, user_data);
     }
-    gtk_assistant_set_page_complete (assistant, page, page_status);
+    mark_page_complete(assistant, page_status);
 }
 
 
@@ -1768,8 +1773,6 @@ gnc_ui_qif_import_select_file_cb (GtkButton * button,
     QIFImportWindow * wind = user_data;
 
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     GtkFileFilter *filter;
     char * new_file_name;
@@ -1811,8 +1814,8 @@ gnc_ui_qif_import_select_file_cb (GtkButton * button,
     gtk_entry_set_text (GTK_ENTRY(wind->filename_entry), file_name);
     g_free (file_name);
 
-    gtk_assistant_set_page_complete (assistant, page,
-                                     gnc_ui_qif_import_load_file_complete (assistant, user_data));
+    mark_page_complete (assistant,
+                        gnc_ui_qif_import_load_file_complete (assistant, user_data));
 }
 
 
@@ -1869,8 +1872,6 @@ gnc_ui_qif_import_load_progress_start_cb (GtkButton * button,
 {
     QIFImportWindow   *wind = user_data;
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     const gchar * path_to_load;
 
@@ -2096,7 +2097,7 @@ gnc_ui_qif_import_load_progress_start_cb (GtkButton * button,
     }
 
     /* Enable the assistant "Next" button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 
     /* Set Pause and Start buttons */
     gtk_widget_set_sensitive (wind->load_pause, FALSE);
@@ -2132,8 +2133,6 @@ void
 gnc_ui_qif_import_load_progress_prepare (GtkAssistant  *assistant, gpointer user_data)
 {
     QIFImportWindow   *wind = user_data;
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     /* Reset the progress display. */
     gnc_progress_dialog_set_primary (wind->load_progress, "");
@@ -2148,7 +2147,7 @@ gnc_ui_qif_import_load_progress_prepare (GtkAssistant  *assistant, gpointer user
     gtk_widget_set_sensitive (wind->load_start, TRUE);
 
     /* Disable the assistant "Next" button */
-    gtk_assistant_set_page_complete (assistant, page, FALSE);
+    mark_page_complete (assistant, FALSE);
 }
 
 
@@ -2194,8 +2193,6 @@ gnc_ui_qif_import_date_valid_cb (GtkWidget *widget, gpointer user_data)
     GtkTreeIter iter;
 
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     /* Get the selected date format. */
     model = gtk_combo_box_get_model (GTK_COMBO_BOX(wind->date_format_combo));
@@ -2209,7 +2206,7 @@ gnc_ui_qif_import_date_valid_cb (GtkWidget *widget, gpointer user_data)
 
     qif_import_reparse_dates (wind);
 
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 /******************************************
@@ -2278,20 +2275,18 @@ gnc_ui_qif_import_acct_enter_cb (GtkWidget * widget,
     QIFImportWindow * wind = user_data;
 
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     const gchar * acct_name = gtk_entry_get_text (GTK_ENTRY(wind->acct_entry));
 
     if (!acct_name || acct_name[0] == 0)
     {
         /* Disable the assistant "Next" Button */
-        gtk_assistant_set_page_complete (assistant, page, FALSE);
+        mark_page_complete (assistant, FALSE);
     }
     else
     {
         /* Enable the assistant "Next" Button and proceed */
-        gtk_assistant_set_page_complete (assistant, page, TRUE);
+        mark_page_complete (assistant, TRUE);
 
         /* Move on to the next page automatically */
         gtk_assistant_next_page (assistant);
@@ -2311,20 +2306,18 @@ gnc_ui_qif_import_acct_valid_cb (GtkWidget * widget,
     QIFImportWindow * wind = user_data;
 
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     const gchar * acct_name = gtk_entry_get_text (GTK_ENTRY(wind->acct_entry));
 
     if (!acct_name || acct_name[0] == 0)
     {
         /* Disable the assistant "Next" Button */
-        gtk_assistant_set_page_complete (assistant, page, FALSE);
+        mark_page_complete (assistant, FALSE);
     }
     else
     {
         /* Enable the assistant "Next" Button */
-        gtk_assistant_set_page_complete (assistant, page, TRUE);
+        mark_page_complete (assistant, TRUE);
     }
 }
 
@@ -2344,9 +2337,6 @@ gnc_ui_qif_import_loaded_files_prepare (GtkAssistant *assistant,
 {
     QIFImportWindow * wind = user_data;
 
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-
     const gchar * acct_name = gtk_entry_get_text (GTK_ENTRY(wind->acct_entry));
     SCM    fix_default = scm_c_eval_string ("qif-import:fix-from-acct");
     SCM    scm_name;
@@ -2357,7 +2347,7 @@ gnc_ui_qif_import_loaded_files_prepare (GtkAssistant *assistant,
         scm_call_2 (fix_default, wind->selected_file, scm_name);
 
         /* Enable the assistant "Next" Button */
-        gtk_assistant_set_page_complete (assistant, page, TRUE);
+        mark_page_complete (assistant, TRUE);
     }
 
     update_file_page (wind);
@@ -2432,8 +2422,6 @@ update_file_page (QIFImportWindow * wind)
     GtkTreeRowReference *reference = NULL;
 
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
     gint num_of_files = 0;
 
     /* clear the list */
@@ -2442,7 +2430,7 @@ update_file_page (QIFImportWindow * wind)
     gtk_list_store_clear (store);
     qif_file_path = scm_c_eval_string ("qif-file:path");
 
-    gtk_assistant_set_page_complete (assistant, page, FALSE);
+    mark_page_complete (assistant, FALSE);
 
     while (!scm_is_null (loaded_file_list))
     {
@@ -2484,7 +2472,7 @@ update_file_page (QIFImportWindow * wind)
     num_of_files = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(store), NULL);
 
     if (num_of_files > 0)
-        gtk_assistant_set_page_complete (assistant, page, TRUE);
+        mark_page_complete (assistant, TRUE);
     else
     {
         /*  TODO: It would be ideal to disable the back button at this point
@@ -2518,13 +2506,8 @@ void
 gnc_ui_qif_import_account_doc_prepare (GtkAssistant *assistant,
                                        gpointer user_data)
 {
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-    gtk_assistant_update_buttons_state (assistant);
-
-
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 /********************************************************************
@@ -2552,8 +2535,6 @@ gnc_ui_qif_import_account_match_prepare (GtkAssistant *assistant,
                                          gpointer user_data)
 {
     QIFImportWindow * wind = user_data;
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     /* Prepare the matching pages. */
     gnc_set_busy_cursor (NULL, TRUE);
@@ -2563,7 +2544,7 @@ gnc_ui_qif_import_account_match_prepare (GtkAssistant *assistant,
     gnc_unset_busy_cursor (NULL);
 
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 
@@ -2600,12 +2581,8 @@ void
 gnc_ui_qif_import_category_doc_prepare (GtkAssistant *assistant,
                                         gpointer user_data)
 {
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-    gtk_assistant_update_buttons_state (assistant);
-
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 /********************************************************************
@@ -2642,11 +2619,8 @@ void
 gnc_ui_qif_import_category_match_prepare (GtkAssistant *assistant,
         gpointer user_data)
 {
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 /********************************************************************
@@ -2697,13 +2671,8 @@ gnc_ui_qif_import_category_rematch_cb (GtkButton *button, gpointer user_data)
 void
 gnc_ui_qif_import_memo_doc_prepare (GtkAssistant *assistant, gpointer user_data)
 {
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-    gtk_assistant_update_buttons_state (assistant);
-
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
-
+    mark_page_complete (assistant, TRUE);
 }
 
 /********************************************************************
@@ -2739,12 +2708,8 @@ gnc_ui_qif_import_skip_memo_doc (QIFImportWindow *wind)
 void
 gnc_ui_qif_import_memo_match_prepare (GtkAssistant *assistant, gpointer user_data)
 {
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
-
+    mark_page_complete (assistant, TRUE);
 }
 
 /********************************************************************
@@ -2821,7 +2786,7 @@ gnc_ui_qif_import_currency_prepare (GtkAssistant *assistant, gpointer user_data)
     }
 
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 
@@ -2945,14 +2910,10 @@ void
 gnc_ui_qif_import_commodity_prepare (GtkAssistant *assistant, gpointer user_data)
 {
     QIFImportWindow *wind = user_data;
-    gint              num = gtk_assistant_get_current_page (assistant);
-    GtkWidget       *page = gtk_assistant_get_nth_page (assistant, num);
-
-    gtk_assistant_update_buttons_state (assistant);
 
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page,
-                                     gnc_ui_qif_import_commodity_all_notebook_pages_complete (wind));
+    mark_page_complete (assistant,
+                        gnc_ui_qif_import_commodity_all_notebook_pages_complete (wind));
 
     /* If there are new securities, prepare the security pages. */
     if (wind->new_securities != SCM_BOOL_F)
@@ -3074,11 +3035,9 @@ gnc_ui_qif_import_comm_changed_cb (GtkWidget *widget, gpointer user_data)
 {
     QIFImportWindow *wind = user_data;
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
-    gtk_assistant_set_page_complete (assistant, page,
-                                     gnc_ui_qif_import_comm_valid (assistant, user_data));
+    mark_page_complete (assistant,
+                        gnc_ui_qif_import_comm_valid (assistant, user_data));
 }
 
 
@@ -3087,11 +3046,9 @@ do_page_check (gpointer user_data)
 {
     QIFImportWindow *wind = user_data;
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
-    gtk_assistant_set_page_complete (assistant, page,
-                                     gnc_ui_qif_import_comm_valid (assistant, wind));
+    mark_page_complete (assistant,
+                        gnc_ui_qif_import_comm_valid (assistant, wind));
 
     wind->timeout_id = 0;
     return FALSE;
@@ -3169,8 +3126,6 @@ gnc_ui_qif_import_convert_progress_start_cb (GtkButton * button,
 {
     QIFImportWindow   *wind = user_data;
     GtkAssistant *assistant = GTK_ASSISTANT(wind->window);
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     SCM qif_to_gnc      = scm_c_eval_string ("qif-import:qif-to-gnc");
     SCM find_duplicates = scm_c_eval_string ("gnc:account-tree-find-duplicates");
@@ -3333,7 +3288,7 @@ gnc_ui_qif_import_convert_progress_start_cb (GtkButton * button,
         }
     }
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 
     /* Set Pause and Start buttons */
     gtk_widget_set_sensitive (wind->convert_pause, FALSE);
@@ -3367,11 +3322,6 @@ gnc_ui_qif_import_convert_progress_prepare (GtkAssistant *assistant,
         gpointer user_data)
 {
     QIFImportWindow   *wind = user_data;
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-
-    /* Recompute assistant Buttons */
-    gtk_assistant_update_buttons_state (assistant);
 
     /* Reset the progress display. */
     gnc_progress_dialog_set_primary (wind->convert_progress, "");
@@ -3388,7 +3338,7 @@ gnc_ui_qif_import_convert_progress_prepare (GtkAssistant *assistant,
     gtk_widget_set_sensitive (wind->convert_start, TRUE);
 
     /* Disable the assistant "Next" button */
-    gtk_assistant_set_page_complete (assistant, page, FALSE);
+    mark_page_complete (assistant, FALSE);
 
     /* Before creating transactions, if this is a new book, let user specify
      * book options, since they affect how transactions are created */
@@ -3408,12 +3358,8 @@ void
 gnc_ui_qif_import_duplicates_doc_prepare (GtkAssistant *assistant,
         gpointer user_data)
 {
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-    gtk_assistant_update_buttons_state (assistant);
-
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 
 }
 
@@ -3448,8 +3394,6 @@ gnc_ui_qif_import_duplicates_match_prepare (GtkAssistant *assistant,
         gpointer user_data)
 {
     QIFImportWindow * wind = user_data;
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
 
     GtkTreeView      *view;
     GtkListStore     *store;
@@ -3518,7 +3462,7 @@ gnc_ui_qif_import_duplicates_match_prepare (GtkAssistant *assistant,
     }
 
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 /********************************************************************
@@ -3545,11 +3489,8 @@ void
 gnc_ui_qif_import_end_page_prepare (GtkAssistant *assistant,
                                     gpointer user_data)
 {
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 
@@ -3622,9 +3563,6 @@ gnc_ui_qif_import_summary_page_prepare (GtkAssistant *assistant,
                                         gpointer user_data)
 {
     QIFImportWindow * wind = user_data;
-    gint num = gtk_assistant_get_current_page (assistant);
-    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
-
     gchar *text;
 
     if (wind->load_stop)
@@ -3637,7 +3575,7 @@ gnc_ui_qif_import_summary_page_prepare (GtkAssistant *assistant,
     g_free (text);
 
     /* Enable the Assistant "Next" Button */
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
+    mark_page_complete (assistant, TRUE);
 }
 
 

commit b7f231030f7030f487ee3a5bb8c34dfba18fbe83
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Nov 12 10:40:43 2023 -0800

    Qif import assistant: Use Enter and Leave macros
    
    Instead of "Visibility Page" and "Builder Page" which don't
    communicate well what function is running.

diff --git a/gnucash/import-export/qif-imp/assistant-qif-import.c b/gnucash/import-export/qif-imp/assistant-qif-import.c
index d362ecbadb..0ae747ab90 100644
--- a/gnucash/import-export/qif-imp/assistant-qif-import.c
+++ b/gnucash/import-export/qif-imp/assistant-qif-import.c
@@ -1488,62 +1488,64 @@ static gboolean
 gnc_ui_qif_import_assistant_skip_page (GtkAssistant *assistant, GtkWidget *page, QIFImportWindow *wind)
 {
     const char *pagename = gtk_buildable_get_name (GTK_BUILDABLE(page));
+    gboolean rv = FALSE;
 
-    PINFO ("Visibility page name is %s", gtk_buildable_get_name (GTK_BUILDABLE(page)));
+    ENTER("Page %s", pagename);
 
     if (!g_strcmp0 (pagename, "date_format_page"))
     {
         /* Current page is date page */
-        return gnc_ui_qif_import_skip_date_format (assistant, wind);
+        rv = gnc_ui_qif_import_skip_date_format (assistant, wind);
     }
     else if (!g_strcmp0 (pagename, "account_name_page"))
     {
         /* Current page is account page */
-        return gnc_ui_qif_import_skip_account (assistant, wind);
+        rv = gnc_ui_qif_import_skip_account (assistant, wind);
     }
     else if (!g_strcmp0 (pagename, "account_doc_page"))
     {
         /* Current page is  Account Doc. page */
-        return gnc_ui_qif_import_skip_account_doc (wind);
+        rv = gnc_ui_qif_import_skip_account_doc (wind);
     }
     else if (!g_strcmp0 (pagename, "category_doc_page"))
     {
         /* Current page is Category Doc. page */
-        return gnc_ui_qif_import_skip_category_doc (wind);
+        rv = gnc_ui_qif_import_skip_category_doc (wind);
     }
     else if (!g_strcmp0 (pagename, "category_match_page"))
     {
         /* Current page is Category Match page */
-        return gnc_ui_qif_import_skip_category_match (wind);
+        rv = gnc_ui_qif_import_skip_category_match (wind);
     }
     else if (!g_strcmp0 (pagename, "memo_doc_page"))
     {
         /* Current page is Memo Doc. page */
-        return gnc_ui_qif_import_skip_memo_doc (wind);
+        rv = gnc_ui_qif_import_skip_memo_doc (wind);
     }
     else if (!g_strcmp0 (pagename, "memo_match_page"))
     {
         /* Current page is Memo Match page */
-        return gnc_ui_qif_import_skip_memo_match (wind);
+        rv = gnc_ui_qif_import_skip_memo_match (wind);
     }
     else if (!g_strcmp0 (pagename, "commodity_page"))
     {
         /* Current page is Commodity page */
-        return gnc_ui_qif_import_skip_commodity (wind);
+        rv = gnc_ui_qif_import_skip_commodity (wind);
     }
     else if (!g_strcmp0 (pagename, "duplicates_doc_page"))
     {
         /* Current page is Duplicates Doc page */
-        return gnc_ui_qif_import_skip_duplicates_doc (wind);
+        rv = gnc_ui_qif_import_skip_duplicates_doc (wind);
     }
     else if (!g_strcmp0 (pagename, "duplicates_match_page"))
     {
         /* Current page is Duplicates Match page */
-        return gnc_ui_qif_import_skip_duplicates_match (wind);
+        rv = gnc_ui_qif_import_skip_duplicates_match (wind);
     }
 
     /* By default, we do not skip */
-    return FALSE;
+    LEAVE("%s", rv ? "Skipped" : "Not Skipped");
+    return rv;
 }
 
 
@@ -2520,7 +2522,6 @@ gnc_ui_qif_import_account_doc_prepare (GtkAssistant *assistant,
     GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
     gtk_assistant_update_buttons_state (assistant);
 
-    PINFO ("Total Number of Assistant Pages is %d", gtk_assistant_get_n_pages (assistant));
 
     /* Enable the Assistant "Next" Button */
     gtk_assistant_set_page_complete (assistant, page, TRUE);
@@ -2603,8 +2604,6 @@ gnc_ui_qif_import_category_doc_prepare (GtkAssistant *assistant,
     GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
     gtk_assistant_update_buttons_state (assistant);
 
-    PINFO ("Total Number of Assistant Pages is %d", gtk_assistant_get_n_pages (assistant));
-
     /* Enable the Assistant "Next" Button */
     gtk_assistant_set_page_complete (assistant, page, TRUE);
 }
@@ -2702,8 +2701,6 @@ gnc_ui_qif_import_memo_doc_prepare (GtkAssistant *assistant, gpointer user_data)
     GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
     gtk_assistant_update_buttons_state (assistant);
 
-    PINFO ("Total Number of Assistant Pages is %d", gtk_assistant_get_n_pages (assistant));
-
     /* Enable the Assistant "Next" Button */
     gtk_assistant_set_page_complete (assistant, page, TRUE);
 
@@ -2953,8 +2950,6 @@ gnc_ui_qif_import_commodity_prepare (GtkAssistant *assistant, gpointer user_data
 
     gtk_assistant_update_buttons_state (assistant);
 
-    PINFO ("Total Number of Assistant Pages is %d", gtk_assistant_get_n_pages (assistant));
-
     /* Enable the Assistant "Next" Button */
     gtk_assistant_set_page_complete (assistant, page,
                                      gnc_ui_qif_import_commodity_all_notebook_pages_complete (wind));
@@ -3417,8 +3412,6 @@ gnc_ui_qif_import_duplicates_doc_prepare (GtkAssistant *assistant,
     GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
     gtk_assistant_update_buttons_state (assistant);
 
-    PINFO ("Total Number of Assistant Pages is %d", gtk_assistant_get_n_pages (assistant));
-
     /* Enable the Assistant "Next" Button */
     gtk_assistant_set_page_complete (assistant, page, TRUE);
 
@@ -3658,7 +3651,7 @@ void gnc_ui_qif_import_prepare_cb (GtkAssistant  *assistant, GtkWidget *page,
     GtkWidget *mypage = gtk_assistant_get_nth_page (assistant, currentpage);
     const char *pagename = gtk_buildable_get_name (GTK_BUILDABLE(mypage));
 
-    PINFO ("Builder Page Name is %s", gtk_buildable_get_name (GTK_BUILDABLE(mypage)));
+    ENTER("Page %s", pagename);
 
     if (!g_strcmp0 (pagename, "start_page"))
     {
@@ -3755,6 +3748,7 @@ void gnc_ui_qif_import_prepare_cb (GtkAssistant  *assistant, GtkWidget *page,
         /* Current page is the summary page */
         gnc_ui_qif_import_summary_page_prepare (assistant, user_data);
     }
+    LEAVE("");
 }
 
 
@@ -4016,15 +4010,17 @@ gnc_ui_qif_import_assistant_make (QIFImportWindow *qif_win)
 
     /* Get all interesting builder-defined widgets. */
     get_assistant_widgets (qif_win, builder);
+    GtkAssistant *assistant = GTK_ASSISTANT(qif_win->window);
 
     /* Make this window stay on top */
     gtk_window_set_transient_for (GTK_WINDOW(qif_win->window), gnc_ui_get_main_window (NULL));
 
     /* Build the details of all GtkTreeView widgets. */
     build_views (qif_win);
+    PINFO ("Total Number of Assistant Pages is %d", gtk_assistant_get_n_pages (assistant));
 
     /* Establish a custom next page function. */
-    gtk_assistant_set_forward_page_func(GTK_ASSISTANT(qif_win->window),
+    gtk_assistant_set_forward_page_func(assistant,
                                         gnc_ui_qif_import_assistant_page_forward, qif_win, NULL);
 
     /* Currency Page */

commit dcb24a2460a2f94ddef13293cf276c399b8c7240
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Nov 12 10:10:41 2023 -0800

    Bug 799113 - "Start Import" button reports "Failed"
    
    Because acting on the date format selection was in the skipped
    gnc_ui_qif_import_account_prepare. Move the action to
    gnc_ui_qif_import_date_valid_cb so that it's done every time the date
    format page is visited.

diff --git a/gnucash/import-export/qif-imp/assistant-qif-import.c b/gnucash/import-export/qif-imp/assistant-qif-import.c
index 09f30d7c93..d362ecbadb 100644
--- a/gnucash/import-export/qif-imp/assistant-qif-import.c
+++ b/gnucash/import-export/qif-imp/assistant-qif-import.c
@@ -2171,6 +2171,19 @@ gnc_ui_qif_import_skip_date_format (GtkAssistant *assistant, QIFImportWindow *wi
  *
  * Reparse file with new date format.
  ********************************************************************/
+static void
+qif_import_reparse_dates (QIFImportWindow* wind)
+{
+    SCM  reparse_dates   = scm_c_eval_string ("qif-file:reparse-dates");
+    SCM format_sym = scm_from_locale_symbol (wind->date_format);
+
+    /* Reparse the dates using the selected format. */
+    scm_call_2 (reparse_dates, wind->selected_file, format_sym);
+    g_free (wind->date_format);
+    wind->date_format = NULL;
+    wind->ask_date_format = FALSE;
+}
+
 void
 gnc_ui_qif_import_date_valid_cb (GtkWidget *widget, gpointer user_data)
 {
@@ -2192,20 +2205,9 @@ gnc_ui_qif_import_date_valid_cb (GtkWidget *widget, gpointer user_data)
         g_critical ("QIF import: BUG DETECTED in gnc_ui_qif_import_date_valid_cb. Format is NULL.");
     }
 
-    gtk_assistant_set_page_complete (assistant, page, TRUE);
-}
-
-static void
-qif_import_reparse_dates (QIFImportWindow* wind)
-{
-    SCM  reparse_dates   = scm_c_eval_string ("qif-file:reparse-dates");
-    SCM format_sym = scm_from_locale_symbol (wind->date_format);
+    qif_import_reparse_dates (wind);
 
-    /* Reparse the dates using the selected format. */
-    scm_call_2 (reparse_dates, wind->selected_file, format_sym);
-    g_free (wind->date_format);
-    wind->date_format = NULL;
-    wind->ask_date_format = FALSE;
+    gtk_assistant_set_page_complete (assistant, page, TRUE);
 }
 
 /******************************************
@@ -2224,9 +2226,6 @@ gnc_ui_qif_import_account_prepare (GtkAssistant  *assistant, gpointer user_data)
 
     SCM  check_from_acct = scm_c_eval_string ("qif-file:check-from-acct");
 
-    if (wind->ask_date_format && wind->date_format)
-        qif_import_reparse_dates (wind);
-
     /* make sure there is a file selected, may have come back */
     if (wind->selected_file == SCM_BOOL_F)
     {



Summary of changes:
 .../import-export/qif-imp/assistant-qif-import.c   | 211 +++++++--------------
 1 file changed, 72 insertions(+), 139 deletions(-)



More information about the gnucash-changes mailing list