r21734 - gnucash/trunk - Bug #665998 - Migrate Aqbanking from druid to assistant / builder.

Geert Janssens gjanssens at code.gnucash.org
Sat Dec 17 06:02:42 EST 2011


Author: gjanssens
Date: 2011-12-17 06:02:41 -0500 (Sat, 17 Dec 2011)
New Revision: 21734
Trac: http://svn.gnucash.org/trac/changeset/21734

Added:
   gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.c
   gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.glade
   gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.h
   gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.c
   gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.h
   gnucash/trunk/src/import-export/aqbanking/dialog-ab.glade
Removed:
   gnucash/trunk/src/import-export/aqbanking/aqbanking.glade
   gnucash/trunk/src/import-export/aqbanking/dialog-daterange.c
   gnucash/trunk/src/import-export/aqbanking/dialog-daterange.h
   gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.c
   gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.h
Modified:
   gnucash/trunk/po/POTFILES.in
   gnucash/trunk/src/import-export/aqbanking/Makefile.am
   gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c
   gnucash/trunk/src/import-export/aqbanking/gnc-ab-gettrans.c
   gnucash/trunk/src/import-export/aqbanking/gnc-ab-kvp.c
   gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c
   gnucash/trunk/src/import-export/aqbanking/gnc-plugin-aqbanking.c
   gnucash/trunk/src/import-export/aqbanking/gncmod-aqbanking.c
Log:
Bug #665998 - Migrate Aqbanking from druid to assistant / builder.
Patch by Robert Fewell

Modified: gnucash/trunk/po/POTFILES.in
===================================================================
--- gnucash/trunk/po/POTFILES.in	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/po/POTFILES.in	2011-12-17 11:02:41 UTC (rev 21734)
@@ -363,10 +363,11 @@
 src/html/gnc-html-history.c
 src/html/gnc-html-webkit.c
 src/html/gncmod-html.c
-src/import-export/aqbanking/aqbanking.glade
+src/import-export/aqbanking/assistant-ab-initial.glade
+src/import-export/aqbanking/dialog-ab.glade
 src/import-export/aqbanking/dialog-ab-trans.c
-src/import-export/aqbanking/dialog-daterange.c
-src/import-export/aqbanking/druid-ab-initial.c
+src/import-export/aqbanking/dialog-ab-daterange.c
+src/import-export/aqbanking/assistant-ab-initial.c
 src/import-export/aqbanking/gnc-ab-getbalance.c
 src/import-export/aqbanking/gnc-ab-gettrans.c
 src/import-export/aqbanking/gnc-ab-kvp.c

Modified: gnucash/trunk/src/import-export/aqbanking/Makefile.am
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/Makefile.am	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/Makefile.am	2011-12-17 11:02:41 UTC (rev 21734)
@@ -4,8 +4,8 @@
 
 libgncmod_aqbanking_la_SOURCES = \
   dialog-ab-trans.c \
-  dialog-daterange.c \
-  druid-ab-initial.c \
+  dialog-ab-daterange.c \
+  assistant-ab-initial.c \
   gnc-ab-getbalance.c \
   gnc-ab-gettrans.c \
   gnc-ab-kvp.c \
@@ -19,8 +19,8 @@
 
 noinst_HEADERS = \
   dialog-ab-trans.h \
-  dialog-daterange.h \
-  druid-ab-initial.h \
+  dialog-ab-daterange.h \
+  assistant-ab-initial.h \
   gnc-ab-getbalance.h \
   gnc-ab-gettrans.h \
   gnc-ab-kvp.h \
@@ -70,10 +70,11 @@
 ui_DATA = \
   gnc-plugin-aqbanking-ui.xml
 
-gladedir = $(GNC_GLADE_DIR)
-glade_DATA = \
-  aqbanking.glade
+gtkbuilderdir = $(GNC_GTKBUILDER_DIR)
+gtkbuilder_DATA = \
+  assistant-ab-initial.glade \
+  dialog-ab.glade
 
-EXTRA_DIST = ${ui_DATA} ${glade_DATA}
+EXTRA_DIST = ${ui_DATA} ${gtkbuilder_DATA}
 
 INCLUDES = -DG_LOG_DOMAIN=\"gnc.import.aqbanking\"

Deleted: gnucash/trunk/src/import-export/aqbanking/aqbanking.glade
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/aqbanking.glade	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/aqbanking.glade	2011-12-17 11:02:41 UTC (rev 21734)
@@ -1,1805 +0,0 @@
-<?xml version="1.0"?>
-<glade-interface>
-  <requires lib="gnome"/>
-  <!-- interface-requires gnome 2289.28904 -->
-  <!-- interface-requires gtk+ 2.10 -->
-  <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="AqBanking Init Druid">
-    <property name="title" translatable="yes">Initial Online Banking Setup</property>
-    <property name="default_width">650</property>
-    <property name="default_height">580</property>
-    <signal name="destroy" handler="dai_destroy_cb"/>
-    <signal name="key_press_event" handler="dai_key_press_event_cb"/>
-    <child>
-      <widget class="GnomeDruid" id="ab_init_druid">
-        <property name="visible">True</property>
-        <property name="border_width">4</property>
-        <signal name="cancel" handler="dai_cancel_cb"/>
-        <child>
-          <widget class="GnomeDruidPageEdge" id="druidpagestart1">
-            <property name="visible">True</property>
-            <property name="position">Edge Start</property>
-            <property name="title" translatable="yes">Initial Online Banking Setup</property>
-            <property name="text" translatable="yes">This assistant helps you setting up your Online Banking connection with your bank.
-
-You first need to apply for Online Banking access at your bank. If your bank  decides to grant you electronic access, they will send you a letter containing 
-
-* The bank code of your bank
-* The user ID that identifies you to your bank
-* The Internet address of your bank's Online Banking server
-* For HBCI Online Banking, information about the cryptographic public key of your bank ("Ini-Letter").
-
-This information will be needed in the following. Press "Forward" now.
-
-NOTE: NO WARRANTIES FOR ANYTHING. Some banks run a poorly implemented Online Banking server. You should not rely on time-critical transfers through Online Banking, because sometimes the bank does not give you correct feedback when a transfer is rejected.
-
-Press "Cancel" if you do not wish to setup any Online Banking connection now.</property>
-          </widget>
-        </child>
-        <child>
-          <widget class="GnomeDruidPageStandard" id="wizard_page">
-            <property name="visible">True</property>
-            <property name="title" translatable="yes">Start Online Banking Wizard</property>
-            <property name="title_foreground_gdk">#ffffffffffff</property>
-            <property name="background_gdk">#9999bfbf9999</property>
-            <property name="logo_background_gdk">#ffffffffffff</property>
-            <signal name="prepare" handler="dai_wizard_page_prepare_cb" after="yes"/>
-            <child internal-child="vbox">
-              <widget class="GtkVBox" id="vbox132">
-                <property name="visible">True</property>
-                <property name="border_width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">12</property>
-                <child>
-                  <widget class="GtkLabel" id="label8877441">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">The Setup of your Online Banking connection is handled by the external program "AqBanking Setup Wizard". Please press the button below to start this program.</property>
-                    <property name="wrap">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkAlignment" id="alignment7">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="xscale">0</property>
-                    <child>
-                      <widget class="GtkButton" id="ab_wizard_button">
-                        <property name="label" translatable="yes">_Start AqBanking Wizard</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
-                        <signal name="clicked" handler="dai_wizard_button_clicked_cb"/>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-            </child>
-          </widget>
-        </child>
-        <child>
-          <widget class="GnomeDruidPageStandard" id="account_match_page">
-            <property name="visible">True</property>
-            <property name="title" translatable="yes">Match Online Banking accounts with GnuCash accounts</property>
-            <property name="title_foreground_gdk">#ffffffffffff</property>
-            <property name="background_gdk">#9999bfbf9999</property>
-            <property name="logo_background_gdk">#ffffffffffff</property>
-            <signal name="prepare" handler="dai_match_page_prepare_cb" after="yes"/>
-            <child internal-child="vbox">
-              <widget class="GtkVBox" id="druid-vbox3">
-                <property name="visible">True</property>
-                <property name="border_width">12</property>
-                <property name="orientation">vertical</property>
-                <child>
-                  <widget class="GtkVBox" id="vbox157">
-                    <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
-                    <property name="spacing">12</property>
-                    <child>
-                      <widget class="GtkScrolledWindow" id="scrolledwindow25">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="hscrollbar_policy">automatic</property>
-                        <property name="vscrollbar_policy">automatic</property>
-                        <property name="shadow_type">in</property>
-                        <child>
-                          <widget class="GtkTreeView" id="account_page_view">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="rules_hint">True</property>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkLabel" id="label828">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">Click on the line of an Online Banking account name if you want to match it to a GnuCash account. Click "Forward" when all desired accounts are matching.</property>
-                        <property name="wrap">True</property>
-                      </widget>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-              </widget>
-            </child>
-          </widget>
-        </child>
-        <child>
-          <widget class="GnomeDruidPageEdge" id="initial_finish_page">
-            <property name="visible">True</property>
-            <property name="position">GNOME_EDGE_FINISH</property>
-            <property name="title" translatable="yes">Online Banking Setup Finished</property>
-            <property name="text" translatable="yes">The setup for matching Online Banking accounts to GnuCash accounts is now finished.  You can now invoke Online Banking actions on those accounts.
-
-If you want to add another bank, user, or account, you can start this assistant again anytime.
-
-Press "Apply" now.</property>
-            <signal name="finish" handler="dai_finish_cb"/>
-          </widget>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkDialog" id="Transaction Dialog">
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Online Transaction</property>
-    <property name="type_hint">dialog</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox2">
-        <property name="visible">True</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child>
-          <widget class="GtkVBox" id="vbox151">
-            <property name="visible">True</property>
-            <property name="border_width">5</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <widget class="GtkLabel" id="heading_label">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Enter an Online Transaction</property>
-                <property name="justify">center</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkHSeparator" id="hseparator7">
-                <property name="visible">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkTable" id="table6">
-                <property name="visible">True</property>
-                <property name="n_rows">21</property>
-                <property name="n_columns">3</property>
-                <child>
-                  <widget class="GtkEntry" id="recp_account_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="max_length">12</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="recp_account_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Recipient Account Number</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="recp_bankcode_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="max_length">8</property>
-                    <signal name="changed" handler="dat_bankcode_changed_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="recp_bankcode_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Recipient Bank Code</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="recp_name_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="max_length">27</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="recp_name_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Recipient Name</property>
-                    <property name="justify">center</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="recp_bankname_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">at Bank</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">4</property>
-                    <property name="bottom_attach">5</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="recp_bankname_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">(filled in automatically)</property>
-                    <property name="justify">center</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">5</property>
-                    <property name="bottom_attach">6</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label8877434">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Amount</property>
-                    <property name="justify">center</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">7</property>
-                    <property name="bottom_attach">8</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label8877433">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Payment Purpose (only for recipient)</property>
-                    <property name="justify">center</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">10</property>
-                    <property name="bottom_attach">11</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label8877435">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Payment Purpose continued</property>
-                    <property name="justify">center</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">12</property>
-                    <property name="bottom_attach">13</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_name_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Originator Name</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">15</property>
-                    <property name="bottom_attach">16</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_name_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">something</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">16</property>
-                    <property name="bottom_attach">17</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_bankname_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">at Bank</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">17</property>
-                    <property name="bottom_attach">18</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_bankname_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">something</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">18</property>
-                    <property name="bottom_attach">19</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_account_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Originator Account Number</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">15</property>
-                    <property name="bottom_attach">16</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_account_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">something</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">16</property>
-                    <property name="bottom_attach">17</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_bankcode_heading">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Bank Code</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">17</property>
-                    <property name="bottom_attach">18</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="orig_bankcode_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">something</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">18</property>
-                    <property name="bottom_attach">19</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkHBox" id="hbox117">
-                    <property name="visible">True</property>
-                    <property name="spacing">4</property>
-                    <child>
-                      <widget class="GtkLabel" id="label8877442">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">Use Transaction Template</property>
-                        <property name="justify">center</property>
-                      </widget>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkScrolledWindow" id="template_scrolledwindow">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="hscrollbar_policy">automatic</property>
-                        <property name="vscrollbar_policy">automatic</property>
-                        <property name="shadow_type">in</property>
-                        <child>
-                          <widget class="GtkTreeView" id="template_list">
-                            <property name="visible">True</property>
-                            <property name="headers_visible">False</property>
-                            <property name="rules_hint">True</property>
-                            <signal name="row_activated" handler="templ_list_row_activated_cb"/>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="pack_type">end</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkVButtonBox" id="vbutonbox158">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <widget class="GtkButton" id="add_templ_button">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="tooltip" translatable="yes">Add the current online transaction as a new transaction template</property>
-                            <signal name="clicked" handler="dat_add_templ_cb"/>
-                            <child>
-                              <widget class="GtkAlignment" id="alignment3">
-                                <property name="visible">True</property>
-                                <property name="xscale">0</property>
-                                <property name="yscale">0</property>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox119">
-                                    <property name="visible">True</property>
-                                    <property name="spacing">2</property>
-                                    <child>
-                                      <widget class="GtkImage" id="image1">
-                                        <property name="visible">True</property>
-                                        <property name="stock">gtk-add</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label8877451">
-                                        <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Add current</property>
-                                        <property name="use_underline">True</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                </child>
-                              </widget>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="moveup_templ_button">
-                            <property name="label">gtk-go-up</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="tooltip" translatable="yes">Move the selected transaction template one row up</property>
-                            <property name="use_stock">True</property>
-                            <signal name="clicked" handler="dat_moveup_templ_cb"/>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="movedown_templ_button">
-                            <property name="label">gtk-go-down</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="tooltip" translatable="yes">Move the selected transaction template one row down</property>
-                            <property name="use_stock">True</property>
-                            <signal name="clicked" handler="dat_movedown_templ_cb"/>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="sort_templ_button">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="tooltip" translatable="yes">Sort the list of transaction templates alphabetically</property>
-                            <signal name="clicked" handler="dat_sort_templ_cb"/>
-                            <child>
-                              <widget class="GtkAlignment" id="alignment4">
-                                <property name="visible">True</property>
-                                <property name="xscale">0</property>
-                                <property name="yscale">0</property>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox120">
-                                    <property name="visible">True</property>
-                                    <property name="spacing">2</property>
-                                    <child>
-                                      <widget class="GtkImage" id="image2">
-                                        <property name="visible">True</property>
-                                        <property name="stock">gtk-sort-ascending</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label8877452">
-                                        <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Sort</property>
-                                        <property name="use_underline">True</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                </child>
-                              </widget>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">3</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="del_templ_button">
-                            <property name="label">gtk-delete</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="tooltip" translatable="yes">Delete the currently selected transaction template</property>
-                            <property name="use_stock">True</property>
-                            <signal name="clicked" handler="dat_del_templ_cb"/>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">4</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="pack_type">end</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">20</property>
-                    <property name="bottom_attach">21</property>
-                    <property name="x_options">GTK_FILL</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="purpose_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="max_length">27</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">11</property>
-                    <property name="bottom_attach">12</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="purpose_cont2_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="max_length">27</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">13</property>
-                    <property name="bottom_attach">14</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="purpose_cont_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="max_length">27</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">11</property>
-                    <property name="bottom_attach">12</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="purpose_cont3_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="max_length">27</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">13</property>
-                    <property name="bottom_attach">14</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkHBox" id="amount_hbox">
-                    <property name="visible">True</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">8</property>
-                    <property name="bottom_attach">9</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkHSeparator" id="hseparator8">
-                    <property name="visible">True</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">19</property>
-                    <property name="bottom_attach">20</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                    <property name="y_padding">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkHSeparator" id="hseparator4">
-                    <property name="visible">True</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">14</property>
-                    <property name="bottom_attach">15</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkHSeparator" id="hseparator5">
-                    <property name="visible">True</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">6</property>
-                    <property name="bottom_attach">7</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                    <property name="y_padding">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkHSeparator" id="hseparator6">
-                    <property name="visible">True</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">9</property>
-                    <property name="bottom_attach">10</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area2">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <widget class="GtkButton" id="exec_later_button">
-                <property name="label" translatable="yes">Execute later (unimpl.)</property>
-                <property name="response_id">-9</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="cancel_button">
-                <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="exec_now_button">
-                <property name="response_id">-8</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="has_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="tooltip" translatable="yes">Execute this online transaction now</property>
-                <child>
-                  <widget class="GtkAlignment" id="alignment6">
-                    <property name="visible">True</property>
-                    <property name="xscale">0</property>
-                    <property name="yscale">0</property>
-                    <child>
-                      <widget class="GtkHBox" id="hbox122">
-                        <property name="visible">True</property>
-                        <property name="spacing">2</property>
-                        <child>
-                          <widget class="GtkImage" id="image4">
-                            <property name="visible">True</property>
-                            <property name="stock">gtk-execute</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label8877454">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">Execute Now</property>
-                            <property name="use_underline">True</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkDialog" id="Connection Dialog">
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Online Banking Connection Window</property>
-    <property name="default_width">350</property>
-    <property name="default_height">420</property>
-    <property name="type_hint">dialog</property>
-    <signal name="delete_event" handler="ggg_delete_event_cb"/>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox3">
-        <property name="visible">True</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child>
-          <widget class="GtkVBox" id="vbox149">
-            <property name="visible">True</property>
-            <property name="border_width">5</property>
-            <property name="orientation">vertical</property>
-            <property name="spacing">18</property>
-            <child>
-              <widget class="GtkVBox" id="vbox160">
-                <property name="visible">True</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">6</property>
-                <child>
-                  <widget class="GtkLabel" id="label8877443">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes"><b>Progress</b></property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkAlignment" id="alignment2">
-                    <property name="visible">True</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <widget class="GtkTable" id="entries_table">
-                        <property name="visible">True</property>
-                        <property name="n_rows">3</property>
-                        <property name="n_columns">2</property>
-                        <property name="column_spacing">12</property>
-                        <property name="row_spacing">6</property>
-                        <child>
-                          <widget class="GtkLabel" id="label8877424">
-                            <property name="visible">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Current Job</property>
-                            <property name="justify">center</property>
-                          </widget>
-                          <packing>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkEntry" id="top_entry">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkProgressBar" id="top_progress">
-                            <property name="visible">True</property>
-                            <property name="sensitive">False</property>
-                            <property name="pulse_step">0.10000000149</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">GTK_FILL</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label8877426">
-                            <property name="visible">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Progress</property>
-                            <property name="justify">center</property>
-                          </widget>
-                          <packing>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label8877425">
-                            <property name="visible">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Current Action</property>
-                            <property name="justify">center</property>
-                          </widget>
-                          <packing>
-                            <property name="top_attach">2</property>
-                            <property name="bottom_attach">3</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkEntry" id="second_entry">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</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="y_options"></property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkVBox" id="vbox162">
-                <property name="visible">True</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">6</property>
-                <child>
-                  <widget class="GtkLabel" id="label8877444">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes"><b>Log Messages</b></property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkAlignment" id="alignment1">
-                    <property name="visible">True</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <widget class="GtkScrolledWindow" id="scrolledwindow30">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="hscrollbar_policy">automatic</property>
-                        <property name="vscrollbar_policy">automatic</property>
-                        <property name="shadow_type">in</property>
-                        <child>
-                          <widget class="GtkTextView" id="log_text">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="editable">False</property>
-                            <property name="wrap_mode">word</property>
-                          </widget>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkCheckButton" id="close_checkbutton">
-                <property name="label" translatable="yes">Close when finished</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <property name="active">True</property>
-                <property name="draw_indicator">True</property>
-                <signal name="toggled" handler="ggg_close_toggled_cb"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area3">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <widget class="GtkButton" id="abort_button">
-                <property name="label">gtk-cancel</property>
-                <property name="visible">True</property>
-                <property name="sensitive">False</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="ggg_abort_clicked_cb"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="close_button">
-                <property name="label">gtk-close</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="ggg_close_clicked_cb"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkDialog" id="Date Range Dialog">
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Get Transactions Online</property>
-    <property name="type_hint">dialog</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox4">
-        <property name="visible">True</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child>
-          <widget class="GtkVBox" id="vbox152">
-            <property name="visible">True</property>
-            <property name="border_width">5</property>
-            <property name="orientation">vertical</property>
-            <property name="spacing">18</property>
-            <child>
-              <widget class="GtkLabel" id="heading_label">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Date range of transactions to retrieve:</property>
-                <property name="justify">center</property>
-                <property name="wrap">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkVBox" id="vbox163">
-                <property name="visible">True</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">6</property>
-                <child>
-                  <widget class="GtkLabel" id="label8877445">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes"><b>From</b></property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkAlignment" id="alignment9">
-                    <property name="visible">True</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <widget class="GtkVBox" id="vbox164">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <widget class="GtkRadioButton" id="first_button">
-                            <property name="label" translatable="yes">_Earliest possible date</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="draw_indicator">True</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkRadioButton" id="last_retrieval_button">
-                            <property name="label" translatable="yes">_Last retrieval date</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="active">True</property>
-                            <property name="draw_indicator">True</property>
-                            <property name="group">first_button</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkHBox" id="hbox123">
-                            <property name="visible">True</property>
-                            <property name="spacing">12</property>
-                            <child>
-                              <widget class="GtkRadioButton" id="enter_from_button">
-                                <property name="label" translatable="yes">E_nter date:</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="use_underline">True</property>
-                                <property name="draw_indicator">True</property>
-                                <property name="group">first_button</property>
-                                <signal name="toggled" handler="ddr_toggled_cb"/>
-                              </widget>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="GtkHBox" id="enter_from_box">
-                                <property name="visible">True</property>
-                                <child>
-                                  <placeholder/>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkVBox" id="vbox165">
-                <property name="visible">True</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">6</property>
-                <child>
-                  <widget class="GtkLabel" id="label8877446">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes"><b>To</b></property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkAlignment" id="alignment10">
-                    <property name="visible">True</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <widget class="GtkVBox" id="vbox166">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <widget class="GtkRadioButton" id="now_button">
-                            <property name="label" translatable="yes">_Now</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="active">True</property>
-                            <property name="draw_indicator">True</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkHBox" id="hbox124">
-                            <property name="visible">True</property>
-                            <property name="spacing">12</property>
-                            <child>
-                              <widget class="GtkRadioButton" id="enter_to_button">
-                                <property name="label" translatable="yes">Ente_r date:</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="use_underline">True</property>
-                                <property name="draw_indicator">True</property>
-                                <property name="group">now_button</property>
-                                <signal name="toggled" handler="ddr_toggled_cb"/>
-                              </widget>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="GtkHBox" id="enter_to_box">
-                                <property name="visible">True</property>
-                                <child>
-                                  <placeholder/>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area4">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <widget class="GtkButton" id="cancel_button">
-                <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="ok_button">
-                <property name="label">gtk-ok</property>
-                <property name="response_id">-5</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkDialog" id="Template Name Dialog">
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Name for new template</property>
-    <property name="type_hint">dialog</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox6">
-        <property name="visible">True</property>
-        <property name="orientation">vertical</property>
-        <child>
-          <widget class="GtkVBox" id="vbox159">
-            <property name="visible">True</property>
-            <property name="border_width">5</property>
-            <property name="orientation">vertical</property>
-            <property name="spacing">12</property>
-            <child>
-              <widget class="GtkLabel" id="label8877450">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Enter name for new template:</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkEntry" id="template_name">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="max_length">250</property>
-                <property name="activates_default">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area6">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <widget class="GtkButton" id="cancelbutton1">
-                <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="okbutton1">
-                <property name="label">gtk-ok</property>
-                <property name="response_id">-5</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="has_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkDialog" id="Password Dialog">
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Enter Password</property>
-    <property name="type_hint">dialog</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox7">
-        <property name="visible">True</property>
-        <property name="orientation">vertical</property>
-        <child>
-          <widget class="GtkVBox" id="vbox167">
-            <property name="visible">True</property>
-            <property name="border_width">5</property>
-            <property name="orientation">vertical</property>
-            <property name="spacing">18</property>
-            <child>
-              <widget class="GtkLabel" id="heading_label">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Enter your password</property>
-                <property name="wrap">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkTable" id="table7">
-                <property name="visible">True</property>
-                <property name="n_rows">3</property>
-                <property name="n_columns">2</property>
-                <property name="column_spacing">12</property>
-                <property name="row_spacing">6</property>
-                <child>
-                  <widget class="GtkLabel" id="label8877456">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Password:</property>
-                  </widget>
-                  <packing>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="confirm_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Confirm Password:</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="input_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="visibility">False</property>
-                    <property name="invisible_char">&#x25CF;</property>
-                  </widget>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="confirm_entry">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="visibility">False</property>
-                    <property name="invisible_char">&#x25CF;</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="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkCheckButton" id="remember_pin">
-                    <property name="label" translatable="yes">Remember _PIN</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="draw_indicator">True</property>
-                  </widget>
-                  <packing>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area7">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <widget class="GtkButton" id="cancelbutton2">
-                <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="okbutton2">
-                <property name="label">gtk-ok</property>
-                <property name="response_id">-5</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkWindow" id="Preferences">
-    <property name="visible">True</property>
-    <property name="title" translatable="yes">window1</property>
-    <child>
-      <widget class="GtkTable" id="aqbanking_prefs">
-        <property name="visible">True</property>
-        <property name="n_rows">3</property>
-        <property name="n_columns">4</property>
-        <child>
-          <widget class="GtkLabel" id="label8877457">
-            <property name="visible">True</property>
-            <property name="xalign">0</property>
-            <property name="label" translatable="yes"><b>Online Banking</b></property>
-            <property name="use_markup">True</property>
-          </widget>
-          <packing>
-            <property name="right_attach">4</property>
-            <property name="x_options">GTK_FILL</property>
-            <property name="y_options"></property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkCheckButton" id="gconf/dialogs/import/hbci/close_on_finish">
-            <property name="label" translatable="yes">_Close log window when finished</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">False</property>
-            <property name="use_underline">True</property>
-            <property name="draw_indicator">True</property>
-          </widget>
-          <packing>
-            <property name="right_attach">4</property>
-            <property name="top_attach">1</property>
-            <property name="bottom_attach">2</property>
-            <property name="x_options">GTK_FILL</property>
-            <property name="y_options"></property>
-            <property name="x_padding">12</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkCheckButton" id="gconf/dialogs/import/hbci/remember_pin">
-            <property name="label" translatable="yes">Remember _PIN</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">False</property>
-            <property name="use_underline">True</property>
-            <property name="draw_indicator">True</property>
-          </widget>
-          <packing>
-            <property name="right_attach">4</property>
-            <property name="top_attach">2</property>
-            <property name="bottom_attach">3</property>
-            <property name="x_options">GTK_FILL</property>
-            <property name="y_options"></property>
-            <property name="x_padding">12</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkCheckButton" id="checkbutton3">
-            <property name="label" translatable="yes">_Verbose debug messages</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">False</property>
-            <property name="use_underline">True</property>
-            <property name="draw_indicator">True</property>
-          </widget>
-          <packing>
-            <property name="right_attach">4</property>
-            <property name="top_attach">3</property>
-            <property name="bottom_attach">4</property>
-            <property name="x_options">GTK_FILL</property>
-            <property name="y_options"></property>
-            <property name="x_padding">12</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>

