[Gnucash-changes] Add the infrastructure for the new preferences dialog.

David Hampton hampton at cvs.gnucash.org
Fri Jul 22 14:52:16 EDT 2005


Log Message:
-----------
Add the infrastructure for the new preferences dialog.  Begin
migrating preferences over to the new dialog.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash/src/gnome-utils:
        Makefile.am
        gnc-main-window.c
        preferences.glade
    gnucash/src/gnome-utils/ui:
        gnc-main-window-ui.xml

Added Files:
-----------
    gnucash/src/gnome-utils:
        dialog-preferences.c
        dialog-preferences.h

Revision Data
-------------
--- /dev/null
+++ src/gnome-utils/dialog-preferences.h
@@ -0,0 +1,31 @@
+/*
+ * dialog-preferences.h -- preferences dialog
+ * Copyright (C) 2005 David Hampton
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+ * Boston, MA  02111-1307,  USA       gnu at gnu.org
+ */
+
+void gnc_preferences_add_page (const gchar *filename,
+			       const gchar *widgetname,
+			       const gchar *tabname);
+
+void gnc_preferences_add_to_page (const gchar *filename,
+				  const gchar *widgetname,
+				  const gchar *tabname);
+
+void gnc_preferences_dialog (void);
--- /dev/null
+++ src/gnome-utils/dialog-preferences.c
@@ -0,0 +1,711 @@
+/*
+ * dialog-preferences.c -- preferences dialog
+ * Copyright (C) 2005 David Hampton
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+ * Boston, MA  02111-1307,  USA       gnu at gnu.org
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+
+#include "dialog-utils.h"
+#include "gnc-gconf-utils.h"
+#include "gnc-trace.h"
+#include "gnc-ui.h"
+#include "gnc-component-manager.h"
+#include "dialog-preferences.h"
+
+#define DIALOG_PREFERENCES_CM_CLASS	"dialog-newpreferences"
+#define GCONF_SECTION			"dialogs/preferences"
+#define PREFIX_LEN			sizeof("gconf/") - 1
+
+/* This static indicates the debugging module that this .o belongs to.  */
+static short module = MOD_PREFS;
+
+void gnc_preferences_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused);
+void gnc_reset_warnings_select_all_cb (GtkButton *button, gpointer user_data);
+void gnc_reset_warnings_unselect_all_cb (GtkButton *button, gpointer user_data);
+void gnc_reset_warnings_response_cb (GtkDialog *dialog, gint arg1, gpointer user_data);
+
+
+typedef struct addition_t {
+  gchar *filename;
+  gchar *widgetname;
+  gchar *tabname;
+  gboolean full_page;
+} addition;
+
+GSList *add_ins = NULL;
+
+static void
+gnc_preferences_add_page_internal (const gchar *filename,
+				   const gchar *widgetname,
+				   const gchar *tabname,
+				   gboolean full_page)
+{
+  addition *add_in;
+
+  ENTER("file %s, widget %s, tab %s full page %d",
+	filename, widgetname, tabname, full_page);
+  add_in = g_malloc(sizeof(addition));
+  if (add_in == NULL) {
+    g_critical("Unable to allocate memory.\n");
+    LEAVE("no memory");
+    return;
+  }
+
+  add_in->filename   = g_strdup(filename);
+  add_in->widgetname = g_strdup(widgetname);
+  add_in->tabname    = g_strdup(tabname);
+  add_in->full_page  = full_page;
+  if (!add_in->filename || !add_in->widgetname || !add_in->tabname) {
+    g_critical("Unable to allocate memory.\n");
+    g_free(add_in->filename);
+    g_free(add_in->widgetname);
+    g_free(add_in->tabname);
+    LEAVE("no memory");
+    return;
+  }
+  add_ins = g_slist_append(add_ins, add_in);
+  LEAVE("");
+}
+
+
+void
+gnc_preferences_add_page (const gchar *filename,
+			  const gchar *widgetname,
+			  const gchar *tabname)
+{
+  gnc_preferences_add_page_internal(filename, widgetname, tabname, TRUE);
+}
+
+void
+gnc_preferences_add_to_page (const gchar *filename,
+			     const gchar *widgetname,
+			     const gchar *tabname)
+{
+  gnc_preferences_add_page_internal(filename, widgetname, tabname, FALSE);
+}
+
+/****************************************/
+
+struct find_data {
+  GtkNotebook *notebook;
+  const gchar *tabname;
+  gint index;
+  gboolean exact;
+};
+
+struct copy_data {
+  GtkTable *table_from;
+  GtkTable *table_to;
+  gint row_offset;
+};
+
+struct page_data {
+  GtkNotebook *notebook;
+  GList *widgets;
+};
+
+static void
+gnc_prefs_find_page (GtkWidget *child,
+		     gpointer data)
+{
+  struct find_data *location;
+  const gchar *child_tabname;
+  gint index;
+
+  g_return_if_fail(child != NULL);
+  g_return_if_fail(data != NULL);
+
+  ENTER("");
+  location = data;
+  if (location->index >= 0) {
+    LEAVE("already found");
+    return;
+  }
+  child_tabname = gtk_notebook_get_tab_label_text(location->notebook, child);
+  index = gtk_notebook_page_num(location->notebook, child);
+  DEBUG("Checking index %d, name %s", index, child_tabname);
+
+  if (location->exact) {
+    if (strcmp(location->tabname, child_tabname) == 0) {
+      location->index = index;
+      LEAVE("index is %d", index);
+      return;
+    }
+    LEAVE("not page %d", index);
+    return;
+  }
+
+  if (strcmp(location->tabname, child_tabname) > 0) {
+    LEAVE("after page %d", index);
+    return;
+  }
+
+  location->index = index;
+  LEAVE("insert at offset %d", index);
+}
+
+static void
+gnc_prefs_copy_table_entry (GtkWidget *child,
+			    gpointer data)
+{
+  struct copy_data *copydata = data;
+  GtkAttachOptions x_opts, y_opts;
+  gint bottom, top, left, right, x_pad, y_pad;
+
+  ENTER("child %p, copy data %p", child, data);
+  gtk_container_child_get(GTK_CONTAINER(copydata->table_from), child,
+			  "bottom-attach", &bottom,
+			  "left-attach", &left,
+			  "right-attach", &right,
+			  "top-attach", &top,
+			  "x-options", &x_opts,
+			  "x-padding", &x_pad,
+			  "y-options", &y_opts,
+			  "y-padding", &y_pad,
+			  NULL);
+
+  gtk_widget_ref(child);
+  gtk_container_remove(GTK_CONTAINER(copydata->table_from), child);
+  gtk_table_attach(copydata->table_to, child, left, right,
+		   top + copydata->row_offset, bottom + copydata->row_offset,
+		   x_opts, y_opts, x_pad, y_pad);
+  gtk_widget_unref(child);
+  LEAVE(" ");
+}
+
+static void
+gnc_preferences_build_page (gpointer data,
+			    gpointer user_data)
+{
+  GladeXML *xml;
+  GtkWidget *existing_content, *new_content, *label;
+  GtkNotebook *notebook;
+  struct page_data *page_data;
+  addition *add_in;
+  struct find_data location;
+  struct copy_data copydata;
+  gint rows, cols;
+  GList *interesting;
+
+  ENTER("add_in %p, notebook %p", data, user_data);
+  add_in = (addition *)data;
+  page_data = (struct page_data *) user_data;
+  notebook = page_data->notebook;
+
+  DEBUG("Opening %s to get %s:", add_in->filename, add_in->widgetname);
+  xml = gnc_glade_xml_new(add_in->filename, add_in->widgetname);
+  new_content = glade_xml_get_widget(xml, add_in->widgetname);
+  DEBUG("done");
+
+  /* Add to the list of interesting widgets */
+  interesting = glade_xml_get_widget_prefix(xml, "gconf");
+  page_data->widgets = g_list_concat(page_data->widgets, interesting);
+
+  /* Prepare for recursion */
+  location.notebook = notebook;
+  location.index = -1;
+  location.tabname = add_in->tabname;
+  location.exact = FALSE;
+
+  if (add_in->full_page) {
+    gtk_container_foreach(GTK_CONTAINER(notebook), gnc_prefs_find_page,
+			  &location);
+    label = gtk_label_new(add_in->tabname);
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+    gtk_notebook_insert_page(notebook, new_content, label, location.index);
+    LEAVE("added page at index %d", location.index);
+    return;
+  }
+
+  /* Copied tables must match the size of the main table */
+  g_assert(GTK_IS_TABLE(new_content));
+  g_object_get(G_OBJECT(new_content), "n-columns", &cols, NULL);
+  g_assert(cols == 4);
+
+  /* Does the page exist or must we create it */
+  location.exact = TRUE;
+  gtk_container_foreach(GTK_CONTAINER(notebook), gnc_prefs_find_page,
+			&location);
+  if (location.index == -1) {
+    /* No existing content with this name.  Create a blank page */
+    location.exact = FALSE;
+    existing_content = gtk_table_new(0, 4, FALSE);
+    gtk_container_foreach(GTK_CONTAINER(notebook), gnc_prefs_find_page,
+			  &location);
+    label = gtk_label_new(add_in->tabname);
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+    gtk_notebook_insert_page(notebook, existing_content, label, location.index);
+    gtk_widget_show_all(existing_content);
+    DEBUG("created new page %s at index %d", add_in->tabname, location.index);
+  } else {
+    existing_content = gtk_notebook_get_nth_page(notebook, location.index);
+    DEBUG("found existing page %s at index %d", add_in->tabname, location.index);
+  }
+
+  /* Maybe add a spacer row */
+  g_object_get(G_OBJECT(existing_content), "n-rows", &rows, NULL);
+  if (rows > 0)
+    rows++;
+
+  /* Now copy all the entries in the table */
+  copydata.table_from = GTK_TABLE(new_content);
+  copydata.table_to = GTK_TABLE(existing_content);
+  copydata.row_offset = rows;
+  gtk_container_foreach(GTK_CONTAINER(new_content), gnc_prefs_copy_table_entry,
+			&copydata);
+
+  gtk_object_sink(GTK_OBJECT(new_content));
+  LEAVE("added to page at index %d", location.index);
+}
+
+
+/*******************************/
+/* Dynamically added Callbacks */
+/*******************************/
+
+static void
+gnc_prefs_radio_button_user_cb (GtkRadioButton *button,
+				gpointer user_data)
+{
+  gchar *key, *button_name;
+  gboolean active;
+
+  g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+  active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+  if (!active)
+    return;
+
+  /* Copy the widget name and split into gconf key and button value parts */
+  key = g_strdup(gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN);
+  button_name = rindex(key, '/');
+  *button_name++ = '\0';
+
+  DEBUG("Radio button group %s now set to %s", key, button_name);
+  gnc_gconf_set_string(key, NULL, button_name, NULL);
+  g_free(key);
+}
+
+
+static void
+gnc_prefs_radio_button_gconf_cb (GtkRadioButton *button)
+{
+  g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+  ENTER("button %p", button);
+  g_signal_handlers_block_by_func(G_OBJECT(button),
+				 G_CALLBACK(gnc_prefs_radio_button_user_cb),
+				 NULL);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+  g_signal_handlers_unblock_by_func(G_OBJECT(button),
+			   G_CALLBACK(gnc_prefs_radio_button_user_cb), NULL);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_prefs_connect_radio_button (GtkRadioButton *button)
+{
+  gchar *key, *button_name, *value;
+  gboolean active;
+  GSList *group;
+
+  g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+
+  /* Copy the widget name and split into gconf key and button name parts */
+  key = g_strdup(gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN);
+  button_name = rindex(key, '/');
+  *button_name++ = '\0';
+
+  /* Get the current value. */
+  value = gnc_gconf_get_string(key, NULL, NULL);
+  if (value) {
+    active = (strcmp(value, button_name) == 0);
+  } else {
+    /* Sigh. There's no gconf default for this key. Use the first
+     * button in the dialog, which is the last button in the list. */
+    group =  gtk_radio_button_get_group(button);
+    active = (button != g_slist_nth_data(group, g_slist_length(group)));
+  }
+  DEBUG(" Radio set %s, button %s initially set to %d",
+	key, button_name, active);
+
+  /* Wire up the button */
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
+  g_signal_connect(G_OBJECT(button), "toggled",
+		   G_CALLBACK(gnc_prefs_radio_button_user_cb), NULL);
+  g_free(value);
+  g_free(key);
+}
+
+/**********/
+
+static void
+gnc_prefs_check_button_user_cb (GtkCheckButton *button,
+				gpointer user_data)
+{
+  const gchar *name;
+  gboolean active;
+
+  g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
+  name = gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN;
+  active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+  DEBUG("Checkbox %s now %sactive", name, active ? "" : "in");
+  gnc_gconf_set_bool(name, NULL, active, NULL);
+}
+
+
+static void
+gnc_prefs_check_button_gconf_cb (GtkCheckButton *button,
+				 gboolean active)
+{
+  g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
+  ENTER("button %p, active %d", button, active);
+  g_signal_handlers_block_by_func(G_OBJECT(button),
+				 G_CALLBACK(gnc_prefs_check_button_user_cb),
+				 NULL);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
+  g_signal_handlers_unblock_by_func(G_OBJECT(button),
+			   G_CALLBACK(gnc_prefs_check_button_user_cb), NULL);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_prefs_connect_check_button (GtkCheckButton *button)
+{
+  const gchar *name;
+  gboolean active;
+
+  name = gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN;
+  active = gnc_gconf_get_bool(name, NULL, NULL);
+  DEBUG(" Checkbox %s initially %sactive", name, active ? "" : "in");
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
+  g_signal_connect(G_OBJECT(button), "toggled",
+		   G_CALLBACK(gnc_prefs_check_button_user_cb), NULL);
+}
+
+/**********/
+
+static void
+gnc_prefs_spin_button_user_cb (GtkSpinButton *spin,
+			       gpointer user_data)
+{
+  const gchar *name;
+  gdouble value;
+
+  g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
+  name = gtk_widget_get_name(GTK_WIDGET(spin)) + PREFIX_LEN;
+  value = gtk_spin_button_get_value(spin);
+  DEBUG(" Spin button %s has value %f", name, value);
+  gnc_gconf_set_float(name, NULL, value, NULL);
+}
+
+
+static void
+gnc_prefs_spin_button_gconf_cb (GtkSpinButton *spin,
+				gdouble value)
+{
+  g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
+  ENTER("button %p, value %f", spin, value);
+  g_signal_handlers_block_by_func(G_OBJECT(spin),
+				 G_CALLBACK(gnc_prefs_spin_button_user_cb),
+				 NULL);
+  gtk_spin_button_set_value(spin, value);
+  g_signal_handlers_unblock_by_func(G_OBJECT(spin),
+			   G_CALLBACK(gnc_prefs_spin_button_user_cb), NULL);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_prefs_connect_spin_button (GtkSpinButton *spin)
+{
+  const gchar *name;
+  gdouble value;
+
+  g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
+  name = gtk_widget_get_name(GTK_WIDGET(spin)) + PREFIX_LEN;
+  value = gnc_gconf_get_float(name, NULL, NULL);
+  gtk_spin_button_set_value(spin, value);
+  DEBUG(" Spin button %s has initial value %f", name, value);
+  g_signal_connect(G_OBJECT(spin), "value-changed",
+		   G_CALLBACK(gnc_prefs_spin_button_user_cb), NULL);
+}
+
+
+/**********/
+
+static void
+gnc_prefs_combo_box_user_cb (GtkComboBox *box,
+			     gpointer user_data)
+{
+  const gchar *name;
+  gint active;
+
+  g_return_if_fail(GTK_IS_COMBO_BOX(box));
+  name = gtk_widget_get_name(GTK_WIDGET(box)) + PREFIX_LEN;
+  active = gtk_combo_box_get_active(box);
+  DEBUG("Combo box %s set to item %d", name, active);
+  gnc_gconf_set_int(name, NULL, active, NULL);
+}
+
+
+static void
+gnc_prefs_combo_box_gconf_cb (GtkComboBox *box,
+			      gint value)
+{
+  g_return_if_fail(GTK_IS_COMBO_BOX(box));
+  ENTER("box %p, value %d", box, value);
+  g_signal_handlers_block_by_func(G_OBJECT(box),
+				 G_CALLBACK(gnc_prefs_combo_box_user_cb),
+				 NULL);
+  gtk_combo_box_set_active(box, value);
+  g_signal_handlers_unblock_by_func(G_OBJECT(box),
+			   G_CALLBACK(gnc_prefs_combo_box_user_cb), NULL);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_prefs_connect_combo_box (GtkComboBox *box)
+{
+  const gchar *name;
+  gint active;
+
+  g_return_if_fail(GTK_IS_COMBO_BOX(box));
+  name = gtk_widget_get_name(GTK_WIDGET(box)) + PREFIX_LEN;
+  active = gnc_gconf_get_int(name, NULL, NULL);
+  gtk_combo_box_set_active(GTK_COMBO_BOX(box), active);
+  DEBUG(" Combo box %s set to item %d", name, active);
+  g_signal_connect(G_OBJECT(box), "changed",
+		   G_CALLBACK(gnc_prefs_combo_box_user_cb), NULL);
+}
+
+
+/********************/
+/*    Callbacks     */
+/********************/
+
+void
+gnc_preferences_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused)
+{
+  switch (response) {
+   case GTK_RESPONSE_HELP:
+     gnc_gnome_help(HF_CUSTOM, HL_GLOBPREFS);
+    break;
+
+   case GTK_RESPONSE_CLOSE:
+     gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+     gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS,
+					  dialog);
+     gnc_gconf_remove_notification(G_OBJECT(dialog), NULL);
+     gtk_widget_destroy(GTK_WIDGET(dialog));
+     break;
+
+   default:
+     break;
+  }
+}
+
+/********************/
+/*    Creation      */
+/********************/
+
+static GtkWidget *
+gnc_preferences_dialog_create(void)
+{
+  GladeXML *xml;
+  GtkWidget *dialog, *notebook, *widget;
+  struct page_data page_data;
+  GList *interesting, *runner;
+
+  ENTER("");
+  DEBUG("Opening preferences.glade:");
+  xml = gnc_glade_xml_new("preferences.glade", "New Gnucash Preferences");
+  dialog = glade_xml_get_widget(xml, "New Gnucash Preferences");
+  g_object_set_data(G_OBJECT(dialog), "xml", xml);
+  DEBUG("autoconnect");
+  glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+				    dialog);
+  DEBUG("done");
+
+  notebook = glade_xml_get_widget(xml, "notebook1");
+  interesting = glade_xml_get_widget_prefix(xml, "gconf");
+
+  page_data.notebook = GTK_NOTEBOOK(notebook);
+  page_data.widgets = interesting;
+  g_slist_foreach(add_ins, gnc_preferences_build_page, &page_data);
+
+  DEBUG("We have the following interesting widgets:");
+  for (runner = page_data.widgets; runner; runner = g_list_next(runner)) {
+    widget = GTK_WIDGET(runner->data);
+    if (GTK_IS_RADIO_BUTTON(widget)) {
+      DEBUG("  %s - radio button", gtk_widget_get_name(widget));
+      gnc_prefs_connect_radio_button(GTK_RADIO_BUTTON(widget));
+    } else if (GTK_IS_CHECK_BUTTON(widget)) {
+      DEBUG("  %s - check button", gtk_widget_get_name(widget));
+      gnc_prefs_connect_check_button(GTK_CHECK_BUTTON(widget));
+    } else if (GTK_IS_SPIN_BUTTON(widget)) {
+      DEBUG("  %s - spin button", gtk_widget_get_name(widget));
+      gnc_prefs_connect_spin_button(GTK_SPIN_BUTTON(widget));
+    } else if (GTK_IS_COMBO_BOX(widget)) {
+      DEBUG("  %s - combo box", gtk_widget_get_name(widget));
+      gnc_prefs_connect_combo_box(GTK_COMBO_BOX(widget));
+    } else {
+      DEBUG("  %s - unsupported %s", gtk_widget_get_name(widget),
+	    G_OBJECT_TYPE_NAME(G_OBJECT(widget)));
+    }
+  }
+  DEBUG("Done with interesting widgets.");
+
+  LEAVE("dialog %p", dialog);
+  return dialog;
+}
+
+
+static void
+gnc_preferences_gconf_changed (GConfClient *client,
+			       guint cnxn_id,
+			       GConfEntry *entry,
+			       gpointer dialog)
+{
+  GConfValue *value;
+  const gchar *key, *string_value;
+  gchar  **parts, *name, *group_name = NULL;
+  GtkWidget *widget;
+  GList *possibilities;
+  GladeXML *xml;
+
+  ENTER("key %s, value %p", entry->key, entry->value);
+  key = gconf_entry_get_key(entry);
+  value = gconf_entry_get_value(entry);
+  if (!value) {
+    /* Values can be unset */
+    LEAVE("Unset valued for %s", key);
+    return;
+  }
+
+  parts = g_strsplit(entry->key, "/", 4);
+  name = g_strconcat("gconf/", parts[3], NULL);
+  g_strfreev(parts);
+  DEBUG("proposed widget name %s", name);
+
+  widget = gnc_glade_lookup_widget(dialog, name);
+  if ((widget == NULL) && (entry->value->type == GCONF_VALUE_STRING)) {
+    string_value = gconf_value_get_string(entry->value);
+    group_name = name;
+    name = g_strjoin("/", group_name, string_value, NULL);
+    DEBUG("proposed widget name %s", name);
+    widget = gnc_glade_lookup_widget(dialog, name);
+    if (widget == NULL) {
+      /* Mutter, mutter. Someone must have typed a bad string into
+       * gconf.  Force the value to a legal string.  Do this by
+       * directly setting the first widget in the group. This will
+       * ensure synchronization of Gnucash, Gconf, and the Prefs
+       * Dialog. */
+      DEBUG("bad value");
+      xml = g_object_get_data(G_OBJECT(dialog), "xml");
+      possibilities = glade_xml_get_widget_prefix(xml, group_name);
+      if (possibilities) {
+	DEBUG("forcing %s", gtk_widget_get_name(possibilities->data));
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(possibilities->data), TRUE);
+	g_list_free(possibilities);
+      }
+    }
+    g_free(group_name);
+  }
+  if (widget != NULL) {
+    if (GTK_IS_RADIO_BUTTON(widget)) {
+      DEBUG("widget %p - radio button", widget);
+      gnc_prefs_radio_button_gconf_cb(GTK_RADIO_BUTTON(widget));
+    } else if (GTK_IS_CHECK_BUTTON(widget)) {
+      DEBUG("widget %p - check button", widget);
+      gnc_prefs_check_button_gconf_cb(GTK_CHECK_BUTTON(widget),
+					    gconf_value_get_bool(entry->value));
+    } else if (GTK_IS_SPIN_BUTTON(widget)) {
+      DEBUG("widget %p - spin button", widget);
+      gnc_prefs_spin_button_gconf_cb(GTK_SPIN_BUTTON(widget),
+				     gconf_value_get_float(entry->value));
+    } else if (GTK_IS_COMBO_BOX(widget)) {
+      DEBUG("widget %p - combo_box", widget);
+      gnc_prefs_combo_box_gconf_cb(GTK_COMBO_BOX(widget),
+				   gconf_value_get_int(entry->value));
+    } else {
+      DEBUG("widget %p - unsupported %s", widget,
+	    G_OBJECT_TYPE_NAME(G_OBJECT(widget)));
+    }
+  }
+
+  g_free(name);
+  LEAVE(" ");
+}
+
+
+static gboolean
+show_handler (const char *class, gint component_id,
+	      gpointer user_data, gpointer iter_data)
+{
+  GtkWidget *dialog;
+
+  ENTER(" ");
+  dialog = GTK_WIDGET(user_data);
+  gtk_window_present(GTK_WINDOW(dialog));
+  LEAVE(" ");
+  return(TRUE);
+}
+
+
+static void
+close_handler (gpointer user_data)
+{
+  GtkWidget *dialog;
+
+  ENTER(" ");
+  dialog = GTK_WIDGET(user_data);
+  gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS, dialog);
+  gtk_widget_destroy(dialog);
+  LEAVE(" ");
+}
+
+
+void
+gnc_preferences_dialog (void)
+{
+  GtkWidget *dialog;
+
+  ENTER("");
+  if (gnc_forall_gui_components(DIALOG_PREFERENCES_CM_CLASS,
+				show_handler, NULL)) {
+    LEAVE("existing window");
+    return;
+  }
+
+  dialog = gnc_preferences_dialog_create();
+
+  gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+
+  gnc_gconf_add_notification(G_OBJECT(dialog), NULL,
+			     gnc_preferences_gconf_changed);
+  gnc_register_gui_component(DIALOG_PREFERENCES_CM_CLASS,
+			     NULL, close_handler, dialog);
+  LEAVE(" ");
+}
Index: Makefile.am
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Makefile.am,v
retrieving revision 1.48.2.35
retrieving revision 1.48.2.36
diff -Lsrc/gnome-utils/Makefile.am -Lsrc/gnome-utils/Makefile.am -u -r1.48.2.35 -r1.48.2.36
--- src/gnome-utils/Makefile.am
+++ src/gnome-utils/Makefile.am
@@ -37,6 +37,7 @@
   dialog-account.c \
   dialog-commodity.c \
   dialog-options.c \
