[Gnucash-changes] r12238 - gnucash/trunk - Use a GtkListStore for the example account categories instead of

David Hampton hampton at cvs.gnucash.org
Mon Jan 2 20:06:53 EST 2006


Author: hampton
Date: 2006-01-02 20:06:52 -0500 (Mon, 02 Jan 2006)
New Revision: 12238
Trac: http://svn.gnucash.org/trac/changeset/12238

Modified:
   gnucash/trunk/ChangeLog
   gnucash/trunk/GNOME2_STATUS
   gnucash/trunk/src/gnome/druid-hierarchy.c
   gnucash/trunk/src/gnome/glade/account.glade
Log:
Use a GtkListStore for the example account categories instead of
layering a custom selection model on a custom example account model.
The code is a lot simpler and has additional sorting capability. Do
some rework on the druid layout.


Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog	2006-01-03 01:05:46 UTC (rev 12237)
+++ gnucash/trunk/ChangeLog	2006-01-03 01:06:52 UTC (rev 12238)
@@ -1,3 +1,15 @@
+2006-01-02  David Hampton  <hampton at employees.org>
+
+	* src/gnome/glade/account.glade:
+	* src/gnome/druid-hierarchy.c: Use a GtkListStore for the example
+	account categories instead of layering a custom selection model on
+	a custom example account model.  The code is a lot simpler and has
+	additional sorting capability. Do some rework on the druid
+	layout.
+
+	* src/gnome-utils/gnc-tree-model-selection.[ch]: Correct function
+	name.  Add a comment.
+
 2006-01-02  Derek Atkine  <derek at ihtfp.com>
 
 	* src/gnome-utils/gnc-tree-view-account.c:

Modified: gnucash/trunk/GNOME2_STATUS
===================================================================
--- gnucash/trunk/GNOME2_STATUS	2006-01-03 01:05:46 UTC (rev 12237)
+++ gnucash/trunk/GNOME2_STATUS	2006-01-03 01:06:52 UTC (rev 12238)
@@ -44,8 +44,7 @@
 Resources
 ---------
 - Porting applications to the GNOME 2.0 Platform -- http://developer.gnome.org/dotplan/porting/
-  - Should switch from `gnome_config` to gconf...
-    - Introduction to GConf -- http://developer.gnome.org/feature/archive/gconf/gconf.html
+- Introduction to GConf -- http://developer.gnome.org/feature/archive/gconf/gconf.html
 
 - General
 
@@ -123,19 +122,9 @@
 
   - Sometimes crashes when loading account data.
 
-  - Main account selection layout is too (visually) compressed
- 
-    - Should have two columns: left={category(80%) + detailed-description(20%)}, right={category-accounts(100%)}
+  - 2006-01-02: do these problems still exist?
 
-    - See 'relayout Hierarchy' in src/gnome/glade/account.glade.
 
-  - Account tree's only column (account name) is relatively thin, truncating
-    some titles.
-
-    - It seems that gnc_tree_view_add_text_column sets column-width based on
-      an example string, whereas in this use-case the best would be to set to
-      '0'(=autosize).
-
 - Account Hierarchy Merge - BROKEN
 
   - Bad integration with Account Hierarchy druid

Modified: gnucash/trunk/src/gnome/druid-hierarchy.c
===================================================================
--- gnucash/trunk/src/gnome/druid-hierarchy.c	2006-01-03 01:05:46 UTC (rev 12237)
+++ gnucash/trunk/src/gnome/druid-hierarchy.c	2006-01-03 01:06:52 UTC (rev 12238)
@@ -1,6 +1,7 @@
 /********************************************************************\
  * druid-hierarchy.c -- account hierarchy creation functionality    *
  * Copyright (C) 2001 Gnumatic, Inc.                                *
+ * Copyright (C) 2006 David Hampton <hampton at employees.org>         *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
  * modify it under the terms of the GNU General Public License as   *
@@ -36,14 +37,15 @@
 #include "druid-utils.h"
 #include "gnc-amount-edit.h"
 #include "gnc-currency-edit.h"
+#include "gnc-exp-parser.h"
 #include "gnc-general-select.h"
 #include "gnc-gconf-utils.h"
 #include "gnc-hooks.h"
 #include "gnc-component-manager.h"
 #include "../gnome-utils/gnc-dir.h"
 #include "gnc-gui-query.h"
-#include "gnc-tree-model-example-account.h"
-#include "gnc-tree-model-selection.h"
+#include "gnc-main-window.h"
+#include "gnc-plugin-page-account-tree.h"
 #include "gnc-tree-view-account.h"
 #include "gnc-ui-util.h"
 #include "io-example-account.h"
@@ -54,6 +56,15 @@
 
 #define GCONF_SECTION "dialogs/new_hierarchy"
 
+typedef enum {
+  COL_CHECKED,
+  COL_TITLE,
+  COL_SHORT_DESCRIPTION,
+  COL_LONG_DESCRIPTION,
+  COL_ACCOUNT,
+  NUM_COLUMNS
+} ColumnNames;
+
 static GtkWidget *hierarchy_window = NULL;
 GtkWidget *qof_book_merge_window = NULL;
 static AccountGroup *our_final_group = NULL;
@@ -65,7 +76,7 @@
   GtkWidget *currency_selector;
 
   GtkTreeView *categories_tree;
-  GtkLabel *category_description;
+  GtkTextView *category_description;
   GtkBox *category_accounts_box;
   GtkTreeView *category_accounts_tree;
   gboolean category_set_changed;
@@ -73,11 +84,9 @@
   GncTreeViewAccount *final_account_tree;
   GtkWidget *final_account_tree_box;
   Account *selected_account;
-  GNCAmountEdit *balance_edit;
   GHashTable *balance_hash;
 } hierarchy_data;
 
-static void on_balance_changed (GNCAmountEdit *gae, hierarchy_data *data);
 void on_choose_account_categories_prepare (GnomeDruidPage  *gnomedruidpage,
 					   gpointer         arg1,
 					   hierarchy_data  *data);
@@ -126,22 +135,6 @@
   }
 }
 
-static void
-block_amount_changed (hierarchy_data *data)
-{
-  g_signal_handlers_block_by_func
-    (G_OBJECT (data->balance_edit),
-     G_CALLBACK (on_balance_changed), data);
-}
-
-static void
-unblock_amount_changed (hierarchy_data *data)
-{
-  g_signal_handlers_unblock_by_func
-    (G_OBJECT (data->balance_edit),
-     G_CALLBACK (on_balance_changed), data);
-}
-
 static gnc_numeric
 get_final_balance (GHashTable *hash, Account *account)
 {
@@ -184,64 +177,6 @@
   /* fullname string now owned by the hash */
 }
 
