AUDIT: r17162 - gnucash/trunk/src/import-export/qif-import - Bug #475980: Fix the labeling of several QIF importer pages.

Charles Day cedayiv at cvs.gnucash.org
Sun May 18 18:20:21 EDT 2008


Author: cedayiv
Date: 2008-05-18 18:20:21 -0400 (Sun, 18 May 2008)
New Revision: 17162
Trac: http://svn.gnucash.org/trac/changeset/17162

Modified:
   gnucash/trunk/src/import-export/qif-import/druid-qif-import.c
   gnucash/trunk/src/import-export/qif-import/qif.glade
Log:
Bug #475980: Fix the labeling of several QIF importer pages.

The account, category, and memo matching pages have been redesigned to better comply with the HIG:
1. The labels that told (sometimes incorrectly) which page comes next are gone.
2. The lists now offer a mnemonic for keyboard navigation.
3. A count of selected matches is now indicated by a label.
4. A "Change" button has been added as a more obvious alternative to double-clicking.

On the currency page
1. The label that told (sometimes incorrectly) which page comes next is gone.
2. The remaining labels have been simplified.
3. A mnemonic is now offered for keyboard navigation.

Finally, some function names have been adjusted for consistency.
BP


Modified: gnucash/trunk/src/import-export/qif-import/druid-qif-import.c
===================================================================
--- gnucash/trunk/src/import-export/qif-import/druid-qif-import.c	2008-05-18 16:59:25 UTC (rev 17161)
+++ gnucash/trunk/src/import-export/qif-import/druid-qif-import.c	2008-05-18 22:20:21 UTC (rev 17162)
@@ -91,9 +91,22 @@
   GtkWidget * acct_entry;
   GtkWidget * date_format_combo;
   GtkWidget * selected_file_view;
+
+  /* Widgets on the account matching page. */
   GtkWidget * acct_view;
+  GtkWidget * acct_view_count;
+  GtkWidget * acct_view_btn;
+
+  /* Widgets on the category matching page. */
   GtkWidget * cat_view;
+  GtkWidget * cat_view_count;
+  GtkWidget * cat_view_btn;
+
+  /* Widgets on the memo matching page. */
   GtkWidget * memo_view;
+  GtkWidget * memo_view_count;
+  GtkWidget * memo_view_btn;
+
   GtkWidget * currency_picker;
   GtkWidget * new_transaction_view;
   GtkWidget * old_transaction_view;
@@ -143,8 +156,8 @@
                                           gnc_commodity * comm);
 
 static void update_file_page(QIFImportWindow * win);
-static void update_accounts_page(QIFImportWindow * win);
-static void update_categories_page(QIFImportWindow * win);
+static void update_account_page(QIFImportWindow * win);
+static void update_category_page(QIFImportWindow * win);
 static void update_memo_page(QIFImportWindow * win);
 
 static void update_account_picker_page(QIFImportWindow * wind,
@@ -1073,12 +1086,13 @@
 
 
 /****************************************************************
- * update_accounts_page
+ * update_account_page
+ *
  * update the QIF account -> GNC Account picker
  ****************************************************************/
 
 static void
-update_accounts_page(QIFImportWindow * wind)
+update_account_page(QIFImportWindow * wind)
 {
 
   SCM  make_account_display = scm_c_eval_string("qif-dialog:make-account-display");
@@ -1087,14 +1101,15 @@
                              wind->acct_map_info, &(wind->acct_display_info));
 }
 
+
 /****************************************************************
- * update_categories_page
+ * update_category_page
  *
  * update the QIF category -> GNC Account picker
  ****************************************************************/
 
 static void
-update_categories_page(QIFImportWindow * wind)
+update_category_page(QIFImportWindow * wind)
 {
   SCM  make_category_display = scm_c_eval_string("qif-dialog:make-category-display");
 
@@ -1102,6 +1117,7 @@
                              wind->cat_map_info, &(wind->cat_display_info));
 }
 