+  dialog-preferences.c \
   dialog-query-list.c \
   dialog-reset-warnings.c \
   dialog-transfer.c \
@@ -100,6 +101,7 @@
   account-quickfill.h \
   dialog-account.h \
   dialog-commodity.h \
+  dialog-preferences.h \
   dialog-options.h \
   dialog-query-list.h \
   dialog-reset-warnings.h \
Index: gnc-main-window.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Attic/gnc-main-window.c,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -Lsrc/gnome-utils/gnc-main-window.c -Lsrc/gnome-utils/gnc-main-window.c -u -r1.1.2.14 -r1.1.2.15
--- src/gnome-utils/gnc-main-window.c
+++ src/gnome-utils/gnc-main-window.c
@@ -33,8 +33,10 @@
 #include "gnc-main-window.h"
 
 #include "dialog-options.h"
+#include "dialog-preferences.h"
 #include "dialog-reset-warnings.h"
 #include "dialog-transfer.h"
+#include "dialog-utils.h"
 #include "gnc-component-manager.h"
 #include "gnc-engine-util.h"
 #include "gnc-file.h"
@@ -60,7 +62,7 @@
 #define PLUGIN_PAGE_IMMUTABLE "page-immutable"
 
 #define DESKTOP_GNOME_INTERFACE "/desktop/gnome/interface"