Copied: gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.c (from rev 21733, gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.c)
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.c	                        (rev 0)
+++ gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -0,0 +1,912 @@
+/*
+ * assistant-ab-initial.c -- Initialise the AqBanking wizard
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @internal
+ * @file assistant-ab-initial.c
+ * @brief AqBanking setup functionality
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2006 David Hampton <hampton at employees.org>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ * @author Copyright (C) 2011 Robert Fewell
+ */
+
+#include "config.h"
+
+#include <aqbanking/banking.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#include <gdk/gdkkeysyms.h>
+#ifdef HAVE_SYS_WAIT_H
+#    include <sys/wait.h>
+#endif
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "dialog-utils.h"
+#include "assistant-ab-initial.h"
+#include "assistant-utils.h"
+#include "gnc-ab-kvp.h"
+#include "gnc-ab-utils.h"
+#include "gnc-component-manager.h"
+#include "gnc-glib-utils.h"
+#include "gnc-ui.h"
+#include "gnc-ui-util.h"
+#include "gnc-session.h"
+#include "import-account-matcher.h"
+
+#if AQBANKING_VERSION_INT > 49908
+/* For aqbanking > 4.99.8. See below. */
+# include <aqbanking/dlg_setup.h>
+#endif
+
+/* This static indicates the debugging module that this .o belongs to.  */
+static QofLogModule log_module = GNC_MOD_ASSISTANT;
+
+#define ASSISTANT_AB_INITIAL_CM_CLASS "assistant-ab-initial"
+
+typedef struct _ABInitialInfo ABInitialInfo;
+typedef struct _DeferredInfo DeferredInfo;
+typedef struct _AccCbData AccCbData;
+typedef struct _RevLookupData RevLookupData;
+
+void aai_on_prepare (GtkAssistant  *assistant, GtkWidget *page,
+                 gpointer user_data);
+
+void aai_on_finish (GtkAssistant *gtkassistant, gpointer user_data);
+void aai_on_cancel (GtkAssistant *assistant, gpointer user_data);
+void aai_destroy_cb(GtkObject *object, gpointer user_data);
+
+gboolean aai_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data);
+
+void aai_wizard_page_prepare (GtkAssistant *assistant, gpointer user_data);
+void aai_wizard_button_clicked_cb(GtkButton *button, gpointer user_data);
+
+void aai_match_page_prepare (GtkAssistant *assistant, gpointer user_data);
+
+static gboolean banking_has_accounts(AB_BANKING *banking);
+static void hash_from_kvp_acc_cb(Account *gnc_acc, gpointer user_data);
+
+static void child_exit_cb(GPid pid, gint status, gpointer data);
+static gchar *ab_account_longname(const AB_ACCOUNT *ab_acc);
+static AB_ACCOUNT *update_account_list_acc_cb(AB_ACCOUNT *ab_acc, gpointer user_data);
+static void update_account_list(ABInitialInfo *info);
+static gboolean find_gnc_acc_cb(gpointer key, gpointer value, gpointer user_data);
+static gboolean clear_line_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data);
+static void account_list_clicked_cb (GtkTreeView *view, GtkTreePath *path,
+                  GtkTreeViewColumn  *col, gpointer user_data);
+static void clear_kvp_acc_cb(Account *gnc_acc, gpointer user_data);
+static void save_kvp_acc_cb(gpointer key, gpointer value, gpointer user_data);
+static void aai_close_handler(gpointer user_data);
+
+struct _ABInitialInfo
+{
+    GtkWidget *window;
+    GtkWidget *assistant;
+
+    /* account match page */
+    gboolean match_page_prepared;
+    GtkTreeView *account_view;
+    GtkListStore *account_store;
+
+    /* managed by child_exit_cb */
+    DeferredInfo *deferred_info;
+
+    /* AqBanking stuff */
+    AB_BANKING *api;
+    /* AB_ACCOUNT* -> Account* -- DO NOT DELETE THE KEYS! */
+    GHashTable *gnc_hash;
+};
+
+struct _DeferredInfo
+{
+    ABInitialInfo *initial_info;
+    gchar *wizard_path;
+    gboolean qt_probably_unavailable;
+};
+
+struct _AccCbData
+{
+    AB_BANKING *api;
+    GHashTable *hash;
+};
+
+struct _RevLookupData
+{
+    Account *gnc_acc;
+    AB_ACCOUNT *ab_acc;
+};
+
+enum account_list_cols
+{
+    ACCOUNT_LIST_COL_INDEX = 0,
+    ACCOUNT_LIST_COL_AB_NAME,
+    ACCOUNT_LIST_COL_AB_ACCT,
+    ACCOUNT_LIST_COL_GNC_NAME,
+    ACCOUNT_LIST_COL_CHECKED,
+    NUM_ACCOUNT_LIST_COLS
+};
+
+gboolean
+aai_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
+{
+    if (event->keyval == GDK_Escape)
+    {
+        gtk_widget_destroy(widget);
+        return TRUE;
+    }
+    else
+    {
+        return FALSE;
+    }
+}
+
+void
+aai_on_cancel (GtkAssistant *gtkassistant, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+
+    gtk_widget_destroy(info->window);
+}
+
+void
+aai_destroy_cb(GtkObject *object, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+
+    gnc_unregister_gui_component_by_data(ASSISTANT_AB_INITIAL_CM_CLASS, info);
+
+    if (info->deferred_info)
+    {
+        g_message("Online Banking assistant is being closed but the wizard is still "
+                  "running.  Inoring.");
+
+        /* Tell child_exit_cb() that there is no assistant anymore */
+        info->deferred_info->initial_info = NULL;
+    }
+
+    if (info->gnc_hash)
+    {
+#ifdef AQBANKING_VERSION_4_EXACTLY
+        AB_Banking_OnlineFini(info->api, 0);
+#else
+        AB_Banking_OnlineFini(info->api);
+#endif
+        g_hash_table_destroy(info->gnc_hash);
+        info->gnc_hash = NULL;
+    }
+
+    if (info->api)
+    {
+        gnc_AB_BANKING_delete(info->api);
+        info->api = NULL;
+    }
+
+    gtk_widget_destroy(info->window);
+    info->window = NULL;
+
+    g_free(info);
+}
+
+void
+aai_wizard_page_prepare (GtkAssistant *assistant, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+    gint num = gtk_assistant_get_current_page (assistant);
+    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
+
+    g_return_if_fail(info->api);
+
+    /* Enable the Assistant Buttons if we accounts */
+    if (banking_has_accounts(info->api))
+        gtk_assistant_set_page_complete (assistant, page, TRUE);
+    else
+        gtk_assistant_set_page_complete (assistant, page, FALSE);
+}
+
+void
+aai_wizard_button_clicked_cb(GtkButton *button, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+    gint num = gtk_assistant_get_current_page (GTK_ASSISTANT(info->window));
+    GtkWidget *page = gtk_assistant_get_nth_page (GTK_ASSISTANT(info->window), num);
+
+    AB_BANKING *banking = info->api;
+    GWEN_BUFFER *buf;
+    gboolean wizard_exists;
+    const gchar *wizard_path;
+    gboolean qt_probably_unavailable = FALSE;
+
+    g_return_if_fail(banking);
+
+    ENTER("user_data: %p", user_data);
+
+    if (info->deferred_info)
+    {
+        LEAVE("Wizard is still running");
+        return;
+    }
+
+#if AQBANKING_VERSION_INT > 49908
+    /* For aqbanking5 > 4.99.8: Use AB_Banking_GetNewUserDialog(). */
+    {
+        GWEN_DIALOG *dlg =
+            AB_SetupDialog_new(banking);
+
+        if (AB_Banking_OnlineInit(banking) != 0)
+        {
+            PERR("Got error on AB_Banking_OnlineInit!");
+        }
+
+        if (!dlg)
+        {
+            PERR("Could not lookup Setup Dialog of aqbanking!");
+        }
+        else
+        {
+            int rv = GWEN_Gui_ExecDialog(dlg, 0);
+            if (rv <= 0)
+            {
+                /* Dialog was aborted/rejected */
+                PERR("Setup Dialog of aqbanking aborted/rejected !");
+            }
+            GWEN_Dialog_free(dlg);
+        }
+
+        if (AB_Banking_OnlineFini(banking) != 0)
+        {
+            PERR("Got error on AB_Banking_OnlineFini!");
+        }
+    }
+#else
+    /* Previous implementation for aqbanking <= 4.99.8: Use the
+     * external application. */
+
+
+    /* This is the point where we look for and start an external
+     * application shipped with aqbanking that contains the setup assistant
+     * for AqBanking related stuff.  It requires qt (but not kde).  This
+     * application contains the very verbose step-by-step setup wizard
+     * for the AqBanking account, and the application is shared with
+     * other AqBanking-based financial managers that offer the AqBanking
+     * features (e.g. KMyMoney).  See gnucash-devel discussion here
+     * https://lists.gnucash.org/pipermail/gnucash-devel/2004-December/012351.html
+     */
+    buf = GWEN_Buffer_new(NULL, 300, 0, 0);
+    AB_Banking_FindWizard(banking, "", NULL, buf);
+    wizard_exists = *GWEN_Buffer_GetStart(buf) != 0;
+    wizard_path = GWEN_Buffer_GetStart(buf);
+
+    if (wizard_exists)
+    {
+        /* Really check whether the file exists */
+        gint fd = g_open(wizard_path, O_RDONLY, 0);
+        if (fd == -1)
+            wizard_exists = FALSE;
+        else
+            close(fd);
+    }
+
+#ifdef G_OS_WIN32
+    {
+        const char *check_file = "qtdemo.exe";
+        gchar *found_program = g_find_program_in_path(check_file);
+        if (found_program)
+        {
+            g_debug("Yes, we found the Qt demo program in %s\n", found_program);
+            g_free(found_program);
+        }
+        else
+        {
+            g_warning("Ouch, no Qt demo program was found. Qt not installed?\n");
+            qt_probably_unavailable = TRUE;
+        }
+    }
+#endif
+
+    if (wizard_exists)
+    {
+        /* Call the qt wizard. See the note above about why this
+         * approach is chosen. */
+
+        GPid pid;
+        GError *error = NULL;
+        gchar *argv[2];
+        gboolean spawned;
+
+        argv[0] = g_strdup (wizard_path);
+        argv[1] = NULL;
+        spawned = g_spawn_async (NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD,
+                                 NULL, NULL, &pid, &error);
+        g_free (argv[0]);
+
+        if (error)
+            g_critical(
+                "Error on starting AqBanking setup wizard: Code %d: %s",
+                error->code, error->message ? error->message : "(null)");
+
+        if (!spawned)
+        {
+            g_critical("Could not start AqBanking setup wizard: %s",
+                       error->message ? error->message : "(null)");
+            g_error_free (error);
+        }
+        else
+        {
+            /* Keep a reference to info that can survive info */
+            info->deferred_info = g_new0(DeferredInfo, 1);
+            info->deferred_info->initial_info = info;
+            info->deferred_info->wizard_path = g_strdup(wizard_path);
+            info->deferred_info->qt_probably_unavailable =
+                qt_probably_unavailable;
+
+            g_child_watch_add (pid, child_exit_cb, info->deferred_info);
+        }
+    }
+    else
+    {
+        g_warning("on_aqhbci_button: Oops, no aqhbci setup wizard found.");
+        gnc_error_dialog
+        (info->window,
+         _("The external program \"AqBanking Setup Wizard\" has not "
+           "been found. \n\n"
+           "The %s package should include the "
+           "program \"qt3-wizard\".  Please check your installation to "
+           "ensure this program is present.  On some distributions this "
+           "may require installing additional packages."),
+         QT3_WIZARD_PACKAGE);
+    }
+
+    GWEN_Buffer_free(buf);
+#endif
+
+    /* Enable the Assistant Buttons if we accounts */
+    if (banking_has_accounts(info->api))
+        gtk_assistant_set_page_complete (GTK_ASSISTANT(info->window), page, TRUE);
+    else
+        gtk_assistant_set_page_complete (GTK_ASSISTANT(info->window), page, FALSE);
+
+    LEAVE(" ");
+}
+
+void
+aai_match_page_prepare (GtkAssistant *assistant, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+    gint num = gtk_assistant_get_current_page (assistant);
+    GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
+
+    Account *root;
+    AccCbData data;
+
+    g_return_if_fail(info && info->api);
+
+    /* Do not run this twice */
+    if (!info->match_page_prepared)
+    {
+        /* Load aqbanking accounts */
+#ifdef AQBANKING_VERSION_4_EXACTLY
+        AB_Banking_OnlineInit(info->api, 0);
+#else
+        AB_Banking_OnlineInit(info->api);
+#endif
+        /* Determine current mapping */
+        root = gnc_book_get_root_account(gnc_get_current_book());
+        info->gnc_hash = g_hash_table_new(&g_direct_hash, &g_direct_equal);
+        data.api = info->api;
+        data.hash = info->gnc_hash;
+        gnc_account_foreach_descendant(
+            root, (AccountCb) hash_from_kvp_acc_cb, &data);
+
+        info->match_page_prepared = TRUE;
+    }
+    /* Update the graphical representation */
+    update_account_list(info);
+
+    /* Enable the Assistant Buttons */
+    gtk_assistant_set_page_complete (assistant, page, TRUE);
+}
+
+void
+aai_on_finish (GtkAssistant *assistant, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+    Account *root;
+
+    g_return_if_fail(info && info->gnc_hash);
+
+    /* Commit the changes */
+    root = gnc_book_get_root_account(gnc_get_current_book());
+    gnc_account_foreach_descendant(root, (AccountCb) clear_kvp_acc_cb, NULL);
+    g_hash_table_foreach(info->gnc_hash, (GHFunc) save_kvp_acc_cb, NULL);
+
+    gtk_widget_destroy(info->window);
+}
+
+static gboolean
+banking_has_accounts(AB_BANKING *banking)
+{
+    AB_ACCOUNT_LIST2 *accl;
+    gboolean result;
+
+    g_return_val_if_fail(banking, FALSE);
+
+#ifdef AQBANKING_VERSION_4_EXACTLY
+    AB_Banking_OnlineInit(banking, 0);
+#else
+    AB_Banking_OnlineInit(banking);
+#endif
+
+    accl = AB_Banking_GetAccounts(banking);
+    if (accl && (AB_Account_List2_GetSize(accl) > 0))
+        result = TRUE;
+    else
+        result = FALSE;
+
+    if (accl)
+        AB_Account_List2_free(accl);
+
+#ifdef AQBANKING_VERSION_4_EXACTLY
+    AB_Banking_OnlineFini(banking, 0);
+#else
+    AB_Banking_OnlineFini(banking);
+#endif
+
+    return result;
+}
+
+static void
+hash_from_kvp_acc_cb(Account *gnc_acc, gpointer user_data)
+{
+    AccCbData *data = user_data;
+    AB_ACCOUNT *ab_acc;
+
+    ab_acc = gnc_ab_get_ab_account(data->api, gnc_acc);
+    if (ab_acc)
+        g_hash_table_insert(data->hash, ab_acc, gnc_acc);
+}
+
+static void
+child_exit_cb(GPid pid, gint status, gpointer data)
+{
+    DeferredInfo *deferred_info = data;
+    ABInitialInfo *info = deferred_info->initial_info;
+    gint num = gtk_assistant_get_current_page (GTK_ASSISTANT(info->window));
+    GtkWidget *page = gtk_assistant_get_nth_page (GTK_ASSISTANT(info->window), num);
+
+    gint exit_status;
+
+#ifdef G_OS_WIN32
+    exit_status = status;
+#else
+    exit_status = WEXITSTATUS(status);
+#endif
+
+    g_spawn_close_pid(pid);
+
+    if (!info)
+    {
+        g_message("Online Banking wizard exited, but the assistant has been "
+                  "destroyed already");
+        goto cleanup_child_exit_cb;
+    }
+
+    if (exit_status == 0)
+    {
+         gtk_assistant_set_page_complete (GTK_ASSISTANT(info->window), page, TRUE);
+    }
+    else
+    {
+        if (deferred_info->qt_probably_unavailable)
+        {
+            g_warning("on_aqhbci_button: Oops, aqhbci wizard return nonzero "
+                      "value: %d. The called program was \"%s\".\n",
+                      exit_status, deferred_info->wizard_path);
+            gnc_error_dialog
+            (info->window, "%s",
+             _("The external program \"AqBanking Setup Wizard\" failed "
+               "to run successfully because the "
+               "additional software \"Qt\" was not found.  "
+               "Please install the \"Qt/Windows Open Source Edition\" "
+               "from Trolltech by downloading it from www.trolltech.com"
+               "\n\n"
+               "If you have installed Qt already, you will have to adapt "
+               "the PATH variable of your system appropriately.  "
+               "Contact the GnuCash developers if you need further "
+               "assistance on how to install Qt correctly."
+               "\n\n"
+               "Online Banking cannot be setup without Qt.  Press \"Close\" "
+               "now, then \"Cancel\" to cancel the Online Banking setup."));
+        }
+        else
+        {
+            g_warning("on_aqhbci_button: Oops, aqhbci wizard return nonzero "
+                      "value: %d. The called program was \"%s\".\n",
+                      exit_status, deferred_info->wizard_path);
+            gnc_error_dialog
+            (info->window, "%s",
+             _("The external program \"AqBanking Setup Wizard\" failed "
+               "to run successfully.  Online Banking can only be setup "
+               "if this wizard has run successfully.  "
+               "Please try running the \"AqBanking Setup Wizard\" again."));
+        }
+        gtk_assistant_set_page_complete (GTK_ASSISTANT(info->window), page, FALSE);
+    }
+
+cleanup_child_exit_cb:
+    g_free(deferred_info->wizard_path);
+    g_free(deferred_info);
+    if (info)
+        info->deferred_info = NULL;
+}
+
+static gchar *
+ab_account_longname(const AB_ACCOUNT *ab_acc)
+{
+    gchar *bankname;
+    gchar *result;
+    const char *ab_bankname, *bankcode;
+
+    g_return_val_if_fail(ab_acc, NULL);
+
+    ab_bankname = AB_Account_GetBankName(ab_acc);
+    bankname = ab_bankname ? gnc_utf8_strip_invalid_strdup(ab_bankname) : NULL;
+    bankcode = AB_Account_GetBankCode(ab_acc);
+
+    /* Translators: Strings are 1. Account code, 2. Bank name, 3. Bank code. */
+    if (bankname && *bankname)
+        result = g_strdup_printf(_("%s at %s (code %s)"),
+                                 AB_Account_GetAccountNumber(ab_acc),
+                                 bankname,
+                                 bankcode);
+    else
+        result = g_strdup_printf(_("%s at bank code %s"),
+                                 AB_Account_GetAccountNumber(ab_acc),
+                                 bankcode);
+    g_free(bankname);
+
+    return result;
+
+}
+
+static AB_ACCOUNT *
+update_account_list_acc_cb(AB_ACCOUNT *ab_acc, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+    gchar *gnc_name, *ab_name;
+    Account *gnc_acc;
+    GtkTreeIter iter;
+
+    g_return_val_if_fail(ab_acc && info, NULL);
+
+    ab_name = ab_account_longname(ab_acc);
+
+    /* Get corresponding gnucash account */
+    gnc_acc = g_hash_table_lookup(info->gnc_hash, ab_acc);
+
+    /* Build the text for the gnucash account. */
+    if (gnc_acc)
+        gnc_name = gnc_account_get_full_name(gnc_acc);
+    else
+        gnc_name = g_strdup("");
+
+    /* Add item to the list store */
+    gtk_list_store_append(info->account_store, &iter);
+    gtk_list_store_set(info->account_store, &iter,
+                       ACCOUNT_LIST_COL_AB_NAME, ab_name,
+                       ACCOUNT_LIST_COL_AB_ACCT, ab_acc,
+                       ACCOUNT_LIST_COL_GNC_NAME, gnc_name,
+                       ACCOUNT_LIST_COL_CHECKED, FALSE,
+                       -1);
+    g_free(gnc_name);
+    g_free(ab_name);
+
+    return NULL;
+}
+
+static void
+update_account_list(ABInitialInfo *info)
+{
+    AB_ACCOUNT_LIST2 *acclist;
+
+    g_return_if_fail(info && info->api && info->gnc_hash);
+
+    /* Detach model from view while updating */
+    g_object_ref(info->account_store);
+    gtk_tree_view_set_model(info->account_view, NULL);
+
+    /* Refill the list */
+    gtk_list_store_clear(info->account_store);
+    acclist = AB_Banking_GetAccounts(info->api);
+    if (acclist)
+        AB_Account_List2_ForEach(acclist, update_account_list_acc_cb, info);
+    else
+        g_warning("update_account_list: Oops, account list from AB_Banking "
+                  "is NULL");
+
+    /* Attach model to view again */
+    gtk_tree_view_set_model(info->account_view,
+                            GTK_TREE_MODEL(info->account_store));
+
+    g_object_unref(info->account_store);
+}
+
+static gboolean
+find_gnc_acc_cb(gpointer key, gpointer value, gpointer user_data)
+{
+    RevLookupData *data = user_data;
+
+    g_return_val_if_fail(data, TRUE);
+
+    if (value == data->gnc_acc)
+    {
+        data->ab_acc = (AB_ACCOUNT*) key;
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static gboolean
+clear_line_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
+              gpointer user_data)
+{
+    RevLookupData *data = user_data;
+    GtkListStore *store = GTK_LIST_STORE(model);
+    gpointer ab_acc;
+
+    g_return_val_if_fail(data && store, FALSE);
+
+    gtk_tree_model_get(model, iter, ACCOUNT_LIST_COL_AB_ACCT, &ab_acc, -1);
+
+    if (ab_acc == data->ab_acc)
+    {
+        gtk_list_store_set(store, iter, ACCOUNT_LIST_COL_GNC_NAME, "",
+                           ACCOUNT_LIST_COL_CHECKED, TRUE, -1);
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static void
+account_list_clicked_cb (GtkTreeView *view, GtkTreePath *path,
+                  GtkTreeViewColumn  *col, gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+    GtkTreeSelection *selection;
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+    AB_ACCOUNT *ab_acc;
+    gchar *longname, *gnc_name;
+    Account *old_value, *gnc_acc;
+    const gchar *currency;
+    gnc_commodity *commodity = NULL;
+    gboolean ok_pressed;
+
+    g_return_if_fail(info);
+
+    PINFO("Row has been double-clicked.");
+
+    model = gtk_tree_view_get_model(view);
+    selection = gtk_tree_view_get_selection(info->account_view);
+
+    if (!gtk_tree_model_get_iter(model, &iter, path))
+      return; /* path describes a non-existing row - should not happen */
+
+    gtk_tree_model_get(model, &iter, ACCOUNT_LIST_COL_AB_ACCT, &ab_acc, -1);
+
+    if (ab_acc)
+    {
+        old_value = g_hash_table_lookup(info->gnc_hash, ab_acc);
+
+        longname = ab_account_longname(ab_acc);
+        currency = AB_Account_GetCurrency(ab_acc);
+        if (currency && *currency)
+        {
+            commodity = gnc_commodity_table_lookup(
+                            gnc_commodity_table_get_table(gnc_get_current_book()),
+                            GNC_COMMODITY_NS_CURRENCY,
+                            currency);
+        }
+
+        gnc_acc = gnc_import_select_account(info->window, NULL, TRUE,
+                                            longname, commodity, ACCT_TYPE_BANK,
+                                            old_value, &ok_pressed);
+        g_free(longname);
+
+        if (ok_pressed && old_value != gnc_acc)
+        {
+            if (gnc_acc)
+            {
+                RevLookupData data;
+
+                /* Lookup and clear other mappings to gnc_acc */
+                data.gnc_acc = gnc_acc;
+                data.ab_acc = NULL;
+                g_hash_table_find(info->gnc_hash, (GHRFunc) find_gnc_acc_cb,
+                                  &data);
+                if (data.ab_acc)
+                {
+                    g_hash_table_remove(info->gnc_hash, data.ab_acc);
+                    gtk_tree_model_foreach(
+                        GTK_TREE_MODEL(info->account_store),
+                        (GtkTreeModelForeachFunc) clear_line_cb,
+                        &data);
+                }
+
+                /* Map ab_acc to gnc_acc */
+                g_hash_table_insert(info->gnc_hash, ab_acc, gnc_acc);
+                gnc_name = gnc_account_get_full_name(gnc_acc);
+                gtk_list_store_set(info->account_store, &iter,
+                                   ACCOUNT_LIST_COL_GNC_NAME, gnc_name,
+                                   ACCOUNT_LIST_COL_CHECKED, TRUE,
+                                   -1);
+                g_free(gnc_name);
+
+            }
+            else
+            {
+                g_hash_table_remove(info->gnc_hash, ab_acc);
+                gtk_list_store_set(info->account_store, &iter,
+                                   ACCOUNT_LIST_COL_GNC_NAME, "",
+                                   ACCOUNT_LIST_COL_CHECKED, TRUE,
+                                   -1);
+            }
+        }
+    }
+}
+
+static void
+clear_kvp_acc_cb(Account *gnc_acc, gpointer user_data)
+{
+    if (gnc_ab_get_account_uid(gnc_acc))
+        gnc_ab_set_account_uid(gnc_acc, 0);
+    if (gnc_ab_get_account_accountid(gnc_acc))
+        gnc_ab_set_account_accountid(gnc_acc, "");
+    if (gnc_ab_get_account_bankcode(gnc_acc))
+        gnc_ab_set_account_bankcode(gnc_acc, "");
+}
+
+static void
+save_kvp_acc_cb(gpointer key, gpointer value, gpointer user_data)
+{
+    AB_ACCOUNT *ab_acc = key;
+    Account *gnc_acc = value;
+    guint32 ab_account_uid;
+    const gchar *ab_accountid, *gnc_accountid;
+    const gchar *ab_bankcode, *gnc_bankcode;
+
+    g_return_if_fail(ab_acc && gnc_acc);
+
+    ab_account_uid = AB_Account_GetUniqueId(ab_acc);
+    if (gnc_ab_get_account_uid(gnc_acc) != ab_account_uid)
+        gnc_ab_set_account_uid(gnc_acc, ab_account_uid);
+
+    ab_accountid = AB_Account_GetAccountNumber(ab_acc);
+    gnc_accountid = gnc_ab_get_account_accountid(gnc_acc);
+    if (ab_accountid
+            && (!gnc_accountid
+                || (strcmp(ab_accountid, gnc_accountid) != 0)))
+        gnc_ab_set_account_accountid(gnc_acc, ab_accountid);
+
+    ab_bankcode = AB_Account_GetBankCode(ab_acc);
+    gnc_bankcode = gnc_ab_get_account_bankcode(gnc_acc);
+    if (ab_bankcode
+            && (!gnc_bankcode
+                || (strcmp(gnc_bankcode, ab_bankcode) != 0)))
+        gnc_ab_set_account_bankcode(gnc_acc, ab_bankcode);
+}
+
+static void
+aai_close_handler(gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+
+    gtk_widget_destroy(info->window);
+}
+
+void aai_on_prepare (GtkAssistant  *assistant, GtkWidget *page,
+                 gpointer user_data)
+{
+    ABInitialInfo *info = user_data;
+    gint currentpage = gtk_assistant_get_current_page(assistant);
+
+    switch (gtk_assistant_get_current_page(assistant))
+    {
+    case 1:
+        /* Current page is wizard button page */
+        aai_wizard_page_prepare (assistant , user_data );
+        break;
+    case 2:
+        /* Current page is match page */
+        aai_match_page_prepare (assistant , user_data );
+        break;
+    }
+}
+
+void
+gnc_ab_initial_assistant(void)
+{
+    ABInitialInfo *info;
+    GtkBuilder *builder;
+    GtkTreeViewColumn *column;
+    GtkTreeSelection *selection;
+    gint component_id;
+
+    info = g_new0(ABInitialInfo, 1);
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder,"assistant-ab-initial.glade", "AqBanking Init Assistant");
+
+    info->window = GTK_WIDGET(gtk_builder_get_object (builder, "AqBanking Init Assistant"));
+
+    gnc_assistant_set_colors (GTK_ASSISTANT (info->assistant));
+
+    info->api = gnc_AB_BANKING_new();
+    info->deferred_info = NULL;
+    info->gnc_hash = NULL;
+
+    info->match_page_prepared = FALSE;
+    info->account_view =
+        GTK_TREE_VIEW(gtk_builder_get_object (builder, "account_page_view"));
+
+    info->account_store = gtk_list_store_new(NUM_ACCOUNT_LIST_COLS,
+                          G_TYPE_INT, G_TYPE_STRING,
+                          G_TYPE_POINTER, G_TYPE_STRING,
+                          G_TYPE_BOOLEAN);
+    gtk_tree_view_set_model(info->account_view,
+                            GTK_TREE_MODEL(info->account_store));
+    g_object_unref(info->account_store);
+
+    column = gtk_tree_view_column_new_with_attributes(
+                 _("Online Banking Account Name"), gtk_cell_renderer_text_new(),
+                 "text", ACCOUNT_LIST_COL_AB_NAME, (gchar*) NULL);
+    gtk_tree_view_append_column(info->account_view, column);
+
+    column = gtk_tree_view_column_new_with_attributes(
+                 _("GnuCash Account Name"), gtk_cell_renderer_text_new(),
+                 "text", ACCOUNT_LIST_COL_GNC_NAME, (gchar*) NULL);
+    gtk_tree_view_column_set_expand(column, TRUE);
+    gtk_tree_view_append_column(info->account_view, column);
+
+    column = gtk_tree_view_column_new_with_attributes(
+                 _("New?"), gtk_cell_renderer_toggle_new(),
+                 "active", ACCOUNT_LIST_COL_CHECKED, (gchar*) NULL);
+    gtk_tree_view_append_column(info->account_view, column);
+
+    selection = gtk_tree_view_get_selection(info->account_view);
+    gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+
+    g_signal_connect(info->account_view, "row-activated",
+                     G_CALLBACK(account_list_clicked_cb), info);
+
+    g_signal_connect (G_OBJECT(info->window), "destroy",
+                      G_CALLBACK (aai_destroy_cb), info);
+
+    gtk_builder_connect_signals(builder, info);
+    g_object_unref(G_OBJECT(builder));
+
+    component_id = gnc_register_gui_component(ASSISTANT_AB_INITIAL_CM_CLASS,
+                   NULL, aai_close_handler, info);
+
+    gnc_gui_component_set_session(component_id, gnc_get_current_session());
+
+    gtk_widget_show(info->window);
+}

Added: gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.glade
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.glade	                        (rev 0)
+++ gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.glade	2011-12-17 11:02:41 UTC (rev 21734)
@@ -0,0 +1,162 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkAssistant" id="AqBanking Init Assistant">
+    <property name="can_focus">False</property>
+    <property name="border_width">12</property>
+    <property name="title" translatable="yes">AqBanking Initial Assistant</property>
+    <signal name="close" handler="aai_on_finish" swapped="no"/>
+    <signal name="prepare" handler="aai_on_prepare" swapped="no"/>
+    <signal name="cancel" handler="aai_on_cancel" swapped="no"/>
+    <child>
+      <object class="GtkLabel" id="start_page">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">
+This assistant helps you setting up your Online Banking connection with your bank.
+
+You first need to apply for Online Banking access at your bank. If your bank  decides to grant you electronic access, they will send you a letter containing 
+
+* The bank code of your bank
+* The user ID that identifies you to your bank
+* The Internet address of your bank's Online Banking server
+* For HBCI Online Banking, information about the cryptographic public key of your bank ("Ini-Letter").
+
+This information will be needed in the following. Press "Forward" now.
+
+NOTE: NO WARRANTIES FOR ANYTHING. Some banks run a poorly implemented Online Banking server. You should not rely on time-critical transfers through Online Banking, because sometimes the bank does not give you correct feedback when a transfer is rejected.
+
+Press "Cancel" if you do not wish to setup any Online Banking connection now.
+</property>
+        <property name="wrap">True</property>
+      </object>
+      <packing>
+        <property name="page_type">intro</property>
+        <property name="title" translatable="yes">Initial Online Banking Setup</property>
+        <property name="complete">True</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkVBox" id="wizard_page">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="border_width">12</property>
+        <property name="spacing">12</property>
+        <child>
+          <object class="GtkLabel" id="label8877441">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label" translatable="yes">The Setup of your Online Banking connection is handled by the external program "AqBanking Setup Wizard". Please press the button below to start this program.</property>
+            <property name="wrap">True</property>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment7">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="xscale">0</property>
+            <child>
+              <object class="GtkButton" id="ab_wizard_button">
+                <property name="label" translatable="yes">_Start AqBanking Wizard</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_underline">True</property>
+                <signal name="clicked" handler="aai_wizard_button_clicked_cb" swapped="no"/>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="page_type">intro</property>
+        <property name="title" translatable="yes">Start Online Banking Wizard</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkVBox" id="account_match_page">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="border_width">12</property>
+        <child>
+          <object class="GtkVBox" id="vbox157">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow25">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">automatic</property>
+                <property name="vscrollbar_policy">automatic</property>
+                <property name="shadow_type">in</property>
+                <child>
+                  <object class="GtkTreeView" id="account_page_view">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="rules_hint">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label828">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Double Click on the line of an Online Banking account name if you want to match it to a GnuCash account. Click "Forward" when all desired accounts are matching.</property>
+                <property name="wrap">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="title" translatable="yes">Match Online accounts with GnuCash accounts</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="finish_page">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">The setup for matching Online Banking accounts to GnuCash accounts is now finished.  You can now invoke Online Banking actions on those accounts.
+
+If you want to add another bank, user, or account, you can start this assistant again anytime.
+
+Press "Apply" now.</property>
+        <property name="wrap">True</property>
+      </object>
+      <packing>
+        <property name="page_type">confirm</property>
+        <property name="title" translatable="yes">Online Banking Setup Finished</property>
+        <property name="complete">True</property>
+      </packing>
+    </child>
+  </object>
+</interface>

Copied: gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.h (from rev 21733, gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.h)
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.h	                        (rev 0)
+++ gnucash/trunk/src/import-export/aqbanking/assistant-ab-initial.h	2011-12-17 11:02:41 UTC (rev 21734)
@@ -0,0 +1,51 @@
+/*
+ * assistant-ab-initial.h -- aqbanking creation functionality
+ *
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @addtogroup Import_Export
+ * @{
+ * @addtogroup AqBanking
+ * @{
+ * @file assistant-ab-initial.h
+ * @brief AqBanking setup functionality
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#ifndef ASSISTANT_AB_INITIAL_H
+#define ASSISTANT_AB_INITIAL_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/**
+ * Create and show an assistant for the aqbanking setup.
+ */
+void gnc_ab_initial_assistant(void);
+
+G_END_DECLS
+
+/** @} */
+/** @} */
+
+#endif /* ASSISTANT_AB_INITIAL_H */

Copied: gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.c (from rev 21733, gnucash/trunk/src/import-export/aqbanking/dialog-daterange.c)
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.c	                        (rev 0)
+++ gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -0,0 +1,158 @@
+/*
+ * dialog-ab-daterange.c --
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @internal
+ * @file dialog-daterange.c
+ * @brief Dialog for date range entry
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#include "config.h"
+
+#include "dialog-ab-daterange.h"
+#include "dialog-utils.h"
+#include "gnc-date-edit.h"
+
+/* This static indicates the debugging module that this .o belongs to.  */
+static QofLogModule log_module = G_LOG_DOMAIN;
+
+typedef struct _DaterangeInfo DaterangeInfo;
+
+void ddr_toggled_cb(GtkToggleButton *button, gpointer user_data);
+
+struct _DaterangeInfo
+{
+    GtkWidget *enter_from_button;
+    GtkWidget *enter_to_button;
+    GtkWidget *from_dateedit;
+    GtkWidget *to_dateedit;
+};
+
+gboolean
+gnc_ab_enter_daterange(GtkWidget *parent,
+                       const char *heading,
+                       Timespec *from_date,
+                       gboolean *last_retv_date,
+                       gboolean *first_possible_date,
+                       Timespec *to_date,
+                       gboolean *to_now)
+{
+    GtkBuilder *builder;
+    GtkWidget *dialog;
+    GtkWidget *heading_label;
+    GtkWidget *first_button;
+    GtkWidget *last_retrieval_button;
+    GtkWidget *now_button;
+    DaterangeInfo info;
+    gint result;
+
+    ENTER("");
+
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder, "dialog-ab.glade", "Date Range Dialog");
+
+    dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Date Range Dialog"));
+
+    /* Connect the signals */
+    gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, &info );
+
+    if (parent)
+        gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(parent));
+
+    heading_label  = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
+    first_button  = GTK_WIDGET(gtk_builder_get_object (builder, "first_button"));
+    last_retrieval_button  = GTK_WIDGET(gtk_builder_get_object (builder, "last_retrieval_button"));
+    info.enter_from_button  = GTK_WIDGET(gtk_builder_get_object (builder, "enter_from_button"));
+    now_button  = GTK_WIDGET(gtk_builder_get_object (builder, "now_button"));
+    info.enter_to_button  = GTK_WIDGET(gtk_builder_get_object (builder, "enter_to_button"));
+
+    info.from_dateedit = gnc_date_edit_new_ts(*from_date, FALSE, FALSE);
+    gtk_container_add(GTK_CONTAINER(gtk_builder_get_object (builder, "enter_from_box")),
+                      info.from_dateedit);
+    gtk_widget_show(info.from_dateedit);
+
+    info.to_dateedit = gnc_date_edit_new_ts(*to_date, FALSE, FALSE);
+    gtk_container_add(GTK_CONTAINER(gtk_builder_get_object (builder, "enter_to_box")),
+                      info.to_dateedit);
+    gtk_widget_show(info.to_dateedit);
+
+    if (*last_retv_date)
+    {
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(last_retrieval_button),
+                                     TRUE);
+    }
+    else
+    {
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(first_button), TRUE);
+        gtk_widget_set_sensitive(last_retrieval_button, FALSE);
+    }
+
+    gtk_widget_set_sensitive(info.from_dateedit, FALSE);
+    gtk_widget_set_sensitive(info.to_dateedit, FALSE);
+
+    gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
+
+    if (heading)
+        gtk_label_set_text(GTK_LABEL(heading_label), heading);
+
+    gtk_widget_show(dialog);
+
+    result = gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_hide(dialog);
+
+    if (result == GTK_RESPONSE_OK)
+    {
+        *from_date = gnc_date_edit_get_date_ts(
+                         GNC_DATE_EDIT(info.from_dateedit));
+        *last_retv_date = gtk_toggle_button_get_active(
+                              GTK_TOGGLE_BUTTON(last_retrieval_button));
+        *first_possible_date = gtk_toggle_button_get_active(
+                                   GTK_TOGGLE_BUTTON(first_button));
+        *to_date = gnc_date_edit_get_date_ts(
+                       GNC_DATE_EDIT(info.to_dateedit));
+        *to_now = gtk_toggle_button_get_active(
+                      GTK_TOGGLE_BUTTON(now_button));
+    }
+
+    g_object_unref(G_OBJECT(builder));
+
+    gtk_widget_destroy(dialog);
+
+    LEAVE("");
+    return result == GTK_RESPONSE_OK;
+}
+
+void
+ddr_toggled_cb(GtkToggleButton *button, gpointer user_data)
+{
+    DaterangeInfo *info = user_data;
+
+    g_return_if_fail(info);
+
+    gtk_widget_set_sensitive(info->from_dateedit,
+                             gtk_toggle_button_get_active(
+                                 GTK_TOGGLE_BUTTON(info->enter_from_button)));
+    gtk_widget_set_sensitive(info->to_dateedit,
+                             gtk_toggle_button_get_active(
+                                 GTK_TOGGLE_BUTTON(info->enter_to_button)));
+}