-static void
-update_account_balance (Account *account,
-			hierarchy_data *data)
-{
-  gboolean result, placeholder;
-
-  if (!account)
-    return;
-
-  block_amount_changed (data);
-  result = gnc_amount_edit_evaluate (data->balance_edit);
-  unblock_amount_changed (data);
-
-  if (result)
-  {
-    gnc_numeric balance;
-    GNCPrintAmountInfo print_info;
-    const char *string;
-
-    balance = gnc_amount_edit_get_amount (data->balance_edit);
-    placeholder = xaccAccountGetPlaceholder (account);
-
-    print_info = gnc_account_print_info (account, FALSE);
-    string = xaccPrintAmount (balance, print_info);
-
-    if (gnc_numeric_zero_p (balance) || placeholder)
-      string = "";
-
-    if (gnc_reverse_balance (account))
-      balance = gnc_numeric_neg (balance);
-
-    set_final_balance (data->balance_hash, account, balance);
-    gnc_engine_gen_event ((QofEntity*)account,
-			       GNC_EVENT_MODIFY);
-  }
-}
-
-static void
-on_balance_changed (GNCAmountEdit *gae, hierarchy_data *data)
-{
-	Account *account;
-
-	g_return_if_fail(data != NULL);
-	if (!GTK_WIDGET_SENSITIVE (GTK_WIDGET (gae)))
-		return;
-
-	account = gnc_tree_view_account_get_selected_account(data->final_account_tree);
-	if (account == NULL)
-	  return;
-	update_account_balance (account, data);
-}
-
-static void
-on_balance_focus_out (GNCAmountEdit *gae, GdkEventFocus *event, hierarchy_data *data)
-{
-  on_balance_changed (gae, data);
-}
-
 static gchar*
 gnc_get_ea_locale_dir(const char *top_dir)
 {
@@ -297,38 +232,57 @@
 }
 
 
-static gboolean
-start_helper (GncTreeModelSelection *selection_model,
-	      GtkTreePath           *selection_path,
-	      GtkTreeIter           *selection_iter,
-	      gpointer               data)
+static void
+add_one_category (GncExampleAccount *acc,
+		  hierarchy_data *data)
 {
-	GtkTreeModel      *model;
-	GtkTreeIter  	   iter;
-	GncExampleAccount *gea;
+	GtkTreeView *view;
+	GtkListStore *store;
+	GtkTreeIter iter;
 
-	g_return_val_if_fail(GNC_IS_TREE_MODEL_SELECTION(selection_model), FALSE);
-	model = gnc_tree_model_selection_get_model (selection_model);
-	gnc_tree_model_selection_convert_iter_to_child_iter (selection_model,
-							     &iter, selection_iter);
+	g_return_if_fail(acc != NULL);
+	g_return_if_fail(data != NULL);
 
-	gea = gnc_tree_model_example_account_get_account (GNC_TREE_MODEL_EXAMPLE_ACCOUNT(model), &iter);
-	if (gea != NULL) {
-	  gnc_tree_model_selection_set_selected (selection_model,
-						 selection_iter,
-						 gea->start_selected);
-	}
+	view = data->categories_tree;
+	store = GTK_LIST_STORE(gtk_tree_view_get_model(view));
 
-	return FALSE;  /* Run entire tree */
+	gtk_list_store_append(store, &iter);
+	gtk_list_store_set(store, &iter,
+			   COL_CHECKED, acc->start_selected,
+			   COL_TITLE, acc->title,
+			   COL_SHORT_DESCRIPTION, acc->short_description,
+			   COL_LONG_DESCRIPTION, acc->long_description,
+			   COL_ACCOUNT, acc,
+			   -1);
+
+	if (acc->start_selected)
+	  data->category_set_changed = TRUE;
 }
 
 static void