-#define TOOLBAR_STYLE "/desktop/gnome/interface/toolbar_style"
+#define KEY_TOOLBAR_STYLE	"toolbar_style"
 
 /** Static Globals *******************************************************/
 static short module = MOD_GUI;
@@ -86,6 +88,7 @@
 static void gnc_main_window_cmd_file_close (GtkAction *action, GncMainWindow *window);
 static void gnc_main_window_cmd_file_quit (GtkAction *action, GncMainWindow *window);
 static void gnc_main_window_cmd_edit_preferences (GtkAction *action, GncMainWindow *window);
+static void gnc_main_window_cmd_edit_preferences2 (GtkAction *action, GncMainWindow *window);
 static void gnc_main_window_cmd_view_refresh (GtkAction *action, GncMainWindow *window);
 static void gnc_main_window_cmd_view_toolbar (GtkAction *action, GncMainWindow *window);
 static void gnc_main_window_cmd_view_summary (GtkAction *action, GncMainWindow *window);
@@ -169,6 +172,9 @@
 	{ "EditPreferencesAction", GTK_STOCK_PREFERENCES, N_("Pr_eferences"), NULL,
 	  NULL,
 	  G_CALLBACK (gnc_main_window_cmd_edit_preferences) },
+	{ "EditPreferences2Action", GTK_STOCK_PREFERENCES, N_("Pr_eferences (New)"), NULL,
+	  NULL,
+	  G_CALLBACK (gnc_main_window_cmd_edit_preferences2) },
 
 	/* View menu */
 