Copied: gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.h (from rev 21733, gnucash/trunk/src/import-export/aqbanking/dialog-daterange.h)
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.h	                        (rev 0)
+++ gnucash/trunk/src/import-export/aqbanking/dialog-ab-daterange.h	2011-12-17 11:02:41 UTC (rev 21734)
@@ -0,0 +1,69 @@
+/*
+ * dialog-ab-daterange.h --
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @addtogroup Import_Export
+ * @{
+ * @addtogroup AqBanking
+ * @{
+ * @file aqbanking/dialog-daterange.h
+ * @brief Dialog for date range entry
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#ifndef DIALOG_DATERANGE_H
+#define DIALOG_DATERANGE_H
+
+#include <gtk/gtk.h>
+
+#include "qof.h"
+
+G_BEGIN_DECLS
+
+/**
+ * Show a dialog to pick a time frame using a sensible set of default options.
+ *
+ * @param parent Widget to use as parent, may be NULL
+ * @param heading Descriptive text showed at the top, may be NULL
+ * @param from_date Location to read from the initial and write to the final
+ * value of the from date entry
+ * @param last_retv_date Location to read from whether the caller knows the last
+ * retrieval date and write to whether the corresponding button has been chosen
+ * @param first_possible_date Location to write to whether the earliest possible
+ * date button has been chosen
+ * @param to_date Location to read from the initial and write to the final value
+ * of the to date entry
+ * @param to_now Location to write to whether the to now button has been chosen
+ */
+gboolean gnc_ab_enter_daterange(GtkWidget *parent,
+                                const char *heading,
+                                Timespec *from_date,
+                                gboolean *last_retv_date,
+                                gboolean *first_possible_date,
+                                Timespec *to_date,
+                                gboolean *to_now);
+
+G_END_DECLS
+
+#endif /* DIALOG_DATERANGE_H */
+/** @} */
+/** @} */