+category_checkbox_toggled (GtkCellRendererToggle *toggle,
+			   gchar                 *path,
+			   GtkListStore          *store)
+{
+	GtkTreeIter iter;
+	gboolean active;
+
+	if (!gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store),
+						 &iter, path))
+	  return;
+
+	/* Get current state of the category */
+	active = gtk_cell_renderer_toggle_get_active(toggle);
+	gtk_list_store_set(store, &iter, COL_CHECKED, !active, -1);
+}
+
+static void
 account_categories_tree_view_prepare (hierarchy_data  *data)
 {
 	GSList *list;
 	gchar *locale_dir;
 	GtkTreeView *tree_view;
-	GtkTreeModel *model, *selection_model;
+	GtkListStore *model;
 	GtkTreeViewColumn *column;
 	GtkCellRenderer *renderer;
 
@@ -339,37 +293,50 @@
 
 	/* Prepare the account_categories GtkTreeView with a model and with some columns */
 	tree_view = data->categories_tree;
-	model = gnc_tree_model_example_account_new (list);
-	selection_model = gnc_tree_model_selection_new (model);
-	gtk_tree_view_set_model (tree_view, selection_model);
+	model = gtk_list_store_new(NUM_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING,
+				   G_TYPE_STRING, G_TYPE_POINTER);
+	gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL(model));
 	g_object_unref (model);
-	g_object_unref (selection_model);
 
-	g_signal_connect (G_OBJECT (selection_model), "row_changed",
+	g_slist_foreach(list, (GFunc)add_one_category, data);
+
+	g_signal_connect (G_OBJECT (model), "row_changed",
 			  G_CALLBACK (categories_selection_changed),
 			  data);
 
-	column = gnc_tree_model_selection_create_tree_view_column (GNC_TREE_MODEL_SELECTION (selection_model),
-								   _("Selected"));
+	renderer = gtk_cell_renderer_toggle_new ();
+	g_object_set (G_OBJECT (renderer), "activatable", TRUE, NULL);
+	column = gtk_tree_view_column_new_with_attributes (_("Selected"),
+							   renderer,
+							   "active", COL_CHECKED,
+							   NULL);
 	gtk_tree_view_append_column (tree_view, column);
+	gtk_tree_view_column_set_sort_column_id (column, COL_CHECKED);
+	g_signal_connect (G_OBJECT (renderer), "toggled",
+			  G_CALLBACK (category_checkbox_toggled),
+			  model);
 
+
 	renderer = gtk_cell_renderer_text_new ();
 	column = gtk_tree_view_column_new_with_attributes (_("Account Types"),
 							   renderer,
-							   "text", GNC_TREE_MODEL_EXAMPLE_ACCOUNT_COL_TITLE,
+							   "text", COL_TITLE,
 							   NULL);
 	gtk_tree_view_append_column (tree_view, column);
+	gtk_tree_view_column_set_sort_column_id (column, COL_TITLE);
 
-	column = gtk_tree_view_column_new_with_attributes (_("Description"),
-							   renderer,
-							   "text", GNC_TREE_MODEL_EXAMPLE_ACCOUNT_COL_SHORT_DESCRIPTION,
-							   NULL);
-	gtk_tree_view_append_column (tree_view, column);
+//	renderer = gtk_cell_renderer_text_new ();
+//	column = gtk_tree_view_column_new_with_attributes (_("Description"),
+//							   renderer,
+//							   "text", COL_SHORT_DESCRIPTION,
+//							   NULL);
+//	gtk_tree_view_append_column (tree_view, column);
+//	gtk_tree_view_column_set_sort_column_id (column, COL_SHORT_DESCRIPTION);
 
-	/* Now set the selected checkbox for each item */
-	gtk_tree_model_foreach (GTK_TREE_MODEL (selection_model),
-				(GtkTreeModelForeachFunc)start_helper,
-				NULL);
+	gtk_tree_view_set_headers_clickable(tree_view, TRUE);
+	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(model),
+					      COL_TITLE,
+					      GTK_SORT_ASCENDING);
 }
 
 void