@@ -939,6 +945,7 @@
 	  gnc_main_window_update_all_menu_items();
 
 	  gnc_gconf_remove_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE);
+	  gnc_gconf_remove_notification(G_OBJECT(window), GCONF_GENERAL);
 
 	  gnc_engine_unregister_event_handler(window->priv->event_handler_id);
 	  window->priv->event_handler_id = 0;
@@ -1359,16 +1366,14 @@
 }
 
 static void
-gnc_main_window_update_toolbar (GncMainWindow *window,
-				const gchar *style_name)
+gnc_main_window_update_toolbar (GncMainWindow *window)
 {
 	GtkToolbarStyle style;
 	GSList *list;
 
-	ENTER("window %p, style %s", window, style_name);
+	ENTER("window %p", window);
 
-	style = gnc_enum_from_nick(GTK_TYPE_TOOLBAR_STYLE, style_name,
-				   GTK_TOOLBAR_BOTH);
+	style = gnc_get_toolbar_style();
 	list = gtk_ui_manager_get_toplevels(window->ui_merge, GTK_UI_MANAGER_TOOLBAR);
 	g_slist_foreach(list, (GFunc)gtk_toolbar_set_style, GINT_TO_POINTER(style));
 	g_slist_free(list);
@@ -1383,7 +1388,7 @@
 {
 	GncMainWindow *window;
 	GConfValue *value;
-	const gchar *key;
+	const gchar *key, *key_tail;
 
 	window = GNC_MAIN_WINDOW(user_data);
 
@@ -1392,9 +1397,11 @@
 	if (!key || !value)
 	  return;
 
-	if (strcmp(key, TOOLBAR_STYLE) == 0) {
-	  gnc_main_window_update_toolbar(window, gconf_value_get_string(value));
-	  return;
+	key_tail = rindex(key, '/');
+	if (key_tail != NULL)
+	  key_tail++;
+	if (strcmp(key_tail, KEY_TOOLBAR_STYLE) == 0) {
+	  gnc_main_window_update_toolbar(window);
 	}
 }
 
@@ -1407,7 +1414,7 @@
 	GncPluginManager *manager;
 	GList *plugins;
 	GError *error = NULL;
-	gchar *filename, *style;
+	gchar *filename;
 	SCM debugging;
 
 	/* Catch window manager delete signal */
@@ -1490,11 +1497,11 @@
 	}
 	g_free(filename);
 
+	gnc_gconf_add_notification(G_OBJECT(window), GCONF_GENERAL,
+				   gnc_main_window_gconf_changed);
 	gnc_gconf_add_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE,
 				   gnc_main_window_gconf_changed);