Modified: gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -203,7 +203,7 @@
                         GList *templates)
 {
     GncABTransDialog *td;
-    GladeXML *xml;
+    GtkBuilder  *builder;
     const gchar *ab_ownername;
     const gchar *ab_accountnumber;
     const gchar *ab_bankname;
@@ -244,38 +244,37 @@
     td->blzcheck = AccountNumberCheck_new();
 #endif
 
-    xml = gnc_glade_xml_new("aqbanking.glade", "Transaction Dialog");
-    td->dialog = glade_xml_get_widget(xml, "Transaction Dialog");
-    g_object_set_data_full(G_OBJECT(td->dialog), "xml", xml, g_object_unref);
-    glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, td);
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder, "dialog-ab.glade", "Transaction Dialog");
+    td->dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Transaction Dialog"));
 
     if (parent)
         gtk_window_set_transient_for(GTK_WINDOW(td->dialog), GTK_WINDOW(parent));
 
     /* Extract widgets */
-    heading_label = glade_xml_get_widget(xml, "heading_label");
-    recp_name_heading = glade_xml_get_widget(xml, "recp_name_heading");
-    td->recp_name_entry = glade_xml_get_widget(xml, "recp_name_entry");
-    recp_account_heading = glade_xml_get_widget(xml, "recp_account_heading");
-    td->recp_account_entry = glade_xml_get_widget(xml, "recp_account_entry");
-    recp_bankcode_heading = glade_xml_get_widget(xml, "recp_bankcode_heading");
-    td->recp_bankcode_entry = glade_xml_get_widget(xml, "recp_bankcode_entry");
-    td->recp_bankname_label = glade_xml_get_widget(xml, "recp_bankname_label");
-    amount_hbox = glade_xml_get_widget(xml, "amount_hbox");
-    td->purpose_entry = glade_xml_get_widget(xml, "purpose_entry");
-    td->purpose_cont_entry = glade_xml_get_widget(xml, "purpose_cont_entry");
-    td->purpose_cont2_entry = glade_xml_get_widget(xml, "purpose_cont2_entry");
-    td->purpose_cont3_entry = glade_xml_get_widget(xml, "purpose_cont3_entry");
-    orig_name_heading = glade_xml_get_widget(xml, "orig_name_heading");
-    orig_name_label = glade_xml_get_widget(xml, "orig_name_label");
-    orig_account_heading = glade_xml_get_widget(xml, "orig_account_heading");
-    orig_account_label = glade_xml_get_widget(xml, "orig_account_label");
-    orig_bankname_heading = glade_xml_get_widget(xml, "orig_bankname_heading");
-    orig_bankname_label = glade_xml_get_widget(xml, "orig_bankname_label");
-    orig_bankcode_heading = glade_xml_get_widget(xml, "orig_bankcode_heading");
-    orig_bankcode_label = glade_xml_get_widget(xml, "orig_bankcode_label");
+    heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
+    recp_name_heading = GTK_WIDGET(gtk_builder_get_object (builder, "recp_name_heading"));
+    td->recp_name_entry = GTK_WIDGET(gtk_builder_get_object (builder, "recp_name_entry"));
+    recp_account_heading = GTK_WIDGET(gtk_builder_get_object (builder, "recp_account_heading"));
+    td->recp_account_entry = GTK_WIDGET(gtk_builder_get_object (builder, "recp_account_entry"));
+    recp_bankcode_heading = GTK_WIDGET(gtk_builder_get_object (builder, "recp_bankcode_heading"));
+    td->recp_bankcode_entry = GTK_WIDGET(gtk_builder_get_object (builder, "recp_bankcode_entry"));
+    td->recp_bankname_label = GTK_WIDGET(gtk_builder_get_object (builder, "recp_bankname_label"));
+    amount_hbox = GTK_WIDGET(gtk_builder_get_object (builder, "amount_hbox"));
+    td->purpose_entry = GTK_WIDGET(gtk_builder_get_object (builder, "purpose_entry"));
+    td->purpose_cont_entry = GTK_WIDGET(gtk_builder_get_object (builder, "purpose_cont_entry"));
+    td->purpose_cont2_entry = GTK_WIDGET(gtk_builder_get_object (builder, "purpose_cont2_entry"));
+    td->purpose_cont3_entry = GTK_WIDGET(gtk_builder_get_object (builder, "purpose_cont3_entry"));
+    orig_name_heading = GTK_WIDGET(gtk_builder_get_object (builder, "orig_name_heading"));
+    orig_name_label = GTK_WIDGET(gtk_builder_get_object (builder, "orig_name_label"));
+    orig_account_heading = GTK_WIDGET(gtk_builder_get_object (builder, "orig_account_heading"));
+    orig_account_label = GTK_WIDGET(gtk_builder_get_object (builder, "orig_account_label"));
+    orig_bankname_heading = GTK_WIDGET(gtk_builder_get_object (builder, "orig_bankname_heading"));
+    orig_bankname_label = GTK_WIDGET(gtk_builder_get_object (builder, "orig_bankname_label"));
+    orig_bankcode_heading = GTK_WIDGET(gtk_builder_get_object (builder, "orig_bankcode_heading"));
+    orig_bankcode_label = GTK_WIDGET(gtk_builder_get_object (builder, "orig_bankcode_label"));
     td->template_gtktreeview =