@@ -377,6 +344,7 @@
 				      gpointer         arg1,
 				      hierarchy_data  *data)
 {
+  GtkTextBuffer* buffer;
   gpointer added_ptr;
 
   added_ptr = g_object_get_data (G_OBJECT(hierarchy_window),
@@ -394,7 +362,8 @@
     if (data->category_accounts_tree)
       gtk_widget_destroy(GTK_WIDGET(data->category_accounts_tree));
     data->category_accounts_tree = NULL;
-    gtk_label_set_text (data->category_description, "");
+    buffer = gtk_text_view_get_buffer(data->category_description);
+    gtk_text_buffer_set_text(buffer, "", -1);
 
     g_object_set_data (G_OBJECT(hierarchy_window),
                        "account_list_added", GINT_TO_POINTER(1));
@@ -403,30 +372,33 @@
 
 static void
 categories_tree_selection_changed (GtkTreeSelection *selection,
-				      hierarchy_data *data)
+				   hierarchy_data *data)
 {
 	GtkTreeView *tree_view;
-	GtkTreeModel *selection_model, *model;
-	GtkTreeIter selection_iter, iter;
+	GtkTreeModel *model;
+	GtkTreeViewColumn *column;
+	GtkTreeIter iter;
 	GncExampleAccount *gea;
+	GtkTextBuffer* buffer;
 
 	/* Remove the old account tree */
 	if (data->category_accounts_tree)
 	  gtk_widget_destroy(GTK_WIDGET(data->category_accounts_tree));
 	data->category_accounts_tree = NULL;
-	gtk_label_set_text (data->category_description, "");
+	buffer = gtk_text_view_get_buffer(data->category_description);
+	gtk_text_buffer_set_text(buffer, "", -1);
 
 	/* Add a new one if something selected */
-	if (gtk_tree_selection_get_selected (selection, &selection_model, &selection_iter)) {
-		model = gnc_tree_model_selection_get_model (GNC_TREE_MODEL_SELECTION (selection_model));
-		gnc_tree_model_selection_convert_iter_to_child_iter (GNC_TREE_MODEL_SELECTION (selection_model),
-								     &iter, &selection_iter);
-		gea = gnc_tree_model_example_account_get_account (GNC_TREE_MODEL_EXAMPLE_ACCOUNT (model),
-								  &iter);
-		gtk_label_set_text (data->category_description, gea->long_description);
+	if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
+		gtk_tree_model_get (model, &iter, COL_ACCOUNT, &gea, -1);
+		buffer = gtk_text_view_get_buffer(data->category_description);
+		gtk_text_buffer_set_text(buffer, gea->long_description, -1);
 
 		tree_view = gnc_tree_view_account_new_with_group (gea->group, FALSE);
 		gnc_tree_view_configure_columns (GNC_TREE_VIEW(tree_view), NULL);
+		/* Override the normal fixed (user settable) sizing */
+		column = gtk_tree_view_get_column(GTK_TREE_VIEW(tree_view), 0);
+		gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
 
 		data->category_accounts_tree = tree_view;
 		gtk_tree_view_expand_all (tree_view);
@@ -436,25 +408,20 @@
 }
 
 static gboolean
-select_helper (GncTreeModelSelection *selection_model,
-	       GtkTreePath 	     *selection_path,
-	       GtkTreeIter 	     *selection_iter,
-	       gpointer               data)
+select_helper (GtkListStore *store,
+	       GtkTreePath  *path,
+	       GtkTreeIter  *iter,
+	       gpointer      data)
 {
-	GtkTreeModel 	  *model;
-	GtkTreeIter  	   iter;
 	GncExampleAccount *gea;
 
-	g_return_val_if_fail(GNC_IS_TREE_MODEL_SELECTION(selection_model), FALSE);
-	model = gnc_tree_model_selection_get_model (selection_model);
-	gnc_tree_model_selection_convert_iter_to_child_iter (selection_model,
-							     &iter, selection_iter);
+	g_return_val_if_fail(GTK_IS_LIST_STORE(store), FALSE);
 
-	gea = gnc_tree_model_example_account_get_account (GNC_TREE_MODEL_EXAMPLE_ACCOUNT(model), &iter);
+	gtk_tree_model_get (GTK_TREE_MODEL(store), iter, COL_ACCOUNT, &gea, -1);
 	if ((gea != NULL) && !gea->exclude_from_select_all) {
-	  gnc_tree_model_selection_set_selected (selection_model,
-						 selection_iter,
-						 GPOINTER_TO_INT(data));
+	  gtk_list_store_set(store, iter,
+			     COL_CHECKED, GPOINTER_TO_INT(data),
+			     -1);
 	}
 
 	return FALSE;  /* Run entire tree */
@@ -581,32 +548,38 @@
   return ret;
 }
 
-static GSList *
-get_selected_account_list (GtkTreeView *tree_view)
+static gboolean
+accumulate_accounts (GtkListStore *store,
+		     GtkTreePath *path,
+		     GtkTreeIter *iter,
+		     GSList **list)
 {
-	GSList *actlist = NULL;
-	GtkTreeModel *model, *selection_model;
-	GtkTreeIter iter, selection_iter;
 	GncExampleAccount *gea;
+	gboolean active;
 
-	selection_model = gtk_tree_view_get_model (tree_view);
-	model = gnc_tree_model_selection_get_model (GNC_TREE_MODEL_SELECTION (selection_model));
+	g_return_val_if_fail(GTK_IS_LIST_STORE(store), FALSE);
+ 
+	gtk_tree_model_get (GTK_TREE_MODEL(store), iter,
+			    COL_CHECKED, &active,
+			    COL_ACCOUNT, &gea,
+			    -1);
+	if (active && gea)
+	  *list = g_slist_prepend(*list, gea);
 
-	if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter)) {
-		do {
-			gnc_tree_model_selection_convert_child_iter_to_iter (GNC_TREE_MODEL_SELECTION (selection_model),
-									     &selection_iter, &iter);
+  	return FALSE;  /* Run entire list */
+}
 
-			if (gnc_tree_model_selection_is_selected (GNC_TREE_MODEL_SELECTION (selection_model),
-								  &selection_iter)) {
-				gea = gnc_tree_model_example_account_get_account (GNC_TREE_MODEL_EXAMPLE_ACCOUNT (model),
-										  &iter);
-				
-				actlist = g_slist_append (actlist, gea);
-			}
-		} while (gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter));
-	}
 
+static GSList *
+get_selected_account_list (GtkTreeView *tree_view)
+{
+	GSList *actlist = NULL;
+	GtkTreeModel *model;
+
+	model = gtk_tree_view_get_model (tree_view);
+	gtk_tree_model_foreach (model,
+				(GtkTreeModelForeachFunc)accumulate_accounts,
+				&actlist);
 	return actlist;
 }
 
@@ -622,6 +595,7 @@
 	const gchar *string;
 	GNCPrintAmountInfo print_info;
 	hierarchy_data *data = (hierarchy_data *)user_data;
+	gboolean allow_value;
 
 	g_return_if_fail (GTK_TREE_MODEL (model));
 	account = gnc_tree_view_account_get_account_from_iter (model, iter);
@@ -637,56 +611,45 @@
 		string = xaccPrintAmount (balance, print_info);
 	}
 
+ 	if (xaccAccountGetType(account) == EQUITY) {
+	  allow_value = FALSE;
+	  string=_("zero");
+	} else {
+	  allow_value = !xaccAccountGetPlaceholder(account);
+	}
 	g_object_set (G_OBJECT (cell),
 		      "text", string,
-		      (char *)NULL);
+		      "editable", allow_value,
+		      "sensitive", allow_value,
+		      NULL);
 }
 
