[meld] Port gnomeglade to gtk.Builder, and update file names



commit 37284ad417b4c79f95fc43783117b6497b18c965
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Sep 5 07:37:44 2010 +1000

    Port gnomeglade to gtk.Builder, and update file names
    
    This is a simplistic barely-functional port of the gnomeglade Component
    class to use gtk.Builder instead of glade.XML. Custom widget creation
    is not yet supported, and translation support is broken.
    
    data/ui/*.glade: Automated conversion to .ui
    
    dirdiff.py: Update to follow .ui file name changes
    
    filediff.py: Update to follow .ui file name changes
    
    findbar.py: Update to follow .ui file name changes
    
    gnomeglade.py: Port to UIBuilder usage
    
    meldapp.py: Port About dialog to gtk.Builder usage, remove gtk.glade
                requirement, and update to follow .ui file name changes
    
    preferences.py: Update to follow .ui file name changes
    
    vcview.py: Update to follow .ui file name changes

 data/ui/dirdiff.glade                         |  391 -------------
 data/ui/dirdiff.ui                            |  370 ++++++++++++
 data/ui/{filediff.glade => filediff.ui}       |  353 ++++++------
 data/ui/{findbar.glade => findbar.ui}         |   87 ++--
 data/ui/{meldapp.glade => meldapp.ui}         |  302 +++++-----
 data/ui/{preferences.glade => preferences.ui} |  374 ++++++------
 data/ui/vcview.glade                          |  771 -------------------------
 data/ui/vcview.ui                             |  716 +++++++++++++++++++++++
 meld/dirdiff.py                               |    2 +-
 meld/filediff.py                              |    6 +-
 meld/meldapp.py                               |    9 +-
 meld/preferences.py                           |    4 +-
 meld/ui/findbar.py                            |    2 +-
 meld/ui/gnomeglade.py                         |    8 +-
 meld/vcview.py                                |    4 +-
 15 files changed, 1655 insertions(+), 1744 deletions(-)
---
diff --git a/data/ui/dirdiff.ui b/data/ui/dirdiff.ui
new file mode 100644
index 0000000..9317179
--- /dev/null
+++ b/data/ui/dirdiff.ui
@@ -0,0 +1,370 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkWindow" id="container">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window1</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkVBox" id="dirdiff">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkTable" id="table">
+            <property name="visible">True</property>
+            <property name="n_rows">2</property>
+            <property name="n_columns">7</property>
+            <property name="homogeneous">False</property>
+            <property name="row_spacing">0</property>
+            <property name="column_spacing">0</property>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow0">
+                <property name="visible">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <property name="window_placement">GTK_CORNER_TOP_RIGHT</property>
+                <property name="window_placement_set">True</property>
+                <child>
+                  <object class="GtkTreeView" id="treeview0">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">False</property>
+                    <property name="rules_hint">False</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</property>
+                    <property name="fixed_height_mode">False</property>
+                    <property name="hover_selection">False</property>
+                    <property name="hover_expand">False</property>
+                    <signal handler="on_treeview_row_expanded" last_modification_time="Sun, 03 Nov 2002 16:03:11 GMT" name="row_expanded"/>
+                    <signal handler="on_treeview_row_collapsed" last_modification_time="Sun, 03 Nov 2002 16:08:46 GMT" name="row_collapsed"/>
+                    <signal handler="on_treeview_row_activated" last_modification_time="Sun, 03 Nov 2002 17:24:01 GMT" name="row_activated"/>
+                    <signal handler="on_treeview_button_press_event" last_modification_time="Wed, 19 Mar 2003 10:22:44 GMT" name="button_press_event"/>
+                    <signal handler="on_treeview_cursor_changed" last_modification_time="Sun, 14 Dec 2003 21:04:29 GMT" name="cursor_changed"/>
+                    <signal handler="on_treeview_key_press_event" last_modification_time="Sun, 14 Dec 2003 22:09:35 GMT" name="key_press_event"/>
+                  </object>
+                </child>
+              </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">fill</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow1">
+                <property name="visible">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTreeView" id="treeview1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">False</property>
+                    <property name="rules_hint">False</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</property>
+                    <property name="fixed_height_mode">False</property>
+                    <property name="hover_selection">False</property>
+                    <property name="hover_expand">False</property>
+                    <signal handler="on_treeview_row_expanded" last_modification_time="Sun, 03 Nov 2002 16:03:29 GMT" name="row_expanded"/>
+                    <signal handler="on_treeview_row_collapsed" last_modification_time="Sun, 03 Nov 2002 16:08:36 GMT" name="row_collapsed"/>
+                    <signal handler="on_treeview_row_activated" last_modification_time="Sun, 03 Nov 2002 17:24:07 GMT" name="row_activated"/>
+                    <signal handler="on_treeview_button_press_event" last_modification_time="Wed, 19 Mar 2003 10:22:58 GMT" name="button_press_event"/>
+                    <signal handler="on_treeview_key_press_event" last_modification_time="Sun, 14 Dec 2003 22:15:38 GMT" name="key_press_event"/>
+                    <signal handler="on_treeview_cursor_changed" last_modification_time="Sun, 14 Dec 2003 22:22:39 GMT" name="cursor_changed"/>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options">fill</property>
+              </packing>
+            </child>
+            <child>
+              <object class="Custom" id="fileentry0">
+                <property name="visible">True</property>
+                <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
+                <property name="string1">direntry</property>
+                <property name="int1">1</property>
+                <signal handler="on_fileentry_activate" name="activate"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="Custom" id="fileentry1">
+                <property name="visible">True</property>
+                <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
+                <property name="string1">direntry</property>
+                <property name="int1">1</property>
+                <signal handler="on_fileentry_activate" name="activate"/>
+              </object>
+              <packing>
+                <property name="left_attach">3</property>
+                <property name="right_attach">4</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="Custom" id="fileentry2">
+                <property name="visible">True</property>
+                <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
+                <property name="string1">direntry</property>
+                <property name="int1">1</property>
+                <signal handler="on_fileentry_activate" name="activate"/>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes"/>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkDrawingArea" id="diffmap1">
+                <property name="width_request">20</property>
+                <property name="visible">True</property>
+                <property name="events">GDK_BUTTON_PRESS_MASK</property>
+                <signal handler="on_diffmap_expose_event" last_modification_time="Wed, 21 May 2003 19:30:53 GMT" name="expose_event"/>
+                <signal handler="on_diffmap_button_press_event" last_modification_time="Thu, 24 Jul 2003 19:32:10 GMT" name="button_press_event"/>
+              </object>
+              <packing>
+                <property name="left_attach">6</property>
+                <property name="right_attach">7</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+                <property name="y_options">fill</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkDrawingArea" id="linkmap1">
+                <property name="width_request">50</property>
+                <property name="visible">True</property>
+                <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <signal handler="on_linkmap_scroll_event" last_modification_time="Fri, 01 Aug 2003 12:42:20 GMT" name="scroll_event"/>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+                <property name="y_options">fill</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkDrawingArea" id="diffmap0">
+                <property name="width_request">20</property>
+                <property name="visible">True</property>
+                <property name="events">GDK_BUTTON_PRESS_MASK</property>
+                <signal handler="on_diffmap_expose_event" last_modification_time="Wed, 21 May 2003 19:30:44 GMT" name="expose_event"/>
+                <signal handler="on_diffmap_button_press_event" last_modification_time="Thu, 24 Jul 2003 19:32:02 GMT" name="button_press_event"/>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow2">
+                <property name="visible">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTreeView" id="treeview2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">False</property>
+                    <property name="rules_hint">False</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</property>
+                    <property name="fixed_height_mode">False</property>
+                    <property name="hover_selection">False</property>
+                    <property name="hover_expand">False</property>
+                    <signal handler="on_treeview_row_expanded" last_modification_time="Sun, 03 Nov 2002 16:03:29 GMT" name="row_expanded"/>
+                    <signal handler="on_treeview_row_collapsed" last_modification_time="Sun, 03 Nov 2002 16:08:36 GMT" name="row_collapsed"/>
+                    <signal handler="on_treeview_row_activated" last_modification_time="Sun, 03 Nov 2002 17:24:07 GMT" name="row_activated"/>
+                    <signal handler="on_treeview_button_press_event" last_modification_time="Wed, 19 Mar 2003 10:22:58 GMT" name="button_press_event"/>
+                    <signal handler="on_treeview_key_press_event" last_modification_time="Sun, 14 Dec 2003 22:15:54 GMT" name="key_press_event"/>
+                    <signal handler="on_treeview_cursor_changed" last_modification_time="Sun, 14 Dec 2003 22:22:48 GMT" name="cursor_changed"/>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">5</property>
+                <property name="right_attach">6</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options">fill</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkDrawingArea" id="linkmap0">
+                <property name="width_request">50</property>
+                <property name="visible">True</property>
+                <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <signal handler="on_linkmap_scroll_event" last_modification_time="Fri, 01 Aug 2003 12:42:07 GMT" name="scroll_event"/>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+                <property name="y_options">fill</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label5">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes"/>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label6">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes"/>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label7">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes"/>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">4</property>
+                <property name="right_attach">5</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/ui/filediff.glade b/data/ui/filediff.ui
similarity index 68%
rename from data/ui/filediff.glade
rename to data/ui/filediff.ui
index e2cebfa..2c9a37e 100644
--- a/data/ui/filediff.glade
+++ b/data/ui/filediff.ui
@@ -1,16 +1,15 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<?xml version="1.0"?>
 <!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkWindow" id="container">
+<interface>
+  <object class="GtkWindow" id="container">
     <property name="visible">True</property>
     <property name="title" translatable="yes">window1</property>
-    <signal name="destroy" handler="on_delete_event"/>
+    <signal handler="on_delete_event" name="destroy"/>
     <child>
-      <widget class="GtkVBox" id="filediff">
+      <object class="GtkVBox" id="filediff">
         <property name="visible">True</property>
         <child>
-          <widget class="GtkTable" id="table">
+          <object class="GtkTable" id="table">
             <property name="visible">True</property>
             <property name="n_rows">2</property>
             <property name="n_columns">7</property>
@@ -18,81 +17,81 @@
               <placeholder/>
             </child>
             <child>
-              <widget class="Custom" id="fileentry2">
+              <object class="Custom" id="fileentry2">
                 <property name="visible">True</property>
                 <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                 <property name="string1">fileentry</property>
-                <signal name="activate" handler="on_fileentry_activate"/>
-              </widget>
+                <signal handler="on_fileentry_activate" name="activate"/>
+              </object>
               <packing>
                 <property name="left_attach">5</property>
                 <property name="right_attach">6</property>
                 <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="Custom" id="fileentry1">
+              <object class="Custom" id="fileentry1">
                 <property name="visible">True</property>
                 <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                 <property name="string1">fileentry</property>
-                <signal name="activate" handler="on_fileentry_activate"/>
-              </widget>
+                <signal handler="on_fileentry_activate" name="activate"/>
+              </object>
               <packing>
                 <property name="left_attach">3</property>
                 <property name="right_attach">4</property>
                 <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="Custom" id="fileentry0">
+              <object class="Custom" id="fileentry0">
                 <property name="visible">True</property>
                 <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                 <property name="string1">fileentry</property>
-                <signal name="activate" handler="on_fileentry_activate"/>
-              </widget>
+                <signal handler="on_fileentry_activate" name="activate"/>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox0">
+              <object class="GtkVBox" id="vbox0">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="Custom" id="msgarea_mgr0">
+                  <object class="Custom" id="msgarea_mgr0">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.msgarea.msgarea_mgr_create</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                   </packing>
                 </child>
                 <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow0">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="window_placement">GTK_CORNER_TOP_RIGHT</property>
-                <property name="window_placement_set">True</property>
-                <child>
-                  <widget class="GtkTextView" id="textview0">
+                  <object class="GtkScrolledWindow" id="scrolledwindow0">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="can_default">True</property>
-                    <property name="has_default">True</property>
-                    <signal name="button_press_event" handler="on_textview_button_press_event"/>
-                    <signal name="expose_event" handler="on_textview_expose_event"/>
-                    <signal name="focus_in_event" handler="on_textview_focus_in_event"/>
-                    <signal name="key_press_event" handler="on_key_press_event"/>
-                    <signal name="key_release_event" handler="on_key_release_event"/>
-                  </widget>
-                </child>
-              </widget>
+                    <property name="can_focus">False</property>
+                    <property name="window_placement">GTK_CORNER_TOP_RIGHT</property>
+                    <property name="window_placement_set">True</property>
+                    <child>
+                      <object class="GtkTextView" id="textview0">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="has_default">True</property>
+                        <signal handler="on_textview_button_press_event" name="button_press_event"/>
+                        <signal handler="on_textview_expose_event" name="expose_event"/>
+                        <signal handler="on_textview_focus_in_event" name="focus_in_event"/>
+                        <signal handler="on_key_press_event" name="key_press_event"/>
+                        <signal handler="on_key_release_event" name="key_release_event"/>
+                      </object>
+                    </child>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -101,12 +100,12 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkImage" id="statusimage2">
+              <object class="GtkImage" id="statusimage2">
                 <property name="width_request">20</property>
                 <property name="visible">True</property>
                 <property name="xalign">1</property>
                 <property name="stock">gtk-missing-image</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">4</property>
                 <property name="right_attach">5</property>
@@ -115,11 +114,11 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkImage" id="statusimage1">
+              <object class="GtkImage" id="statusimage1">
                 <property name="visible">True</property>
                 <property name="xalign">1</property>
                 <property name="stock">gtk-missing-image</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">2</property>
                 <property name="right_attach">3</property>
@@ -128,46 +127,46 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkImage" id="statusimage0">
+              <object class="GtkImage" id="statusimage0">
                 <property name="visible">True</property>
                 <property name="xalign">1</property>
                 <property name="stock">gtk-missing-image</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
                 <property name="y_options">GTK_FILL</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox2">
+              <object class="GtkVBox" id="vbox2">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="Custom" id="msgarea_mgr2">
+                  <object class="Custom" id="msgarea_mgr2">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.msgarea.msgarea_mgr_create</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                   </packing>
                 </child>
                 <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <child>
-                  <widget class="GtkTextView" id="textview2">
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <signal name="button_press_event" handler="on_textview_button_press_event"/>
-                    <signal name="expose_event" handler="on_textview_expose_event"/>
-                    <signal name="focus_in_event" handler="on_textview_focus_in_event"/>
-                    <signal name="key_press_event" handler="on_key_press_event"/>
-                    <signal name="key_release_event" handler="on_key_release_event"/>
-                  </widget>
-                </child>
-              </widget>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="GtkTextView" id="textview2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <signal handler="on_textview_button_press_event" name="button_press_event"/>
+                        <signal handler="on_textview_expose_event" name="expose_event"/>
+                        <signal handler="on_textview_focus_in_event" name="focus_in_event"/>
+                        <signal handler="on_key_press_event" name="key_press_event"/>
+                        <signal handler="on_key_release_event" name="key_release_event"/>
+                      </object>
+                    </child>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">5</property>
                 <property name="right_attach">6</property>
@@ -176,35 +175,35 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox1">
+              <object class="GtkVBox" id="vbox1">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="Custom" id="msgarea_mgr1">
+                  <object class="Custom" id="msgarea_mgr1">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.msgarea.msgarea_mgr_create</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                   </packing>
                 </child>
                 <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <child>
-                  <widget class="GtkTextView" id="textview1">
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <signal name="button_press_event" handler="on_textview_button_press_event"/>
-                    <signal name="expose_event" handler="on_textview_expose_event"/>
-                    <signal name="focus_in_event" handler="on_textview_focus_in_event"/>
-                    <signal name="key_press_event" handler="on_key_press_event"/>
-                    <signal name="key_release_event" handler="on_key_release_event"/>
-                  </widget>
-                </child>
-              </widget>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="GtkTextView" id="textview1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <signal handler="on_textview_button_press_event" name="button_press_event"/>
+                        <signal handler="on_textview_expose_event" name="expose_event"/>
+                        <signal handler="on_textview_focus_in_event" name="focus_in_event"/>
+                        <signal handler="on_key_press_event" name="key_press_event"/>
+                        <signal handler="on_key_release_event" name="key_release_event"/>
+                      </object>
+                    </child>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">3</property>
                 <property name="right_attach">4</property>
@@ -213,10 +212,10 @@
               </packing>
             </child>
             <child>
-              <widget class="Custom" id="diffmap1">
+              <object class="Custom" id="diffmap1">
                 <property name="visible">True</property>
                 <property name="creation_function">meld.diffmap.create_diffmap</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">6</property>
                 <property name="right_attach">7</property>
@@ -227,19 +226,19 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkDrawingArea" id="linkmap0">
+              <object class="GtkDrawingArea" id="linkmap0">
                 <property name="width_request">50</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
                 <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK</property>
-                <signal name="expose_event" handler="on_linkmap_expose_event"/>
-                <signal name="button_press_event" handler="on_linkmap_button_press_event"/>
-                <signal name="key_press_event" handler="on_key_press_event"/>
-                <signal name="button_release_event" handler="on_linkmap_button_release_event"/>
-                <signal name="key_release_event" handler="on_key_release_event"/>
-                <signal name="scroll_event" handler="on_linkmap_scroll_event"/>
-              </widget>
+                <signal handler="on_linkmap_expose_event" name="expose_event"/>
+                <signal handler="on_linkmap_button_press_event" name="button_press_event"/>
+                <signal handler="on_key_press_event" name="key_press_event"/>
+                <signal handler="on_linkmap_button_release_event" name="button_release_event"/>
+                <signal handler="on_key_release_event" name="key_release_event"/>
+                <signal handler="on_linkmap_scroll_event" name="scroll_event"/>
+              </object>
               <packing>
                 <property name="left_attach">2</property>
                 <property name="right_attach">3</property>
@@ -250,10 +249,10 @@
               </packing>
             </child>
             <child>
-              <widget class="Custom" id="diffmap0">
+              <object class="Custom" id="diffmap0">
                 <property name="visible">True</property>
                 <property name="creation_function">meld.diffmap.create_diffmap</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
@@ -261,19 +260,19 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkDrawingArea" id="linkmap1">
+              <object class="GtkDrawingArea" id="linkmap1">
                 <property name="width_request">50</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
                 <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK</property>
-                <signal name="expose_event" handler="on_linkmap_expose_event"/>
-                <signal name="button_press_event" handler="on_linkmap_button_press_event"/>
-                <signal name="key_press_event" handler="on_key_press_event"/>
-                <signal name="button_release_event" handler="on_linkmap_button_release_event"/>
-                <signal name="key_release_event" handler="on_key_release_event"/>
-                <signal name="scroll_event" handler="on_linkmap_scroll_event"/>
-              </widget>
+                <signal handler="on_linkmap_expose_event" name="expose_event"/>
+                <signal handler="on_linkmap_button_press_event" name="button_press_event"/>
+                <signal handler="on_key_press_event" name="key_press_event"/>
+                <signal handler="on_linkmap_button_release_event" name="button_release_event"/>
+                <signal handler="on_key_release_event" name="key_release_event"/>
+                <signal handler="on_linkmap_scroll_event" name="scroll_event"/>
+              </object>
               <packing>
                 <property name="left_attach">4</property>
                 <property name="right_attach">5</property>
@@ -283,50 +282,50 @@
                 <property name="y_options">GTK_FILL</property>
               </packing>
             </child>
-          </widget>
+          </object>
         </child>
         <child>
-          <widget class="Custom" id="findbar">
+          <object class="Custom" id="findbar">
             <property name="height_request">12</property>
             <property name="visible">True</property>
             <property name="creation_function">meld.ui.findbar.findbar_create</property>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">1</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="closedialog">
+  </object>
+  <object class="GtkDialog" id="closedialog">
     <property name="title" translatable="yes">Save modified files?</property>
     <property name="resizable">False</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="spacing">12</property>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <property name="spacing">12</property>
             <child>
-              <widget class="GtkImage" id="image1">
+              <object class="GtkImage" id="image1">
                 <property name="visible">True</property>
                 <property name="yalign">0</property>
                 <property name="xpad">12</property>
                 <property name="ypad">12</property>
                 <property name="stock">gtk-dialog-warning</property>
                 <property name="icon_size">6</property>
-              </widget>
+              </object>
             </child>
             <child>
-              <widget class="GtkVBox" id="box">
+              <object class="GtkVBox" id="box">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GtkLabel" id="label2">
+                  <object class="GtkLabel" id="label2">
                     <property name="visible">True</property>
                     <property name="xpad">12</property>
                     <property name="ypad">12</property>
@@ -334,72 +333,71 @@
 Which ones would you like to save?&lt;/span&gt;</property>
                     <property name="use_markup">True</property>
                     <property name="wrap">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="can_default">True</property>
             <property name="has_default">True</property>
             <property name="layout_style">GTK_BUTTONBOX_END</property>
             <child>
-              <widget class="GtkButton" id="button_quit">
+              <object class="GtkButton" id="button_quit">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="response_id">-7</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment2">
+                  <object class="GtkAlignment" id="alignment2">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox3">
+                      <object class="GtkHBox" id="hbox3">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image25">
+                          <object class="GtkImage" id="image25">
                             <property name="visible">True</property>
                             <property name="stock">gtk-quit</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label10">
+                          <object class="GtkLabel" id="label10">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">_Discard Changes</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
             </child>
             <child>
-              <widget class="GtkButton" id="button_cancel">
+              <object class="GtkButton" id="button_cancel">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
@@ -407,68 +405,71 @@ Which ones would you like to save?&lt;/span&gt;</property>
                 <property name="has_default">True</property>
                 <property name="label">gtk-cancel</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">-6</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="button_ok">
+              <object class="GtkButton" id="button_ok">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="response_id">-5</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment3">
+                  <object class="GtkAlignment" id="alignment3">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox4">
+                      <object class="GtkHBox" id="hbox4">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image26">
+                          <object class="GtkImage" id="image26">
                             <property name="visible">True</property>
                             <property name="stock">gtk-save</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label11">
+                          <object class="GtkLabel" id="label11">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">_Save Selected</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">GTK_PACK_END</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="patchdialog">
+    <action-widgets>
+      <action-widget response="-7">button_quit</action-widget>
+      <action-widget response="-6">button_cancel</action-widget>
+      <action-widget response="-5">button_ok</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="patchdialog">
     <property name="visible">True</property>
     <property name="title" translatable="yes">Create Patch</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
@@ -476,109 +477,111 @@ Which ones would you like to save?&lt;/span&gt;</property>
     <property name="skip_pager_hint">True</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox3">
+      <object class="GtkVBox" id="dialog-vbox3">
         <property name="visible">True</property>
         <child>
-          <widget class="GtkScrolledWindow" id="scrolledwindow3">
+          <object class="GtkScrolledWindow" id="scrolledwindow3">
             <property name="width_request">600</property>
             <property name="height_request">400</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="shadow_type">GTK_SHADOW_IN</property>
             <child>
-              <widget class="GtkTextView" id="textview">
+              <object class="GtkTextView" id="textview">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="accepts_tab">False</property>
-              </widget>
+              </object>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="padding">6</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area3">
+          <object class="GtkHButtonBox" id="dialog-action_area3">
             <property name="visible">True</property>
             <property name="layout_style">GTK_BUTTONBOX_END</property>
             <child>
-              <widget class="GtkButton" id="button6">
+              <object class="GtkButton" id="button6">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="response_id">1</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment1">
+                  <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox2">
+                      <object class="GtkHBox" id="hbox2">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image24">
+                          <object class="GtkImage" id="image24">
                             <property name="visible">True</property>
                             <property name="stock">gtk-copy</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label9">
+                          <object class="GtkLabel" id="label9">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">Copy to Clipboard</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
             </child>
             <child>
-              <widget class="GtkButton" id="button7">
+              <object class="GtkButton" id="button7">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="label">gtk-save-as</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="button9">
+              <object class="GtkButton" id="button9">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="label">gtk-cancel</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">-6</property>
                 <accelerator key="Escape" modifiers="" signal="activate"/>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">GTK_PACK_END</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="1">button6</action-widget>
+      <action-widget response="0">button7</action-widget>
+      <action-widget response="-6">button9</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/findbar.glade b/data/ui/findbar.ui
similarity index 80%
rename from data/ui/findbar.glade
rename to data/ui/findbar.ui
index a956164..c09662e 100644
--- a/data/ui/findbar.glade
+++ b/data/ui/findbar.ui
@@ -1,10 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<?xml version="1.0"?>
 <!--Generated with glade3 3.4.5 on Sat Mar 21 15:56:10 2009 -->
-<glade-interface>
-  <widget class="GtkWindow" id="window1">
+<interface>
+  <object class="GtkWindow" id="window1">
     <child>
-      <widget class="GtkTable" id="findbar">
+      <object class="GtkTable" id="findbar">
         <property name="n_rows">2</property>
         <property name="n_columns">6</property>
         <child>
@@ -14,35 +13,33 @@
           <placeholder/>
         </child>
         <child>
-          <widget class="GtkHButtonBox" id="hbuttonbox2">
+          <object class="GtkHButtonBox" id="hbuttonbox2">
             <property name="visible">True</property>
             <property name="layout_style">GTK_BUTTONBOX_START</property>
             <child>
-              <widget class="GtkButton" id="replace_button">
+              <object class="GtkButton" id="replace_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
                 <property name="label" translatable="yes">_Replace</property>
                 <property name="use_underline">True</property>
                 <property name="focus_on_click">False</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
             </child>
             <child>
-              <widget class="GtkButton" id="replace_all_button">
+              <object class="GtkButton" id="replace_all_button">
                 <property name="can_focus">True</property>
                 <property name="visible">True</property>
                 <property name="receives_default">True</property>
                 <property name="label" translatable="yes">Replace _All</property>
                 <property name="use_underline">True</property>
                 <property name="focus_on_click">False</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">3</property>
             <property name="right_attach">5</property>
@@ -53,35 +50,33 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkHButtonBox" id="hbuttonbox1">
+          <object class="GtkHButtonBox" id="hbuttonbox1">
             <property name="visible">True</property>
             <property name="layout_style">GTK_BUTTONBOX_START</property>
             <child>
-              <widget class="GtkButton" id="find_previous_button">
+              <object class="GtkButton" id="find_previous_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
                 <property name="label" translatable="yes">_Previous</property>
                 <property name="use_underline">True</property>
                 <property name="focus_on_click">False</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
             </child>
             <child>
-              <widget class="GtkButton" id="find_next_button">
+              <object class="GtkButton" id="find_next_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
                 <property name="label" translatable="yes">_Next</property>
                 <property name="use_underline">True</property>
                 <property name="focus_on_click">False</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">3</property>
             <property name="right_attach">5</property>
@@ -90,32 +85,31 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkButton" id="findbar_close">
+          <object class="GtkButton" id="findbar_close">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="focus_on_click">False</property>
-            <property name="response_id">0</property>
             <child>
-              <widget class="GtkImage" id="image2">
+              <object class="GtkImage" id="image2">
                 <property name="visible">True</property>
                 <property name="stock">gtk-cancel</property>
                 <property name="icon_size">1</property>
-              </widget>
+              </object>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="x_options">GTK_FILL</property>
             <property name="y_options">GTK_FILL</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="find_label">
+          <object class="GtkLabel" id="find_label">
             <property name="visible">True</property>
             <property name="label" translatable="yes">_Search for</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">find_entry</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -125,11 +119,11 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="find_entry">
+          <object class="GtkEntry" id="find_entry">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="width_chars">32</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">2</property>
             <property name="right_attach">3</property>
@@ -138,12 +132,12 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="replace_label">
+          <object class="GtkLabel" id="replace_label">
             <property name="visible">True</property>
             <property name="label" translatable="yes">Replace _With</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">replace_entry</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -155,11 +149,11 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="replace_entry">
+          <object class="GtkEntry" id="replace_entry">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="width_chars">32</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">2</property>
             <property name="right_attach">3</property>
@@ -170,52 +164,49 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkHBox" id="find_options">
+          <object class="GtkHBox" id="find_options">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkCheckButton" id="match_case">
+              <object class="GtkCheckButton" id="match_case">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Match Case</property>
                 <property name="use_underline">True</property>
                 <property name="focus_on_click">False</property>
-                <property name="response_id">0</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="whole_word">
+              <object class="GtkCheckButton" id="whole_word">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="label" translatable="yes">Who_le word</property>
                 <property name="use_underline">True</property>
                 <property name="focus_on_click">False</property>
-                <property name="response_id">0</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="regex">
+              <object class="GtkCheckButton" id="regex">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="label" translatable="yes">Regular E_xpression</property>
                 <property name="use_underline">True</property>
                 <property name="focus_on_click">False</property>
-                <property name="response_id">0</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">5</property>
             <property name="right_attach">6</property>
@@ -224,7 +215,7 @@
             <property name="x_padding">7</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/data/ui/meldapp.glade b/data/ui/meldapp.ui
similarity index 70%
rename from data/ui/meldapp.glade
rename to data/ui/meldapp.ui
index 32e1e35..89170b8 100644
--- a/data/ui/meldapp.glade
+++ b/data/ui/meldapp.ui
@@ -1,116 +1,115 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<?xml version="1.0"?>
 <!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkWindow" id="meldapp">
+<interface>
+  <object class="GtkWindow" id="meldapp">
     <property name="height_request">400</property>
     <property name="title" translatable="yes">Meld</property>
     <property name="icon">../icons/icon.png</property>
-    <signal name="size_allocate" handler="on_size_allocate"/>
-    <signal name="delete_event" handler="on_delete_event"/>
+    <signal handler="on_size_allocate" name="size_allocate"/>
+    <signal handler="on_delete_event" name="delete_event"/>
+    <child>
+      <object class="GtkVBox" id="appvbox">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkNotebook" id="notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="scrollable">True</property>
+            <property name="enable_popup">True</property>
+            <signal handler="on_switch_page" name="switch_page"/>
+          </object>
+          <packing>
+            <property name="position">1</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
         <child>
-          <widget class="GtkVBox" id="appvbox">
+          <object class="GtkHBox" id="status_box">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkNotebook" id="notebook">
+              <object class="GtkProgressBar" id="task_progress">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="scrollable">True</property>
-                <property name="enable_popup">True</property>
-                <signal name="switch_page" handler="on_switch_page"/>
-              </widget>
+                <property name="pulse_step">0.109999999404</property>
+                <property name="text" translatable="yes"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkStatusbar" id="task_status">
+                <property name="visible">True</property>
+                <property name="has_resize_grip">False</property>
+              </object>
               <packing>
                 <property name="position">1</property>
-                <property name="pack_type">GTK_PACK_END</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkHBox" id="status_box">
+              <object class="GtkStatusbar" id="doc_status">
+                <property name="width_request">175</property>
                 <property name="visible">True</property>
-                <child>
-                  <widget class="GtkProgressBar" id="task_progress">
-                    <property name="visible">True</property>
-                    <property name="pulse_step">0.109999999404</property>
-                    <property name="text" translatable="yes"></property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkStatusbar" id="task_status">
-                    <property name="visible">True</property>
-                    <property name="has_resize_grip">False</property>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkStatusbar" id="doc_status">
-                    <property name="width_request">175</property>
-                    <property name="visible">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="position">0</property>
-                <property name="pack_type">GTK_PACK_END</property>
+                <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
         </child>
-  </widget>
-  <widget class="GtkAboutDialog" id="about">
+      </object>
+    </child>
+  </object>
+  <object class="GtkAboutDialog" id="about">
     <property name="visible">True</property>
     <property name="border_width">5</property>
     <property name="destroy_with_parent">True</property>
     <property name="icon">../icons/icon.png</property>
     <property name="program-name">Meld</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="copyright" translatable="yes">Copyright © 2002-2009 Stephen Kennedy</property>
+    <property name="copyright" translatable="yes">Copyright &#xA9; 2002-2009 Stephen Kennedy</property>
     <property name="website">http://meld.sourceforge.net/</property>
     <property name="authors">Stephen Kennedy &lt;meld-list gnome org&gt;
 
 With help from:
 See changelog for individual credits.
 </property>
-    <property name="translator-credits">Benoît Dejean (fr)
+    <property name="translator-credits">Beno&#xEE;t Dejean (fr)
 Takeshi Aihana (ja)
 Dongsu Jang (ko)
-Danilo Å egan (sr)
+Danilo &#x160;egan (sr)
 Duarte Loreto (pt)
 Miloslav Trmac (cs)
 Vincent van Adrighem (nl)
 Changwoo Ryu (ko)
-Benoît Dejean (fr)
+Beno&#xEE;t Dejean (fr)
 Gareth Owen (en_GB)
 Adam Weinberger (en_CA)</property>
     <property name="logo">../icons/icon.png</property>
-  </widget>
-  <widget class="GtkDialog" id="newdialog">
+  </object>
+  <object class="GtkDialog" id="newdialog">
     <property name="visible">True</property>
     <property name="title" translatable="yes">Choose Files</property>
     <property name="default_width">600</property>
     <property name="icon">../icons/icon.png</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <signal name="response" handler="on_response"/>
+    <signal handler="on_response" name="response"/>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="vbox">
+      <object class="GtkVBox" id="vbox">
         <property name="visible">True</property>
         <child>
-          <widget class="GtkNotebook" id="type_notebook">
+          <object class="GtkNotebook" id="type_notebook">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <child>
-              <widget class="GtkTable" id="table1">
+              <object class="GtkTable" id="table1">
                 <property name="visible">True</property>
                 <property name="border_width">10</property>
                 <property name="n_rows">3</property>
@@ -124,131 +123,129 @@ Adam Weinberger (en_CA)</property>
                   <placeholder/>
                 </child>
                 <child>
-                  <widget class="GtkCheckButton" id="three_way_compare0">
+                  <object class="GtkCheckButton" id="three_way_compare0">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="label" translatable="yes">_Three Way Compare</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="draw_indicator">True</property>
-                    <signal name="toggled" handler="on_three_way_toggled"/>
-                  </widget>
+                    <signal handler="on_three_way_toggled" name="toggled"/>
+                  </object>
                   <packing>
                     <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="Custom" id="fileentry2">
+                  <object class="Custom" id="fileentry2">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                     <property name="string1">file_comparison</property>
                     <property name="string2">My File</property>
-                    <signal name="activate" handler="on_entry_activate"/>
-                  </widget>
+                    <signal handler="on_entry_activate" name="activate"/>
+                  </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="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="Custom" id="fileentry1">
+                  <object class="Custom" id="fileentry1">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                     <property name="string1">file_comparison</property>
                     <property name="string2">Original File</property>
-                    <signal name="activate" handler="on_entry_activate"/>
-                  </widget>
+                    <signal handler="on_entry_activate" name="activate"/>
+                  </object>
                   <packing>
                     <property name="left_attach">2</property>
                     <property name="right_attach">3</property>
                     <property name="top_attach">1</property>
                     <property name="bottom_attach">2</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="Custom" id="fileentry0">
+                  <object class="Custom" id="fileentry0">
                     <property name="visible">True</property>
                     <property name="sensitive">False</property>
                     <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                     <property name="string1">file_comparison</property>
                     <property name="string2">Other File</property>
-                    <signal name="activate" handler="on_entry_activate"/>
-                  </widget>
+                    <signal handler="on_entry_activate" name="activate"/>
+                  </object>
                   <packing>
                     <property name="left_attach">2</property>
                     <property name="right_attach">3</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label77">
+                  <object class="GtkLabel" id="label77">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="xpad">5</property>
                     <property name="ypad">5</property>
                     <property name="label" translatable="yes">Mine</property>
-                  </widget>
+                  </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="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label76">
+                  <object class="GtkLabel" id="label76">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="xpad">5</property>
                     <property name="ypad">5</property>
                     <property name="label" translatable="yes">Original</property>
-                  </widget>
+                  </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>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label75">
+                  <object class="GtkLabel" id="label75">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="xpad">5</property>
                     <property name="ypad">5</property>
                     <property name="label" translatable="yes">Other</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
                     <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
-              </widget>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="tablabel0">
+            <child type="tab">
+              <object class="GtkLabel" id="tablabel0">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_File Comparison</property>
                 <property name="use_underline">True</property>
-              </widget>
+              </object>
               <packing>
-                <property name="type">tab</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkTable" id="table2">
+              <object class="GtkTable" id="table2">
                 <property name="visible">True</property>
                 <property name="border_width">10</property>
                 <property name="n_rows">3</property>
@@ -262,138 +259,133 @@ Adam Weinberger (en_CA)</property>
                   <placeholder/>
                 </child>
                 <child>
-                  <widget class="GtkCheckButton" id="three_way_compare1">
+                  <object class="GtkCheckButton" id="three_way_compare1">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="label" translatable="yes">_Three Way Compare</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="draw_indicator">True</property>
-                    <signal name="toggled" handler="on_three_way_toggled"/>
-                  </widget>
+                    <signal handler="on_three_way_toggled" name="toggled"/>
+                  </object>
                   <packing>
                     <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="Custom" id="direntry2">
+                  <object class="Custom" id="direntry2">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                     <property name="string1">dir_comparison</property>
                     <property name="string2">My Directory</property>
                     <property name="int1">1</property>
-                    <signal name="activate" handler="on_entry_activate"/>
-                  </widget>
+                    <signal handler="on_entry_activate" name="activate"/>
+                  </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="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="Custom" id="direntry1">
+                  <object class="Custom" id="direntry1">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                     <property name="string1">dir_comparison</property>
                     <property name="string2">Original Directory</property>
                     <property name="int1">1</property>
-                    <signal name="activate" handler="on_entry_activate"/>
-                  </widget>
+                    <signal handler="on_entry_activate" name="activate"/>
+                  </object>
                   <packing>
                     <property name="left_attach">2</property>
                     <property name="right_attach">3</property>
                     <property name="top_attach">1</property>
                     <property name="bottom_attach">2</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="Custom" id="direntry0">
+                  <object class="Custom" id="direntry0">
                     <property name="visible">True</property>
                     <property name="sensitive">False</property>
                     <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                     <property name="string1">dir_comparison</property>
                     <property name="string2">Other Directory</property>
                     <property name="int1">1</property>
-                    <signal name="activate" handler="on_entry_activate"/>
-                  </widget>
+                    <signal handler="on_entry_activate" name="activate"/>
+                  </object>
                   <packing>
                     <property name="left_attach">2</property>
                     <property name="right_attach">3</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label80">
+                  <object class="GtkLabel" id="label80">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="xpad">5</property>
                     <property name="ypad">5</property>
                     <property name="label" translatable="yes">Mine</property>
-                  </widget>
+                  </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="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label79">
+                  <object class="GtkLabel" id="label79">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="xpad">5</property>
                     <property name="ypad">5</property>
                     <property name="label" translatable="yes">Original</property>
-                  </widget>
+                  </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>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label78">
+                  <object class="GtkLabel" id="label78">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="xpad">5</property>
                     <property name="ypad">5</property>
                     <property name="label" translatable="yes">Other</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
                     <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="tablabel1">
+            <child type="tab">
+              <object class="GtkLabel" id="tablabel1">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Directory Comparison</property>
                 <property name="use_underline">True</property>
-              </widget>
+              </object>
               <packing>
-                <property name="type">tab</property>
                 <property name="position">1</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkTable" id="table3">
+              <object class="GtkTable" id="table3">
                 <property name="visible">True</property>
                 <property name="border_width">10</property>
                 <property name="n_rows">1</property>
@@ -401,71 +393,66 @@ Adam Weinberger (en_CA)</property>
                 <property name="column_spacing">10</property>
                 <property name="row_spacing">10</property>
                 <child>
-                  <widget class="Custom" id="vcentry0">
+                  <object class="Custom" id="vcentry0">
                     <property name="visible">True</property>
                     <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
                     <property name="string1">vc_directory</property>
                     <property name="string2">VC Directory</property>
                     <property name="int1">1</property>
-                    <signal name="activate" handler="on_entry_activate"/>
-                  </widget>
+                    <signal handler="on_entry_activate" name="activate"/>
+                  </object>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label81">
+                  <object class="GtkLabel" id="label81">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="xpad">5</property>
                     <property name="ypad">5</property>
                     <property name="label" translatable="yes">Directory</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="y_options"/>
                   </packing>
                 </child>
-              </widget>
-              <packing>
-                <property name="position">2</property>
-              </packing>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="tablabel2">
+            <child type="tab">
+              <object class="GtkLabel" id="tablabel2">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Version Control Browser</property>
                 <property name="use_underline">True</property>
-              </widget>
+              </object>
               <packing>
-                <property name="type">tab</property>
                 <property name="position">2</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">2</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="hbuttonbox1">
+          <object class="GtkHButtonBox" id="hbuttonbox1">
             <property name="visible">True</property>
             <property name="layout_style">GTK_BUTTONBOX_END</property>
             <child>
-              <widget class="GtkButton" id="button_cancel">
+              <object class="GtkButton" id="button_cancel">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="label">gtk-cancel</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">-6</property>
-              </widget>
+              </object>
             </child>
             <child>
-              <widget class="GtkButton" id="button_ok">
+              <object class="GtkButton" id="button_ok">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
@@ -473,19 +460,24 @@ Adam Weinberger (en_CA)</property>
                 <property name="has_default">True</property>
                 <property name="label">gtk-ok</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">-5</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">GTK_PACK_END</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="0">three_way_compare0</action-widget>
+      <action-widget response="0">three_way_compare1</action-widget>
+      <action-widget response="-6">button_cancel</action-widget>
+      <action-widget response="-5">button_ok</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/preferences.glade b/data/ui/preferences.ui
similarity index 78%
rename from data/ui/preferences.glade
rename to data/ui/preferences.ui
index efebf55..3389dcf 100644
--- a/data/ui/preferences.glade
+++ b/data/ui/preferences.ui
@@ -1,38 +1,46 @@
 <?xml version="1.0"?>
-<glade-interface>
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">8</property>
+    <property name="lower">1</property>
+    <property name="page_increment">10</property>
+    <property name="step_increment">1</property>
+    <property name="page_size">0</property>
+    <property name="value">4</property>
+  </object>
   <!-- interface-requires gtk+ 2.8 -->
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkDialog" id="preferencesdialog">
+  <object class="GtkDialog" id="preferencesdialog">
     <property name="visible">True</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Meld Preferences</property>
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
-    <signal name="response" handler="on_response"/>
+    <signal handler="on_response" name="response"/>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox4">
+      <object class="GtkVBox" id="dialog-vbox4">
         <property name="visible">True</property>
         <child>
-          <widget class="GtkNotebook" id="notebook">
+          <object class="GtkNotebook" id="notebook">
             <property name="visible">True</property>
             <property name="border_width">5</property>
             <property name="show_border">False</property>
             <child>
-              <widget class="GtkVBox" id="editor_tab">
+              <object class="GtkVBox" id="editor_tab">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox20">
+                  <object class="GtkVBox" id="vbox20">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label32">
+                      <object class="GtkLabel" id="label32">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Font&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -40,12 +48,12 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox15">
+                      <object class="GtkHBox" id="hbox15">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label33">
+                          <object class="GtkLabel" id="label33">
                             <property name="visible">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -54,11 +62,11 @@
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="vbox10">
+                          <object class="GtkVBox" id="vbox10">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_default_font">
+                              <object class="GtkCheckButton" id="checkbutton_default_font">
                                 <property name="label" translatable="yes">_Use the system fixed width font</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
@@ -66,75 +74,75 @@
                                 <property name="use_underline">True</property>
                                 <property name="active">True</property>
                                 <property name="draw_indicator">True</property>
-                                <signal name="toggled" handler="on_checkbutton_default_font_toggled"/>
-                              </widget>
+                                <signal handler="on_checkbutton_default_font_toggled" name="toggled"/>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox5">
+                              <object class="GtkHBox" id="hbox5">
                                 <property name="visible">True</property>
                                 <property name="spacing">6</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label1">
+                                  <object class="GtkLabel" id="label1">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">_Editor font:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">fontpicker</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkFontButton" id="fontpicker">
+                                  <object class="GtkFontButton" id="fontpicker">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="font_name">Monospace 12</property>
                                     <property name="use_font">True</property>
-                                    <signal name="font_set" handler="on_fontpicker_font_set"/>
-                                  </widget>
+                                    <signal handler="on_fontpicker_font_set" name="font_set"/>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox22">
+                  <object class="GtkVBox" id="vbox22">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label34">
+                      <object class="GtkLabel" id="label34">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Display&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -142,13 +150,13 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox17">
+                      <object class="GtkHBox" id="hbox17">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label35">
+                          <object class="GtkLabel" id="label35">
                             <property name="visible">True</property>
                             <property name="xpad">12</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -156,21 +164,21 @@
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="vbox23">
+                          <object class="GtkVBox" id="vbox23">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox3">
+                              <object class="GtkHBox" id="hbox3">
                                 <property name="visible">True</property>
                                 <property name="spacing">6</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label16">
+                                  <object class="GtkLabel" id="label16">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">_Tab width:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">spinbutton_tabsize</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
@@ -178,20 +186,20 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkSpinButton" id="spinbutton_tabsize">
+                                  <object class="GtkSpinButton" id="spinbutton_tabsize">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">4 1 8 1 10 0</property>
+                                    <property name="adjustment">adjustment1</property>
                                     <property name="climb_rate">1</property>
-                                    <signal name="changed" handler="on_spinbutton_tabsize_changed"/>
-                                  </widget>
+                                    <signal handler="on_spinbutton_tabsize_changed" name="changed"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -199,15 +207,15 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_spaces_instead_of_tabs">
+                              <object class="GtkCheckButton" id="checkbutton_spaces_instead_of_tabs">
                                 <property name="label" translatable="yes">_Insert spaces instead of tabs</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>
-                                <signal name="toggled" handler="on_checkbutton_spaces_instead_of_tabs_toggled"/>
-                              </widget>
+                                <signal handler="on_checkbutton_spaces_instead_of_tabs_toggled" name="toggled"/>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -215,25 +223,25 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_wrap_text">
+                              <object class="GtkCheckButton" id="checkbutton_wrap_text">
                                 <property name="label" translatable="yes">Enable text _wrapping</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>
-                                <signal name="toggled" handler="on_checkbutton_wrap_text_toggled"/>
-                              </widget>
+                                <signal handler="on_checkbutton_wrap_text_toggled" name="toggled"/>
+                              </object>
                               <packing>
                                 <property name="position">3</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment1">
+                              <object class="GtkAlignment" id="alignment1">
                                 <property name="visible">True</property>
                                 <property name="left_padding">18</property>
                                 <child>
-                                  <widget class="GtkCheckButton" id="checkbutton_split_words">
+                                  <object class="GtkCheckButton" id="checkbutton_split_words">
                                     <property name="label" translatable="yes">Do not _split words over two lines</property>
                                     <property name="visible">True</property>
                                     <property name="sensitive">False</property>
@@ -242,24 +250,24 @@
                                     <property name="use_underline">True</property>
                                     <property name="active">True</property>
                                     <property name="draw_indicator">True</property>
-                                    <signal name="toggled" handler="on_checkbutton_wrap_text_toggled"/>
-                                  </widget>
+                                    <signal handler="on_checkbutton_wrap_text_toggled" name="toggled"/>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">3</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_show_line_numbers">
+                              <object class="GtkCheckButton" id="checkbutton_show_line_numbers">
                                 <property name="label" translatable="yes">Show _line numbers</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>
-                                <signal name="toggled" handler="on_checkbutton_show_line_numbers_toggled"/>
-                              </widget>
+                                <signal handler="on_checkbutton_show_line_numbers_toggled" name="toggled"/>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -267,50 +275,50 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_use_syntax_highlighting">
+                              <object class="GtkCheckButton" id="checkbutton_use_syntax_highlighting">
                                 <property name="label" translatable="yes">Use s_yntax highlighting</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>
-                                <signal name="toggled" handler="on_checkbutton_use_syntax_highlighting_toggled"/>
-                              </widget>
+                                <signal handler="on_checkbutton_use_syntax_highlighting_toggled" name="toggled"/>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">5</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox42">
+                  <object class="GtkVBox" id="vbox42">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label69">
+                      <object class="GtkLabel" id="label69">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;External editor&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -318,13 +326,13 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox34">
+                      <object class="GtkHBox" id="hbox34">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label70">
+                          <object class="GtkLabel" id="label70">
                             <property name="visible">True</property>
                             <property name="xpad">12</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -332,99 +340,98 @@
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="vbox43">
+                          <object class="GtkVBox" id="vbox43">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkCheckButton" id="system_editor_checkbutton">
+                              <object class="GtkCheckButton" id="system_editor_checkbutton">
                                 <property name="label" translatable="yes">Use _default system editor</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>
-                                <signal name="toggled" handler="on_system_editor_checkbutton_toggled"/>
-                              </widget>
+                                <signal handler="on_system_editor_checkbutton_toggled" name="toggled"/>
+                              </object>
                               <packing>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox35">
+                              <object class="GtkHBox" id="hbox35">
                                 <property name="visible">True</property>
                                 <property name="spacing">6</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label2">
+                                  <object class="GtkLabel" id="label2">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Edito_r command:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">custom_edit_command_entry</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkEntry" id="custom_edit_command_entry">
+                                  <object class="GtkEntry" id="custom_edit_command_entry">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="invisible_char">*</property>
-                                    <signal name="focus_out_event" handler="on_custom_edit_command_entry_activate"/>
-                                    <signal name="activate" handler="on_custom_edit_command_entry_activate"/>
-                                  </widget>
+                                    <signal handler="on_custom_edit_command_entry_activate" name="focus_out_event"/>
+                                    <signal handler="on_custom_edit_command_entry_activate" name="activate"/>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">2</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="editor_label">
+            <child type="tab">
+              <object class="GtkLabel" id="editor_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Editor</property>
-              </widget>
+              </object>
               <packing>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="file_filters_tab">
+              <object class="GtkVBox" id="file_filters_tab">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkLabel" id="label86">
+                  <object class="GtkLabel" id="label86">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">When performing directory comparisons, you may filter out files and directories by name. Each pattern is a list of shell style wildcards separated by spaces.</property>
                     <property name="wrap">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -432,25 +439,25 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkHBox" id="hbox40">
+                  <object class="GtkHBox" id="hbox40">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkCheckButton" id="checkbutton_ignore_symlinks">
+                      <object class="GtkCheckButton" id="checkbutton_ignore_symlinks">
                         <property name="label" translatable="yes">Ignore symbolic links</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>
-                        <signal name="toggled" handler="on_checkbutton_ignore_symlinks_toggled"/>
-                      </widget>
+                        <signal handler="on_checkbutton_ignore_symlinks_toggled" name="toggled"/>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -460,37 +467,36 @@
                 <child>
                   <placeholder/>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="filters_label">
+            <child type="tab">
+              <object class="GtkLabel" id="filters_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">File Filters</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="text_filters_tab">
+              <object class="GtkVBox" id="text_filters_tab">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkLabel" id="label87">
+                  <object class="GtkLabel" id="label87">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">When performing file comparisons, you may ignore certain types of changes. Each pattern here is a python regular expression which replaces matching text with the empty string before comparison is performed. If the expression contains groups, only the groups are replaced. See the user manual for more details.</property>
                     <property name="use_markup">True</property>
                     <property name="justify">fill</property>
                     <property name="wrap">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -498,25 +504,25 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkHBox" id="hbox39">
+                  <object class="GtkHBox" id="hbox39">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkCheckButton" id="checkbutton_ignore_blank_lines">
+                      <object class="GtkCheckButton" id="checkbutton_ignore_blank_lines">
                         <property name="label" translatable="yes">Ignore changes which insert or delete blank lines</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>
-                        <signal name="toggled" handler="on_checkbutton_ignore_blank_lines_toggled"/>
-                      </widget>
+                        <signal handler="on_checkbutton_ignore_blank_lines_toggled" name="toggled"/>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -526,38 +532,34 @@
                 <child>
                   <placeholder/>
                 </child>
-              </widget>
-              <packing>
-                <property name="position">3</property>
-              </packing>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="regex_label">
+            <child type="tab">
+              <object class="GtkLabel" id="regex_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Text Filters</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">3</property>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="encoding_tab">
+              <object class="GtkVBox" id="encoding_tab">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox39">
+                  <object class="GtkVBox" id="vbox39">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label52">
+                      <object class="GtkLabel" id="label52">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Loading&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -565,13 +567,13 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox29">
+                      <object class="GtkHBox" id="hbox29">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label53">
+                          <object class="GtkLabel" id="label53">
                             <property name="visible">True</property>
                             <property name="xpad">12</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -579,19 +581,19 @@
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="vbox40">
+                          <object class="GtkVBox" id="vbox40">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox41">
+                              <object class="GtkVBox" id="vbox41">
                                 <property name="visible">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label55">
+                                  <object class="GtkLabel" id="label55">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="xpad">4</property>
                                     <property name="ypad">4</property>
                                     <property name="label" translatable="yes">When loading, try these codecs in order. (e.g. utf8, iso8859)</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
@@ -599,234 +601,232 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkEntry" id="entry_text_codecs">
+                                  <object class="GtkEntry" id="entry_text_codecs">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="invisible_char">*</property>
                                     <property name="text">utf8 iso8859</property>
-                                    <signal name="focus_out_event" handler="on_entry_text_codecs_activate"/>
-                                    <signal name="activate" handler="on_entry_text_codecs_activate"/>
-                                  </widget>
+                                    <signal handler="on_entry_text_codecs_activate" name="focus_out_event"/>
+                                    <signal handler="on_entry_text_codecs_activate" name="activate"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
-              </widget>
-              <packing>
-                <property name="position">4</property>
-              </packing>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="encoding_label">
+            <child type="tab">
+              <object class="GtkLabel" id="encoding_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Encoding</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">4</property>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area4">
+          <object class="GtkHButtonBox" id="dialog-action_area4">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="helpbutton1">
+              <object class="GtkButton" id="helpbutton1">
                 <property name="label">gtk-help</property>
-                <property name="response_id">-11</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>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="closebutton1">
+              <object class="GtkButton" id="closebutton1">
                 <property name="label">gtk-close</property>
-                <property name="response_id">-7</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>
                 <accelerator key="Escape" signal="clicked"/>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="listwidgetcontainer">
+    <action-widgets>
+      <action-widget response="-11">helpbutton1</action-widget>
+      <action-widget response="-7">closebutton1</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkWindow" id="listwidgetcontainer">
     <property name="visible">True</property>
     <property name="title" translatable="yes">window1</property>
     <child>
-      <widget class="GtkTable" id="listwidget">
+      <object class="GtkTable" id="listwidget">
         <property name="visible">True</property>
         <property name="n_rows">3</property>
         <property name="n_columns">2</property>
         <child>
-          <widget class="GtkButton" id="items_revert">
+          <object class="GtkButton" id="items_revert">
             <property name="label">gtk-revert-to-saved</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">False</property>
             <property name="use_stock">True</property>
-            <signal name="clicked" handler="on_items_revert_clicked"/>
-          </widget>
+            <signal handler="on_items_revert_clicked" name="clicked"/>
+          </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="x_options">GTK_FILL</property>
-            <property name="y_options"></property>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
-          <widget class="GtkVButtonBox" id="vbuttonbox2">
+          <object class="GtkVButtonBox" id="vbuttonbox2">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkButton" id="item_up">
+              <object class="GtkButton" id="item_up">
                 <property name="label">gtk-go-up</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="on_item_up_clicked"/>
-              </widget>
+                <signal handler="on_item_up_clicked" name="clicked"/>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="item_down">
+              <object class="GtkButton" id="item_down">
                 <property name="label">gtk-go-down</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="on_item_down_clicked"/>
-              </widget>
+                <signal handler="on_item_down_clicked" name="clicked"/>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </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"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
-          <widget class="GtkVButtonBox" id="vbuttonbox1">
+          <object class="GtkVButtonBox" id="vbuttonbox1">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkButton" id="item_new">
+              <object class="GtkButton" id="item_new">
                 <property name="label">gtk-new</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="on_item_new_clicked"/>
-              </widget>
+                <signal handler="on_item_new_clicked" name="clicked"/>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="item_delete">
+              <object class="GtkButton" id="item_delete">
                 <property name="label">gtk-delete</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="on_item_delete_clicked"/>
-              </widget>
+                <signal handler="on_item_delete_clicked" name="clicked"/>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
-          <widget class="GtkScrolledWindow" id="scrolledwindow">
+          <object class="GtkScrolledWindow" id="scrolledwindow">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="shadow_type">in</property>
             <child>
-              <widget class="GtkTreeView" id="treeview">
+              <object class="GtkTreeView" id="treeview">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="reorderable">True</property>
-              </widget>
+              </object>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="bottom_attach">3</property>
             <property name="x_padding">12</property>
             <property name="y_padding">12</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/data/ui/vcview.ui b/data/ui/vcview.ui
new file mode 100644
index 0000000..d753eda
--- /dev/null
+++ b/data/ui/vcview.ui
@@ -0,0 +1,716 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkWindow" id="container">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window1</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkVBox" id="vcview">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkHBox" id="hbox2">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="Custom" id="fileentry">
+                <property name="visible">True</property>
+                <property name="creation_function">meld.ui.historyentry.create_fileentry</property>
+                <property name="string1">direntry</property>
+                <property name="int1">1</property>
+                <signal handler="on_fileentry_activate" name="activate"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="pack_type">GTK_PACK_START</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVPaned" id="vpaned">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="position">250</property>
+            <signal handler="on_vpaned_move_handle" last_modification_time="Sat, 27 Sep 2003 16:23:15 GMT" name="move_handle"/>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTreeView" id="treeview">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">True</property>
+                    <property name="rules_hint">False</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</property>
+                    <property name="fixed_height_mode">False</property>
+                    <property name="hover_selection">False</property>
+                    <property name="hover_expand">False</property>
+                    <signal handler="on_row_activated" last_modification_time="Sat, 03 Aug 2002 23:32:49 GMT" name="row_activated"/>
+                    <signal handler="on_button_press_event" last_modification_time="Sat, 30 Aug 2003 12:42:19 GMT" name="button_press_event"/>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="shrink">False</property>
+                <property name="resize">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="console_hbox">
+                <property name="height_request">70</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkEventBox" id="console_hide_box">
+                    <property name="visible">True</property>
+                    <property name="visible_window">True</property>
+                    <property name="above_child">False</property>
+                    <signal handler="on_console_view_toggle" last_modification_time="Sat, 27 Sep 2003 16:10:20 GMT" name="button_press_event"/>
+                    <child>
+                      <object class="GtkArrow" id="console_arrow_down">
+                        <property name="width_request">14</property>
+                        <property name="height_request">14</property>
+                        <property name="visible">True</property>
+                        <property name="arrow_type">GTK_ARROW_DOWN</property>
+                        <property name="shadow_type">GTK_SHADOW_OUT</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="console_scrolledwindow">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                    <child>
+                      <object class="GtkTextView" id="consoleview">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="editable">False</property>
+                        <property name="overwrite">False</property>
+                        <property name="accepts_tab">True</property>
+                        <property name="justification">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap_mode">GTK_WRAP_NONE</property>
+                        <property name="cursor_visible">False</property>
+                        <property name="pixels_above_lines">0</property>
+                        <property name="pixels_below_lines">0</property>
+                        <property name="pixels_inside_wrap">0</property>
+                        <property name="left_margin">0</property>
+                        <property name="right_margin">0</property>
+                        <property name="indent">0</property>
+                        <signal handler="on_consoleview_populate_popup" last_modification_time="Sat, 27 Sep 2003 17:09:16 GMT" name="populate_popup"/>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkEventBox" id="console_show_box">
+            <property name="visible_window">True</property>
+            <property name="above_child">False</property>
+            <signal handler="on_console_view_toggle" last_modification_time="Sat, 27 Sep 2003 16:10:28 GMT" name="button_press_event"/>
+            <child>
+              <object class="GtkHBox" id="hbox3">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkArrow" id="console_arrow_right">
+                    <property name="width_request">14</property>
+                    <property name="height_request">14</property>
+                    <property name="visible">True</property>
+                    <property name="arrow_type">GTK_ARROW_RIGHT</property>
+                    <property name="shadow_type">GTK_SHADOW_OUT</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHSeparator" id="hseparator1">
+                    <property name="visible">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkDialog" id="commitdialog">
+    <property name="width_request">450</property>
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">VC Log</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_CENTER</property>
+    <property name="modal">True</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancelbutton1">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="okbutton1">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-ok</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+                <accelerator key="Return" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                <accelerator key="KP_Enter" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkFrame" id="frame2">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+                <child>
+                  <object class="GtkLabel" id="changedfiles">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes"/>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">True</property>
+                    <property name="selectable">True</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                    <property name="width_chars">-1</property>
+                    <property name="single_line_mode">False</property>
+                    <property name="angle">0</property>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label3">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Commit Files</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                    <property name="width_chars">-1</property>
+                    <property name="single_line_mode">False</property>
+                    <property name="angle">0</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+                <child>
+                  <object class="GtkVBox" id="vbox2">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="scrolledwindow1">
+                        <property name="border_width">10</property>
+                        <property name="width_request">320</property>
+                        <property name="height_request">200</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_NONE</property>
+                        <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                        <child>
+                          <object class="GtkTextView" id="textview">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="editable">True</property>
+                            <property name="overwrite">False</property>
+                            <property name="accepts_tab">True</property>
+                            <property name="justification">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap_mode">GTK_WRAP_NONE</property>
+                            <property name="cursor_visible">True</property>
+                            <property name="pixels_above_lines">0</property>
+                            <property name="pixels_below_lines">0</property>
+                            <property name="pixels_inside_wrap">0</property>
+                            <property name="left_margin">0</property>
+                            <property name="right_margin">0</property>
+                            <property name="indent">0</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="previousbox">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">0</property>
+                        <child>
+                          <object class="GtkLabel" id="previouslogs_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Previous Logs</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">5</property>
+                            <property name="ypad">5</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="Custom" id="previousentry">
+                            <property name="border_width">5</property>
+                            <property name="visible">True</property>
+                            <property name="string1">previousentry</property>
+                            <property name="creation_function">meld.ui.historyentry.create_entry</property>
+                            <signal handler="on_previousentry_activate" name="changed"/>
+                          </object>
+                          <packing>
+                            <property name="padding">5</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Log Message</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                    <property name="width_chars">-1</property>
+                    <property name="single_line_mode">False</property>
+                    <property name="angle">0</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</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="diffdialog">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Compare Options</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_CENTER</property>
+    <property name="modal">True</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox2">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area2">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancelbutton2">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="okbutton2">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-ok</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox3">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkRadioButton" id="radiobutton1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Local copy against same remote revision</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+                <property name="active">False</property>
+                <property name="inconsistent">False</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox5">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkRadioButton" id="radiobutton2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes">Local copy against other remote revision</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                    <property name="active">False</property>
+                    <property name="inconsistent">False</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">radiobutton1</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox4">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkLabel" id="label4">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes"/>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">12</property>
+                        <property name="ypad">0</property>
+                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                        <property name="width_chars">-1</property>
+                        <property name="single_line_mode">False</property>
+                        <property name="angle">0</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCombo" id="combo1">
+                        <property name="visible">True</property>
+                        <property name="value_in_list">False</property>
+                        <property name="allow_empty">True</property>
+                        <property name="case_sensitive">False</property>
+                        <property name="enable_arrow_keys">True</property>
+                        <property name="enable_arrows_always">False</property>
+                        <child internal-child="entry">
+                          <object class="GtkEntry" id="combo-entry1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="editable">True</property>
+                            <property name="visibility">True</property>
+                            <property name="max_length">0</property>
+                            <property name="text" translatable="yes"/>
+                            <property name="has_frame">True</property>
+                            <property name="invisible_char">*</property>
+                            <property name="activates_default">False</property>
+                          </object>
+                        </child>
+                        <child internal-child="list">
+                          <object class="GtkList" id="combo-list1">
+                            <property name="visible">True</property>
+                            <property name="selection_mode">GTK_SELECTION_BROWSE</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox7">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">0</property>
+                        <child>
+                          <object class="GtkRadioButton" id="radiobutton4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Tag</property>
+                            <property name="use_underline">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                            <property name="active">False</property>
+                            <property name="inconsistent">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="radiobutton5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Date</property>
+                            <property name="use_underline">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                            <property name="active">False</property>
+                            <property name="inconsistent">False</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">radiobutton4</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">5</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancelbutton2</action-widget>
+      <action-widget response="-5">okbutton2</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/meld/dirdiff.py b/meld/dirdiff.py
index 1f87f20..db044d2 100644
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@ -178,7 +178,7 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
 
     def __init__(self, prefs, num_panes):
         melddoc.MeldDoc.__init__(self, prefs)
-        gnomeglade.Component.__init__(self, paths.ui_dir("dirdiff.glade"), "dirdiff")
+        gnomeglade.Component.__init__(self, paths.ui_dir("dirdiff.ui"), "dirdiff")
 
         actions = (
             ("DirCompare",   gtk.STOCK_DIALOG_INFO,  _("_Compare"), None, _("Compare selected"), self.on_button_diff_clicked),
diff --git a/meld/filediff.py b/meld/filediff.py
index 9ed200f..027e08b 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -115,7 +115,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         """Start up an filediff with num_panes empty contents.
         """
         melddoc.MeldDoc.__init__(self, prefs)
-        gnomeglade.Component.__init__(self, paths.ui_dir("filediff.glade"), "filediff", srcviewer.override)
+        gnomeglade.Component.__init__(self, paths.ui_dir("filediff.ui"), "filediff", srcviewer.override)
         self.map_widgets_into_lists(["textview", "fileentry", "diffmap", "scrolledwindow", "linkmap", "statusimage", "msgarea_mgr", "vbox"])
         self._update_regexes()
         self.warned_bad_comparison = False
@@ -535,7 +535,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         response = gtk.RESPONSE_OK
         modified = [b.modified for b in self.bufferdata]
         if 1 in modified:
-            dialog = gnomeglade.Component(paths.ui_dir("filediff.glade"), "closedialog")
+            dialog = gnomeglade.Component(paths.ui_dir("filediff.ui"), "closedialog")
             dialog.widget.set_transient_for(self.widget.get_toplevel())
             buttons = []
             for i in range(self.num_panes):
@@ -1046,7 +1046,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
 
     def make_patch(self, *extra):
         fontdesc = pango.FontDescription(self.prefs.get_current_font())
-        dialog = gnomeglade.Component(paths.ui_dir("filediff.glade"), "patchdialog", srcviewer.override)
+        dialog = gnomeglade.Component(paths.ui_dir("filediff.ui"), "patchdialog", srcviewer.override)
         dialog.widget.set_transient_for( self.widget.get_toplevel() )
         texts = [b.get_text(*b.get_bounds()).split("\n") for b in self.textbuffer]
         texts[0] = [l+"\n" for l in texts[0]]
diff --git a/meld/meldapp.py b/meld/meldapp.py
index f2f02c3..73ccce7 100644
--- a/meld/meldapp.py
+++ b/meld/meldapp.py
@@ -22,7 +22,6 @@ from gettext import gettext as _
 
 # gtk
 import gtk
-import gtk.glade
 import gobject
 
 # Drag'N'Drop support needs gnomevfs
@@ -57,7 +56,7 @@ version = "1.4.0"
 
 class NewDocDialog(gnomeglade.Component):
     def __init__(self, parentapp):
-        gnomeglade.Component.__init__(self, paths.ui_dir("meldapp.glade"), "newdialog")
+        gnomeglade.Component.__init__(self, paths.ui_dir("meldapp.ui"), "newdialog")
         self.map_widgets_into_lists(["fileentry", "direntry", "vcentry", "three_way_compare"])
         self.entrylists = self.fileentry, self.direntry, self.vcentry
         self.widget.set_transient_for(parentapp.widget)
@@ -128,7 +127,7 @@ class MeldApp(gnomeglade.Component):
     # init
     #
     def __init__(self):
-        gladefile = paths.ui_dir("meldapp.glade")
+        gladefile = paths.ui_dir("meldapp.ui")
         gtk.window_set_default_icon_name("icon")
         if getattr(gobject, "pygobject_version", ()) >= (2, 16, 0):
             gobject.set_application_name("Meld")
@@ -443,7 +442,9 @@ class MeldApp(gnomeglade.Component):
 
     def on_menu_about_activate(self, *extra):
         gtk.about_dialog_set_url_hook(lambda dialog, uri: misc.open_uri(uri))
-        about = gtk.glade.XML(paths.ui_dir("meldapp.glade"), "about").get_widget("about")
+        builder = gtk.Builder()
+        builder.add_objects_from_file(paths.ui_dir("meldapp.ui"), ["about"])
+        about = builder.get_object("about")
         about.props.version = version
         about.set_transient_for(self.widget)
         about.run()
diff --git a/meld/preferences.py b/meld/preferences.py
index 839cd93..0d9dddb 100644
--- a/meld/preferences.py
+++ b/meld/preferences.py
@@ -30,7 +30,7 @@ from util.sourceviewer import srcviewer
 
 class ListWidget(gnomeglade.Component):
     def __init__(self, columns, prefs, key):
-        gnomeglade.Component.__init__(self, paths.ui_dir("preferences.glade"), "listwidget")
+        gnomeglade.Component.__init__(self, paths.ui_dir("preferences.ui"), "listwidget")
         self.prefs = prefs
         self.key = key
         self.treeview.set_model( gtk.ListStore( *[c[1] for c in columns] ) )
@@ -119,7 +119,7 @@ class ListWidget(gnomeglade.Component):
 class PreferencesDialog(gnomeglade.Component):
 
     def __init__(self, parentapp):
-        gnomeglade.Component.__init__(self, paths.ui_dir("preferences.glade"), "preferencesdialog")
+        gnomeglade.Component.__init__(self, paths.ui_dir("preferences.ui"), "preferencesdialog")
         self.widget.set_transient_for(parentapp.widget)
         self.prefs = parentapp.prefs
         if not self.prefs.use_custom_font:
diff --git a/meld/ui/findbar.py b/meld/ui/findbar.py
index 9730b95..b4e8ba1 100644
--- a/meld/ui/findbar.py
+++ b/meld/ui/findbar.py
@@ -23,7 +23,7 @@ from gettext import gettext as _
 
 class FindBar(gnomeglade.Component):
     def __init__(self):
-        gnomeglade.Component.__init__(self, paths.ui_dir("findbar.glade"), "findbar")
+        gnomeglade.Component.__init__(self, paths.ui_dir("findbar.ui"), "findbar")
         gnomeglade.connect_signal_handlers(self)
         self.textview = None
         self.orig_base_color = self.find_entry.get_style().base[0]
diff --git a/meld/ui/gnomeglade.py b/meld/ui/gnomeglade.py
index 44ee7c2..777c513 100644
--- a/meld/ui/gnomeglade.py
+++ b/meld/ui/gnomeglade.py
@@ -20,7 +20,6 @@
 import sys
 
 import gtk
-import gtk.glade
 import re
 
 def custom_handler( glade, module_function_name, widget_name, str1, str2, int1, int2):
@@ -49,15 +48,16 @@ class Component(object):
         gtk.glade.set_custom_handler(custom_handler)
         if override is None:
             override = {}
-        self.xml = gtk.glade.XML(filename, root, typedict=override)
-        self.xml.signal_autoconnect(self)
+        self.builder = gtk.Builder()
+        self.builder.add_objects_from_file(filename, [root]) # FIXME: override doesn't work
+        self.builder.connect_signals(self)
         self.widget = getattr(self, root)
         self.widget.set_data("pyobject", self)
 
     def __getattr__(self, key):
         """Allow glade widgets to be accessed as self.widgetname.
         """
-        widget = self.xml.get_widget(key)
+        widget = self.builder.get_object(key)
         if widget: # cache lookups
             setattr(self, key, widget)
             return widget
diff --git a/meld/vcview.py b/meld/vcview.py
index 883a4f4..104856a 100644
--- a/meld/vcview.py
+++ b/meld/vcview.py
@@ -57,7 +57,7 @@ def _commonprefix(files):
 ################################################################################
 class CommitDialog(gnomeglade.Component):
     def __init__(self, parent):
-        gnomeglade.Component.__init__(self, paths.ui_dir("vcview.glade"), "commitdialog")
+        gnomeglade.Component.__init__(self, paths.ui_dir("vcview.ui"), "commitdialog")
         self.parent = parent
         self.widget.set_transient_for( parent.widget.get_toplevel() )
         selected = parent._get_selected_files()
@@ -119,7 +119,7 @@ class VcView(melddoc.MeldDoc, gnomeglade.Component):
 
     def __init__(self, prefs):
         melddoc.MeldDoc.__init__(self, prefs)
-        gnomeglade.Component.__init__(self, paths.ui_dir("vcview.glade"), "vcview")
+        gnomeglade.Component.__init__(self, paths.ui_dir("vcview.ui"), "vcview")
 
         actions = (
             ("VcCompare",       gtk.STOCK_DIALOG_INFO,      _("_Compare"),      None, _("Compare selected"), self.on_button_diff_clicked),



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]