+
 /****************************************************************
  * update_memo_page
  *
@@ -1124,10 +1140,12 @@
 static void
 create_account_picker_view(GtkWidget *widget,
                            const gchar *col_name,
-                           GCallback callback,
+                           GCallback activate_cb,
+                           GCallback select_cb,
                            gpointer user_data)
 {
   GtkTreeView *view = GTK_TREE_VIEW(widget);
+  GtkTreeSelection *selection = gtk_tree_view_get_selection(view);
   GtkListStore *store;
   GtkCellRenderer *renderer;
   GtkTreeViewColumn *column;
@@ -1165,16 +1183,18 @@
   gtk_tree_view_append_column(view, column);
 
   g_object_set_data(G_OBJECT(store), PREV_ROW, GINT_TO_POINTER(-1));
-  g_signal_connect(view, "row-activated", G_CALLBACK(callback), user_data);
 
+  /* Connect the signal handlers. */
+  g_signal_connect(view, "row-activated", G_CALLBACK(activate_cb), user_data);
+  g_signal_connect(selection, "changed", G_CALLBACK(select_cb), user_data);
+
   /* Allow multiple rows to be selected. */
-  gtk_tree_selection_set_mode(gtk_tree_view_get_selection(view),
-                              GTK_SELECTION_MULTIPLE);
+  gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
 }
 
 
 /********************************************************************
- * select_line
+ * rematch_line
  *
  * This is a helper function for tree controls used by some druid
  * pages for mapping QIF values to GnuCash accounts. It processes
@@ -1185,8 +1205,8 @@
  ********************************************************************/
 
 static void
-select_line(QIFImportWindow *wind, GtkTreeSelection *selection,
-            SCM display_info, SCM map_info,
+rematch_line(QIFImportWindow *wind, GtkTreeSelection *selection,
+             SCM display_info, SCM map_info,
             void (*update_page)(QIFImportWindow *))
 {
   SCM           get_qif_name = scm_c_eval_string("qif-map-entry:qif-name");
@@ -1257,112 +1277,275 @@
   update_page(wind);
 }
 
+
 /********************************************************************
- * gnc_ui_qif_import_account_line_select_cb
- * when an account is clicked for editing in the "map QIF accts to GNC"
- * page.
+ * gnc_ui_qif_import_account_activate_cb
+ *
+ * This handler is invoked when a row is double-clicked in the "Match
+ * QIF accounts to GnuCash accounts" page.
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_account_line_select_cb(GtkTreeView *view, GtkTreePath *path,
-                                         GtkTreeViewColumn *column,
-                                         gpointer user_data)
+gnc_ui_qif_import_account_activate_cb(GtkTreeView *view, GtkTreePath *path,
+                                      GtkTreeViewColumn *column,
+                                      gpointer user_data)
 {
-  QIFImportWindow *wind = user_data;
-  GtkTreeSelection *selection;
+  QIFImportWindow  *wind = user_data;
 
-  g_return_if_fail(view && wind);
-  selection = gtk_tree_view_get_selection(view);
+  g_return_if_fail(wind);
 
-  select_line(wind, selection, wind->acct_display_info, wind->acct_map_info,
-              update_accounts_page);
+  rematch_line(wind, gtk_tree_view_get_selection(view),
+               wind->acct_display_info, wind->acct_map_info,
+               update_account_page);
 }
 
+
 /********************************************************************
- * gnc_ui_qif_import_category_line_select_cb
- * when a cat is clicked for editing in the "map QIF cats to GNC"
- * page.
+ * gnc_ui_qif_import_account_select_cb
+ *
+ * This handler is invoked when the selection of account matchings
+ * has changed.  It updates the selection count and enables/disables
+ * the "Change" button.
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_category_line_select_cb(GtkTreeView *view, GtkTreePath *path,
-                                         GtkTreeViewColumn *column,
-                                         gpointer user_data)
+gnc_ui_qif_import_account_select_cb(GtkTreeSelection *selection,
+                                    gpointer user_data)
 {
+  QIFImportWindow  *wind = user_data;
+  gint              count = gtk_tree_selection_count_selected_rows(selection);
+  gchar            *count_str;
+
+  g_return_if_fail(wind);
+
+  /* Update the "items selected" count. */
+  if (wind->acct_view_count)
+  {
+    count_str = g_strdup_printf("%d", count);
+    gtk_label_set_text(GTK_LABEL(wind->acct_view_count), count_str);
+    g_free(count_str);
+  }
+
+  /* Enable/disable the Change button. */
+  if (wind->acct_view_btn)
+  {
+    if (count)
+      gtk_widget_set_sensitive(wind->acct_view_btn, TRUE);
+    else
+      gtk_widget_set_sensitive(wind->acct_view_btn, FALSE);
+  }
+}
+
+
+/********************************************************************
+ * gnc_ui_qif_import_category_activate_cb
+ *
+ * This handler is invoked when a row is double-clicked in the "Match
+ * QIF categories to GnuCash accounts" page.
+ ********************************************************************/
+
+static void
+gnc_ui_qif_import_category_activate_cb(GtkTreeView *view, GtkTreePath *path,
+                                       GtkTreeViewColumn *column,
+                                       gpointer user_data)
+{
   QIFImportWindow *wind = user_data;
   GtkTreeSelection *selection;
 
   g_return_if_fail(view && wind);
   selection = gtk_tree_view_get_selection(view);
 
-  select_line(wind, selection, wind->cat_display_info, wind->cat_map_info,
-              update_categories_page);
+  rematch_line(wind, selection, wind->cat_display_info, wind->cat_map_info,
+               update_category_page);
 }
 