-	style = gnc_gconf_get_string(TOOLBAR_STYLE, NULL, NULL);
-	gnc_main_window_update_toolbar(window, style);
-	g_free(style);
+	gnc_main_window_update_toolbar(window);
 
         /* Testing */
 	/* Now update the "eXtensions" menu */
@@ -1689,6 +1696,12 @@
 }
 
 static void
+gnc_main_window_cmd_edit_preferences2 (GtkAction *action, GncMainWindow *window)
+{
+	gnc_preferences_dialog ();
+}
+
+static void
 gnc_main_window_cmd_view_refresh (GtkAction *action, GncMainWindow *window)
 {
 }
Index: preferences.glade
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Attic/preferences.glade,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/gnome-utils/preferences.glade -Lsrc/gnome-utils/preferences.glade -u -r1.1.2.2 -r1.1.2.3
--- src/gnome-utils/preferences.glade
+++ src/gnome-utils/preferences.glade
@@ -137,4 +137,1755 @@
   </child>
 </widget>
 
+<widget class="GtkDialog" id="New Gnucash Preferences">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">New Gnucash Preferences</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">600</property>
+  <property name="default_height">400</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="has_separator">True</property>
+  <signal name="response" handler="gnc_preferences_response_cb" last_modification_time="Thu, 28 Apr 2005 16:35:16 GMT"/>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox1">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area1">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="helpbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-help</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-11</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="closebutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-close</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-7</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkNotebook" id="notebook1">
+	  <property name="border_width">6</property>
+	  <property name="visible">True</property>
+	  <property name="can_focus">True</property>
+	  <property name="show_tabs">True</property>
+	  <property name="show_border">True</property>
+	  <property name="tab_pos">GTK_POS_LEFT</property>
+	  <property name="scrollable">False</property>
+	  <property name="enable_popup">False</property>
+
+	  <child>
+	    <widget class="GtkTable" id="table1">
+	      <property name="border_width">6</property>
+	      <property name="visible">True</property>
+	      <property name="n_rows">11</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label12">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Separator Character&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="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/use_accounting_labels">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Use only 'debit' and 'credit' instead of informal synonyms</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Use _formal accounting labels</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">10</property>
+		  <property name="bottom_attach">11</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label62">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Labels&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">9</property>
+		  <property name="bottom_attach">10</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label61">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">8</property>
+		  <property name="bottom_attach">9</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/reversed_accounts/none">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Don't sign reverse any accounts.</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_None</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/reversed_accounts/credit">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Sign reverse balances on the following: Credit Card, Payable, Liability, Equity, and Income.</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Credit _Accounts</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/reversed_accounts/none</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">6</property>
+		  <property name="bottom_attach">7</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/reversed_accounts/income_expense">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Sign reverse balances on income and expense accounts.</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Income &amp; Expense</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/reversed_accounts/none</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">5</property>
+		  <property name="bottom_attach">6</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label55">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Reverse Balanced Accoutns&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="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">4</property>
+		  <property name="bottom_attach">5</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label54">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/account_separator/dash">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Income-Salary-Taxable</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">- (_Dash)</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/account_separator/period">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Income.Salary.Taxable</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">. (_Period)</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/account_separator/dash</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/account_separator/slash">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Income/Salary/Taxable</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">/ (_Slash)</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/account_separator/dash</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/account_separator/backslash">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Income\Salary\Taxable</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">\ (_Backslash)</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/account_separator/dash</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/account_separator/colon">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Income:Salary:Taxable</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">: (Co_lon)</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/account_separator/dash</property>
+		</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_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label1">
+	      <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</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkTable" id="table2">
+	      <property name="border_width">6</property>
+	      <property name="visible">True</property>
+	      <property name="n_rows">13</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label50">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;General&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label49">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Numbers&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">4</property>
+		  <property name="bottom_attach">5</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label51">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label18">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">_Retain log files:</property>
+		  <property name="use_underline">True</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">0</property>
+		  <property name="ypad">0</property>
+		  <property name="mnemonic_widget">gconf/general/retain_days</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">11</property>
+		  <property name="bottom_attach">12</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label48">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Files&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">9</property>
+		  <property name="bottom_attach">10</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label60">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">8</property>
+		  <property name="bottom_attach">9</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label17">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">_Decimal places:</property>
+		  <property name="use_underline">True</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">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox2">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkSpinButton" id="gconf/general/retain_days">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Delete old log/backup files after this many days (0 = never).</property>
+		      <property name="can_focus">True</property>
+		      <property name="climb_rate">1</property>
+		      <property name="digits">0</property>
+		      <property name="numeric">False</property>
+		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+		      <property name="snap_to_ticks">False</property>
+		      <property name="wrap">False</property>
+		      <property name="adjustment">30 0 99999 1 10 10</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkLabel" id="label58">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">days</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</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="left_attach">1</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">11</property>
+		  <property name="bottom_attach">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options">fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkSpinButton" id="gconf/general/auto_decimal_places">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">How many automatic decimal places will be filled in.</property>
+		  <property name="can_focus">True</property>
+		  <property name="climb_rate">1</property>
+		  <property name="digits">0</property>
+		  <property name="numeric">False</property>
+		  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+		  <property name="snap_to_ticks">False</property>
+		  <property name="wrap">False</property>
+		  <property name="adjustment">2 1 8 1 4 4</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/dialogs/new_hierarchy/open_for_new_file">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Don't popup the new account list dialog when you choose &quot;New File&quot; from the &quot;File&quot; menu</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Perform account list _setup on new file</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/dialogs/tip_of_the_day/show_at_startup">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Display hints for using GnuCash at startup</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Display &quot;_Tip of the Day&quot; dialog</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/negative_in_red">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Display negative amounts in red</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Display _negative amounts in red</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">5</property>
+		  <property name="bottom_attach">6</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/auto_decimal_point">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Automatically insert a decimal point into values that are entered without one.</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Automatic Decimal Point</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">6</property>
+		  <property name="bottom_attach">7</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/compress_files">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Compress the data file.</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Com_press files</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">10</property>
+		  <property name="bottom_attach">11</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label2">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">General</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</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkTable" id="table3">
+	      <property name="border_width">6</property>
+	      <property name="visible">True</property>
+	      <property name="n_rows">14</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label56">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Actions&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="left_attach">0</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/enter_movess_to_end">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">'_Enter' moves to blank transaction</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label66">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/auto_raise_lists">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Automatically raise the list of accounts or actions during input.</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Auto-Raise Lists</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">True</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label45">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Graphics&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="left_attach">0</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">4</property>
+		  <property name="bottom_attach">5</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/use_theme_colors">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Use system theme color in registers</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">5</property>
+		  <property name="bottom_attach">6</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/alternate_color_by_transaction">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Double _mode colors alternate with transactions</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">6</property>
+		  <property name="bottom_attach">7</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/draw_horizontal_lines">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Draw hori_zontal lines between cells</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/draw_vertical_lines">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Draw _vertical lines between cells</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">8</property>
+		  <property name="bottom_attach">9</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label3">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Register</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</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkTable" id="table4">
+	      <property name="border_width">6</property>
+	      <property name="visible">True</property>
+	      <property name="n_rows">11</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label63">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Default Style&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label64">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">4</property>
+		  <property name="bottom_attach">5</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label65">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Other Defaults&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">5</property>
+		  <property name="bottom_attach">6</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/register/default_style/ledger">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Basic Ledger</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/register/default_style/auto_ledger">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Auto-Split Ledger</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/register/default_style/ledger</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/register/default_style/journal">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Transaction _Journal</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/register/default_style/ledger</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label43">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Number of _rows:</property>
+		  <property name="use_underline">True</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">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">9</property>
+		  <property name="bottom_attach">10</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label59">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Number of _transactions:</property>
+		  <property name="use_underline">True</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">0</property>
+		  <property name="ypad">0</property>
+		  <property name="mnemonic_widget">gconf/general/register/max_transactions</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">8</property>
+		  <property name="bottom_attach">9</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkSpinButton" id="gconf/general/register/max_transactions">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Show this many transactions in a register. A value of zero means show all transactions.</property>
+		  <property name="can_focus">True</property>
+		  <property name="climb_rate">1</property>
+		  <property name="digits">0</property>
+		  <property name="numeric">True</property>
+		  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+		  <property name="snap_to_ticks">True</property>
+		  <property name="wrap">False</property>
+		  <property name="adjustment">0 0 999999 1 10 10</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">8</property>
+		  <property name="bottom_attach">9</property>
+		  <property name="x_options"></property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/double_line_mode">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Double line mode</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/register/use_new_window">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Register opens in a new _window</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">6</property>
+		  <property name="bottom_attach">7</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkSpinButton" id="gconf/general/register/number_of_rows">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Display this many rows when a register is created.</property>
+		  <property name="can_focus">True</property>
+		  <property name="climb_rate">1</property>
+		  <property name="digits">0</property>
+		  <property name="numeric">True</property>
+		  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+		  <property name="snap_to_ticks">True</property>
+		  <property name="wrap">False</property>
+		  <property name="adjustment">20 1 200 1 10 10</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">9</property>
+		  <property name="bottom_attach">10</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label4">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Register Defaults</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</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkTable" id="table5">
+	      <property name="border_width">6</property>
+	      <property name="visible">True</property>
+	      <property name="n_rows">12</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">12</property>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/report/use_new_window">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Report opens in a new _window</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">11</property>
+		  <property name="bottom_attach">12</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label71">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;New Windows&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">10</property>
+		  <property name="bottom_attach">11</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label70">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">9</property>
+		  <property name="bottom_attach">10</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/toolbar_style/text">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Text only</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">8</property>
+		  <property name="bottom_attach">9</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/toolbar_style/icons">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Icons _only</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/toolbar_style/text</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/toolbar_style/both_horiz">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Icons and important text</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/toolbar_style/text</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">6</property>
+		  <property name="bottom_attach">7</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/toolbar_style/both">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Both icons and text</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/toolbar_style/text</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">5</property>
+		  <property name="bottom_attach">6</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkRadioButton" id="gconf/general/toolbar_style/system">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Use _system default</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		  <property name="group">gconf/general/toolbar_style/text</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">4</property>
+		  <property name="bottom_attach">5</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label69">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Toolbar Style&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label72">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Window Geometry&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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label74">
+		  <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">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="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/save_window_geometry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Save window size and position</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</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_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label5">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Windows</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</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>
Index: gnc-main-window-ui.xml
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/ui/Attic/gnc-main-window-ui.xml,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -Lsrc/gnome-utils/ui/gnc-main-window-ui.xml -Lsrc/gnome-utils/ui/gnc-main-window-ui.xml -u -r1.1.2.5 -r1.1.2.6
--- src/gnome-utils/ui/gnc-main-window-ui.xml
+++ src/gnome-utils/ui/gnc-main-window-ui.xml
@@ -45,6 +45,7 @@
       <placeholder name="EditFindPlaceholder"/>
       <separator name="EditSep4"/>
       <menuitem name="EditPreferences" action="EditPreferencesAction"/>
+      <menuitem name="EditPreferences2" action="EditPreferences2Action"/>
       <placeholder name="EditPreferencesPlaceholder"/>
       <separator name="EditSep5"/>
       <placeholder name="EditStyleSheetsPlaceholder"/>


More information about the gnucash-changes mailing list