-static void
-on_final_account_tree_selection_changed (GtkTreeSelection *selection,
-					 hierarchy_data *data)
+static void 
+balance_cell_edited (GtkCellRendererText *cell,
+		     gchar               *path,
+		     gchar               *new_text,
+		     gpointer             user_data)
 {
 	Account *account;
-	GNCPrintAmountInfo print_info;
-	gnc_numeric balance;
-	GtkWidget *entry;
+	char *error_loc;
+	gnc_numeric amount;
+	hierarchy_data *data = (hierarchy_data *)user_data;
 
-	/* Update the account we came from */
-	if (data->selected_account) {
-	  update_account_balance (data->selected_account, data);
-	  data->selected_account = NULL;
-	}
+	g_return_if_fail(data != NULL);
 
-	/* Clean up the amount entry box */
-	entry = gnc_amount_edit_gtk_entry (data->balance_edit);
-	gtk_entry_set_text (GTK_ENTRY (entry), "");
-	gtk_widget_set_sensitive (GTK_WIDGET (data->balance_edit), FALSE);
-
-	/* What's the new selection? */
-	if (!gtk_tree_selection_get_selected (selection, NULL, NULL))
-		return;
-
-	/* Ignore equity accounts */
 	account = gnc_tree_view_account_get_selected_account(data->final_account_tree);
-	if (xaccAccountGetType (account) == EQUITY)
-		return;
+	if (account == NULL) {
+	  printf("Account is null\n");
+	  return;
+	}
 
-	/* Set up the amount entry box */
-	data->selected_account = account;
-	gtk_widget_set_sensitive (GTK_WIDGET (data->balance_edit),
-				  !xaccAccountGetPlaceholder (account));
-	balance = get_final_balance (data->balance_hash, account);
-	if (gnc_reverse_balance (account))
-		balance = gnc_numeric_neg (balance);
-	print_info = gnc_account_print_info (account, FALSE);
-	gnc_amount_edit_set_print_info (data->balance_edit, print_info);
-	gnc_amount_edit_set_fraction (data->balance_edit,
-				      xaccAccountGetCommoditySCU (account));
-	block_amount_changed (data);
-	gnc_amount_edit_set_amount (data->balance_edit, balance);
-	if (gnc_numeric_zero_p (balance))
-		gtk_entry_set_text (GTK_ENTRY (entry), "");
-	unblock_amount_changed (data);
+	error_loc = NULL;
+	if (!gnc_exp_parser_parse (new_text, &amount, &error_loc)) {
+	  amount = gnc_numeric_zero();
+	  g_object_set (G_OBJECT(cell), "text", "", NULL);
+	}
+	set_final_balance (data->balance_hash, account, amount);
+	gnc_engine_gen_event ((QofEntity*)account, GNC_EVENT_MODIFY);
 }
 
 void
@@ -700,7 +663,6 @@
   GtkCellRenderer *renderer;
   GtkTreeViewColumn *column;
   gnc_commodity *com;
-  GtkWidget *entry;
 
   /* Anything to do? */
   if (!data->category_set_changed)
@@ -727,20 +689,21 @@
   data->final_account_tree = GNC_TREE_VIEW_ACCOUNT(gnc_tree_view_account_new_with_group (our_final_group, FALSE));
   tree_view = GTK_TREE_VIEW(data->final_account_tree);
   gtk_tree_view_set_headers_visible (tree_view, TRUE);
-
   gnc_tree_view_configure_columns (GNC_TREE_VIEW(data->final_account_tree),
 				   "type", "placeholder", NULL);
+  gnc_tree_view_set_show_column_menu (GNC_TREE_VIEW(data->final_account_tree),
+				      FALSE);
 
   selection = gtk_tree_view_get_selection (tree_view);
   gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
-  g_signal_connect (G_OBJECT (selection), "changed",
-		    G_CALLBACK (on_final_account_tree_selection_changed),
-		    data);
 
   renderer = gtk_cell_renderer_text_new ();
   g_object_set (G_OBJECT (renderer),
 		"xalign", 1.0,
 		(char *)NULL);
+  g_signal_connect (G_OBJECT (renderer), "edited",
+		    G_CALLBACK (balance_cell_edited),
+		    data);
   column = gtk_tree_view_column_new_with_attributes (_("Opening Balance"),
 						     renderer,
 						     NULL);
@@ -756,18 +719,6 @@
   gtk_tree_view_expand_all (tree_view);
   gtk_widget_show(GTK_WIDGET(data->final_account_tree));
   gnc_resume_gui_refresh ();
-
-
-
-  /* Now set up the balance widget */
-  entry = gnc_amount_edit_gtk_entry (data->balance_edit);
-
-  block_amount_changed (data);
-  gnc_amount_edit_set_amount (data->balance_edit, gnc_numeric_zero ());
-  gtk_entry_set_text (GTK_ENTRY(entry), "");
-  unblock_amount_changed (data);
-
-  gtk_widget_set_sensitive (GTK_WIDGET (data->balance_edit), FALSE);
 }
 
 
@@ -776,8 +727,8 @@
 	   hierarchy_data  *data)
 {
   gnc_suspend_gui_refresh ();
-  delete_our_final_group ();
   delete_hierarchy_window ();
+  delete_our_final_group ();
   gncp_new_user_finish ();
   g_free(data);
   gnc_resume_gui_refresh ();
@@ -827,11 +778,18 @@
 	gnc_set_first_startup (FALSE);
 	
 	if (our_final_group)
-	xaccGroupConcatGroup (gnc_get_current_group (), our_final_group);
+	  xaccGroupConcatGroup (gnc_get_current_group (), our_final_group);
 	qof_book_destroy(temporary);
 	
 	g_free(data);
 	gnc_resume_gui_refresh ();
+
+	{
+	  GncPluginPage *page;
+
+	  page = gnc_plugin_page_account_tree_new();
+	  gnc_main_window_open_page(NULL, page);
+	}
 	LEAVE (" ");
 }
 