+
 /********************************************************************
- *  gnc_ui_qif_import_memo_line_select_cb
- *  when a memo is clicked for editing in the "map QIF memos to GNC"
- *  page.
+ * gnc_ui_qif_import_category_select_cb
+ *
+ * This handler is invoked when the selection of category matchings
+ * has changed.  It updates the selection count and enables/disables
+ * the "Change" button.
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_memo_line_select_cb(GtkTreeView *view, GtkTreePath *path,
-                                         GtkTreeViewColumn *column,
-                                         gpointer user_data)
+gnc_ui_qif_import_category_select_cb(GtkTreeSelection *selection,
+                                     gpointer user_data)
 {
+  QIFImportWindow  *wind = user_data;
+  gint              count = gtk_tree_selection_count_selected_rows(selection);
+  gchar            *count_str;
+
+  g_return_if_fail(wind);
+
+  /* Update the "items selected" count. */
+  if (wind->cat_view_count)
+  {
+    count_str = g_strdup_printf("%d", count);
+    gtk_label_set_text(GTK_LABEL(wind->cat_view_count), count_str);
+    g_free(count_str);
+  }
+
+  /* Enable/disable the Change button. */
+  if (wind->cat_view_btn)
+  {
+    if (count)
+      gtk_widget_set_sensitive(wind->cat_view_btn, TRUE);
+    else
+      gtk_widget_set_sensitive(wind->cat_view_btn, FALSE);
+  }
+}
+
+
+/********************************************************************
+ *  gnc_ui_qif_import_memo_activate_cb
+ *
+ * This handler is invoked when a row is double-clicked in the "Match
+ * QIF memo/payee to GnuCash accounts" page.
+ ********************************************************************/
+
+static void
+gnc_ui_qif_import_memo_activate_cb(GtkTreeView *view, GtkTreePath *path,
+                                   GtkTreeViewColumn *column,
+                                   gpointer user_data)
+{
   QIFImportWindow *wind = user_data;
   GtkTreeSelection *selection;
 
   g_return_if_fail(view && wind);
   selection = gtk_tree_view_get_selection(view);
 
-  select_line(wind, selection, wind->memo_display_info, wind->memo_map_info,
-              update_memo_page);
+  rematch_line(wind, selection, wind->memo_display_info, wind->memo_map_info,
+               update_memo_page);
 }
 
 
 /********************************************************************
- * gnc_ui_qif_import_accounts_prepare_cb
+ * gnc_ui_qif_import_memo_select_cb
+ *
+ * This handler is invoked when the selection of memo matchings
+ * has changed.  It updates the selection count and enables/disables
+ * the "Change" button.
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_accounts_prepare_cb(GnomeDruidPage * page,
-                                      gpointer arg1,
-                                      gpointer user_data)
+gnc_ui_qif_import_memo_select_cb(GtkTreeSelection *selection,
+                                 gpointer user_data)
 {
+  QIFImportWindow  *wind = user_data;
+  gint              count = gtk_tree_selection_count_selected_rows(selection);
+  gchar            *count_str;
+
+  g_return_if_fail(wind);
+
+  /* Update the "items selected" count. */
+  if (wind->memo_view_count)
+  {
+    count_str = g_strdup_printf("%d", count);
+    gtk_label_set_text(GTK_LABEL(wind->memo_view_count), count_str);
+    g_free(count_str);
+  }
+
+  /* Enable/disable the Change button. */
+  if (wind->memo_view_btn)
+  {
+    if (count)
+      gtk_widget_set_sensitive(wind->memo_view_btn, TRUE);
+    else
+      gtk_widget_set_sensitive(wind->memo_view_btn, FALSE);
+  }
+}
+
+
+/********************************************************************
+ * gnc_ui_qif_import_account_prepare_cb
+ ********************************************************************/
+
+static void
+gnc_ui_qif_import_account_prepare_cb(GnomeDruidPage * page,
+                                     gpointer arg1,
+                                     gpointer user_data)
+{
   QIFImportWindow * wind = user_data;
 
   gnc_set_busy_cursor(NULL, TRUE);
-  update_accounts_page(wind);
+  update_account_page(wind);
   gnc_unset_busy_cursor(NULL);
 }
 
 