-        GTK_TREE_VIEW(glade_xml_get_widget(xml, "template_list"));
+        GTK_TREE_VIEW(gtk_builder_get_object (builder, "template_list"));
 
     /* Amount edit */
     td->amount_edit = gnc_amount_edit_new();
@@ -348,6 +347,11 @@
                  "Template Name", renderer, "text", TEMPLATE_NAME, NULL);
     gtk_tree_view_append_column(td->template_gtktreeview, column);
 
+    /* Connect the Signals */
+    gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, td);
+
+    g_object_unref(G_OBJECT(builder));
+
     return td;
 }
 
@@ -873,7 +877,7 @@
 dat_add_templ_cb(GtkButton *button, gpointer user_data)
 {
     GncABTransDialog *td = user_data;
-    GladeXML *xml;
+    GtkBuilder *builder;
     GtkWidget *dialog;
     GtkWidget *entry;
     gint retval;
@@ -887,11 +891,12 @@
     g_return_if_fail(td);
 
     ENTER("td=%p", td);
-    xml = gnc_glade_xml_new ("aqbanking.glade", "Template Name Dialog");
-    dialog = glade_xml_get_widget(xml, "Template Name Dialog");
-    g_object_set_data_full(G_OBJECT(dialog), "xml", xml, g_object_unref);
-    entry = glade_xml_get_widget(xml, "template_name");
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder, "dialog-ab.glade", "Template Name Dialog");
+    dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Template Name Dialog"));
 
+    entry = GTK_WIDGET(gtk_builder_get_object (builder, "template_name"));
+
     /* Suggest recipient name as name of the template */
     gtk_entry_set_text(GTK_ENTRY(entry),
                        gtk_entry_get_text(GTK_ENTRY(td->recp_name_entry)));
@@ -949,6 +954,8 @@
     }
     while (TRUE);
 
+    g_object_unref(G_OBJECT(builder));
+
     gtk_widget_destroy(dialog);
 
     LEAVE(" ");

Copied: gnucash/trunk/src/import-export/aqbanking/dialog-ab.glade (from rev 21733, gnucash/trunk/src/import-export/aqbanking/aqbanking.glade)
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/dialog-ab.glade	                        (rev 0)
+++ gnucash/trunk/src/import-export/aqbanking/dialog-ab.glade	2011-12-17 11:02:41 UTC (rev 21734)
@@ -0,0 +1,1876 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkDialog" id="Connection Dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Online Banking Connection Window</property>
+    <property name="default_width">350</property>
+    <property name="default_height">420</property>
+    <property name="type_hint">dialog</property>
+    <signal name="delete-event" handler="ggg_delete_event_cb" swapped="no"/>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox9">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area9">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="abort_button">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="ggg_abort_clicked_cb" swapped="no"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="close_button">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="ggg_close_clicked_cb" swapped="no"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox149">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">5</property>
+            <property name="spacing">18</property>
+            <child>
+              <object class="GtkVBox" id="vbox160">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label8877443">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes"><b>Progress</b></property>
+                    <property name="use_markup">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkTable" id="entries_table">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="n_rows">3</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">12</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label8877424">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Current Job</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkEntry" id="top_entry">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="invisible_char">&#x25CF;</property>
+                            <property name="invisible_char_set">True</property>
+                            <property name="primary_icon_activatable">False</property>
+                            <property name="secondary_icon_activatable">False</property>
+                            <property name="primary_icon_sensitive">True</property>
+                            <property name="secondary_icon_sensitive">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkProgressBar" id="top_progress">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">False</property>
+                            <property name="pulse_step">0.10000000149</property>
+                          </object>
+                          <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">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label8877426">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Progress</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label8877425">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Current Action</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkEntry" id="second_entry">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="invisible_char">&#x25CF;</property>
+                            <property name="invisible_char_set">True</property>
+                            <property name="primary_icon_activatable">False</property>
+                            <property name="secondary_icon_activatable">False</property>
+                            <property name="primary_icon_sensitive">True</property>
+                            <property name="secondary_icon_sensitive">True</property>
+                          </object>
+                          <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="y_options"></property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox162">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label8877444">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes"><b>Log Messages</b></property>
+                    <property name="use_markup">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="scrolledwindow30">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">automatic</property>
+                        <property name="vscrollbar_policy">automatic</property>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <object class="GtkTextView" id="log_text">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="editable">False</property>
+                            <property name="wrap_mode">word</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkCheckButton" id="close_checkbutton">
+                <property name="label" translatable="yes">Close when finished</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_underline">True</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">True</property>
+                <signal name="toggled" handler="ggg_close_toggled_cb" swapped="no"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">abort_button</action-widget>
+      <action-widget response="0">close_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="Date Range Dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Get Transactions Online</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="cancel_button1">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox152">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">5</property>
+            <property name="spacing">18</property>
+            <child>
+              <object class="GtkLabel" id="heading_label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Date range of transactions to retrieve:</property>
+                <property name="justify">center</property>
+                <property name="wrap">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox163">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label8877445">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes"><b>From</b></property>
+                    <property name="use_markup">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkAlignment" id="alignment9">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox164">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkRadioButton" id="first_button">
+                            <property name="label" translatable="yes">_Earliest possible date</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="last_retrieval_button">
+                            <property name="label" translatable="yes">_Last retrieval date</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">first_button</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox123">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkRadioButton" id="enter_from_button">
+                                <property name="label" translatable="yes">E_nter date:</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">first_button</property>
+                                <signal name="toggled" handler="ddr_toggled_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="enter_from_box">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox165">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label8877446">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes"><b>To</b></property>
+                    <property name="use_markup">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkAlignment" id="alignment10">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox166">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkRadioButton" id="now_button">
+                            <property name="label" translatable="yes">_Now</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox124">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkRadioButton" id="enter_to_button">
+                                <property name="label" translatable="yes">Ente_r date:</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">now_button</property>
+                                <signal name="toggled" handler="ddr_toggled_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="enter_to_box">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancel_button1</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="Password Dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Enter Password</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox3">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area3">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="cancelbutton2">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="okbutton2">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox167">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">5</property>
+            <property name="spacing">18</property>
+            <child>
+              <object class="GtkLabel" id="heading_label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Enter your password</property>
+                <property name="wrap">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkTable" id="table7">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="n_rows">3</property>
+                <property name="n_columns">2</property>
+                <property name="column_spacing">12</property>
+                <property name="row_spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label8877456">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Password:</property>
+                  </object>
+                  <packing>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="confirm_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Confirm Password:</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="input_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="visibility">False</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="confirm_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="visibility">False</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <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="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkCheckButton" id="remember_pin">
+                    <property name="label" translatable="yes">Remember _PIN</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancelbutton2</action-widget>
+      <action-widget response="-5">okbutton2</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkWindow" id="Preferences">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="title" translatable="yes">window1</property>
+    <child>
+      <object class="GtkTable" id="aqbanking_prefs">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="n_rows">4</property>
+        <property name="n_columns">4</property>
+        <child>
+          <object class="GtkLabel" id="label8877457">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="xalign">0</property>
+            <property name="label" translatable="yes"><b>Online Banking</b></property>
+            <property name="use_markup">True</property>
+          </object>
+          <packing>
+            <property name="right_attach">4</property>
+            <property name="x_options">GTK_FILL</property>
+            <property name="y_options"></property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="gconf/dialogs/import/hbci/close_on_finish">
+            <property name="label" translatable="yes">_Close log window when finished</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="use_underline">True</property>
+            <property name="draw_indicator">True</property>
+          </object>
+          <packing>
+            <property name="right_attach">4</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="x_options">GTK_FILL</property>
+            <property name="y_options"></property>
+            <property name="x_padding">12</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="gconf/dialogs/import/hbci/remember_pin">
+            <property name="label" translatable="yes">Remember _PIN</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="use_underline">True</property>
+            <property name="draw_indicator">True</property>
+          </object>
+          <packing>
+            <property name="right_attach">4</property>
+            <property name="top_attach">2</property>
+            <property name="bottom_attach">3</property>
+            <property name="x_options">GTK_FILL</property>
+            <property name="y_options"></property>
+            <property name="x_padding">12</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="checkbutton3">
+            <property name="label" translatable="yes">_Verbose debug messages</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="use_underline">True</property>
+            <property name="draw_indicator">True</property>
+          </object>
+          <packing>
+            <property name="right_attach">4</property>
+            <property name="top_attach">3</property>
+            <property name="bottom_attach">4</property>
+            <property name="x_options">GTK_FILL</property>
+            <property name="y_options"></property>
+            <property name="x_padding">12</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkDialog" id="Template Name Dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Name for new template</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox2">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area2">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="cancelbutton1">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="okbutton1">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox159">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">5</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label8877450">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Enter name for new template:</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="template_name">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="max_length">250</property>
+                <property name="invisible_char">&#x25CF;</property>
+                <property name="activates_default">True</property>
+                <property name="invisible_char_set">True</property>
+                <property name="primary_icon_activatable">False</property>
+                <property name="secondary_icon_activatable">False</property>
+                <property name="primary_icon_sensitive">True</property>
+                <property name="secondary_icon_sensitive">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancelbutton1</action-widget>
+      <action-widget response="-5">okbutton1</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="Transaction Dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Online Transaction</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox7">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area7">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="exec_later_button">
+                <property name="label" translatable="yes">Execute later (unimpl.)</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="exec_now_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="has_tooltip">True</property>
+                <property name="tooltip_markup">Execute this online transaction now</property>
+                <property name="tooltip_text" translatable="yes">Execute this online transaction now</property>
+                <property name="use_action_appearance">False</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment6">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xscale">0</property>
+                    <property name="yscale">0</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox122">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">2</property>
+                        <child>
+                          <object class="GtkImage" id="image4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="stock">gtk-execute</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label8877454">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Execute Now</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox151">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">5</property>
+            <child>
+              <object class="GtkLabel" id="heading_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Enter an Online Transaction</property>
+                <property name="justify">center</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHSeparator" id="hseparator7">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkTable" id="table6">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="n_rows">21</property>
+                <property name="n_columns">3</property>
+                <child>
+                  <object class="GtkEntry" id="recp_account_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">12</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="recp_account_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Recipient Account Number</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="recp_bankcode_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">8</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                    <signal name="changed" handler="dat_bankcode_changed_cb" swapped="no"/>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="recp_bankcode_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Recipient Bank Code</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="recp_name_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">27</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="recp_name_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Recipient Name</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="recp_bankname_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">at Bank</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">4</property>
+                    <property name="bottom_attach">5</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="recp_bankname_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">(filled in automatically)</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">5</property>
+                    <property name="bottom_attach">6</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label8877434">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Amount</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">7</property>
+                    <property name="bottom_attach">8</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label8877433">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Payment Purpose (only for recipient)</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">10</property>
+                    <property name="bottom_attach">11</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label8877435">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Payment Purpose continued</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">12</property>
+                    <property name="bottom_attach">13</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_name_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Originator Name</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">15</property>
+                    <property name="bottom_attach">16</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_name_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">something</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">16</property>
+                    <property name="bottom_attach">17</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_bankname_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">at Bank</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">17</property>
+                    <property name="bottom_attach">18</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_bankname_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">something</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">18</property>
+                    <property name="bottom_attach">19</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_account_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Originator Account Number</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">15</property>
+                    <property name="bottom_attach">16</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_account_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">something</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">16</property>
+                    <property name="bottom_attach">17</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_bankcode_heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Bank Code</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">17</property>
+                    <property name="bottom_attach">18</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="orig_bankcode_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">something</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">18</property>
+                    <property name="bottom_attach">19</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox117">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">4</property>
+                    <child>
+                      <object class="GtkVButtonBox" id="vbutonbox158">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <object class="GtkButton" id="add_templ_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="has_tooltip">True</property>
+                            <property name="tooltip_markup">Add the current online transaction as a new transaction template</property>
+                            <property name="tooltip_text" translatable="yes">Add the current online transaction as a new transaction template</property>
+                            <property name="use_action_appearance">False</property>
+                            <signal name="clicked" handler="dat_add_templ_cb" swapped="no"/>
+                            <child>
+                              <object class="GtkAlignment" id="alignment3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox119">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image1">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="stock">gtk-add</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label8877451">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Add current</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="moveup_templ_button">
+                            <property name="label">gtk-go-up</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="has_tooltip">True</property>
+                            <property name="tooltip_markup">Move the selected transaction template one row up</property>
+                            <property name="tooltip_text" translatable="yes">Move the selected transaction template one row up</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="use_stock">True</property>
+                            <signal name="clicked" handler="dat_moveup_templ_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="movedown_templ_button">
+                            <property name="label">gtk-go-down</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="has_tooltip">True</property>
+                            <property name="tooltip_markup">Move the selected transaction template one row down</property>
+                            <property name="tooltip_text" translatable="yes">Move the selected transaction template one row down</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="use_stock">True</property>
+                            <signal name="clicked" handler="dat_movedown_templ_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="sort_templ_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="has_tooltip">True</property>
+                            <property name="tooltip_markup">Sort the list of transaction templates alphabetically</property>
+                            <property name="tooltip_text" translatable="yes">Sort the list of transaction templates alphabetically</property>
+                            <property name="use_action_appearance">False</property>
+                            <signal name="clicked" handler="dat_sort_templ_cb" swapped="no"/>
+                            <child>
+                              <object class="GtkAlignment" id="alignment4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox120">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image2">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="stock">gtk-sort-ascending</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label8877452">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Sort</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="del_templ_button">
+                            <property name="label">gtk-delete</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="has_tooltip">True</property>
+                            <property name="tooltip_markup">Delete the currently selected transaction template</property>
+                            <property name="tooltip_text" translatable="yes">Delete the currently selected transaction template</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="use_stock">True</property>
+                            <signal name="clicked" handler="dat_del_templ_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">4</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">end</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow" id="template_scrolledwindow">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">automatic</property>
+                        <property name="vscrollbar_policy">automatic</property>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <object class="GtkTreeView" id="template_list">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="headers_visible">False</property>
+                            <property name="rules_hint">True</property>
+                            <signal name="row-activated" handler="templ_list_row_activated_cb" swapped="no"/>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="pack_type">end</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label8877442">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Use Transaction Template</property>
+                        <property name="justify">center</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">20</property>
+                    <property name="bottom_attach">21</property>
+                    <property name="x_options">GTK_FILL</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="purpose_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">27</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">11</property>
+                    <property name="bottom_attach">12</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="purpose_cont2_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">27</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">13</property>
+                    <property name="bottom_attach">14</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="purpose_cont_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">27</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">11</property>
+                    <property name="bottom_attach">12</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="purpose_cont3_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">27</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="primary_icon_activatable">False</property>
+                    <property name="secondary_icon_activatable">False</property>
+                    <property name="primary_icon_sensitive">True</property>
+                    <property name="secondary_icon_sensitive">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">13</property>
+                    <property name="bottom_attach">14</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="amount_hbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="top_attach">8</property>
+                    <property name="bottom_attach">9</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHSeparator" id="hseparator8">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">19</property>
+                    <property name="bottom_attach">20</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                    <property name="y_padding">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHSeparator" id="hseparator4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">14</property>
+                    <property name="bottom_attach">15</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHSeparator" id="hseparator5">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">6</property>
+                    <property name="bottom_attach">7</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                    <property name="y_padding">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHSeparator" id="hseparator6">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                  </object>
+                  <packing>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">9</property>
+                    <property name="bottom_attach">10</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-9">exec_later_button</action-widget>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-8">exec_now_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>