@@ -839,12 +797,12 @@
 gnc_create_hierarchy_druid (void)
 {
 	hierarchy_data *data;
-	GtkWidget *balance_edit;
 	GtkWidget *dialog;
 	GtkWidget *druid;
 	GtkTreeView *tree_view;
-	GtkWidget *box;
+	GtkWidget *box, *start_page;
 	GladeXML *xml;
+	GdkColor *color;
 	
 	data = g_new0 (hierarchy_data, 1);
 	xml = gnc_glade_xml_new ("account.glade", "Hierarchy Druid");
@@ -855,7 +813,8 @@
 	druid = glade_xml_get_widget (xml, "hierarchy_druid");
 	gnc_druid_set_colors (GNOME_DRUID (druid));
 	
-	gtk_widget_show (glade_xml_get_widget (xml, "start_page"));
+	start_page = glade_xml_get_widget (xml, "start_page");
+	gtk_widget_show (start_page);
 	gtk_widget_show (glade_xml_get_widget (xml, "newUserDruidFinishPage"));
 	
 	/* Currency Page */
@@ -866,18 +825,6 @@
 	gtk_box_pack_start(GTK_BOX(box), data->currency_selector, FALSE, FALSE, 0);
 
 	/* Categories Page */
-	balance_edit = gnc_amount_edit_new ();
-	data->balance_edit = GNC_AMOUNT_EDIT(balance_edit);
-	gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (balance_edit), TRUE);
-	gtk_widget_show (balance_edit);
-	box = glade_xml_get_widget (xml, "start_balance_box");
-	gtk_box_pack_start (GTK_BOX (box), balance_edit, TRUE, TRUE, 0);
-	g_signal_connect (G_OBJECT (balance_edit), "amount_changed",
-			  G_CALLBACK (on_balance_changed), data);
-	g_signal_connect (G_OBJECT (balance_edit), "focus_out_event",
-			  G_CALLBACK (on_balance_focus_out), data);
-	
-	/* Opening Balances Page */
 	tree_view = GTK_TREE_VIEW(glade_xml_get_widget (xml, "account_categories_tree_view"));
 	g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (tree_view)), "changed",
 			  G_CALLBACK (categories_tree_selection_changed), data);
@@ -885,8 +832,11 @@
 	data->categories_tree = tree_view;
 	
 	data->category_accounts_box = GTK_BOX(glade_xml_get_widget (xml, "accounts_in_category"));
-	data->category_description = GTK_LABEL(glade_xml_get_widget (xml, "account_types_description_entry"));
+	data->category_description = GTK_TEXT_VIEW(glade_xml_get_widget (xml, "account_types_description"));
+	color = &GNOME_DRUID_PAGE_EDGE(start_page)->textbox_color;
+	gtk_widget_modify_base(GTK_WIDGET(data->category_description), GTK_STATE_INSENSITIVE, color);
 	
+	/* Final Accounts Page */
 	data->final_account_tree_box = glade_xml_get_widget (xml, "final_account_tree_box");
 	data->final_account_tree = NULL;
 	
@@ -921,7 +871,6 @@
 gnc_ui_hierarchy_druid_hook (void)
 {
   if (gnc_gconf_get_bool(GCONF_SECTION, "show_on_new_file", NULL)) {
-    printf("start druid\n");
     gnc_ui_hierarchy_druid();
   }
 }

Modified: gnucash/trunk/src/gnome/glade/account.glade
===================================================================
--- gnucash/trunk/src/gnome/glade/account.glade	2006-01-03 01:05:46 UTC (rev 12237)
+++ gnucash/trunk/src/gnome/glade/account.glade	2006-01-03 01:06:52 UTC (rev 12238)
@@ -1150,7 +1150,7 @@
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
   <property name="default_width">640</property>
-  <property name="default_height">640</property>
+  <property name="default_height">500</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
   <property name="decorated">True</property>
@@ -1239,10 +1239,10 @@
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid-vbox1">
-	      <property name="border_width">5</property>
+	      <property name="border_width">6</property>
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">5</property>
+	      <property name="spacing">6</property>
 
 	      <child>
 		<widget class="GtkLabel" id="pickAccountsDescriptionLabel">
@@ -1269,242 +1269,318 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkFrame" id="frame5">
+		<widget class="GtkHPaned" id="hpaned2">
 		  <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>
+		  <property name="can_focus">True</property>
+		  <property name="position">336</property>
 
 		  <child>
-		    <widget class="GtkVBox" id="vbox7">
+		    <widget class="GtkVPaned" id="vpaned2">
 		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="can_focus">True</property>
+		      <property name="position">200</property>
 
 		      <child>
-			<widget class="GtkScrolledWindow" id="scrolledwindow1">
+			<widget class="GtkVBox" id="vbox7">
+			  <property name="border_width">6</property>
 			  <property name="visible">True</property>
-			  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-			  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
 
 			  <child>