+/****************************************************************
+ * gnc_ui_qif_import_account_rematch_cb
+ *
+ * This handler is invoked when the user clicks the "Change
+ * GnuCash account" button on the account mapping page. This
+ * button is an alternative to double-clicking a row.
+ ****************************************************************/
+
+static void
+gnc_ui_qif_import_account_rematch_cb(GtkButton *button, gpointer user_data)
+{
+  QIFImportWindow  *wind = user_data;
+
+  g_return_if_fail(wind);
+
+  rematch_line(wind,
+               gtk_tree_view_get_selection(GTK_TREE_VIEW(wind->acct_view)),
+               wind->acct_display_info,
+               wind->acct_map_info,
+               update_account_page);
+}
+
+
 /********************************************************************
- * gnc_ui_qif_import_categories_prepare_cb
+ * gnc_ui_qif_import_category_prepare_cb
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_categories_prepare_cb(GnomeDruidPage * page,
-                                        gpointer arg1,
-                                        gpointer user_data)
+gnc_ui_qif_import_category_prepare_cb(GnomeDruidPage * page,
+                                      gpointer arg1,
+                                      gpointer user_data)
 {
   QIFImportWindow * wind = user_data;
 
   gnc_set_busy_cursor(NULL, TRUE);
-  update_categories_page(wind);
+  update_category_page(wind);
   gnc_unset_busy_cursor(NULL);
 }
 
+
 /****************************************************************
- * gnc_ui_qif_import_categories_next_cb
+ * gnc_ui_qif_import_category_rematch_cb
+ *
+ * This handler is invoked when the user clicks the "Change
+ * GnuCash account" button on the category mapping page. This
+ * button is an alternative to double-clicking a row.
+ ****************************************************************/
+
+static void
+gnc_ui_qif_import_category_rematch_cb(GtkButton *button, gpointer user_data)
+{
+  QIFImportWindow  *wind = user_data;
+
+  g_return_if_fail(wind);
+
+  rematch_line(wind,
+               gtk_tree_view_get_selection(GTK_TREE_VIEW(wind->cat_view)),
+               wind->cat_display_info,
+               wind->cat_map_info,
+               update_category_page);
+}
+
+
+/****************************************************************
+ * gnc_ui_qif_import_category_next_cb
  * Check to see if there are any payees and memos to show. If not
  * jump to currency page.
  ****************************************************************/
 static gboolean