Deleted: gnucash/trunk/src/import-export/aqbanking/dialog-daterange.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/dialog-daterange.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/dialog-daterange.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -1,155 +0,0 @@
-/*
- * dialog-daterange.c --
- *
- * 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
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- */
-
-/**
- * @internal
- * @file dialog-daterange.c
- * @brief Dialog for date range entry
- * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
- * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
- */
-
-#include "config.h"
-
-#include "dialog-daterange.h"
-#include "dialog-utils.h"
-#include "gnc-date-edit.h"
-
-/* This static indicates the debugging module that this .o belongs to.  */
-static QofLogModule log_module = G_LOG_DOMAIN;
-
-typedef struct _DaterangeInfo DaterangeInfo;
-
-void ddr_toggled_cb(GtkToggleButton *button, gpointer user_data);
-
-struct _DaterangeInfo
-{
-    GtkWidget *enter_from_button;
-    GtkWidget *enter_to_button;
-    GtkWidget *from_dateedit;
-    GtkWidget *to_dateedit;
-};
-
-gboolean
-gnc_ab_enter_daterange(GtkWidget *parent,
-                       const char *heading,
-                       Timespec *from_date,
-                       gboolean *last_retv_date,
-                       gboolean *first_possible_date,
-                       Timespec *to_date,
-                       gboolean *to_now)
-{
-    GladeXML *xml;
-    GtkWidget *dialog;
-    GtkWidget *heading_label;
-    GtkWidget *first_button;
-    GtkWidget *last_retrieval_button;
-    GtkWidget *now_button;
-    DaterangeInfo info;
-    gint result;
-
-    ENTER("");
-
-    xml = gnc_glade_xml_new("aqbanking.glade", "Date Range Dialog");
-
-    dialog = glade_xml_get_widget(xml, "Date Range Dialog");
-    g_object_set_data_full(G_OBJECT(dialog), "xml", xml, g_object_unref);
-    glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
-                                      &info);
-
-    if (parent)
-        gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(parent));
-
-    heading_label  = glade_xml_get_widget(xml, "heading_label");
-    first_button  = glade_xml_get_widget(xml, "first_button");
-    last_retrieval_button  = glade_xml_get_widget(xml, "last_retrieval_button");
-    info.enter_from_button  = glade_xml_get_widget(xml, "enter_from_button");
-    now_button  = glade_xml_get_widget(xml, "now_button");
-    info.enter_to_button  = glade_xml_get_widget(xml, "enter_to_button");
-
-    info.from_dateedit = gnc_date_edit_new_ts(*from_date, FALSE, FALSE);
-    gtk_container_add(GTK_CONTAINER(glade_xml_get_widget(xml, "enter_from_box")),
-                      info.from_dateedit);
-    gtk_widget_show(info.from_dateedit);
-
-    info.to_dateedit = gnc_date_edit_new_ts(*to_date, FALSE, FALSE);
-    gtk_container_add(GTK_CONTAINER(glade_xml_get_widget(xml, "enter_to_box")),
-                      info.to_dateedit);
-    gtk_widget_show(info.to_dateedit);
-
-    if (*last_retv_date)
-    {
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(last_retrieval_button),
-                                     TRUE);
-    }
-    else
-    {
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(first_button), TRUE);
-        gtk_widget_set_sensitive(last_retrieval_button, FALSE);
-    }
-
-    gtk_widget_set_sensitive(info.from_dateedit, FALSE);
-    gtk_widget_set_sensitive(info.to_dateedit, FALSE);
-
-    gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-
-    if (heading)
-        gtk_label_set_text(GTK_LABEL(heading_label), heading);
-
-    gtk_widget_show(dialog);
-
-    result = gtk_dialog_run(GTK_DIALOG(dialog));
-    gtk_widget_hide(dialog);
-
-    if (result == GTK_RESPONSE_OK)
-    {
-        *from_date = gnc_date_edit_get_date_ts(
-                         GNC_DATE_EDIT(info.from_dateedit));
-        *last_retv_date = gtk_toggle_button_get_active(
-                              GTK_TOGGLE_BUTTON(last_retrieval_button));
-        *first_possible_date = gtk_toggle_button_get_active(
-                                   GTK_TOGGLE_BUTTON(first_button));
-        *to_date = gnc_date_edit_get_date_ts(
-                       GNC_DATE_EDIT(info.to_dateedit));
-        *to_now = gtk_toggle_button_get_active(
-                      GTK_TOGGLE_BUTTON(now_button));
-    }
-
-    gtk_widget_destroy(dialog);
-
-    LEAVE("");
-    return result == GTK_RESPONSE_OK;
-}
-
-void
-ddr_toggled_cb(GtkToggleButton *button, gpointer user_data)
-{
-    DaterangeInfo *info = user_data;
-
-    g_return_if_fail(info);
-
-    gtk_widget_set_sensitive(info->from_dateedit,
-                             gtk_toggle_button_get_active(
-                                 GTK_TOGGLE_BUTTON(info->enter_from_button)));
-    gtk_widget_set_sensitive(info->to_dateedit,
-                             gtk_toggle_button_get_active(
-                                 GTK_TOGGLE_BUTTON(info->enter_to_button)));
-}

Deleted: gnucash/trunk/src/import-export/aqbanking/dialog-daterange.h
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/dialog-daterange.h	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/dialog-daterange.h	2011-12-17 11:02:41 UTC (rev 21734)
@@ -1,69 +0,0 @@
-/*
- * dialog-daterange.h --
- *
- * 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
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- */
-
-/**
- * @addtogroup Import_Export
- * @{
- * @addtogroup AqBanking
- * @{
- * @file aqbanking/dialog-daterange.h
- * @brief Dialog for date range entry
- * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
- * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
- */
-
-#ifndef DIALOG_DATERANGE_H
-#define DIALOG_DATERANGE_H
-
-#include <gtk/gtk.h>
-
-#include "qof.h"
-
-G_BEGIN_DECLS
-
-/**
- * Show a dialog to pick a time frame using a sensible set of default options.
- *
- * @param parent Widget to use as parent, may be NULL
- * @param heading Descriptive text showed at the top, may be NULL
- * @param from_date Location to read from the initial and write to the final
- * value of the from date entry
- * @param last_retv_date Location to read from whether the caller knows the last
- * retrieval date and write to whether the corresponding button has been chosen
- * @param first_possible_date Location to write to whether the earliest possible
- * date button has been chosen
- * @param to_date Location to read from the initial and write to the final value
- * of the to date entry
- * @param to_now Location to write to whether the to now button has been chosen
- */
-gboolean gnc_ab_enter_daterange(GtkWidget *parent,
-                                const char *heading,
-                                Timespec *from_date,
-                                gboolean *last_retv_date,
-                                gboolean *first_possible_date,
-                                Timespec *to_date,
-                                gboolean *to_now);
-
-G_END_DECLS
-
-#endif /* DIALOG_DATERANGE_H */
-/** @} */
-/** @} */