-			    <widget class="GtkTreeView" id="account_categories_tree_view">
+			    <widget class="GtkLabel" id="label8477431">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="headers_visible">True</property>
-			      <property name="rules_hint">False</property>
-			      <property name="reorderable">False</property>
-			      <property name="enable_search">True</property>
-			      <property name="fixed_height_mode">False</property>
-			      <property name="hover_selection">False</property>
-			      <property name="hover_expand">False</property>
+			      <property name="label" translatable="yes">&lt;b&gt;Categories&lt;/b&gt;</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">True</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">0</property>
+			      <property name="ypad">0</property>
 			    </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">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
 
-		      <child>
-			<widget class="GtkHBox" id="hbox3">
-			  <property name="border_width">5</property>
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
 			  <child>
-			    <widget class="GtkButton" id="select_all_button">
+			    <widget class="GtkAlignment" id="alignment11">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Select All</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="select_all_clicked"/>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">1</property>
+			      <property name="yscale">1</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">12</property>
+			      <property name="right_padding">0</property>
+
+			      <child>
+				<widget class="GtkScrolledWindow" id="scrolledwindow1">
+				  <property name="visible">True</property>
+				  <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+				  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+				  <property name="shadow_type">GTK_SHADOW_IN</property>
+				  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+				  <child>
+				    <widget class="GtkTreeView" id="account_categories_tree_view">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="headers_visible">True</property>
+				      <property name="rules_hint">True</property>
+				      <property name="reorderable">True</property>
+				      <property name="enable_search">True</property>
+				      <property name="fixed_height_mode">False</property>
+				      <property name="hover_selection">False</property>
+				      <property name="hover_expand">False</property>
+				    </widget>
+				  </child>
+				</widget>
+			      </child>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
 			      <property name="expand">True</property>
-			      <property name="fill">False</property>
+			      <property name="fill">True</property>
 			    </packing>
 			  </child>
 
 			  <child>
-			    <widget class="GtkButton" id="clear_all_button">
+			    <widget class="GtkAlignment" id="alignment12">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Clear All</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="clear_all_clicked"/>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">1</property>
+			      <property name="yscale">1</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">12</property>
+			      <property name="right_padding">0</property>
+
+			      <child>
+				<widget class="GtkHButtonBox" id="hbuttonbox3">
+				  <property name="border_width">6</property>
+				  <property name="visible">True</property>
+				  <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
+				  <property name="spacing">0</property>
+
+				  <child>
+				    <widget class="GtkButton" id="select_all_button">
+				      <property name="visible">True</property>
+				      <property name="can_default">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="label" translatable="yes">_Select All</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="select_all_clicked" last_modification_time="Sat, 31 Dec 2005 19:23:05 GMT"/>
+				    </widget>
+				  </child>
+
+				  <child>
+				    <widget class="GtkButton" id="clear_all_button">
+				      <property name="visible">True</property>
+				      <property name="can_default">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="label" translatable="yes">C_lear All</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="clear_all_clicked" last_modification_time="Sat, 31 Dec 2005 19:23:21 GMT"/>
+				    </widget>
+				  </child>
+				</widget>
+			      </child>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">False</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
 			    </packing>
 			  </child>
 			</widget>
 			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
+			  <property name="shrink">True</property>
+			  <property name="resize">True</property>
 			</packing>
 		      </child>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
 
-	      <child>
-		<widget class="GtkTable" id="table1">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="n_rows">2</property>
-		  <property name="n_columns">1</property>
-		  <property name="homogeneous">False</property>
-		  <property name="row_spacing">0</property>
-		  <property name="column_spacing">3</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="GtkScrolledWindow" id="scrolledwindow2">
+			<widget class="GtkVBox" id="vbox130">
+			  <property name="border_width">6</property>
 			  <property name="visible">True</property>
-			  <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-			  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-			  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
 
 			  <child>
-			    <widget class="GtkViewport" id="viewport1">
+			    <widget class="GtkLabel" id="label8477397">
 			      <property name="visible">True</property>
-			      <property name="shadow_type">GTK_SHADOW_NONE</property>
+			      <property name="label" translatable="yes">&lt;b&gt;Category Description&lt;/b&gt;</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">True</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">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
 
+			  <child>
+			    <widget class="GtkAlignment" id="alignment10">
+			      <property name="visible">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">1</property>
+			      <property name="yscale">1</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">12</property>
+			      <property name="right_padding">0</property>
+
 			      <child>
-				<widget class="GtkLabel" id="account_types_description_entry">
+				<widget class="GtkScrolledWindow" id="scrolledwindow31">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes"></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.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
+				  <property name="can_focus">True</property>
+				  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+				  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+				  <property name="shadow_type">GTK_SHADOW_NONE</property>
+				  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+				  <child>
+				    <widget class="GtkTextView" id="account_types_description">
+				      <property name="visible">True</property>
+				      <property name="sensitive">False</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">False</property>
+				      <property name="overwrite">False</property>
+				      <property name="accepts_tab">False</property>
+				      <property name="justification">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap_mode">GTK_WRAP_WORD</property>
+				      <property name="cursor_visible">False</property>
+				      <property name="pixels_above_lines">0</property>
+				      <property name="pixels_below_lines">0</property>
+				      <property name="pixels_inside_wrap">0</property>
+				      <property name="left_margin">0</property>
+				      <property name="right_margin">0</property>
+				      <property name="indent">0</property>
+				      <property name="text" translatable="yes"></property>
+				    </widget>
+				  </child>
 				</widget>
 			      </child>
 			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
 			  </child>
 			</widget>
+			<packing>
+			  <property name="shrink">True</property>
+			  <property name="resize">True</property>
+			</packing>
 		      </child>