-gnc_ui_qif_import_categories_next_cb(GnomeDruidPage * page,
-                                     gpointer arg1,
-                                     gpointer user_data)
+gnc_ui_qif_import_category_next_cb(GnomeDruidPage * page,
+                                   gpointer arg1,
+                                   gpointer user_data)
 {
   QIFImportWindow * wind = user_data;
   SCM  make_memo_display = scm_c_eval_string("qif-dialog:make-memo-display");
@@ -1389,6 +1572,7 @@
   }
 }
 
+
 /********************************************************************
  * gnc_ui_qif_import_memo_prepare_cb
  ********************************************************************/
@@ -1407,6 +1591,29 @@
 
 
 /****************************************************************
+ * gnc_ui_qif_import_memo_rematch_cb
+ *
+ * This handler is invoked when the user clicks the "Change
+ * GnuCash account" button on the memo mapping page. This
+ * button is an alternative to double-clicking a row.
+ ****************************************************************/
+
+static void
+gnc_ui_qif_import_memo_rematch_cb(GtkButton *button, gpointer user_data)
+{
+  QIFImportWindow  *wind = user_data;
+
+  g_return_if_fail(wind);
+
+  rematch_line(wind,
+               gtk_tree_view_get_selection(GTK_TREE_VIEW(wind->memo_view)),
+               wind->memo_display_info,
+               wind->memo_map_info,
+               update_memo_page);
+}
+
+
+/****************************************************************
  * gnc_ui_qif_import_commodity_update
  *
  * This function updates the commodities based on the values for
@@ -2469,22 +2676,34 @@
      G_CALLBACK(gnc_ui_qif_import_default_acct_back_cb), retval);
 
   glade_xml_signal_connect_data
-    (xml, "gnc_ui_qif_import_accounts_prepare_cb",
-     G_CALLBACK(gnc_ui_qif_import_accounts_prepare_cb), retval);
+    (xml, "gnc_ui_qif_import_account_prepare_cb",
+     G_CALLBACK(gnc_ui_qif_import_account_prepare_cb), retval);
 
   glade_xml_signal_connect_data
-    (xml, "gnc_ui_qif_import_categories_prepare_cb",
-     G_CALLBACK(gnc_ui_qif_import_categories_prepare_cb), retval);
+    (xml, "gnc_ui_qif_import_account_rematch_cb",
+     G_CALLBACK(gnc_ui_qif_import_account_rematch_cb), retval);
 
   glade_xml_signal_connect_data
-    (xml, "gnc_ui_qif_import_categories_next_cb",
-     G_CALLBACK(gnc_ui_qif_import_categories_next_cb), retval);
+    (xml, "gnc_ui_qif_import_category_prepare_cb",
+     G_CALLBACK(gnc_ui_qif_import_category_prepare_cb), retval);
 
   glade_xml_signal_connect_data
+    (xml, "gnc_ui_qif_import_category_rematch_cb",
+     G_CALLBACK(gnc_ui_qif_import_category_rematch_cb), retval);
+
+  glade_xml_signal_connect_data
+    (xml, "gnc_ui_qif_import_category_next_cb",
+     G_CALLBACK(gnc_ui_qif_import_category_next_cb), retval);
+
+  glade_xml_signal_connect_data
     (xml, "gnc_ui_qif_import_memo_prepare_cb",
      G_CALLBACK(gnc_ui_qif_import_memo_prepare_cb), retval);
 
   glade_xml_signal_connect_data
+    (xml, "gnc_ui_qif_import_memo_rematch_cb",
+     G_CALLBACK(gnc_ui_qif_import_memo_rematch_cb), retval);
+
+  glade_xml_signal_connect_data
     (xml, "gnc_ui_qif_import_memo_next_cb",
      G_CALLBACK(gnc_ui_qif_import_memo_next_cb), retval);
 
@@ -2523,15 +2742,21 @@
   retval->match_transactions = SCM_BOOL_F;
   retval->selected_transaction = 0;
 
-  retval->druid          = glade_xml_get_widget(xml, "qif_import_druid");
-  retval->filename_entry = glade_xml_get_widget(xml, "qif_filename_entry");
-  retval->acct_entry     = glade_xml_get_widget(xml, "qif_account_entry");
+  retval->druid           = glade_xml_get_widget(xml, "qif_import_druid");
+  retval->filename_entry  = glade_xml_get_widget(xml, "qif_filename_entry");
+  retval->acct_entry      = glade_xml_get_widget(xml, "qif_account_entry");
   retval->date_format_combo = glade_xml_get_widget(xml, "date_format_combobox");
   retval->selected_file_view = glade_xml_get_widget(xml, "selected_file_view");
   retval->currency_picker = glade_xml_get_widget(xml, "currency_comboboxentry");
-  retval->acct_view      = glade_xml_get_widget(xml, "account_page_view");
-  retval->cat_view       = glade_xml_get_widget(xml, "category_page_view");
-  retval->memo_view      = glade_xml_get_widget(xml, "memo_page_view");
+  retval->acct_view       = glade_xml_get_widget(xml, "account_page_view");
+  retval->acct_view_count = glade_xml_get_widget(xml, "account_page_count");
+  retval->acct_view_btn   = glade_xml_get_widget(xml, "account_page_change");
+  retval->cat_view        = glade_xml_get_widget(xml, "category_page_view");
+  retval->cat_view_count  = glade_xml_get_widget(xml, "category_page_count");
+  retval->cat_view_btn    = glade_xml_get_widget(xml, "category_page_change");
+  retval->memo_view       = glade_xml_get_widget(xml, "memo_page_view");
+  retval->memo_view_count = glade_xml_get_widget(xml, "memo_page_count");
+  retval->memo_view_btn   = glade_xml_get_widget(xml, "memo_page_change");
   retval->new_transaction_view =
     glade_xml_get_widget(xml, "new_transaction_view");
   retval->old_transaction_view =
@@ -2591,14 +2816,22 @@
                    G_CALLBACK(gnc_ui_qif_import_select_loaded_file_cb),
                    retval);
 
+  /* Set up the QIF account to GnuCash account matcher. */
   create_account_picker_view(retval->acct_view, _("QIF account name"),
-                             G_CALLBACK(gnc_ui_qif_import_account_line_select_cb),
+                             G_CALLBACK(gnc_ui_qif_import_account_activate_cb),
+                             G_CALLBACK(gnc_ui_qif_import_account_select_cb),
                              retval);