Deleted: gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -1,890 +0,0 @@
-/*
- * druid-ab-initial.c --
- *
- * 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
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- */
-
-/**
- * @internal
- * @file druid-ab-initial.c
- * @brief AqBanking setup functionality
- * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
- * @author Copyright (C) 2006 David Hampton <hampton at employees.org>
- * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
- */
-
-#include "config.h"
-
-#include <aqbanking/banking.h>
-#include <glib.h>
-#include <glib/gi18n.h>
-#include <glib/gstdio.h>
-#include <gdk/gdkkeysyms.h>
-#ifdef HAVE_SYS_WAIT_H
-#    include <sys/wait.h>
-#endif
-#include <fcntl.h>
-#include <unistd.h>
-
-#include "dialog-utils.h"
-#include "druid-ab-initial.h"
-#include "druid-utils.h"
-#include "gnc-ab-kvp.h"
-#include "gnc-ab-utils.h"
-#include "gnc-component-manager.h"
-#include "gnc-glib-utils.h"
-#include "gnc-ui.h"
-#include "gnc-ui-util.h"
-#include "gnc-session.h"
-#include "import-account-matcher.h"
-
-#if AQBANKING_VERSION_INT > 49908
-/* For aqbanking > 4.99.8. See below. */
-# include <aqbanking/dlg_setup.h>
-#endif
-
-/* This static indicates the debugging module that this .o belongs to.  */
-static QofLogModule log_module = G_LOG_DOMAIN;
-
-#define DRUID_AB_INITIAL_CM_CLASS "druid-ab-initial"
-
-typedef struct _ABInitialInfo ABInitialInfo;
-typedef struct _DeferredInfo DeferredInfo;
-typedef struct _AccCbData AccCbData;
-typedef struct _RevLookupData RevLookupData;
-
-gboolean dai_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data);
-void dai_cancel_cb(GnomeDruid *druid, gpointer user_data);
-void dai_destroy_cb(GtkObject *object, gpointer user_data);
-void dai_wizard_page_prepare_cb(GnomeDruidPage *druid_page, GtkWidget *widget, gpointer user_data);
-void dai_wizard_button_clicked_cb(GtkButton *button, gpointer user_data);
-void dai_match_page_prepare_cb(GnomeDruidPage *druid_page, GtkWidget *widget, gpointer user_data);
-void dai_finish_cb(GnomeDruidPage *druid_page, GtkWidget *widget, gpointer user_data);
-
-static gboolean banking_has_accounts(AB_BANKING *banking);
-static void hash_from_kvp_acc_cb(Account *gnc_acc, gpointer user_data);
-static void druid_enable_next_button(ABInitialInfo *info);
-static void druid_disable_next_button(ABInitialInfo *info);
-static void child_exit_cb(GPid pid, gint status, gpointer data);
-static gchar *ab_account_longname(const AB_ACCOUNT *ab_acc);
-static AB_ACCOUNT *update_account_list_acc_cb(AB_ACCOUNT *ab_acc, gpointer user_data);
-static void update_account_list(ABInitialInfo *info);
-static gboolean find_gnc_acc_cb(gpointer key, gpointer value, gpointer user_data);
-static gboolean clear_line_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data);
-static void account_list_changed_cb(GtkTreeSelection *selection, gpointer user_data);
-static void clear_kvp_acc_cb(Account *gnc_acc, gpointer user_data);
-static void save_kvp_acc_cb(gpointer key, gpointer value, gpointer user_data);
-static void cm_close_handler(gpointer user_data);
-
-struct _ABInitialInfo
-{
-    GtkWidget *window;
-    GtkWidget *druid;
-
-    /* account match page */
-    gboolean match_page_prepared;
-    GtkTreeView *account_view;
-    GtkListStore *account_store;
-
-    /* managed by child_exit_cb */
-    DeferredInfo *deferred_info;
-
-    /* AqBanking stuff */
-    AB_BANKING *api;
-    /* AB_ACCOUNT* -> Account* -- DO NOT DELETE THE KEYS! */
-    GHashTable *gnc_hash;
-};
-
-struct _DeferredInfo
-{
-    ABInitialInfo *initial_info;
-    gchar *wizard_path;
-    gboolean qt_probably_unavailable;
-};
-
-struct _AccCbData
-{
-    AB_BANKING *api;
-    GHashTable *hash;
-};
-
-struct _RevLookupData
-{
-    Account *gnc_acc;
-    AB_ACCOUNT *ab_acc;
-};
-
-enum account_list_cols
-{
-    ACCOUNT_LIST_COL_INDEX = 0,
-    ACCOUNT_LIST_COL_AB_NAME,
-    ACCOUNT_LIST_COL_AB_ACCT,
-    ACCOUNT_LIST_COL_GNC_NAME,
-    ACCOUNT_LIST_COL_CHECKED,
-    NUM_ACCOUNT_LIST_COLS
-};
-
-gboolean
-dai_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
-{
-    if (event->keyval == GDK_Escape)
-    {
-        gtk_widget_destroy(widget);
-        return TRUE;
-    }
-    else
-    {
-        return FALSE;
-    }
-}
-
-void
-dai_cancel_cb(GnomeDruid *druid, gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-
-    gtk_widget_destroy(info->window);
-}
-
-void
-dai_destroy_cb(GtkObject *object, gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-
-    gnc_unregister_gui_component_by_data(DRUID_AB_INITIAL_CM_CLASS, info);
-
-    if (info->deferred_info)
-    {
-        g_message("Online Banking druid is being closed but the wizard is still "
-                  "running.  Inoring.");
-
-        /* Tell child_exit_cb() that there is no druid anymore */
-        info->deferred_info->initial_info = NULL;
-    }
-
-    if (info->gnc_hash)
-    {
-#ifdef AQBANKING_VERSION_4_EXACTLY
-        AB_Banking_OnlineFini(info->api, 0);
-#else
-        AB_Banking_OnlineFini(info->api);
-#endif
-        g_hash_table_destroy(info->gnc_hash);
-        info->gnc_hash = NULL;
-    }
-
-    if (info->api)
-    {
-        gnc_AB_BANKING_delete(info->api);
-        info->api = NULL;
-    }
-
-    gtk_widget_destroy(info->window);
-    info->window = NULL;
-
-    g_free(info);
-}
-
-void
-dai_wizard_page_prepare_cb(GnomeDruidPage *druid_page, GtkWidget *widget,
-                           gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-
-    g_return_if_fail(info->api);
-
-    if (banking_has_accounts(info->api))
-        druid_enable_next_button(info);
-    else
-        druid_disable_next_button(info);
-}
-
-void
-dai_wizard_button_clicked_cb(GtkButton *button, gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-    AB_BANKING *banking = info->api;
-    GWEN_BUFFER *buf;
-    gboolean wizard_exists;
-    const gchar *wizard_path;
-    gboolean qt_probably_unavailable = FALSE;
-
-    g_return_if_fail(banking);
-
-    ENTER("user_data: %p", user_data);
-
-    if (info->deferred_info)
-    {
-        LEAVE("Wizard is still running");
-        return;
-    }
-
-#if AQBANKING_VERSION_INT > 49908
-    /* For aqbanking5 > 4.99.8: Use AB_Banking_GetNewUserDialog(). */
-    {
-        GWEN_DIALOG *dlg =
-            AB_SetupDialog_new(banking);
-
-        if (AB_Banking_OnlineInit(banking) != 0)
-        {
-            PERR("Got error on AB_Banking_OnlineInit!");
-        }
-
-        if (!dlg)
-        {
-            PERR("Could not lookup Setup Dialog of aqbanking!");
-            /* Dialog failed, but maybe the user wants to continue anyway */
-            druid_enable_next_button(info);
-        }
-        else
-        {
-            int rv = GWEN_Gui_ExecDialog(dlg, 0);
-            if (rv <= 0)
-            {
-                /* Dialog was aborted/rejected */
-                druid_disable_next_button(info);
-            }
-            else
-            {
-                /* Dialog accepted, all fine */
-                druid_enable_next_button(info);
-            }
-            GWEN_Dialog_free(dlg);
-        }
-
-        if (AB_Banking_OnlineFini(banking) != 0)
-        {
-            PERR("Got error on AB_Banking_OnlineFini!");
-        }
-    }
-#else
-    /* Previous implementation for aqbanking <= 4.99.8: Use the
-     * external application. */
-
-
-    /* This is the point where we look for and start an external
-     * application shipped with aqbanking that contains the setup druid
-     * for AqBanking related stuff.  It requires qt (but not kde).  This
-     * application contains the very verbose step-by-step setup wizard
-     * for the AqBanking account, and the application is shared with
-     * other AqBanking-based financial managers that offer the AqBanking
-     * features (e.g. KMyMoney).  See gnucash-devel discussion here
-     * https://lists.gnucash.org/pipermail/gnucash-devel/2004-December/012351.html
-     */
-    buf = GWEN_Buffer_new(NULL, 300, 0, 0);
-    AB_Banking_FindWizard(banking, "", NULL, buf);
-    wizard_exists = *GWEN_Buffer_GetStart(buf) != 0;
-    wizard_path = GWEN_Buffer_GetStart(buf);
-
-    if (wizard_exists)
-    {
-        /* Really check whether the file exists */
-        gint fd = g_open(wizard_path, O_RDONLY, 0);
-        if (fd == -1)
-            wizard_exists = FALSE;
-        else
-            close(fd);
-    }
-
-#ifdef G_OS_WIN32
-    {
-        const char *check_file = "qtdemo.exe";
-        gchar *found_program = g_find_program_in_path(check_file);
-        if (found_program)
-        {
-            g_debug("Yes, we found the Qt demo program in %s\n", found_program);
-            g_free(found_program);
-        }
-        else
-        {
-            g_warning("Ouch, no Qt demo program was found. Qt not installed?\n");
-            qt_probably_unavailable = TRUE;
-        }
-    }
-#endif
-
-    druid_disable_next_button(info);
-
-    if (wizard_exists)
-    {
-        /* Call the qt wizard. See the note above about why this
-         * approach is chosen. */
-
-        GPid pid;
-        GError *error = NULL;
-        gchar *argv[2];
-        gboolean spawned;
-
-        argv[0] = g_strdup (wizard_path);
-        argv[1] = NULL;
-        spawned = g_spawn_async (NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD,
-                                 NULL, NULL, &pid, &error);
-        g_free (argv[0]);
-
-        if (error)
-            g_critical(
-                "Error on starting AqBanking setup wizard: Code %d: %s",
-                error->code, error->message ? error->message : "(null)");
-
-        if (!spawned)
-        {
-            g_critical("Could not start AqBanking setup wizard: %s",
-                       error->message ? error->message : "(null)");
-            g_error_free (error);
-        }
-        else
-        {
-            /* Keep a reference to info that can survive info */
-            info->deferred_info = g_new0(DeferredInfo, 1);
-            info->deferred_info->initial_info = info;
-            info->deferred_info->wizard_path = g_strdup(wizard_path);
-            info->deferred_info->qt_probably_unavailable =
-                qt_probably_unavailable;
-
-            g_child_watch_add (pid, child_exit_cb, info->deferred_info);
-        }
-    }
-    else
-    {
-        g_warning("on_aqhbci_button: Oops, no aqhbci setup wizard found.");
-        gnc_error_dialog
-        (info->window,
-         _("The external program \"AqBanking Setup Wizard\" has not "
-           "been found. \n\n"
-           "The %s package should include the "
-           "program \"qt3-wizard\".  Please check your installation to "
-           "ensure this program is present.  On some distributions this "
-           "may require installing additional packages."),
-         QT3_WIZARD_PACKAGE);
-        druid_disable_next_button(info);
-    }
-
-    GWEN_Buffer_free(buf);
-#endif
-
-    LEAVE(" ");
-}
-
-void
-dai_match_page_prepare_cb(GnomeDruidPage *druid_page, GtkWidget *widget,
-                          gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-    Account *root;
-    AccCbData data;
-
-    g_return_if_fail(info && info->api);
-
-    /* No way back */
-    gnome_druid_set_buttons_sensitive(GNOME_DRUID(info->druid),
-                                      FALSE, TRUE, TRUE, TRUE);
-
-    /* Do not run this twice */
-    if (info->match_page_prepared)
-        return;
-    else
-        info->match_page_prepared = TRUE;
-
-    /* Load aqbanking accounts */
-#ifdef AQBANKING_VERSION_4_EXACTLY
-    AB_Banking_OnlineInit(info->api, 0);
-#else
-    AB_Banking_OnlineInit(info->api);
-#endif
-
-    /* Determine current mapping */
-    root = gnc_book_get_root_account(gnc_get_current_book());
-    info->gnc_hash = g_hash_table_new(&g_direct_hash, &g_direct_equal);
-    data.api = info->api;
-    data.hash = info->gnc_hash;
-    gnc_account_foreach_descendant(
-        root, (AccountCb) hash_from_kvp_acc_cb, &data);
-
-    /* Update the graphical representation */
-    update_account_list(info);
-}
-
-void
-dai_finish_cb(GnomeDruidPage *druid_page, GtkWidget *widget,
-              gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-    Account *root;
-
-    g_return_if_fail(info && info->gnc_hash);
-
-    /* Commit the changes */
-    root = gnc_book_get_root_account(gnc_get_current_book());
-    gnc_account_foreach_descendant(root, (AccountCb) clear_kvp_acc_cb, NULL);
-    g_hash_table_foreach(info->gnc_hash, (GHFunc) save_kvp_acc_cb, NULL);
-
-    gtk_widget_destroy(info->window);
-}
-
-static gboolean
-banking_has_accounts(AB_BANKING *banking)
-{
-    AB_ACCOUNT_LIST2 *accl;
-    gboolean result;
-
-    g_return_val_if_fail(banking, FALSE);
-
-#ifdef AQBANKING_VERSION_4_EXACTLY
-    AB_Banking_OnlineInit(banking, 0);
-#else
-    AB_Banking_OnlineInit(banking);
-#endif
-
-    accl = AB_Banking_GetAccounts(banking);
-    if (accl && (AB_Account_List2_GetSize(accl) > 0))
-        result = TRUE;
-    else
-        result = FALSE;
-
-    if (accl)
-        AB_Account_List2_free(accl);
-
-#ifdef AQBANKING_VERSION_4_EXACTLY
-    AB_Banking_OnlineFini(banking, 0);
-#else
-    AB_Banking_OnlineFini(banking);
-#endif
-
-    return result;
-}
-
-static void
-hash_from_kvp_acc_cb(Account *gnc_acc, gpointer user_data)
-{
-    AccCbData *data = user_data;
-    AB_ACCOUNT *ab_acc;
-
-    ab_acc = gnc_ab_get_ab_account(data->api, gnc_acc);
-    if (ab_acc)
-        g_hash_table_insert(data->hash, ab_acc, gnc_acc);
-}
-
-static void
-druid_enable_next_button(ABInitialInfo *info)
-{
-    g_return_if_fail(info);
-    gnome_druid_set_buttons_sensitive(GNOME_DRUID(info->druid),
-                                      TRUE, TRUE, TRUE, TRUE);
-}
-
-static void
-druid_disable_next_button(ABInitialInfo *info)
-{
-    g_return_if_fail(info);
-    gnome_druid_set_buttons_sensitive(GNOME_DRUID(info->druid),
-                                      TRUE, FALSE, TRUE, TRUE);
-}
-
-static void
-child_exit_cb(GPid pid, gint status, gpointer data)
-{
-    DeferredInfo *deferred_info = data;
-    ABInitialInfo *info = deferred_info->initial_info;
-    gint exit_status;
-
-#ifdef G_OS_WIN32
-    exit_status = status;
-#else
-    exit_status = WEXITSTATUS(status);
-#endif
-
-    g_spawn_close_pid(pid);
-
-    if (!info)
-    {
-        g_message("Online Banking wizard exited, but the druid has been "
-                  "destroyed already");
-        goto cleanup_child_exit_cb;
-    }
-
-    if (exit_status == 0)
-    {
-        druid_enable_next_button(info);
-    }
-    else
-    {
-        if (deferred_info->qt_probably_unavailable)
-        {
-            g_warning("on_aqhbci_button: Oops, aqhbci wizard return nonzero "
-                      "value: %d. The called program was \"%s\".\n",
-                      exit_status, deferred_info->wizard_path);
-            gnc_error_dialog
-            (info->window, "%s",
-             _("The external program \"AqBanking Setup Wizard\" failed "
-               "to run successfully because the "
-               "additional software \"Qt\" was not found.  "
-               "Please install the \"Qt/Windows Open Source Edition\" "
-               "from Trolltech by downloading it from www.trolltech.com"
-               "\n\n"
-               "If you have installed Qt already, you will have to adapt "
-               "the PATH variable of your system appropriately.  "
-               "Contact the GnuCash developers if you need further "
-               "assistance on how to install Qt correctly."
-               "\n\n"
-               "Online Banking cannot be setup without Qt.  Press \"Close\" "
-               "now, then \"Cancel\" to cancel the Online Banking setup."));
-        }
-        else
-        {
-            g_warning("on_aqhbci_button: Oops, aqhbci wizard return nonzero "
-                      "value: %d. The called program was \"%s\".\n",
-                      exit_status, deferred_info->wizard_path);
-            gnc_error_dialog
-            (info->window, "%s",
-             _("The external program \"AqBanking Setup Wizard\" failed "
-               "to run successfully.  Online Banking can only be setup "
-               "if this wizard has run successfully.  "
-               "Please try running the \"AqBanking Setup Wizard\" again."));
-        }
-        druid_disable_next_button(info);
-    }
-
-cleanup_child_exit_cb:
-    g_free(deferred_info->wizard_path);
-    g_free(deferred_info);
-    if (info)
-        info->deferred_info = NULL;
-}
-
-static gchar *
-ab_account_longname(const AB_ACCOUNT *ab_acc)
-{
-    gchar *bankname;
-    gchar *result;
-    const char *ab_bankname, *bankcode;
-
-    g_return_val_if_fail(ab_acc, NULL);
-
-    ab_bankname = AB_Account_GetBankName(ab_acc);
-    bankname = ab_bankname ? gnc_utf8_strip_invalid_strdup(ab_bankname) : NULL;
-    bankcode = AB_Account_GetBankCode(ab_acc);
-
-    /* Translators: Strings are 1. Account code, 2. Bank name, 3. Bank code. */
-    if (bankname && *bankname)
-        result = g_strdup_printf(_("%s at %s (code %s)"),
-                                 AB_Account_GetAccountNumber(ab_acc),
-                                 bankname,
-                                 bankcode);
-    else
-        result = g_strdup_printf(_("%s at bank code %s"),
-                                 AB_Account_GetAccountNumber(ab_acc),
-                                 bankcode);
-    g_free(bankname);
-
-    return result;
-
-}
-
-static AB_ACCOUNT *
-update_account_list_acc_cb(AB_ACCOUNT *ab_acc, gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-    gchar *gnc_name, *ab_name;
-    Account *gnc_acc;
-    GtkTreeIter iter;
-
-    g_return_val_if_fail(ab_acc && info, NULL);
-
-    ab_name = ab_account_longname(ab_acc);
-
-    /* Get corresponding gnucash account */
-    gnc_acc = g_hash_table_lookup(info->gnc_hash, ab_acc);
-
-    /* Build the text for the gnucash account. */
-    if (gnc_acc)
-        gnc_name = gnc_account_get_full_name(gnc_acc);
-    else
-        gnc_name = g_strdup("");
-
-    /* Add item to the list store */
-    gtk_list_store_append(info->account_store, &iter);
-    gtk_list_store_set(info->account_store, &iter,
-                       ACCOUNT_LIST_COL_AB_NAME, ab_name,
-                       ACCOUNT_LIST_COL_AB_ACCT, ab_acc,
-                       ACCOUNT_LIST_COL_GNC_NAME, gnc_name,
-                       ACCOUNT_LIST_COL_CHECKED, FALSE,
-                       -1);
-
-    g_free(gnc_name);
-    g_free(ab_name);
-    return NULL;
-}
-
-static void
-update_account_list(ABInitialInfo *info)
-{
-    AB_ACCOUNT_LIST2 *acclist;
-
-    g_return_if_fail(info && info->api && info->gnc_hash);
-
-    /* Detach model from view while updating */
-    g_object_ref(info->account_store);
-    gtk_tree_view_set_model(info->account_view, NULL);
-
-    /* Refill the list */
-    gtk_list_store_clear(info->account_store);
-    acclist = AB_Banking_GetAccounts(info->api);
-    if (acclist)
-        AB_Account_List2_ForEach(acclist, update_account_list_acc_cb, info);
-    else
-        g_warning("update_account_list: Oops, account list from AB_Banking "
-                  "is NULL");
-
-    /* Attach model to view again */
-    gtk_tree_view_set_model(info->account_view,
-                            GTK_TREE_MODEL(info->account_store));
-    g_object_unref(info->account_store);
-}
-
-static gboolean
-find_gnc_acc_cb(gpointer key, gpointer value, gpointer user_data)
-{
-    RevLookupData *data = user_data;
-
-    g_return_val_if_fail(data, TRUE);
-
-    if (value == data->gnc_acc)
-    {
-        data->ab_acc = (AB_ACCOUNT*) key;
-        return TRUE;
-    }
-    return FALSE;
-}
-
-static gboolean
-clear_line_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
-              gpointer user_data)
-{
-    RevLookupData *data = user_data;
-    GtkListStore *store = GTK_LIST_STORE(model);
-    gpointer ab_acc;
-
-    g_return_val_if_fail(data && store, FALSE);
-
-    gtk_tree_model_get(model, iter, ACCOUNT_LIST_COL_AB_ACCT, &ab_acc, -1);
-
-    if (ab_acc == data->ab_acc)
-    {
-        gtk_list_store_set(store, iter, ACCOUNT_LIST_COL_GNC_NAME, "",
-                           ACCOUNT_LIST_COL_CHECKED, TRUE, -1);
-        return TRUE;
-    }
-    return FALSE;
-}
-
-static void
-account_list_changed_cb(GtkTreeSelection *selection, gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-    GtkTreeModel *model;
-    GtkTreeIter iter;
-    AB_ACCOUNT *ab_acc;
-    gchar *longname, *gnc_name;
-    Account *old_value, *gnc_acc;
-    const gchar *currency;
-    gnc_commodity *commodity = NULL;
-    gboolean ok_pressed;
-
-    g_return_if_fail(info);
-
-    if (!gtk_tree_selection_get_selected(selection, &model, &iter))
-        return;
-    gtk_tree_model_get(model, &iter, ACCOUNT_LIST_COL_AB_ACCT, &ab_acc, -1);
-
-    /* Avoid recursion when unselecting the item again */
-    g_signal_handlers_block_by_func(selection, account_list_changed_cb, info);
-    gtk_tree_selection_unselect_iter(selection, &iter);
-    g_signal_handlers_unblock_by_func(selection, account_list_changed_cb, info);
-
-    if (ab_acc)
-    {
-        old_value = g_hash_table_lookup(info->gnc_hash, ab_acc);
-
-        longname = ab_account_longname(ab_acc);
-        currency = AB_Account_GetCurrency(ab_acc);
-        if (currency && *currency)
-        {
-            commodity = gnc_commodity_table_lookup(
-                            gnc_commodity_table_get_table(gnc_get_current_book()),
-                            GNC_COMMODITY_NS_CURRENCY,
-                            currency);
-        }
-
-        gnc_acc = gnc_import_select_account(info->window, NULL, TRUE,
-                                            longname, commodity, ACCT_TYPE_BANK,
-                                            old_value, &ok_pressed);
-        g_free(longname);
-
-        if (ok_pressed && old_value != gnc_acc)
-        {
-            if (gnc_acc)
-            {
-                RevLookupData data;
-
-                /* Lookup and clear other mappings to gnc_acc */
-                data.gnc_acc = gnc_acc;
-                data.ab_acc = NULL;
-                g_hash_table_find(info->gnc_hash, (GHRFunc) find_gnc_acc_cb,
-                                  &data);
-                if (data.ab_acc)
-                {
-                    g_hash_table_remove(info->gnc_hash, data.ab_acc);
-                    gtk_tree_model_foreach(
-                        GTK_TREE_MODEL(info->account_store),
-                        (GtkTreeModelForeachFunc) clear_line_cb,
-                        &data);
-                }
-
-                /* Map ab_acc to gnc_acc */
-                g_hash_table_insert(info->gnc_hash, ab_acc, gnc_acc);
-                gnc_name = gnc_account_get_full_name(gnc_acc);
-                gtk_list_store_set(info->account_store, &iter,
-                                   ACCOUNT_LIST_COL_GNC_NAME, gnc_name,
-                                   ACCOUNT_LIST_COL_CHECKED, TRUE,
-                                   -1);
-                g_free(gnc_name);
-
-            }
-            else
-            {
-                g_hash_table_remove(info->gnc_hash, ab_acc);
-                gtk_list_store_set(info->account_store, &iter,
-                                   ACCOUNT_LIST_COL_GNC_NAME, "",
-                                   ACCOUNT_LIST_COL_CHECKED, TRUE,
-                                   -1);
-            }
-        }
-    }
-}
-
-static void
-clear_kvp_acc_cb(Account *gnc_acc, gpointer user_data)
-{
-    if (gnc_ab_get_account_uid(gnc_acc))
-        gnc_ab_set_account_uid(gnc_acc, 0);
-    if (gnc_ab_get_account_accountid(gnc_acc))
-        gnc_ab_set_account_accountid(gnc_acc, "");
-    if (gnc_ab_get_account_bankcode(gnc_acc))
-        gnc_ab_set_account_bankcode(gnc_acc, "");
-}
-
-static void
-save_kvp_acc_cb(gpointer key, gpointer value, gpointer user_data)
-{
-    AB_ACCOUNT *ab_acc = key;
-    Account *gnc_acc = value;
-    guint32 ab_account_uid;
-    const gchar *ab_accountid, *gnc_accountid;
-    const gchar *ab_bankcode, *gnc_bankcode;
-
-    g_return_if_fail(ab_acc && gnc_acc);
-
-    ab_account_uid = AB_Account_GetUniqueId(ab_acc);
-    if (gnc_ab_get_account_uid(gnc_acc) != ab_account_uid)
-        gnc_ab_set_account_uid(gnc_acc, ab_account_uid);
-
-    ab_accountid = AB_Account_GetAccountNumber(ab_acc);
-    gnc_accountid = gnc_ab_get_account_accountid(gnc_acc);
-    if (ab_accountid
-            && (!gnc_accountid
-                || (strcmp(ab_accountid, gnc_accountid) != 0)))
-        gnc_ab_set_account_accountid(gnc_acc, ab_accountid);
-
-    ab_bankcode = AB_Account_GetBankCode(ab_acc);
-    gnc_bankcode = gnc_ab_get_account_bankcode(gnc_acc);
-    if (ab_bankcode
-            && (!gnc_bankcode
-                || (strcmp(gnc_bankcode, ab_bankcode) != 0)))
-        gnc_ab_set_account_bankcode(gnc_acc, ab_bankcode);
-}
-
-static void
-cm_close_handler(gpointer user_data)
-{
-    ABInitialInfo *info = user_data;
-
-    gtk_widget_destroy(info->window);
-}
-
-void
-gnc_ab_initial_druid(void)
-{
-    ABInitialInfo *info;
-    GladeXML *xml;
-    GtkTreeViewColumn *column;
-    GtkTreeSelection *selection;
-    gint component_id;
-
-    info = g_new0(ABInitialInfo, 1);
-
-    xml = gnc_glade_xml_new("aqbanking.glade", "AqBanking Init Druid");
-
-    info->window = glade_xml_get_widget(xml, "AqBanking Init Druid");
-    g_object_set_data_full(G_OBJECT(info->window), "xml", xml, g_object_unref);
-    glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
-                                      info);
-
-    info->druid = glade_xml_get_widget(xml, "ab_init_druid");
-    gnc_druid_set_colors(GNOME_DRUID(info->druid));
-
-    info->api = gnc_AB_BANKING_new();
-    info->deferred_info = NULL;
-    info->gnc_hash = NULL;
-
-    info->match_page_prepared = FALSE;
-    info->account_view =
-        GTK_TREE_VIEW(glade_xml_get_widget(xml, "account_page_view"));
-    info->account_store = gtk_list_store_new(NUM_ACCOUNT_LIST_COLS,
-                          G_TYPE_INT, G_TYPE_STRING,
-                          G_TYPE_POINTER, G_TYPE_STRING,
-                          G_TYPE_BOOLEAN);
-    gtk_tree_view_set_model(info->account_view,
-                            GTK_TREE_MODEL(info->account_store));
-    g_object_unref(info->account_store);
-
-    column = gtk_tree_view_column_new_with_attributes(
-                 _("Online Banking Account Name"), gtk_cell_renderer_text_new(),
-                 "text", ACCOUNT_LIST_COL_AB_NAME, (gchar*) NULL);
-    gtk_tree_view_append_column(info->account_view, column);
-
-    column = gtk_tree_view_column_new_with_attributes(
-                 _("GnuCash Account Name"), gtk_cell_renderer_text_new(),
-                 "text", ACCOUNT_LIST_COL_GNC_NAME, (gchar*) NULL);
-    gtk_tree_view_column_set_expand(column, TRUE);
-    gtk_tree_view_append_column(info->account_view, column);
-
-    column = gtk_tree_view_column_new_with_attributes(
-                 _("New?"), gtk_cell_renderer_toggle_new(),
-                 "active", ACCOUNT_LIST_COL_CHECKED, (gchar*) NULL);
-    gtk_tree_view_append_column(info->account_view, column);
-
-    selection = gtk_tree_view_get_selection(info->account_view);
-    g_signal_connect(selection, "changed",
-                     G_CALLBACK(account_list_changed_cb), info);
-
-    component_id = gnc_register_gui_component(DRUID_AB_INITIAL_CM_CLASS,
-                   NULL, cm_close_handler, info);
-    gnc_gui_component_set_session(component_id, gnc_get_current_session());
-
-    gtk_widget_show(info->window);
-}