+		    </widget>
+		    <packing>
+		      <property name="shrink">True</property>
+		      <property name="resize">True</property>
+		    </packing>
+		  </child>
 
+		  <child>
+		    <widget class="GtkVBox" id="vbox131">
+		      <property name="border_width">6</property>
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">6</property>
+
 		      <child>
-			<widget class="GtkLabel" id="label8477397">
+			<widget class="GtkLabel" id="label8477398">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Detailed Description</property>
+			  <property name="label" translatable="yes">&lt;b&gt;Included Accounts&lt;/b&gt;</property>
 			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
+			  <property name="use_markup">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="ypad">0</property>
 			</widget>
 			<packing>
-			  <property name="type">label_item</property>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
 			</packing>
 		      </child>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
-		    </packing>
-		  </child>
 
-		  <child>
-		    <widget class="GtkFrame" id="frame2">
-		      <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="GtkScrolledWindow" id="scrolledwindow3">
+			<widget class="GtkAlignment" id="alignment13">
 			  <property name="visible">True</property>
-			  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-			  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xscale">1</property>
+			  <property name="yscale">1</property>
+			  <property name="top_padding">0</property>
+			  <property name="bottom_padding">0</property>
+			  <property name="left_padding">12</property>
+			  <property name="right_padding">0</property>
 
 			  <child>
-			    <widget class="GtkViewport" id="viewport2">
+			    <widget class="GtkScrolledWindow" id="scrolledwindow3">
 			      <property name="visible">True</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
+			      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+			      <property name="shadow_type">GTK_SHADOW_NONE</property>
+			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 			      <child>
-				<widget class="GtkHBox" id="accounts_in_category">
+				<widget class="GtkViewport" id="viewport2">
 				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">0</property>
+				  <property name="shadow_type">GTK_SHADOW_IN</property>
 
 				  <child>
-				    <placeholder/>
+				    <widget class="GtkHBox" id="accounts_in_category">
+				      <property name="visible">True</property>
+				      <property name="homogeneous">False</property>
+				      <property name="spacing">0</property>
+
+				      <child>
+					<placeholder/>
+				      </child>
+				    </widget>
 				  </child>
 				</widget>
 			      </child>
 			    </widget>
 			  </child>
 			</widget>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label8477398">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Accounts</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>
-			</widget>
 			<packing>
-			  <property name="type">label_item</property>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
 			</packing>
 		      </child>
 		    </widget>
 		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
+		      <property name="shrink">True</property>
+		      <property name="resize">True</property>
 		    </packing>
 		  </child>
 		</widget>
@@ -1535,14 +1611,14 @@
 	      <child>
 		<widget class="GtkLabel" id="finalAccountLabel">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">If you would like an account to have an opening balance, click on the
-account and enter the starting balance in the box on the right. All
-accounts except Equity and placeholder accounts may have an
-opening balance.</property>
+		  <property name="label" translatable="yes">If you would like an account to have an opening balance, click on the row containing the account, click again in the opening balances column, and then enter the starting balance. All accounts except Equity and placeholder accounts may have an opening balance.
+
+If you would like an account to be a placeholder account, just click the checkbox for that 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="wrap">True</property>
 		  <property name="selectable">False</property>
 		  <property name="xalign">0.5</property>
 		  <property name="yalign">0.5</property>
@@ -1557,107 +1633,31 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox4">
+		<widget class="GtkScrolledWindow" id="scrolledwindow4">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">2</property>
+		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+		  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+		  <property name="shadow_type">GTK_SHADOW_IN</property>
+		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 		  <child>
-		    <widget class="GtkScrolledWindow" id="scrolledwindow4">
+		    <widget class="GtkViewport" id="viewport3">
 		      <property name="visible">True</property>
-		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
 		      <property name="shadow_type">GTK_SHADOW_IN</property>
-		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 		      <child>
-			<widget class="GtkViewport" id="viewport3">
+			<widget class="GtkHBox" id="final_account_tree_box">
 			  <property name="visible">True</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
 
 			  <child>
-			    <widget class="GtkHBox" id="final_account_tree_box">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
+			    <placeholder/>
 			  </child>
 			</widget>
 		      </child>
 		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
 		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox5">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkFrame" id="frame3">
-			  <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="GtkVBox" id="start_balance_box">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label8477399">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Opening Balance</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>
-			    </widget>
-			    <packing>
-			      <property name="type">label_item</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<placeholder/>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3020,7 +3020,6 @@
 	      <child>
 		<widget class="GtkTreeView" id="types_tree_view">
 		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Select the account types that should be displayed.</property>
 		  <property name="can_focus">True</property>
 		  <property name="headers_visible">False</property>
 		  <property name="rules_hint">True</property>
@@ -3047,7 +3046,6 @@
 		  <child>
 		    <widget class="GtkButton" id="select_all">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Select all types.</property>
 		      <property name="can_default">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="label" translatable="yes">_Select All</property>
@@ -3061,7 +3059,6 @@
 		  <child>
 		    <widget class="GtkButton" id="clear_all">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Clear the selection and unselect all types.</property>
 		      <property name="can_default">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="label" translatable="yes">C_lear All</property>
@@ -3075,7 +3072,6 @@
 		  <child>
 		    <widget class="GtkButton" id="default_types">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Select the default selection.</property>
 		      <property name="can_default">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="label" translatable="yes">_Default</property>
@@ -3164,7 +3160,7 @@
 	  <child>
 	    <widget class="GtkLabel" id="Balance">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Balance</property>
+	      <property name="label" translatable="yes">Balances</property>
 	      <property name="use_underline">False</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>



More information about the gnucash-changes mailing list