+
+  /* Set up the QIF category to GnuCash account matcher. */
   create_account_picker_view(retval->cat_view,  _("QIF category name"),
-                             G_CALLBACK(gnc_ui_qif_import_category_line_select_cb),
+                             G_CALLBACK(gnc_ui_qif_import_category_activate_cb),
+                             G_CALLBACK(gnc_ui_qif_import_category_select_cb),
                              retval);
+
+  /* Set up the QIF payee/memo to GnuCash account matcher. */
   create_account_picker_view(retval->memo_view, _("QIF payee/memo"),
-                             G_CALLBACK(gnc_ui_qif_import_memo_line_select_cb),
+                             G_CALLBACK(gnc_ui_qif_import_memo_activate_cb),
+                             G_CALLBACK(gnc_ui_qif_import_memo_select_cb),
                              retval);
 
   /* Set up the new transaction view */

Modified: gnucash/trunk/src/import-export/qif-import/qif.glade
===================================================================
--- gnucash/trunk/src/import-export/qif-import/qif.glade	2008-05-18 16:59:25 UTC (rev 17161)
+++ gnucash/trunk/src/import-export/qif-import/qif.glade	2008-05-18 22:20:21 UTC (rev 17162)
@@ -87,12 +87,31 @@
 	  <property name="homogeneous">False</property>
 	  <property name="spacing">0</property>
 