Deleted: gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.h
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.h	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/druid-ab-initial.h	2011-12-17 11:02:41 UTC (rev 21734)
@@ -1,51 +0,0 @@
-/*
- * druid-ab-initial.h -- aqbanking creation functionality
- *
- *
- * 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
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- */
-
-/**
- * @addtogroup Import_Export
- * @{
- * @addtogroup AqBanking
- * @{
- * @file druid-ab-initial.h
- * @brief AqBanking setup functionality
- * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
- * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
- */
-
-#ifndef DRUID_AB_INITIAL_H
-#define DRUID_AB_INITIAL_H
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/**
- * Create and show a druid for the aqbanking setup.
- */
-void gnc_ab_initial_druid(void);
-
-G_END_DECLS
-
-/** @} */
-/** @} */
-
-#endif /* DRUID_AB_INITIAL_H */

Modified: gnucash/trunk/src/import-export/aqbanking/gnc-ab-gettrans.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gnc-ab-gettrans.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/gnc-ab-gettrans.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -34,7 +34,7 @@
 #include <aqbanking/jobgettransactions.h>
 
 #include "Account.h"
-#include "dialog-daterange.h"
+#include "dialog-ab-daterange.h"
 #include "gnc-ab-gettrans.h"
 #include "gnc-ab-kvp.h"
 #include "gnc-ab-utils.h"

Modified: gnucash/trunk/src/import-export/aqbanking/gnc-ab-kvp.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gnc-ab-kvp.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/gnc-ab-kvp.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -28,6 +28,7 @@
  */
 
 #include "config.h"
+#include "gnc-ui-util.h"
 
 #include "gnc-ab-kvp.h"
 
@@ -144,11 +145,12 @@
 force_account_dirty(Account *acct)
 {
     gchar *name = g_strdup(xaccAccountGetName(acct));
-
+    QofBook *book = gnc_get_current_book ();
     /* This is necessary because modifying the KvpFrames doesn't mark
      * accounts dirty, which means the changes wont be propagated to the
      * backend.
      */
+    qof_book_mark_dirty(book);
     xaccAccountSetName(acct, name);
     g_free(name);
 }

Modified: gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -515,33 +515,36 @@
 static void
 setup_dialog(GncGWENGui *gui)
 {
-    GladeXML *xml;
+    GtkBuilder *builder;
     gint component_id;
 
     g_return_if_fail(gui);
 
     ENTER("gui=%p", gui);
 
-    xml = gnc_glade_xml_new("aqbanking.glade", "Connection Dialog");
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder, "dialog-ab.glade", "Connection Dialog");
 
-    gui->dialog = glade_xml_get_widget(xml, "Connection Dialog");
-    g_object_set_data_full(G_OBJECT(gui->dialog), "xml", xml, g_object_unref);
-    glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, gui);
-    gui->entries_table = glade_xml_get_widget(xml, "entries_table");
-    gui->top_entry = glade_xml_get_widget(xml, "top_entry");
-    gui->top_progress = glade_xml_get_widget(xml, "top_progress");
-    gui->second_entry = glade_xml_get_widget(xml, "second_entry");
+    gui->dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Connection Dialog"));
+
+    gui->entries_table = GTK_WIDGET(gtk_builder_get_object (builder, "entries_table"));
+    gui->top_entry = GTK_WIDGET(gtk_builder_get_object (builder, "top_entry"));
+    gui->top_progress = GTK_WIDGET(gtk_builder_get_object (builder, "top_progress"));
+    gui->second_entry = GTK_WIDGET(gtk_builder_get_object (builder, "second_entry"));
     gui->other_entries_box = NULL;
     gui->progresses = NULL;
-    gui->log_text = glade_xml_get_widget(xml, "log_text");
-    gui->abort_button = glade_xml_get_widget(xml, "abort_button");
-    gui->close_button = glade_xml_get_widget(xml, "close_button");
-    gui->close_checkbutton = glade_xml_get_widget(xml, "close_checkbutton");
+    gui->log_text = GTK_WIDGET(gtk_builder_get_object (builder, "log_text"));
+    gui->abort_button = GTK_WIDGET(gtk_builder_get_object (builder, "abort_button"));
+    gui->close_button = GTK_WIDGET(gtk_builder_get_object (builder, "close_button"));
+    gui->close_checkbutton = GTK_WIDGET(gtk_builder_get_object (builder, "close_checkbutton"));
     gui->accepted_certs = NULL;
     gui->permanently_accepted_certs = NULL;
     gui->showbox_hash = NULL;
     gui->showbox_id = 1;
 
+    /* Connect the Signals */
+    gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, gui);
+
     gtk_toggle_button_set_active(
         GTK_TOGGLE_BUTTON(gui->close_checkbutton),
         gnc_gconf_get_bool(GCONF_SECTION_AQBANKING, KEY_CLOSE_ON_FINISH, NULL));
@@ -550,6 +553,10 @@
                    cm_close_handler, gui);
     gnc_gui_component_set_session(component_id, gnc_get_current_session());
 
+
+
+    g_object_unref(G_OBJECT(builder));
+
     reset_dialog(gui);
 
     LEAVE(" ");
@@ -971,7 +978,7 @@
 get_input(GncGWENGui *gui, guint32 flags, const gchar *title, const gchar *text,
           gchar **input, gint min_len, gint max_len)
 {
-    GladeXML *xml;
+    GtkBuilder *builder;
     GtkWidget *dialog;
     GtkWidget *heading_label;
     GtkWidget *input_entry;
@@ -990,15 +997,15 @@
     ENTER(" ");
 
     /* Set up dialog */
-    xml = gnc_glade_xml_new("aqbanking.glade", "Password Dialog");
-    dialog = glade_xml_get_widget(xml, "Password Dialog");
-    g_object_set_data_full(G_OBJECT(dialog), "xml", xml, g_object_unref);
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder, "dialog-ab.glade", "Password Dialog");
+    dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Password Dialog"));
 
-    heading_label = glade_xml_get_widget(xml, "heading_label");
-    input_entry = glade_xml_get_widget(xml, "input_entry");
-    confirm_entry = glade_xml_get_widget(xml, "confirm_entry");
-    confirm_label = glade_xml_get_widget(xml, "confirm_label");
-    remember_pin_checkbutton = glade_xml_get_widget(xml, "remember_pin");
+    heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
+    input_entry = GTK_WIDGET(gtk_builder_get_object (builder, "input_entry"));
+    confirm_entry = GTK_WIDGET(gtk_builder_get_object (builder, "confirm_entry"));
+    confirm_label = GTK_WIDGET(gtk_builder_get_object (builder, "confirm_label"));
+    remember_pin_checkbutton = GTK_WIDGET(gtk_builder_get_object (builder, "remember_pin"));
     if (is_tan)
     {
         gtk_widget_hide(remember_pin_checkbutton);
@@ -1091,6 +1098,8 @@
         }
     }
 
+    g_object_unref(G_OBJECT(builder));
+
     /* This trashes passwords in the entries' memory as well */
     gtk_widget_destroy(dialog);
 

Modified: gnucash/trunk/src/import-export/aqbanking/gnc-plugin-aqbanking.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gnc-plugin-aqbanking.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/gnc-plugin-aqbanking.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -34,7 +34,7 @@
 
 #include "Account.h"
 #include "dialog-ab-trans.h"
-#include "druid-ab-initial.h"
+#include "assistant-ab-initial.h"
 #include "gnc-ab-getbalance.h"
 #include "gnc-ab-gettrans.h"
 #include "gnc-ab-transfer.h"
@@ -430,7 +430,7 @@
 gnc_plugin_ab_cmd_setup(GtkAction *action, GncMainWindowActionData *data)
 {
     ENTER("action %p, main window data %p", action, data);
-    gnc_ab_initial_druid();
+    gnc_ab_initial_assistant();
     LEAVE(" ");
 }
 

Modified: gnucash/trunk/src/import-export/aqbanking/gncmod-aqbanking.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gncmod-aqbanking.c	2011-12-16 14:57:20 UTC (rev 21733)
+++ gnucash/trunk/src/import-export/aqbanking/gncmod-aqbanking.c	2011-12-17 11:02:41 UTC (rev 21734)
@@ -73,7 +73,9 @@
     /* Add menu items with C callbacks */
     gnc_plugin_aqbanking_create_plugin();
 
-    gnc_preferences_add_to_page("aqbanking.glade", "aqbanking_prefs",
+
+    /* Add AqBanking preferences to the preferences dialog */
+    gnc_preferences_add_to_page("dialog-ab.glade", "aqbanking_prefs",
                                 _("Online Banking"));
 
     /* Initialize gwen library */



More information about the gnucash-changes mailing list