-	  <child>
-	    <widget class="GtkFrame" id="frame1">
-	      <property name="visible">True</property>
-	      <property name="label_xalign">0</property>
-	      <property name="label_yalign">0.5</property>
-	      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+	      <child>
+		<widget class="GtkLabel" id="label1">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">_Select or add a GnuCash account:</property>
+		  <property name="use_underline">Yes</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">5</property>
+		  <property name="ypad">0</property>
+                  <property name="mnemonic_widget">account_tree</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">5</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
 
 	      <child>
 		<widget class="GtkScrolledWindow" id="scrolledwindow24">
@@ -117,36 +136,6 @@
 		  </child>
 		</widget>
 	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label1">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Select or add a GnuCash account</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">label_item</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -675,7 +664,7 @@
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Match QIF accounts with GnuCash accounts</property>
 	  <property name="title_foreground">#f5f5f5f5f5f5</property>
-	  <signal name="prepare" handler="gnc_ui_qif_import_accounts_prepare_cb"/>
+	  <signal name="prepare" handler="gnc_ui_qif_import_account_prepare_cb"/>
 	  <signal name="next" handler="gnc_ui_qif_import_generic_next_cb"/>
 	  <signal name="back" handler="gnc_ui_qif_import_generic_back_cb"/>
 
@@ -684,9 +673,35 @@
 	      <property name="border_width">25</property>
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
+	      <property name="spacing">5</property>
 
 	      <child>
+		<widget class="GtkLabel" id="label7609">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">_Select the matchings you want to change:</property>
+		  <property name="use_underline">Yes</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">5</property>
+		  <property name="ypad">0</property>
+                  <property name="mnemonic_widget">account_page_view</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">5</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
 		<widget class="GtkScrolledWindow" id="scrolledwindow11">
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
@@ -717,25 +732,81 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkLabel" id="label828">
+		<widget class="GtkHBox" id="hbox7609">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Click &quot;Forward&quot; to check matchings for QIF categories. </property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_CENTER</property>
-		  <property name="wrap">True</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+	          <child>
+		    <widget class="GtkLabel" id="label7610">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Matchings selected:</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">True</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+	          </child>
+
+	          <child>
+		    <widget class="GtkLabel" id="account_page_count">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="no">0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">True</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">3</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+	          </child>
+
+		  <child>
+		    <widget class="GtkButton" id="account_page_change">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Change GnuCash _Account...</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <signal name="clicked" handler="gnc_ui_qif_import_account_rematch_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
 		</widget>
 		<packing>
-		  <property name="padding">3</property>
+		  <property name="padding">0</property>
 		  <property name="expand">False</property>
 		  <property name="fill">False</property>
 		</packing>
@@ -798,8 +869,8 @@
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Match QIF categories with GnuCash accounts</property>
 	  <property name="title_foreground">#f5f5f5f5f5f5</property>
-	  <signal name="prepare" handler="gnc_ui_qif_import_categories_prepare_cb"/>
-	  <signal name="next" handler="gnc_ui_qif_import_categories_next_cb"/>
+	  <signal name="prepare" handler="gnc_ui_qif_import_category_prepare_cb"/>
+	  <signal name="next" handler="gnc_ui_qif_import_category_next_cb"/>
 	  <signal name="back" handler="gnc_ui_qif_import_generic_back_cb"/>
 
 	  <child internal-child="vbox">
@@ -807,9 +878,35 @@
 	      <property name="border_width">25</property>
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
+	      <property name="spacing">5</property>
 
 	      <child>
+		<widget class="GtkLabel" id="label7611">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">_Select the matchings you want to change:</property>
+		  <property name="use_underline">Yes</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">5</property>
+		  <property name="ypad">0</property>
+                  <property name="mnemonic_widget">category_page_view</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">5</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
 		<widget class="GtkScrolledWindow" id="scrolledwindow12">
 		  <property name="visible">True</property>
 		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
@@ -839,25 +936,81 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkLabel" id="label829">
+		<widget class="GtkHBox" id="hbox7612">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Click &quot;Forward&quot; to enter information about the currency used in your QIF files.</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_CENTER</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+	          <child>
+		    <widget class="GtkLabel" id="label7613">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Matchings selected:</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">True</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+	          </child>
+
+	          <child>
+		    <widget class="GtkLabel" id="category_page_count">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="no">0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">True</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">3</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+	          </child>
+
+		  <child>
+		    <widget class="GtkButton" id="category_page_change">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Change GnuCash _Account...</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <signal name="clicked" handler="gnc_ui_qif_import_category_rematch_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
 		</widget>
 		<packing>
-		  <property name="padding">3</property>
+		  <property name="padding">0</property>
 		  <property name="expand">False</property>
 		  <property name="fill">False</property>
 		</packing>
@@ -930,6 +1083,32 @@
 	      <property name="spacing">0</property>
 
 	      <child>
+		<widget class="GtkLabel" id="label7614">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">_Select the matchings you want to change:</property>
+		  <property name="use_underline">Yes</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">5</property>
+		  <property name="ypad">0</property>
+                  <property name="mnemonic_widget">memo_page_view</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">5</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
 		<widget class="GtkScrolledWindow" id="scrolledwindow12">
 		  <property name="visible">True</property>
 		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
@@ -957,6 +1136,87 @@
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox7615">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+	          <child>
+		    <widget class="GtkLabel" id="label7616">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Matchings selected:</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">True</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+	          </child>
+
+	          <child>
+		    <widget class="GtkLabel" id="memo_page_count">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="no">0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">True</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">3</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+	          </child>
+
+		  <child>
+		    <widget class="GtkButton" id="memo_page_change">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Change GnuCash _Account...</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <signal name="clicked" handler="gnc_ui_qif_import_memo_rematch_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
 	    </widget>
 	  </child>
 	</widget>
@@ -980,13 +1240,11 @@
 	      <child>
 		<widget class="GtkLabel" id="label831">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">The QIF importer cannot currently handle multi-currency QIF files. All the accounts in the QIF file(s) you are importing must be denominated in the same currency. This limitation should be removed soon.
-
-Select the currency to use for transactions imported from your QIF files:
+		  <property name="label" translatable="yes">The QIF importer cannot currently handle multi-currency QIF files. All the accounts you are importing must be denominated in the same currency.
 </property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
 		  <property name="wrap">True</property>
 		  <property name="selectable">False</property>
 		  <property name="xalign">0.5</property>
@@ -1006,33 +1264,19 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkComboBoxEntry" id="currency_comboboxentry">
-		  <property name="visible">True</property>
-		  <property name="items">Dummy currency entry</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="has_frame">True</property>
-		  <property name="focus_on_click">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
 		<widget class="GtkLabel" id="label832">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Click &quot;Forward&quot; to enter information about stocks and mutual funds in the imported data.</property>
-		  <property name="use_underline">False</property>
+		  <property name="label" translatable="yes">_Select the currency to use for all imported transactions:</property>
+		  <property name="use_underline">True</property>
 		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_CENTER</property>
-		  <property name="wrap">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
 		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
+		  <property name="xalign">0</property>
 		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
+		  <property name="xpad">4</property>
 		  <property name="ypad">0</property>
+                  <property name="mnemonic_widget">currency_comboboxentry</property>
 		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 		  <property name="width_chars">-1</property>
 		  <property name="single_line_mode">False</property>
@@ -1041,8 +1285,22 @@
 		<packing>
 		  <property name="padding">0</property>
 		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkComboBoxEntry" id="currency_comboboxentry">
+		  <property name="visible">True</property>
+		  <property name="items">Dummy currency entry</property>
+		  <property name="add_tearoffs">False</property>
+		  <property name="has_frame">True</property>
+		  <property name="focus_on_click">True</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
 		  <property name="fill">False</property>
-		  <property name="pack_type">GTK_PACK_END</property>
 		</packing>
 	      </child>
 	    </widget>



More information about the gnucash-changes mailing list