[planner: 6/61] Migrate from libglade files to GtkBuilder resources




commit d2cca6145dc2fd25fdeabb70f39b517068dfa1d9
Author: Mart Raudsepp <leio gentoo org>
Date:   Fri Mar 6 00:03:11 2020 +0200

    Migrate from libglade files to GtkBuilder resources
    
    glade files are converted mechanically with gtk-builder-convert with
    no further changes to them in this commit on purpose, except for splitting
    those with multiple dialogs described in them into separate files as needed
    by common GtkBuilder usage. That splitting naturally solves all the
    'WARNING: duplicate id "..."' messages from the automatic conversion as well.
    
    mpp-bugzilla.glade is deleted as unused since first visible commit.
    
    Resources are loaded with purely glib API - we'll be able to do this more
    straightforward with gtk3 later with gtk_builder_new_from_resource.

 data/glade/add-predecessor.glade                |  228 --
 data/glade/calendar-dialog.glade                | 2765 -----------------------
 data/glade/column-dialog.glade                  |  486 ----
 data/glade/eds.glade                            |  419 ----
 data/glade/group-dialog.glade                   |  106 -
 data/glade/meson.build                          |   19 -
 data/glade/mpp-bugzilla.glade                   |  397 ----
 data/glade/new-property.glade                   |  263 ---
 data/glade/project-properties.glade             |  808 -------
 data/glade/property-dialog.glade                |  127 --
 data/glade/resource-dialog.glade                |  626 -----
 data/glade/resource-input-dialog.glade          |  316 ---
 data/glade/sql.glade                            |  385 ----
 data/glade/task-date-widget.glade               |  146 --
 data/glade/task-dialog.glade                    | 1043 ---------
 data/glade/task-input-dialog.glade              |  227 --
 data/meson.build                                |   20 +-
 data/org.gnome.Planner.gresource.xml            |   25 +
 data/org.gnome.Planner.plugin.eds.gresource.xml |    6 +
 data/org.gnome.Planner.plugin.sql.gresource.xml |    7 +
 data/ui/add-predecessor.ui                      |  216 ++
 data/ui/calendar-dialog.ui                      |  830 +++++++
 data/ui/calendar-selector.ui                    |  116 +
 data/ui/column-dialog.ui                        |  456 ++++
 data/ui/day-type-dialog.ui                      |   95 +
 data/ui/default-week-dialog.ui                  |  667 ++++++
 data/ui/eds.ui                                  |  391 ++++
 data/ui/group-dialog.ui                         |   98 +
 data/ui/new-calendar-dialog.ui                  |  255 +++
 data/ui/new-day-dialog.ui                       |  112 +
 data/ui/new-phase-dialog.ui                     |  124 +
 data/ui/new-property.ui                         |  248 ++
 data/ui/phase-dialog.ui                         |  107 +
 data/ui/project-properties.ui                   |  538 +++++
 data/ui/property-dialog.ui                      |  116 +
 data/ui/resource-dialog.ui                      |  580 +++++
 data/ui/resource-input-dialog.ui                |  298 +++
 data/ui/sql-open-dialog.ui                      |  250 ++
 data/ui/sql-select-dialog.ui                    |  117 +
 data/ui/task-date-widget.ui                     |  154 ++
 data/ui/task-dialog.ui                          |  993 ++++++++
 data/ui/task-input-dialog.ui                    |  213 ++
 data/ui/working-time-dialog.ui                  |  563 +++++
 docs/getting-started-hacking.xml                |    4 -
 libplanner/mrp-paths-gnome.c                    |   11 -
 libplanner/mrp-paths.h                          |    1 -
 meson.build                                     |    5 +-
 po/POTFILES.in                                  |   39 +-
 po/POTFILES.skip                                |    2 -
 src/meson.build                                 |    6 +-
 src/planner-calendar-dialog.c                   |   69 +-
 src/planner-calendar-selector.c                 |   26 +-
 src/planner-column-dialog.c                     |   32 +-
 src/planner-day-type-dialog.c                   |   40 +-
 src/planner-default-week-dialog.c               |   32 +-
 src/planner-eds-plugin.c                        |   91 +-
 src/planner-group-dialog.c                      |   22 +-
 src/planner-phase-dialog.c                      |   40 +-
 src/planner-project-properties.c                |   72 +-
 src/planner-property-dialog.c                   |   56 +-
 src/planner-resource-dialog.c                   |   42 +-
 src/planner-resource-input-dialog.c             |   22 +-
 src/planner-sql-plugin.c                        |   55 +-
 src/planner-task-date-widget.c                  |   29 +-
 src/planner-task-dialog.c                       |   85 +-
 src/planner-task-input-dialog.c                 |   18 +-
 src/planner-util.c                              |   19 +
 src/planner-util.h                              |    1 +
 src/planner-window.c                            |    1 -
 src/planner-working-time-dialog.c               |   27 +-
 src/planner-xml-planner-plugin.c                |    1 -
 71 files changed, 7965 insertions(+), 8839 deletions(-)
---
diff --git a/data/meson.build b/data/meson.build
index 4be463f8..85aff4de 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,4 +1,22 @@
-subdir('glade')
+resources = gnome.compile_resources(
+  'org.gnome.Planner',
+  'org.gnome.Planner.gresource.xml',
+  c_name: 'resources')
+
+if libeds_dep.found()
+  eds_plugin_resources = gnome.compile_resources(
+    'org.gnome.Planner.plugin.eds',
+    'org.gnome.Planner.plugin.eds.gresource.xml',
+    c_name: 'eds_plugin_resources')
+endif
+
+if gda_dep.found()
+  sql_plugin_resources = gnome.compile_resources(
+    'org.gnome.Planner.plugin.sql',
+    'org.gnome.Planner.plugin.sql.gresource.xml',
+    c_name: 'sql_plugin_resources')
+endif
+
 subdir('images')
 subdir('ui')
 subdir('dtd')
diff --git a/data/org.gnome.Planner.gresource.xml b/data/org.gnome.Planner.gresource.xml
new file mode 100644
index 00000000..d07b92aa
--- /dev/null
+++ b/data/org.gnome.Planner.gresource.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/Planner">
+    <file preprocess="xml-stripblanks">ui/add-predecessor.ui</file>
+    <file preprocess="xml-stripblanks">ui/calendar-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/calendar-selector.ui</file>
+    <file preprocess="xml-stripblanks">ui/column-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/day-type-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/default-week-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/group-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/new-calendar-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/new-day-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/new-phase-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/new-property.ui</file>
+    <file preprocess="xml-stripblanks">ui/phase-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/project-properties.ui</file>
+    <file preprocess="xml-stripblanks">ui/property-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/resource-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/resource-input-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/task-date-widget.ui</file>
+    <file preprocess="xml-stripblanks">ui/task-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/task-input-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/working-time-dialog.ui</file>
+  </gresource>
+</gresources>
diff --git a/data/org.gnome.Planner.plugin.eds.gresource.xml b/data/org.gnome.Planner.plugin.eds.gresource.xml
new file mode 100644
index 00000000..306d0076
--- /dev/null
+++ b/data/org.gnome.Planner.plugin.eds.gresource.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/Planner/plugin/eds">
+    <file preprocess="xml-stripblanks">ui/eds.ui</file>
+  </gresource>
+</gresources>
diff --git a/data/org.gnome.Planner.plugin.sql.gresource.xml b/data/org.gnome.Planner.plugin.sql.gresource.xml
new file mode 100644
index 00000000..9e820a36
--- /dev/null
+++ b/data/org.gnome.Planner.plugin.sql.gresource.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/Planner/plugin/sql">
+    <file preprocess="xml-stripblanks">ui/sql-open-dialog.ui</file>
+    <file preprocess="xml-stripblanks">ui/sql-select-dialog.ui</file>
+  </gresource>
+</gresources>
diff --git a/data/ui/add-predecessor.ui b/data/ui/add-predecessor.ui
new file mode 100644
index 00000000..2aab9a7e
--- /dev/null
+++ b/data/ui/add-predecessor.ui
@@ -0,0 +1,216 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="add_predecessor_dialog">
+    <property name="border_width">5</property>
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Add Predecessor</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">True</property>
+    <property name="resizable">False</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="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">2</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="cancel_button">
+                <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="ok_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="has_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="GtkTable" id="table1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="n_rows">3</property>
+            <property name="n_columns">2</property>
+            <property name="homogeneous">False</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="predecessor-name">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="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="predecessor_type">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Relation type:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">type_optionmenu</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">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkOptionMenu" id="type_optionmenu">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="history">-1</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="predecessor_lag">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Lag:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">lag_entry</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">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="lag_entry">
+                <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">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBoxEntry" id="predecessor_combo">
+                <property name="visible">True</property>
+                <property name="add_tearoffs">False</property>
+                <property name="has_frame">True</property>
+                <property name="focus_on_click">True</property>
+              </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="x_options">fill</property>
+                <property name="y_options">fill</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">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/calendar-dialog.ui b/data/ui/calendar-dialog.ui
new file mode 100644
index 00000000..72338581
--- /dev/null
+++ b/data/ui/calendar-dialog.ui
@@ -0,0 +1,830 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="calendar_dialog">
+    <property name="title" translatable="yes">Calendar Editor</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="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog_vbox">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="new_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">0</property>
+                    <property name="yscale">0</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox112">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">2</property>
+                        <child>
+                          <object class="GtkImage" id="image1">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-new</property>
+                            <property name="icon_size">4</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">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label239">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_New...</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.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">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="remove_button">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-remove</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="working_time_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Working time...</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="default_week_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Default week...</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="button21">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </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="GtkHBox" id="outer_hbox">
+            <property name="border_width">4</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">4</property>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow7">
+                <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="width_request">150</property>
+                    <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>
+                  </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="calendar_vbox">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkFrame" id="calendar_frame">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="label_yalign">0.5</property>
+                    <property name="shadow_type">GTK_SHADOW_NONE</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label182">
+                    <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">0</property>
+                    <property name="ypad">0</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="radio_vbox">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">True</property>
+                    <property name="spacing">2</property>
+                    <child>
+                      <object class="GtkRadioButton" id="base_radiobutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Use working time from derived 
calendar</property>
+                        <property name="use_underline">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</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="GtkHBox" id="hbox101">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">4</property>
+                        <child>
+                          <object class="GtkRadioButton" id="type_radiobutton">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Set day type to:</property>
+                            <property name="use_underline">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="active">False</property>
+                            <property name="inconsistent">False</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">base_radiobutton</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkOptionMenu" id="optionmenu">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">True</property>
+                            <property name="history">-1</property>
+                          </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>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkRadioButton" id="custom_radiobutton">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Custom working time</property>
+                        <property name="use_underline">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="active">False</property>
+                        <property name="inconsistent">False</property>
+                        <property name="draw_indicator">True</property>
+                        <property name="group">base_radiobutton</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">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFixed" id="fixed1">
+                <property name="width_request">2</property>
+                <property name="visible">True</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="working_time_vbox">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkLabel" id="label246">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Working time&lt;/b&gt;</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">True</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHSeparator" id="hseparator9">
+                    <property name="visible">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">4</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkTable" id="table4">
+                    <property name="visible">True</property>
+                    <property name="n_rows">6</property>
+                    <property name="n_columns">3</property>
+                    <property name="homogeneous">False</property>
+                    <property name="row_spacing">2</property>
+                    <property name="column_spacing">8</property>
+                    <child>
+                      <object class="GtkLabel" id="label156">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </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">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label157">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </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">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label158">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label159">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from1_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </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="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to1_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </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"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from2_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from3_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to2_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to3_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to4_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from5_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to5_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label168">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from4_entry">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label154">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">From:</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </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="label245">
+                        <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>
+                      </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="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label155">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">To:</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">True</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">1</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">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">fill</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox118">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkButton" id="apply_button">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Apply</property>
+                        <property name="use_underline">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                      </packing>
+                    </child>
+                  </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>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</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>
+        <child>
+          <object class="GtkHSeparator" id="hseparator6">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="padding">2</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="1">new_button</action-widget>
+      <action-widget response="2">remove_button</action-widget>
+      <action-widget response="3">working_time_button</action-widget>
+      <action-widget response="4">default_week_button</action-widget>
+      <action-widget response="-7">button21</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/calendar-selector.ui b/data/ui/calendar-selector.ui
new file mode 100644
index 00000000..75ff0db5
--- /dev/null
+++ b/data/ui/calendar-selector.ui
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="calendar_selector">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Select a Calendar</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="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="vbox121">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox2">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <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>
+              </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="vbox122">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkLabel" id="caption_label">
+                <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>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow9">
+                <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="width_request">150</property>
+                    <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>
+                  </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">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/column-dialog.ui b/data/ui/column-dialog.ui
new file mode 100644
index 00000000..2b2ebb33
--- /dev/null
+++ b/data/ui/column-dialog.ui
@@ -0,0 +1,456 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="column_dialog">
+    <property name="border_width">5</property>
+    <property name="visible">True</property>
+    <property name="title" translatable="yes"/>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</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="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </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="GtkHBox" id="hbox1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkVBox" id="vbox105">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Hidden columns:</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <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="GtkScrolledWindow" id="scrolledwindow6">
+                    <property name="width_request">200</property>
+                    <property name="height_request">150</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                    <child>
+                      <object class="GtkTreeView" id="hidden_tree">
+                        <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">False</property>
+                        <property name="fixed_height_mode">False</property>
+                        <property name="hover_selection">False</property>
+                        <property name="hover_expand">False</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>
+            <child>
+              <object class="GtkVBox" id="vbox107">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkLabel" id="label7">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">    </property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0.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>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label8">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">    </property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0.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>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVButtonBox" id="vbuttonbox1">
+                    <property name="visible">True</property>
+                    <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkButton" id="up_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-go-up</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="show_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment3">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">0</property>
+                            <property name="bottom_padding">0</property>
+                            <property name="left_padding">0</property>
+                            <property name="right_padding">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox4">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image3">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-media-forward</property>
+                                    <property name="icon_size">4</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">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label10">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Show</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="use_markup">False</property>
+                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0.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>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="hide_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment2">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">0</property>
+                            <property name="bottom_padding">0</property>
+                            <property name="left_padding">0</property>
+                            <property name="right_padding">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox3">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image2">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-go-back</property>
+                                    <property name="icon_size">4</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">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label9">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Hide</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="use_markup">False</property>
+                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0.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>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="down_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-go-down</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">True</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label6">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">    </property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0.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>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox106">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Visible columns:</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <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="GtkScrolledWindow" id="scrolledwindow7">
+                    <property name="width_request">200</property>
+                    <property name="height_request">150</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                    <child>
+                      <object class="GtkTreeView" id="visible_tree">
+                        <property name="width_request">100</property>
+                        <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">False</property>
+                        <property name="fixed_height_mode">False</property>
+                        <property name="hover_selection">False</property>
+                        <property name="hover_expand">False</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>
+          <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="-7">close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/day-type-dialog.ui b/data/ui/day-type-dialog.ui
new file mode 100644
index 00000000..d749a317
--- /dev/null
+++ b/data/ui/day-type-dialog.ui
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="day_type_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Edit Day Types</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="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="vbox124">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox3">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="remove_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-remove</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="add_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-add</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </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="GtkScrolledWindow" id="scrolledwindow10">
+            <property name="border_width">5</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_IN</property>
+            <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+            <child>
+              <object class="GtkTreeView" id="treeview">
+                <property name="height_request">150</property>
+                <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>
+              </object>
+            </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="2">remove_button</action-widget>
+      <action-widget response="1">add_button</action-widget>
+      <action-widget response="-7">close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/default-week-dialog.ui b/data/ui/default-week-dialog.ui
new file mode 100644
index 00000000..ae171a8a
--- /dev/null
+++ b/data/ui/default-week-dialog.ui
@@ -0,0 +1,667 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="default_week_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Default Week</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="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_area2">
+            <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-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</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-apply</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</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="vbox118">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkHBox" id="hbox107">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">2</property>
+                <child>
+                  <object class="GtkLabel" id="label211">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Calendar:&lt;/b&gt;</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">True</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="name_label">
+                    <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>
+                  </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">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHSeparator" id="hseparator8">
+                <property name="visible">True</property>
+              </object>
+              <packing>
+                <property name="padding">4</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label213">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Select a weekday and the day type to use for that 
day in the default week for this calendar.
+</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">True</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox108">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">8</property>
+                <child>
+                  <object class="GtkHBox" id="hbox109">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">4</property>
+                    <child>
+                      <object class="GtkLabel" id="label214">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Week day:</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>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkOptionMenu" id="weekday_optionmenu">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="history">-1</property>
+                      </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>
+                <child>
+                  <object class="GtkHBox" id="hbox110">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">4</property>
+                    <child>
+                      <object class="GtkLabel" id="label215">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Day type:</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>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkOptionMenu" id="day_optionmenu">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="history">-1</property>
+                      </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>
+            <child>
+              <object class="GtkLabel" id="label217">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">
+The selected day type has the following working hours:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox120">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkLabel" id="label249">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">    </property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0.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">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkTable" id="table8">
+                    <property name="border_width">4</property>
+                    <property name="visible">True</property>
+                    <property name="n_rows">5</property>
+                    <property name="n_columns">3</property>
+                    <property name="homogeneous">False</property>
+                    <property name="row_spacing">2</property>
+                    <property name="column_spacing">8</property>
+                    <child>
+                      <object class="GtkLabel" id="dash1_label">
+                        <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>
+                      </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="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="dash2_label">
+                        <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>
+                      </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">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="dash3_label">
+                        <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>
+                      </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">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="dash4_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="dash5_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="from1_label">
+                        <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>
+                      </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="to1_label">
+                        <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>
+                      </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="from2_label">
+                        <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>
+                      </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>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="from3_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="from4_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="from5_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="to2_label">
+                        <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>
+                      </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"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="to3_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="to4_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="to5_label">
+                        <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</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>
+                  </packing>
+                </child>
+              </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">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">cancelbutton1</action-widget>
+      <action-widget response="-10">okbutton1</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/eds.ui b/data/ui/eds.ui
new file mode 100644
index 00000000..c646a507
--- /dev/null
+++ b/data/ui/eds.ui
@@ -0,0 +1,391 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="resources_get">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">dialog1</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="default_width">500</property>
+    <property name="default_height">400</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="has_separator">True</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="cancel_button">
+                <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="ok_button">
+                <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="vbox1">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkHBox" id="hbox1">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Select group</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>
+                  </object>
+                  <packing>
+                    <property name="padding">5</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBox" id="select_group">
+                    <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>
+              <packing>
+                <property name="padding">10</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="search_box">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Search</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>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="search_entry">
+                    <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" translatable="yes">*</property>
+                    <property name="activates_default">False</property>
+                  </object>
+                  <packing>
+                    <property name="padding">5</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="search_button">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label">gtk-find</property>
+                    <property name="use_stock">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">5</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="all_button">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="relief">GTK_RELIEF_HALF</property>
+                    <property name="focus_on_click">True</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment1">
+                        <property name="visible">True</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xscale">0</property>
+                        <property name="yscale">0</property>
+                        <property name="top_padding">0</property>
+                        <property name="bottom_padding">0</property>
+                        <property name="left_padding">0</property>
+                        <property name="right_padding">0</property>
+                        <child>
+                          <object class="GtkHBox" id="hbox2">
+                            <property name="visible">True</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">2</property>
+                            <child>
+                              <object class="GtkImage" id="image1">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-justify-fill</property>
+                                <property name="icon_size">4</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">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label3">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Select All</property>
+                                <property name="use_underline">True</property>
+                                <property name="use_markup">False</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.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">False</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="none_button">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment2">
+                        <property name="visible">True</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xscale">0</property>
+                        <property name="yscale">0</property>
+                        <property name="top_padding">0</property>
+                        <property name="bottom_padding">0</property>
+                        <property name="left_padding">0</property>
+                        <property name="right_padding">0</property>
+                        <child>
+                          <object class="GtkHBox" id="hbox3">
+                            <property name="visible">True</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">2</property>
+                            <child>
+                              <object class="GtkImage" id="image2">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-clear</property>
+                                <property name="icon_size">4</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">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label4">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Unselect All</property>
+                                <property name="use_underline">True</property>
+                                <property name="use_markup">False</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.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">False</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">5</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow1">
+                <property name="visible">True</property>
+                <property name="can_focus">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="resources">
+                    <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">True</property>
+                    <property name="enable_search">True</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>
+        <child>
+          <object class="GtkHBox" id="progress">
+            <property name="visible">True</property>
+            <property name="sensitive">False</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkProgressBar" id="progressbar">
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.1</property>
+                <property name="text" translatable="yes">Loading resource data</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="stop_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-stop</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+              <packing>
+                <property name="padding">5</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">5</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/group-dialog.ui b/data/ui/group-dialog.ui
new file mode 100644
index 00000000..f33d6d76
--- /dev/null
+++ b/data/ui/group-dialog.ui
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="dialog_group_editor">
+    <property name="border_width">5</property>
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Group Editor</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="default_width">400</property>
+    <property name="default_height">300</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">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="remove_group">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-remove</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="add_group">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-add</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="close_editor">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </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="GtkScrolledWindow" id="scrolledwindow1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+            <property name="shadow_type">GTK_SHADOW_IN</property>
+            <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+            <child>
+              <object class="GtkTreeView" id="group_edit_treeview">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="headers_visible">True</property>
+                <property name="rules_hint">True</property>
+                <property name="reorderable">False</property>
+                <property name="enable_search">True</property>
+              </object>
+            </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="0">remove_group</action-widget>
+      <action-widget response="0">add_group</action-widget>
+      <action-widget response="0">close_editor</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/new-calendar-dialog.ui b/data/ui/new-calendar-dialog.ui
new file mode 100644
index 00000000..bc15d1be
--- /dev/null
+++ b/data/ui/new-calendar-dialog.ui
@@ -0,0 +1,255 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="new_calendar_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">New Calendar</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="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox3">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area4">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">C_reate</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</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="GtkHBox" id="hbox119">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkVBox" id="vbox123">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label248">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Existing calendars:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">treeview</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow8">
+                    <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="width_request">150</property>
+                        <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>
+                      </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>
+            <child>
+              <object class="GtkVBox" id="vbox119">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label228">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Name of the new calendar:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="name_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="has_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" translatable="yes">*</property>
+                    <property name="activates_default">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label247">
+                    <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">0</property>
+                    <property name="ypad">0</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="derive_radiobutton">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes">_Derive from a calendar</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</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="copy_radiobutton">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes">C_opy an existing calendar</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="active">False</property>
+                    <property name="inconsistent">False</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">derive_radiobutton</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="empty_radiobutton">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes">Create an _empty calendar</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="active">False</property>
+                    <property name="inconsistent">False</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">derive_radiobutton</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>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/new-day-dialog.ui b/data/ui/new-day-dialog.ui
new file mode 100644
index 00000000..9b1e46e3
--- /dev/null
+++ b/data/ui/new-day-dialog.ui
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="new_day_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Add Day Type</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">False</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="vbox126">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox4">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_default">True</property>
+                <property name="has_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>
+              </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="GtkHBox" id="hbox121">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label253">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">name_entry</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="name_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_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" translatable="yes">*</property>
+                <property name="activates_default">True</property>
+              </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">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/new-phase-dialog.ui b/data/ui/new-phase-dialog.ui
new file mode 100644
index 00000000..d6a8c191
--- /dev/null
+++ b/data/ui/new-phase-dialog.ui
@@ -0,0 +1,124 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="new_phase_dialog">
+    <property name="border_width">5</property>
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">New Project Phase</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">False</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="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">2</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="cancel_button">
+                <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="ok_button">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_default">True</property>
+                <property name="has_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="GtkHBox" id="hbox3">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label132">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">name_entry</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="GtkEntry" id="name_entry">
+                <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">True</property>
+                <property name="width_chars">35</property>
+              </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">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/new-property.ui b/data/ui/new-property.ui
new file mode 100644
index 00000000..124c307c
--- /dev/null
+++ b/data/ui/new-property.ui
@@ -0,0 +1,248 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="add_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Add Property</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="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">2</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>
+              </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>
+              </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="GtkTable" id="table1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="n_rows">4</property>
+            <property name="n_columns">2</property>
+            <property name="homogeneous">False</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">name_entry</property>
+              </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>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Description:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">description_entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Type:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">type_menu</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="name_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="description_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkOptionMenu" id="type_menu">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="history">-1</property>
+                <child>
+                  <object class="GtkMenu" id="menu1">
+               </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Label:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">label_entry</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="GtkEntry" id="label_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </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>
+          </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>
+</interface>
diff --git a/data/ui/phase-dialog.ui b/data/ui/phase-dialog.ui
new file mode 100644
index 00000000..c597b9ab
--- /dev/null
+++ b/data/ui/phase-dialog.ui
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="phase_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Edit Project Phases</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">False</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="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">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="remove_button">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-remove</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="add_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-add</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="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </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="GtkScrolledWindow" id="scrolledwindow1">
+            <property name="border_width">5</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_IN</property>
+            <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+            <child>
+              <object class="GtkTreeView" id="phase_treeview">
+                <property name="height_request">200</property>
+                <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>
+              </object>
+            </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="2">remove_button</action-widget>
+      <action-widget response="1">add_button</action-widget>
+      <action-widget response="-7">close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/project-properties.ui b/data/ui/project-properties.ui
new file mode 100644
index 00000000..9adcbef0
--- /dev/null
+++ b/data/ui/project-properties.ui
@@ -0,0 +1,538 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="project_properties">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Project Properties</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">False</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="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">2</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="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </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="GtkNotebook" id="notebook1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="show_tabs">True</property>
+            <property name="show_border">True</property>
+            <property name="tab_pos">GTK_POS_TOP</property>
+            <property name="scrollable">False</property>
+            <property name="enable_popup">False</property>
+            <child>
+              <object class="GtkTable" id="table1">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="n_rows">6</property>
+                <property name="n_columns">2</property>
+                <property name="homogeneous">False</property>
+                <property name="row_spacing">6</property>
+                <property name="column_spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label_name">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Name:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_name</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="label_start">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Start:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_start</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">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_org">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Organization:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_org</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">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="entry_name">
+                    <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>
+                    <property name="width_chars">35</property>
+                  </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="GtkEntry" id="entry_org">
+                    <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>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_manager">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Manager:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_manager</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">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="entry_manager">
+                    <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>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Calendar:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">button_calendar</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">5</property>
+                    <property name="bottom_attach">6</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox1">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">4</property>
+                    <child>
+                      <object class="GtkLabel" id="label_calendar">
+                        <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">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="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="button_calendar">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Select...</property>
+                        <property name="use_underline">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">5</property>
+                    <property name="bottom_attach">6</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options">fill</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Phase:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">optionmenu_phase</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">4</property>
+                    <property name="bottom_attach">5</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkOptionMenu" id="optionmenu_phase">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="history">-1</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">4</property>
+                    <property name="bottom_attach">5</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox_start">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkEntry" id="entry_start">
+                        <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>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </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="x_options">fill</property>
+                    <property name="y_options">fill</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label5">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">General</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.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>
+            <child>
+              <object class="GtkVBox" id="vbox5">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
+                    <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="properties_tree">
+                        <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>
+                      </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="hbox2">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkButton" id="add_property_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-add</property>
+                        <property name="use_stock">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="remove_property_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-remove</property>
+                        <property name="use_stock">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label131">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Custom</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>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/property-dialog.ui b/data/ui/property-dialog.ui
new file mode 100644
index 00000000..4191890b
--- /dev/null
+++ b/data/ui/property-dialog.ui
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Custom Properties</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="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">2</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="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </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="GtkHBox" id="hbox1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow1">
+                <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">True</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</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="GtkVButtonBox" id="vbuttonbox1">
+                <property name="visible">True</property>
+                <property name="layout_style">GTK_BUTTONBOX_START</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkButton" id="add_button">
+                    <property name="visible">True</property>
+                    <property name="can_default">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label">gtk-add</property>
+                    <property name="use_stock">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkButton" id="remove_button">
+                    <property name="visible">True</property>
+                    <property name="can_default">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label">gtk-remove</property>
+                    <property name="use_stock">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</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="-7">close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/resource-dialog.ui b/data/ui/resource-dialog.ui
new file mode 100644
index 00000000..16f13736
--- /dev/null
+++ b/data/ui/resource-dialog.ui
@@ -0,0 +1,580 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="resource_dialog">
+    <property name="border_width">5</property>
+    <property name="visible">True</property>
+    <property name="title" translatable="yes"/>
+    <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="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">5</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="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </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="GtkNotebook" id="notebook1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="show_tabs">True</property>
+            <property name="show_border">True</property>
+            <property name="tab_pos">GTK_POS_TOP</property>
+            <property name="scrollable">False</property>
+            <property name="enable_popup">False</property>
+            <child>
+              <object class="GtkTable" id="table1">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="n_rows">6</property>
+                <property name="n_columns">2</property>
+                <property name="homogeneous">False</property>
+                <property name="row_spacing">6</property>
+                <property name="column_spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label_name">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Name:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_name</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="label_type">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Type:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">menu_type</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_email">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Email:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_email</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">4</property>
+                    <property name="bottom_attach">5</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_group">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Group:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">menu_group</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_cost">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">C_ost:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_cost</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">5</property>
+                    <property name="bottom_attach">6</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkOptionMenu" id="menu_type">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="history">-1</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkOptionMenu" id="menu_group">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="history">-1</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="entry_email">
+                    <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" translatable="yes">*</property>
+                    <property name="activates_default">False</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">4</property>
+                    <property name="bottom_attach">5</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="entry_cost">
+                    <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" translatable="yes">*</property>
+                    <property name="activates_default">False</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">5</property>
+                    <property name="bottom_attach">6</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="entry_name">
+                    <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" translatable="yes">*</property>
+                    <property name="activates_default">False</property>
+                  </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="GtkLabel" id="label_short_name">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Short name:</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">entry_name</property>
+                  </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>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="entry_short_name">
+                    <property name="visible">True</property>
+                    <property name="tooltip-text" translatable="yes">Optional - overrides resource name in 
Gantt view.</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" translatable="yes">*</property>
+                    <property name="activates_default">False</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">General</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox2">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label5">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Select the calendar to use for this resource. 
If you want to use the default calendar of the project, select 'None'. </property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">True</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
+                    <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="calendar_treeview">
+                        <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>
+                      </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="hbox2">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkButton" id="calendar_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Edit Calendars...</property>
+                        <property name="use_underline">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Calendar</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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox1">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+                    <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="note_textview">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="editable">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="GtkHButtonBox" id="hbuttonbox1">
+                    <property name="visible">True</property>
+                    <property name="layout_style">GTK_BUTTONBOX_END</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkButton" id="stamp_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment1">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox1">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image1">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gnome-stock-timer</property>
+                                    <property name="icon_size">4</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">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label3">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Insert time stamp</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="use_markup">False</property>
+                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0.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">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Notes</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>
+              </object>
+            </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="-7">close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/resource-input-dialog.ui b/data/ui/resource-input-dialog.ui
new file mode 100644
index 00000000..36881376
--- /dev/null
+++ b/data/ui/resource-input-dialog.ui
@@ -0,0 +1,298 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="resource_input_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Insert Resource</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">False</property>
+    <property name="destroy_with_parent">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">2</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="cancel_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="has_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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="insert_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">0</property>
+                    <property name="yscale">0</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox74">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">2</property>
+                        <child>
+                          <object class="GtkImage" id="image2">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-add</property>
+                            <property name="icon_size">4</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">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label104">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Insert</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.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">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </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="GtkTable" id="table1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="n_rows">4</property>
+            <property name="n_columns">2</property>
+            <property name="homogeneous">False</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label101">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">name_entry</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="label102">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Email:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">email_entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="name_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </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="GtkEntry" id="email_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label103">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Group:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">group_optionmenu</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkOptionMenu" id="group_optionmenu">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="history">-1</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label105">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Short name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">name_entry</property>
+              </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>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="short_name_entry">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Optional - overrides resource name in Gantt 
view.</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">False</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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options"/>
+              </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">cancel_button</action-widget>
+      <action-widget response="-5">insert_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/sql-open-dialog.ui b/data/ui/sql-open-dialog.ui
new file mode 100644
index 00000000..0097e6f1
--- /dev/null
+++ b/data/ui/sql-open-dialog.ui
@@ -0,0 +1,250 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="open_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Open Database</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">False</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox3">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area4">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="has_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>
+              </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="GtkTable" id="table9">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="n_rows">4</property>
+            <property name="n_columns">2</property>
+            <property name="homogeneous">False</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label255">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Server:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">combo-entry1</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="label256">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Username:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">combo-entry2</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label257">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Password:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">password_entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="password_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="editable">True</property>
+                <property name="visibility">False</property>
+                <property name="max_length">0</property>
+                <property name="text" translatable="yes"/>
+                <property name="has_frame">True</property>
+                <property name="invisible_char" translatable="yes">*</property>
+                <property name="activates_default">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="server_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">True</property>
+              </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="GtkEntry" id="user_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label258">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Database:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">combo-entry3</property>
+              </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>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="db_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options"/>
+              </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">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/sql-select-dialog.ui b/data/ui/sql-select-dialog.ui
new file mode 100644
index 00000000..5db0fb3a
--- /dev/null
+++ b/data/ui/sql-select-dialog.ui
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="select_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Select a Project</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="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="vbox130">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-open</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</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="vbox131">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">4</property>
+            <child>
+              <object class="GtkLabel" id="label259">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">The database contains the following projects. 
Select a project to open:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">True</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">True</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow1">
+                <property name="height_request">150</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_IN</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTreeView" id="project_treeview">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">True</property>
+                    <property name="rules_hint">True</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</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">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/task-date-widget.ui b/data/ui/task-date-widget.ui
new file mode 100644
index 00000000..5de1e9c0
--- /dev/null
+++ b/data/ui/task-date-widget.ui
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">As soon as possible</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">No earlier than</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">On fixed date</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="placeholder_window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window</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>
+    <child>
+      <object class="GtkVBox" id="root_vbox">
+        <property name="border_width">6</property>
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">6</property>
+        <child>
+          <object class="GtkCalendar" id="schedule_calendar">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property 
name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES|GTK_CALENDAR_SHOW_WEEK_NUMBERS</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="hbox75">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkLabel" id="label114">
+                <property name="visible">True</property>
+                <property comments="The verb &quot;schedule&quot;." name="label" 
translatable="yes">Schedule:</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>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBox" id="schedule_combo">
+                <property name="visible">True</property>
+                <property name="add_tearoffs">False</property>
+                <property name="focus_on_click">True</property>
+                <property name="model">model1</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer1"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </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">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkButton" id="today_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Today</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Cancel</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="select_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Select</property>
+                <property name="use_underline">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">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/ui/task-dialog.ui b/data/ui/task-dialog.ui
new file mode 100644
index 00000000..06efc3cb
--- /dev/null
+++ b/data/ui/task-dialog.ui
@@ -0,0 +1,993 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">100</property>
+    <property name="lower">0</property>
+    <property name="page_increment">25</property>
+    <property name="step_increment">10</property>
+    <property name="page_size">0</property>
+    <property name="value">0</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">9999</property>
+    <property name="lower">0</property>
+    <property name="page_increment">10</property>
+    <property name="step_increment">1</property>
+    <property name="page_size">0</property>
+    <property name="value">0</property>
+  </object>
+  <object class="GtkDialog" id="task_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes"/>
+    <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_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </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="GtkNotebook" id="task_notebook">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="show_tabs">True</property>
+            <property name="show_border">True</property>
+            <property name="tab_pos">GTK_POS_TOP</property>
+            <property name="scrollable">False</property>
+            <property name="enable_popup">False</property>
+            <child>
+              <object class="GtkVBox" id="vbox102">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkTable" id="table1">
+                    <property name="border_width">8</property>
+                    <property name="visible">True</property>
+                    <property name="n_rows">7</property>
+                    <property name="n_columns">3</property>
+                    <property name="homogeneous">False</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">6</property>
+                    <child>
+                      <object class="GtkLabel" id="label104">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">_Name:</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="mnemonic_widget">name_entry</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="label105">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">_Work:</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="mnemonic_widget">work_entry</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">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label106">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">_Duration:</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="mnemonic_widget">duration_entry</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">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label107">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">C_omplete:</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="mnemonic_widget">complete_spinbutton</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">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label108">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">_Priority:</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="mnemonic_widget">priority_spinbutton</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">6</property>
+                        <property name="bottom_attach">7</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="complete_spinbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="climb_rate">1</property>
+                        <property name="digits">0</property>
+                        <property name="numeric">False</property>
+                        <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+                        <property name="snap_to_ticks">False</property>
+                        <property name="wrap">False</property>
+                        <property name="adjustment">adjustment1</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="priority_spinbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="climb_rate">1</property>
+                        <property name="digits">0</property>
+                        <property name="numeric">False</property>
+                        <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+                        <property name="snap_to_ticks">False</property>
+                        <property name="wrap">False</property>
+                        <property name="adjustment">adjustment2</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">6</property>
+                        <property name="bottom_attach">7</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="complete_pad">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">%</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="priority_pad">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">  </property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">6</property>
+                        <property name="bottom_attach">7</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label114">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">    </property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox75">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkCheckButton" id="milestone_checkbutton">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">_Milestone</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="GtkCheckButton" id="fixed_checkbutton">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">_Fixed duration</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>
+                      </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">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="milestone_pad">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">  </property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="name_entry">
+                        <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">True</property>
+                      </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="GtkLabel" id="name_pad">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">  </property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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="label115">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">  </property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label116">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">  </property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="work_entry">
+                        <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">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="duration_entry">
+                        <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>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label117">
+                        <property name="visible">True</property>
+                        <property comments="This is the verb &quot;schedule&quot;" name="label" 
translatable="yes">Schedule:</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="schedule_hbox">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="schedule_label">
+                            <property name="visible">True</property>
+                            <property name="label">As soon as possible</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <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">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label118">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">  </property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <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">4</property>
+                        <property name="bottom_attach">5</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>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="general_page">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">General</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.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>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow2">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTreeView" id="resource_list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">True</property>
+                    <property name="rules_hint">True</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">False</property>
+                    <property name="fixed_height_mode">False</property>
+                    <property name="hover_selection">False</property>
+                    <property name="hover_expand">False</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="resources_page">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Resources</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>
+            <child>
+              <object class="GtkVBox" id="vbox101">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                    <child>
+                      <object class="GtkTreeView" id="predecessor_list">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="headers_visible">True</property>
+                        <property name="rules_hint">True</property>
+                        <property name="reorderable">False</property>
+                        <property name="enable_search">False</property>
+                        <property name="fixed_height_mode">False</property>
+                        <property name="hover_selection">False</property>
+                        <property name="hover_expand">False</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="GtkHButtonBox" id="hbuttonbox2">
+                    <property name="visible">True</property>
+                    <property name="layout_style">GTK_BUTTONBOX_END</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkButton" id="remove_predecessor_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-remove</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="add_predecessor_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-add</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>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="predecessors_page">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Predecessors</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>
+            <child>
+              <object class="GtkVBox" id="vbox100">
+                <property name="border_width">12</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow5">
+                    <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="note_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_WORD</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="GtkHButtonBox" id="hbuttonbox1">
+                    <property name="visible">True</property>
+                    <property name="layout_style">GTK_BUTTONBOX_END</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkButton" id="stamp_button">
+                        <property name="visible">True</property>
+                        <property name="can_default">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment1">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">0</property>
+                            <property name="bottom_padding">0</property>
+                            <property name="left_padding">0</property>
+                            <property name="right_padding">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox73">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image1">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gnome-stock-timer</property>
+                                    <property name="icon_size">4</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">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label100">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Insert Time Stamp</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="use_markup">False</property>
+                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0.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>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="notes_page">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Notes</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>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/task-input-dialog.ui b/data/ui/task-input-dialog.ui
new file mode 100644
index 00000000..b3a793d3
--- /dev/null
+++ b/data/ui/task-input-dialog.ui
@@ -0,0 +1,213 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="task_input_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Insert Task</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">False</property>
+    <property name="destroy_with_parent">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">2</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="cancel_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="has_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>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="insert_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">0</property>
+                    <property name="yscale">0</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox74">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">2</property>
+                        <child>
+                          <object class="GtkImage" id="image2">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-add</property>
+                            <property name="icon_size">4</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">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label103">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Insert</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.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">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </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="GtkTable" id="table1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="n_rows">2</property>
+            <property name="n_columns">2</property>
+            <property name="homogeneous">False</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label101">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">name_entry</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="label102">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Work:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">work_entry</property>
+              </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>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="name_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </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="GtkEntry" id="work_entry">
+                <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" translatable="yes">*</property>
+                <property name="activates_default">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options"/>
+              </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">cancel_button</action-widget>
+      <action-widget response="-5">insert_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/working-time-dialog.ui b/data/ui/working-time-dialog.ui
new file mode 100644
index 00000000..2acac741
--- /dev/null
+++ b/data/ui/working-time-dialog.ui
@@ -0,0 +1,563 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="working_time_dialog">
+    <property name="title" translatable="yes">Edit Working Time</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="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_area3">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="apply_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-apply</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="button25">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+              </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="GtkHBox" id="hbox94">
+            <property name="border_width">4</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">2</property>
+            <child>
+              <object class="GtkVBox" id="vbox113">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">4</property>
+                <child>
+                  <object class="GtkLabel" id="label166">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Day types&lt;/b&gt;</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">True</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow6">
+                    <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="width_request">150</property>
+                        <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>
+                      </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>
+            <child>
+              <object class="GtkVBox" id="vbox112">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkVSeparator" id="vseparator4">
+                    <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>
+              <packing>
+                <property name="padding">4</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox120">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">4</property>
+                <child>
+                  <object class="GtkLabel" id="label229">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Working hours&lt;/b&gt;</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">True</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkTable" id="table9">
+                    <property name="visible">True</property>
+                    <property name="n_rows">5</property>
+                    <property name="n_columns">3</property>
+                    <property name="homogeneous">False</property>
+                    <property name="row_spacing">2</property>
+                    <property name="column_spacing">8</property>
+                    <child>
+                      <object class="GtkLabel" id="label232">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </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="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label233">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </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">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label234">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </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">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label235">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from1_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</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="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to1_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</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="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from2_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </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="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from3_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to2_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </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"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to3_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to4_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from5_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="to5_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label237">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">-</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="from4_entry">
+                        <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" translatable="yes">*</property>
+                        <property name="activates_default">False</property>
+                        <property name="width_chars">8</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox111">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkLabel" id="label164">
+                    <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">0</property>
+                    <property name="ypad">0</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">False</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>
+        <child>
+          <object class="GtkHSeparator" id="hseparator3">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="padding">2</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-10">apply_button</action-widget>
+      <action-widget response="-7">button25</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/docs/getting-started-hacking.xml b/docs/getting-started-hacking.xml
index 4f919e58..e3fa48bf 100644
--- a/docs/getting-started-hacking.xml
+++ b/docs/getting-started-hacking.xml
@@ -101,10 +101,6 @@
                   <entry>libgnomecanvas</entry>
                   <entry> >= 2.0.1</entry>
                 </row>
-                <row>
-                  <entry>libglade</entry>
-                  <entry> >= 2.0.0</entry>
-                </row>
               </tbody>
             </tgroup>
           </table>
diff --git a/libplanner/mrp-paths-gnome.c b/libplanner/mrp-paths-gnome.c
index 5ae02ba4..850de687 100644
--- a/libplanner/mrp-paths-gnome.c
+++ b/libplanner/mrp-paths-gnome.c
@@ -35,17 +35,6 @@ static const gchar *default_data_dir          = DATADIR;
 
 static const gchar *locale_dir                = GNOMELOCALEDIR;
 
-gchar *
-mrp_paths_get_glade_dir (const gchar *filename)
-{
-       const gchar *env_data_dir = g_getenv ("PLANNER_DATADIR");
-       return g_build_filename (env_data_dir ? env_data_dir
-                                             : default_data_dir,
-                                "glade",
-                                filename,
-                                NULL);
-}
-
 gchar *
 mrp_paths_get_image_dir (const gchar *filename)
 {
diff --git a/libplanner/mrp-paths.h b/libplanner/mrp-paths.h
index 753c1e82..b8c7faf6 100644
--- a/libplanner/mrp-paths.h
+++ b/libplanner/mrp-paths.h
@@ -31,7 +31,6 @@
 gchar *mrp_paths_get_plugin_dir        (const gchar *filename);
 gchar *mrp_paths_get_storagemodule_dir (const gchar *filename);
 gchar *mrp_paths_get_file_modules_dir  (const gchar *filename);
-gchar *mrp_paths_get_glade_dir         (const gchar *filename);
 gchar *mrp_paths_get_image_dir         (const gchar *filename);
 gchar *mrp_paths_get_dtd_dir           (const gchar *filename);
 gchar *mrp_paths_get_stylesheet_dir    (const gchar *filename);
diff --git a/meson.build b/meson.build
index 9f3eb28d..664c7b4e 100644
--- a/meson.build
+++ b/meson.build
@@ -49,7 +49,6 @@ gobject_dep = dependency('gobject-2.0')
 gio_dep = dependency('gobject-2.0')
 gtk_dep = dependency('gtk+-2.0', version: '>= 2.24.0')
 gnomecanvas_dep = dependency('libgnomecanvas-2.0', version: '>=2.10.0')
-glade_dep = dependency('libglade-2.0', version: '>= 2.3.0')
 libxml_dep = dependency('libxml-2.0', version: '>= 2.6.27')
 xslt_dep = dependency('libxslt', version: '>= 1.1.23')
 exslt_dep = dependency('libexslt')
@@ -67,12 +66,12 @@ python_dep = python.dependency()
 libeds_dep = dependency('libebook-1.2', version: eds_req, required: get_option('eds'))
 
 libplanner_deps = [glib_dep, gmodule_dep, gobject_dep, libxml_dep, m_dep]
-planner_deps = [glib_dep, gobject_dep, gmodule_dep, gio_dep, gtk_dep, gnomecanvas_dep, glade_dep]
+planner_deps = [glib_dep, gobject_dep, gmodule_dep, gio_dep, gtk_dep, gnomecanvas_dep]
 
 subdir('po')
 subdir('libplanner')
-subdir('src')
 subdir('data')
+subdir('src')
 subdir('examples')
 subdir('tests')
 if python_dep.found() and pygobject_codegen.found()
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 92d85465..062ce1dd 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,27 +1,36 @@
 # List of source files containing translatable strings.
 # Please keep this file sorted alphabetically.
 
-data/glade/add-predecessor.glade
-data/glade/calendar-dialog.glade
-data/glade/column-dialog.glade
-data/glade/eds.glade
-data/glade/group-dialog.glade
-data/glade/new-property.glade
-data/glade/project-properties.glade
-data/glade/property-dialog.glade
-data/glade/resource-dialog.glade
-data/glade/resource-input-dialog.glade
-data/glade/sql.glade
-data/glade/task-date-widget.glade
-data/glade/task-dialog.glade
-data/glade/task-input-dialog.glade
-
 data/mime/planner.xml.in
 
 data/planner.desktop.in
 data/org.gnome.Planner.gschema.xml
 data/stylesheets/localizable.xml
 
+data/ui/add-predecessor.ui
+data/ui/calendar-dialog.ui
+data/ui/calendar-selector.ui
+data/ui/column-dialog.ui
+data/ui/day-type-dialog.ui
+data/ui/default-week-dialog.ui
+data/ui/eds.ui
+data/ui/group-dialog.ui
+data/ui/new-calendar-dialog.ui
+data/ui/new-day-dialog.ui
+data/ui/new-phase-dialog.ui
+data/ui/new-property.ui
+data/ui/phase-dialog.ui
+data/ui/project-properties.ui
+data/ui/property-dialog.ui
+data/ui/resource-dialog.ui
+data/ui/resource-input-dialog.ui
+data/ui/sql-open-dialog.ui
+data/ui/sql-select-dialog.ui
+data/ui/task-date-widget.ui
+data/ui/task-dialog.ui
+data/ui/task-input-dialog.ui
+data/ui/working-time-dialog.ui
+
 libplanner/mrp-assignment.c
 libplanner/mrp-calendar.c
 libplanner/mrp-day.c
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index f932ceea..fcc19113 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,5 +1,3 @@
-data/glade/mpp-bugzilla.glade
-
 eds-backend/e-cal-backend-planner.c
 eds-backend/planner-source/planner-source.c
 
diff --git a/src/meson.build b/src/meson.build
index ab8f6a33..2d3466a6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -78,7 +78,7 @@ planner_marshal_srcs = gnome.genmarshal('planner-marshal',
 planner_inc = include_directories('.')
 
 libplanner_app_library = static_library('libplannerapp',
-  [libplanner_app_srcs, gantt_task_srcs, resource_srcs, usage_srcs, planner_marshal_srcs],
+  [libplanner_app_srcs, gantt_task_srcs, resource_srcs, usage_srcs, planner_marshal_srcs, resources],
   dependencies: [planner_deps, m_dep],
   include_directories: [toplevel_inc, planner_inc],
   install: false,
@@ -97,7 +97,7 @@ planner_app = executable('planner',
 )
 
 if gda_dep.found()
-  libsql_plugin_srcs = [ 'planner-sql-plugin.c' ]
+  libsql_plugin_srcs = [ 'planner-sql-plugin.c' ] + sql_plugin_resources
   libsql_plugin_module = shared_module('sql-plugin', [libsql_plugin_srcs],
     dependencies: [planner_deps, gda_dep],
     include_directories: [toplevel_inc],
@@ -117,7 +117,7 @@ if pygtk_dep.found() and python_dep.found()
 endif
 
 if libeds_dep.found()
-  libeds_plugin_srcs = [ 'planner-eds-plugin.c' ]
+  libeds_plugin_srcs = [ 'planner-eds-plugin.c' ] + eds_plugin_resources
   libeds_plugin_module = shared_module('eds-plugin', [libeds_plugin_srcs],
     dependencies: [planner_deps, libeds_dep],
     include_directories: [toplevel_inc],
diff --git a/src/planner-calendar-dialog.c b/src/planner-calendar-dialog.c
index cfc4f586..a90d9943 100644
--- a/src/planner-calendar-dialog.c
+++ b/src/planner-calendar-dialog.c
@@ -24,7 +24,6 @@
 
 #include <config.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-day.h>
 #include <libplanner/mrp-object.h>
@@ -34,6 +33,7 @@
 #include "planner-working-time-dialog.h"
 #include "planner-default-week-dialog.h"
 #include "planner-calendar-dialog.h"
+#include "planner-util.h"
 
 
 #define RESPONSE_ADD          1
@@ -583,28 +583,17 @@ GtkWidget *
 planner_calendar_dialog_new (PlannerWindow *window)
 {
        DialogData       *data;
-       GladeXML         *glade;
+       GtkBuilder       *builder;
        GtkWidget        *dialog;
        GtkWidget        *w;
        GtkTreeSelection *selection;
        gint              i;
-       gchar           *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
 
-       filename = mrp_paths_get_glade_dir ("calendar-dialog.glade");
-       glade = glade_xml_new (filename ,
-                              "calendar_dialog",
-                              GETTEXT_PACKAGE);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/calendar-dialog.ui");
 
-       g_free (filename);
-
-       if (!glade) {
-               g_warning ("Could not create calendar dialog.");
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "calendar_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "calendar_dialog"));
 
        data = g_new0 (DialogData, 1);
 
@@ -618,7 +607,7 @@ planner_calendar_dialog_new (PlannerWindow *window)
                                 dialog,
                                 0);
 
-       data->tree_view = glade_xml_get_widget (glade, "treeview");
+       data->tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "treeview"));
        data->calendar = planner_calendar_new ();
        gtk_widget_show (data->calendar);
 
@@ -637,53 +626,53 @@ planner_calendar_dialog_new (PlannerWindow *window)
                          G_CALLBACK (cal_dialog_date_selected_cb),
                          data);
 
-       w = glade_xml_get_widget (glade, "calendar_frame");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "calendar_frame"));
        gtk_container_add (GTK_CONTAINER (w), data->calendar);
 
-       data->remove_button = glade_xml_get_widget (glade, "remove_button");
-       data->apply_button = glade_xml_get_widget (glade, "apply_button");
+       data->remove_button = GTK_WIDGET (gtk_builder_get_object (builder, "remove_button"));
+       data->apply_button = GTK_WIDGET (gtk_builder_get_object (builder, "apply_button"));
 
        g_signal_connect  (data->apply_button,
                           "clicked",
                           G_CALLBACK (cal_dialog_apply_clicked_cb),
                           data);
 
-       data->default_week_button = glade_xml_get_widget (glade, "default_week_button");
-       data->working_time_button = glade_xml_get_widget (glade, "working_time_button");
+       data->default_week_button = GTK_WIDGET (gtk_builder_get_object (builder, "default_week_button"));
+       data->working_time_button = GTK_WIDGET (gtk_builder_get_object (builder, "working_time_button"));
 
        /* Get the 5 from/to entries. */
        for (i = 0; i < 5; i++) {
                gchar *tmp;
 
                tmp = g_strdup_printf ("from%d_entry", i + 1);
-               data->from_entry[i] = glade_xml_get_widget (glade, tmp);
+               data->from_entry[i] = GTK_WIDGET (gtk_builder_get_object (builder, tmp));
                g_free (tmp);
 
                tmp = g_strdup_printf ("to%d_entry", i + 1);
-               data->to_entry[i] = glade_xml_get_widget (glade, tmp);
+               data->to_entry[i] = GTK_WIDGET (gtk_builder_get_object (builder, tmp));
                g_free (tmp);
        }
 
-       data->option_menu = glade_xml_get_widget (glade, "optionmenu");
+       data->option_menu = GTK_WIDGET (gtk_builder_get_object (builder, "optionmenu"));
        cal_dialog_setup_option_menu (data);
        g_signal_connect  (data->option_menu,
                           "changed",
                           G_CALLBACK (cal_dialog_option_menu_changed_cb),
                           data);
 
-       data->base_radiobutton = glade_xml_get_widget (glade, "base_radiobutton");
+       data->base_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "base_radiobutton"));
        g_signal_connect (data->base_radiobutton,
                          "toggled",
                          G_CALLBACK (cal_dialog_day_types_toggled_cb),
                          data);
 
-       data->type_radiobutton = glade_xml_get_widget (glade, "type_radiobutton");
+       data->type_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "type_radiobutton"));
        g_signal_connect (data->type_radiobutton,
                          "toggled",
                          G_CALLBACK (cal_dialog_day_types_toggled_cb),
                          data);
 
-       data->custom_radiobutton = glade_xml_get_widget (glade, "custom_radiobutton");
+       data->custom_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "custom_radiobutton"));
        g_signal_connect (data->custom_radiobutton,
                          "toggled",
                          G_CALLBACK (cal_dialog_day_types_toggled_cb),
@@ -731,6 +720,7 @@ planner_calendar_dialog_new (PlannerWindow *window)
                          G_CALLBACK (cal_dialog_destroy_cb),
                          data);
 
+       g_object_unref (builder);
        return dialog;
 }
 
@@ -1252,7 +1242,7 @@ cal_dialog_new_name_changed_cb (GtkEntry   *entry,
 static void
 cal_dialog_new_dialog_run (DialogData *data)
 {
-       GladeXML         *glade;
+       GtkBuilder       *builder;
        GtkWidget        *dialog;
        MrpCalendar      *parent;
        GtkTreeSelection *selection;
@@ -1260,29 +1250,24 @@ cal_dialog_new_dialog_run (DialogData *data)
        GtkWidget        *tree_view;
        const gchar      *name;
        GtkTreePath      *path;
-       gchar            *filename;
 
-       filename = mrp_paths_get_glade_dir ("calendar-dialog.glade");
-       glade = glade_xml_new (filename,
-                              "new_calendar_dialog",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/new-calendar-dialog.ui");
 
-       dialog = glade_xml_get_widget (glade, "new_calendar_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "new_calendar_dialog"));
 
-       data->new_ok_button = glade_xml_get_widget (glade, "ok_button");
+       data->new_ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 
-       entry = glade_xml_get_widget (glade, "name_entry");
+       entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
        g_signal_connect (entry,
                          "changed",
                          G_CALLBACK (cal_dialog_new_name_changed_cb),
                          data);
 
-       data->new_copy_radiobutton = glade_xml_get_widget (glade, "copy_radiobutton");
-       data->new_derive_radiobutton = glade_xml_get_widget (glade, "derive_radiobutton");
-       data->new_empty_radiobutton = glade_xml_get_widget (glade, "empty_radiobutton");
+       data->new_copy_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "copy_radiobutton"));
+       data->new_derive_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "derive_radiobutton"));
+       data->new_empty_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "empty_radiobutton"));
 
-       tree_view = glade_xml_get_widget (glade, "treeview");
+       tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "treeview"));
        cal_dialog_setup_tree_view (GTK_TREE_VIEW (tree_view), data->project);
 
        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
@@ -1326,6 +1311,6 @@ cal_dialog_new_dialog_run (DialogData *data)
                }
        }
 
-       g_object_unref (glade);
+       g_object_unref (builder);
        gtk_widget_destroy (dialog);
 }
diff --git a/src/planner-calendar-selector.c b/src/planner-calendar-selector.c
index 8450db8e..a53d340b 100644
--- a/src/planner-calendar-selector.c
+++ b/src/planner-calendar-selector.c
@@ -22,7 +22,6 @@
 
 #include <config.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-day.h>
 #include <libplanner/mrp-object.h>
@@ -30,6 +29,7 @@
 #include "libplanner/mrp-paths.h"
 #include "planner-calendar.h"
 #include "planner-calendar-selector.h"
+#include "planner-util.h"
 
 enum {
        COL_CALENDAR,
@@ -72,25 +72,16 @@ planner_calendar_selector_new (PlannerWindow *window,
                               const gchar  *caption)
 {
        DialogData       *data;
-       GladeXML         *glade;
+       GtkBuilder       *builder;
        GtkWidget        *selector;
        GtkWidget        *w;
        GtkTreeSelection *selection;
-       gchar            *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
 
-       filename = mrp_paths_get_glade_dir ("calendar-dialog.glade");
-       glade = glade_xml_new (filename,
-                              "calendar_selector",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
-       if (!glade) {
-               g_warning ("Could not create calendar selector.");
-               return NULL;
-       }
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/calendar-selector.ui");
 
-       selector = glade_xml_get_widget (glade, "calendar_selector");
+       selector = GTK_WIDGET (gtk_builder_get_object (builder, "calendar_selector"));
 
        data = g_new0 (DialogData, 1);
 
@@ -98,13 +89,13 @@ planner_calendar_selector_new (PlannerWindow *window,
        data->main_window = window;
        data->selector = selector;
 
-       data->tree_view = glade_xml_get_widget (glade, "treeview");
+       data->tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "treeview"));
 
-       w = glade_xml_get_widget (glade, "caption_label");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "caption_label"));
        gtk_label_set_text (GTK_LABEL (w), caption);
 
-       data->ok_button = glade_xml_get_widget (glade, "ok_button");
-       data->cancel_button = glade_xml_get_widget (glade, "cancel_button");
+       data->ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
+       data->cancel_button = GTK_WIDGET (gtk_builder_get_object (builder, "cancel_button"));
 
        g_object_set_data_full (G_OBJECT (selector),
                                "data", data,
@@ -121,6 +112,7 @@ planner_calendar_selector_new (PlannerWindow *window,
                          G_CALLBACK (cal_selector_selection_changed_cb),
                          data);
 
+       g_object_unref (builder);
        return selector;
 }
 
diff --git a/src/planner-column-dialog.c b/src/planner-column-dialog.c
index abb5a806..08bbcbbf 100644
--- a/src/planner-column-dialog.c
+++ b/src/planner-column-dialog.c
@@ -21,9 +21,9 @@
 #include <config.h>
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-column-dialog.h"
+#include "planner-util.h"
 
 typedef struct {
        PlannerWindow *main_window;
@@ -475,37 +475,29 @@ planner_column_dialog_show (PlannerWindow *window,
                            GtkTreeView   *edited_tree)
 {
        DialogData *data;
-       GladeXML   *glade;
+       GtkBuilder *builder;
        GtkWidget  *close_button;
-       gchar      *filename;
 
-       filename = mrp_paths_get_glade_dir ("column-dialog.glade");
-       glade = glade_xml_new (filename, NULL, NULL);
-       g_free (filename);
-
-       if (!glade) {
-               g_warning ("Could not create column dialog.");
-               return;
-       }
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/column-dialog.ui");
 
        data = g_new0 (DialogData, 1);
 
        data->main_window = window;
        data->edited_tree = edited_tree;
 
-       data->dialog = glade_xml_get_widget (glade, "column_dialog");
+       data->dialog = GTK_WIDGET (gtk_builder_get_object (builder, "column_dialog"));
 
        gtk_window_set_title (GTK_WINDOW (data->dialog), title);
        gtk_window_set_transient_for (GTK_WINDOW (data->dialog),
                                      GTK_WINDOW (window));
        gtk_window_set_destroy_with_parent (GTK_WINDOW (data->dialog), TRUE);
 
-       data->visible_tree = glade_xml_get_widget (glade, "visible_tree");
-       data->hidden_tree = glade_xml_get_widget (glade, "hidden_tree");
-       data->up_button = glade_xml_get_widget (glade, "up_button");
-       data->down_button = glade_xml_get_widget (glade, "down_button");
-       data->show_button = glade_xml_get_widget (glade, "show_button");
-       data->hide_button = glade_xml_get_widget (glade, "hide_button");
+       data->visible_tree = GTK_WIDGET (gtk_builder_get_object (builder, "visible_tree"));
+       data->hidden_tree = GTK_WIDGET (gtk_builder_get_object (builder, "hidden_tree"));
+       data->up_button = GTK_WIDGET (gtk_builder_get_object (builder, "up_button"));
+       data->down_button = GTK_WIDGET (gtk_builder_get_object (builder, "down_button"));
+       data->show_button = GTK_WIDGET (gtk_builder_get_object (builder, "show_button"));
+       data->hide_button = GTK_WIDGET (gtk_builder_get_object (builder, "hide_button"));
 
        column_dialog_setup_tree (data, GTK_TREE_VIEW (data->hidden_tree));
        column_dialog_setup_tree (data, GTK_TREE_VIEW (data->visible_tree));
@@ -538,7 +530,7 @@ planner_column_dialog_show (PlannerWindow *window,
                          G_CALLBACK (column_dialog_show_button_clicked_cb),
                          data);
 
-       close_button = glade_xml_get_widget (glade, "close_button");
+       close_button = GTK_WIDGET (gtk_builder_get_object (builder, "close_button"));
        g_signal_connect (close_button,
                          "clicked",
                          G_CALLBACK (column_dialog_close_button_clicked_cb),
@@ -552,5 +544,5 @@ planner_column_dialog_show (PlannerWindow *window,
 
        gtk_widget_show (data->dialog);
 
-       g_object_unref (glade);
+       g_object_unref (builder);
 }
diff --git a/src/planner-day-type-dialog.c b/src/planner-day-type-dialog.c
index 435489fe..be12c883 100644
--- a/src/planner-day-type-dialog.c
+++ b/src/planner-day-type-dialog.c
@@ -23,11 +23,11 @@
 
 #include <config.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-project.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-day-type-dialog.h"
+#include "planner-util.h"
 
 #define RESPONSE_ADD    1
 #define RESPONSE_REMOVE 2
@@ -143,28 +143,18 @@ GtkWidget *
 planner_day_type_dialog_new (PlannerWindow *window)
 {
        DialogData        *data;
-       GladeXML          *glade;
+       GtkBuilder        *builder;
        GtkWidget         *dialog;
        GtkTreeModel      *model;
        GtkCellRenderer   *cell;
        GtkTreeViewColumn *col;
        GtkTreeSelection  *selection;
-       gchar             *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
 
-       filename = mrp_paths_get_glade_dir ("calendar-dialog.glade");
-       glade = glade_xml_new (filename ,
-                              "day_type_dialog",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/day-type-dialog.ui");
 
-       if (!glade) {
-               g_warning ("Could not create day_type dialog.");
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "day_type_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "day_type_dialog"));
 
        data = g_new0 (DialogData, 1);
 
@@ -178,8 +168,8 @@ planner_day_type_dialog_new (PlannerWindow *window)
                                 dialog,
                                 0);
 
-       data->tree_view = glade_xml_get_widget (glade, "treeview");
-       data->remove_button = glade_xml_get_widget (glade, "remove_button");
+       data->tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "treeview"));
+       data->remove_button = GTK_WIDGET (gtk_builder_get_object (builder, "remove_button"));
 
        g_signal_connect_object (data->project,
                                 "day_added",
@@ -222,6 +212,7 @@ planner_day_type_dialog_new (PlannerWindow *window)
                          G_CALLBACK (day_type_dialog_response_cb),
                          data);
 
+       g_object_unref (builder);
        return dialog;
 }
 
@@ -419,24 +410,19 @@ day_type_dialog_new_name_changed_cb (GtkEntry  *entry,
 static void
 day_type_dialog_new_dialog_run (DialogData *data)
 {
-       GladeXML    *glade;
+       GtkBuilder  *builder;
        GtkWidget   *dialog;
        GtkWidget   *entry;
        GtkWidget   *button;
        const gchar *name;
-       gchar       *filename;
 
-       filename = mrp_paths_get_glade_dir ("calendar-dialog.glade");
-       glade = glade_xml_new (filename,
-                              "new_day_dialog",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/new-day-dialog.ui");
 
-       dialog = glade_xml_get_widget (glade, "new_day_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "new_day_dialog"));
 
-       button = glade_xml_get_widget (glade, "ok_button");
+       button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 
-       entry = glade_xml_get_widget (glade, "name_entry");
+       entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
        g_signal_connect (entry,
                          "changed",
                          G_CALLBACK (day_type_dialog_new_name_changed_cb),
@@ -448,7 +434,7 @@ day_type_dialog_new_dialog_run (DialogData *data)
                day_type_cmd_add (data, name);
        }
 
-       g_object_unref (glade);
+       g_object_unref (builder);
        gtk_widget_destroy (dialog);
 }
 
diff --git a/src/planner-default-week-dialog.c b/src/planner-default-week-dialog.c
index ed594166..46d5cbe5 100644
--- a/src/planner-default-week-dialog.c
+++ b/src/planner-default-week-dialog.c
@@ -23,11 +23,11 @@
 
 #include <config.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-project.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-default-week-dialog.h"
+#include "planner-util.h"
 
 #define RESPONSE_ADD    1
 #define RESPONSE_REMOVE 2
@@ -154,27 +154,16 @@ planner_default_week_dialog_new (PlannerWindow *window,
                                 MrpCalendar  *calendar)
 {
        DialogData *data;
-       GladeXML   *glade;
+       GtkBuilder *builder;
        GtkWidget  *dialog;
        GtkWidget  *w;
        gint        i;
-       gchar      *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
 
-       filename = mrp_paths_get_glade_dir ("calendar-dialog.glade");
-       glade = glade_xml_new (filename ,
-                              "default_week_dialog",
-                              GETTEXT_PACKAGE);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/default-week-dialog.ui");
 
-       g_free (filename);
-
-       if (!glade) {
-               g_warning ("Could not create default_week dialog.");
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "default_week_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "default_week_dialog"));
 
        data = g_new0 (DialogData, 1);
 
@@ -194,23 +183,23 @@ planner_default_week_dialog_new (PlannerWindow *window,
                gchar *tmp;
 
                tmp = g_strdup_printf ("from%d_label", i + 1);
-               data->from_label[i] = glade_xml_get_widget (glade, tmp);
+               data->from_label[i] = GTK_WIDGET (gtk_builder_get_object (builder, tmp));
                g_free (tmp);
 
                tmp = g_strdup_printf ("to%d_label", i + 1);
-               data->to_label[i] = glade_xml_get_widget (glade, tmp);
+               data->to_label[i] = GTK_WIDGET (gtk_builder_get_object (builder, tmp));
                g_free (tmp);
 
                tmp = g_strdup_printf ("dash%d_label", i + 1);
-               data->dash_label[i] = glade_xml_get_widget (glade, tmp);
+               data->dash_label[i] = GTK_WIDGET (gtk_builder_get_object (builder, tmp));
                g_free (tmp);
        }
 
-       w = glade_xml_get_widget (glade, "name_label");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "name_label"));
        gtk_label_set_text (GTK_LABEL (w), mrp_calendar_get_name (calendar));
 
-       data->weekday_option_menu = glade_xml_get_widget (glade, "weekday_optionmenu");
-       data->day_option_menu = glade_xml_get_widget (glade, "day_optionmenu");
+       data->weekday_option_menu = GTK_WIDGET (gtk_builder_get_object (builder, "weekday_optionmenu"));
+       data->day_option_menu = GTK_WIDGET (gtk_builder_get_object (builder, "day_optionmenu"));
 
        default_week_dialog_setup_day_option_menu (GTK_OPTION_MENU (data->day_option_menu),
                                                   data->project,
@@ -239,6 +228,7 @@ planner_default_week_dialog_new (PlannerWindow *window,
 
        default_week_dialog_update_labels (data);
 
+       g_object_unref (builder);
        return dialog;
 }
 
diff --git a/src/planner-eds-plugin.c b/src/planner-eds-plugin.c
index 7ccb3c9b..0dd5dc49 100644
--- a/src/planner-eds-plugin.c
+++ b/src/planner-eds-plugin.c
@@ -28,7 +28,6 @@
 #include <string.h>
 #include <gdk/gdk.h>
 #include <gdk/gdkkeysyms.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-object.h>
 #include <libplanner/mrp-property.h>
@@ -36,6 +35,7 @@
 #include "planner-window.h"
 #include "planner-plugin.h"
 #include "planner-resource-cmd.h"
+#include "org.gnome.Planner.plugin.eds.h"
 
 /* Evolution Data Server sources */
 #include <libedataserver/libedataserver.h>
@@ -51,7 +51,7 @@ struct _PlannerPluginPriv {
        GtkTreeView   *resources_tree_view;
        GtkTreeModel  *resources_model;
        /* Main widgets */
-       GladeXML      *glade;
+       GtkBuilder    *builder;
        GtkWidget     *dialog_get_resources;
        /* Timer to update GUI */
        guint          pulse;
@@ -158,8 +158,8 @@ gboolean eds_check_query (gpointer data)
 {
        PlannerPlugin *plugin = data;
 
-       GtkProgressBar *progress = GTK_PROGRESS_BAR (glade_xml_get_widget
-                       (plugin->priv->glade, "progressbar"));
+       GtkProgressBar *progress = GTK_PROGRESS_BAR (gtk_builder_get_object
+                       (plugin->priv->builder, "progressbar"));
 
        gtk_progress_bar_pulse (progress);
 
@@ -171,8 +171,8 @@ eds_plugin_busy (PlannerPlugin *plugin,
                 gboolean       busy)
 {
        GdkCursor      *cursor;
-       GtkProgressBar *progress = GTK_PROGRESS_BAR (glade_xml_get_widget
-                       (plugin->priv->glade, "progressbar"));
+       GtkProgressBar *progress = GTK_PROGRESS_BAR (gtk_builder_get_object
+                       (plugin->priv->builder, "progressbar"));
 
        if (busy) {
                gint check_time = 1; /* second */
@@ -182,26 +182,26 @@ eds_plugin_busy (PlannerPlugin *plugin,
                }
                plugin->priv->pulse = g_timeout_add_seconds (check_time, eds_check_query, plugin);
                cursor = gdk_cursor_new_for_display (gdk_display_get_default (), GDK_WATCH);
-               gtk_widget_set_sensitive
-                       (glade_xml_get_widget (plugin->priv->glade, "search_box"), FALSE);
-               gtk_widget_set_sensitive
-                       (glade_xml_get_widget (plugin->priv->glade, "progress"), TRUE);
+               gtk_widget_set_sensitive (GTK_WIDGET
+                       (gtk_builder_get_object (plugin->priv->builder, "search_box")), FALSE);
+               gtk_widget_set_sensitive (GTK_WIDGET
+                       (gtk_builder_get_object (plugin->priv->builder, "progress")), TRUE);
                plugin->priv->busy = TRUE;
 
        } else {
                g_source_remove (plugin->priv->pulse);
                gtk_progress_bar_set_fraction (progress, 0);
 
-               gtk_widget_set_sensitive
-                       (glade_xml_get_widget (plugin->priv->glade, "progress"), FALSE);
-               gtk_widget_set_sensitive
-                       (glade_xml_get_widget (plugin->priv->glade, "search_box"), TRUE);
+               gtk_widget_set_sensitive (GTK_WIDGET
+                       (gtk_builder_get_object (plugin->priv->builder, "progress")), FALSE);
+               gtk_widget_set_sensitive (GTK_WIDGET
+                       (gtk_builder_get_object (plugin->priv->builder, "search_box")), TRUE);
                cursor = gdk_cursor_new_for_display (gdk_display_get_default (), GDK_LEFT_PTR);
                plugin->priv->busy = FALSE;
        }
 
-       gdk_window_set_cursor (gtk_widget_get_parent_window
-                              (glade_xml_get_widget (plugin->priv->glade, "ok_button")),
+       gdk_window_set_cursor (gtk_widget_get_parent_window (GTK_WIDGET
+                              (gtk_builder_get_object (plugin->priv->builder, "ok_button"))),
                               cursor);
 }
 
@@ -232,53 +232,59 @@ eds_plugin_import (GtkAction   *action,
        PlannerPluginPriv *priv;
        GtkCellRenderer   *renderer;
        GList             *groups;
-       gchar             *filename;
+       GBytes            *res_bytes;
+       gconstpointer      res_data;
+       gsize              res_size;
+       GError            *error = NULL;
 
        plugin = PLANNER_PLUGIN (user_data);
        priv = plugin->priv;
 
-       filename = mrp_paths_get_glade_dir ("/eds.glade");
-       priv->glade = glade_xml_new (filename, NULL, NULL);
-       g_free (filename);
+       priv->builder = gtk_builder_new ();
+       res_bytes = g_resource_lookup_data (eds_plugin_resources_get_resource (), 
"/org/gnome/Planner/plugin/eds/ui/eds.ui", 0, NULL);
+       res_data = g_bytes_get_data (res_bytes, &res_size);
+       if (gtk_builder_add_from_string (priv->builder, res_data, res_size, &error) == 0)
+               g_error ("Failed to load resources: %s", error->message);
+       g_bytes_unref (res_bytes);
 
-       priv->dialog_get_resources = glade_xml_get_widget (priv->glade, "resources_get");
+       priv->dialog_get_resources = GTK_WIDGET (gtk_builder_get_object (priv->builder, "resources_get"));
 
        gtk_window_set_transient_for (GTK_WINDOW (priv->dialog_get_resources),
                                      GTK_WINDOW (plugin->main_window));
-       priv->select_group = GTK_COMBO_BOX (glade_xml_get_widget (priv->glade,
-                                                                 "select_group"));
+       priv->select_group = GTK_COMBO_BOX (gtk_builder_get_object (priv->builder,
+                                                                   "select_group"));
        g_signal_connect (priv->select_group, "changed",
                          G_CALLBACK (eds_group_selected),
                          user_data);
 
-       priv->resources_tree_view = GTK_TREE_VIEW (glade_xml_get_widget (priv->glade,
+       priv->resources_tree_view = GTK_TREE_VIEW (gtk_builder_get_object (priv->builder,
                                                                         "resources"));
 
-       g_signal_connect (glade_xml_get_widget (priv->glade, "ok_button"),
+       g_signal_connect (gtk_builder_get_object (priv->builder, "ok_button"),
                          "clicked",
                          G_CALLBACK (eds_ok_button_clicked),
                          plugin);
-       g_signal_connect (glade_xml_get_widget (priv->glade, "cancel_button"),
+       g_signal_connect (gtk_builder_get_object (priv->builder, "cancel_button"),
                          "clicked",
                          G_CALLBACK (eds_cancel_button_clicked),
                          plugin);
-       g_signal_connect (glade_xml_get_widget (priv->glade, "search_button"),
+       g_signal_connect (gtk_builder_get_object (priv->builder, "search_button"),
                          "clicked",
                          G_CALLBACK (eds_search_button_clicked),
                          plugin);
-       g_signal_connect (glade_xml_get_widget (priv->glade, "all_button"),
+       g_signal_connect (gtk_builder_get_object (priv->builder, "all_button"),
                          "clicked",
                          G_CALLBACK (eds_all_button_clicked),
                          plugin);
-       g_signal_connect (glade_xml_get_widget (priv->glade, "none_button"),
+       g_signal_connect (gtk_builder_get_object (priv->builder, "none_button"),
                          "clicked",
                          G_CALLBACK (eds_none_button_clicked),
                          plugin);
-       g_signal_connect (glade_xml_get_widget (priv->glade, "stop_button"),
+       g_signal_connect (gtk_builder_get_object (priv->builder, "stop_button"),
                          "clicked",
                          G_CALLBACK (eds_stop_button_clicked),
                          plugin);
-       g_signal_connect (glade_xml_get_widget (priv->glade, "search_entry"),
+       g_signal_connect (gtk_builder_get_object (priv->builder, "search_entry"),
                          "key-press-event",
                          G_CALLBACK (eds_search_key_pressed),
                          plugin);
@@ -351,8 +357,9 @@ eds_load_resources (ESource         *source,
                if (model) {
                        gtk_list_store_clear (model);
                }
-               gtk_widget_set_sensitive (glade_xml_get_widget (priv->glade,
-                                                               "search_box"), FALSE);
+               gtk_widget_set_sensitive (GTK_WIDGET
+                       (gtk_builder_get_object (priv->builder,
+                                                "search_box")), FALSE);
                return;
        }
 
@@ -505,16 +512,16 @@ eds_receive_book_cb (EBookClient   *client,
 
        if (eds_query_cancelled (plugin, uid)) {
                g_message ("Open book query cancelled: %s (%s)", book_uid, uid);
-               gtk_widget_set_sensitive (glade_xml_get_widget (plugin->priv->glade,
-                                                               "search_box"), TRUE);
+               gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (plugin->priv->builder,
+                                                                             "search_box")), TRUE);
                eds_plugin_busy (plugin, FALSE);
                return;
        }
 
        if (!e_client_open_finish(E_CLIENT (client), result, NULL)) {
                g_warning ("Problems opening: %s", book_uid);
-               gtk_widget_set_sensitive (glade_xml_get_widget (plugin->priv->glade,
-                                                               "search_box"), TRUE);
+               gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (plugin->priv->builder,
+                                                                             "search_box")), TRUE);
                eds_plugin_busy (plugin, FALSE);
                return;
        }
@@ -703,7 +710,7 @@ eds_group_selected (GtkComboBox   *select_group,
        PlannerPluginPriv *priv = plugin->priv;
        ESource           *source;
 
-       gtk_widget_set_sensitive (glade_xml_get_widget (priv->glade, "search_box"), TRUE);
+       gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_box")), TRUE);
 
        if (gtk_combo_box_get_active_iter (select_group, &iter)) {
                gtk_tree_model_get (priv->groups_model, &iter, COL_GROUP_OBJECT, &source, -1);
@@ -812,7 +819,7 @@ eds_search_button_clicked (GtkButton     *button,
        ESource           *source;
 
        search = gtk_entry_get_text (GTK_ENTRY
-                                    (glade_xml_get_widget (priv->glade,"search_entry")));
+                                    (gtk_builder_get_object (priv->builder, "search_entry")));
 
        if (gtk_combo_box_get_active_iter (priv->select_group, &iter)) {
                gtk_tree_model_get (priv->groups_model, &iter, COL_GROUP_OBJECT, &source, -1);
@@ -844,7 +851,7 @@ eds_stop_button_clicked (GtkButton      *button,
                         PlannerPlugin  *plugin)
 {
        GtkProgressBar *progress = GTK_PROGRESS_BAR
-               (glade_xml_get_widget (plugin->priv->glade, "progressbar"));
+               (gtk_builder_get_object (plugin->priv->builder, "progressbar"));
 
        g_message ("Cancelling the query: %s", plugin->priv->current_query_id);
 
@@ -878,7 +885,7 @@ eds_dialog_close (PlannerPlugin *plugin)
 
        /* Cancel the actual query */
        eds_stop_button_clicked
-               (GTK_BUTTON (glade_xml_get_widget (priv->glade, "stop_button")), plugin);
+               (GTK_BUTTON (gtk_builder_get_object (priv->builder, "stop_button")), plugin);
 
        /* Close books with e-d-s */
        for (l = priv->books; l; l = l->next) {
@@ -899,7 +906,7 @@ eds_dialog_close (PlannerPlugin *plugin)
                priv->resources_model = NULL;
        }
 
-       g_object_unref (priv->glade);
+       g_object_unref (priv->builder);
 
        gtk_widget_destroy (priv->dialog_get_resources);
 }
diff --git a/src/planner-group-dialog.c b/src/planner-group-dialog.c
index 45bf994e..e803eb1b 100644
--- a/src/planner-group-dialog.c
+++ b/src/planner-group-dialog.c
@@ -24,12 +24,12 @@
 #include <config.h>
 #include <stdlib.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-marshal.h"
 #include "planner-group-model.h"
 #include "planner-group-dialog.h"
+#include "planner-util.h"
 
 /* GtkCellRenderer types */
 enum {
@@ -179,11 +179,10 @@ static GtkWidget *
 group_dialog_create (PlannerView *view)
 {
        DialogData *data;
-       GladeXML   *gui;
+       GtkBuilder *builder;
        GtkWidget  *dialog;
        GtkWidget  *button;
        MrpProject *project;
-       gchar      *filename;
 
        data = g_new0 (DialogData, 1);
 
@@ -192,28 +191,26 @@ group_dialog_create (PlannerView *view)
 
        data->project = g_object_ref (project);
 
-       filename = mrp_paths_get_glade_dir ( "group-dialog.glade");
-       gui = glade_xml_new (filename, NULL, NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/group-dialog.ui");
 
-       dialog = glade_xml_get_widget (gui, "dialog_group_editor");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_group_editor"));
 
        data->tree_view = GTK_TREE_VIEW (
-               glade_xml_get_widget (gui,
-                                     "group_edit_treeview"));
+               gtk_builder_get_object (builder,
+                                       "group_edit_treeview"));
 
-       button = glade_xml_get_widget (gui, "add_group");
+       button = GTK_WIDGET (gtk_builder_get_object (builder, "add_group"));
        g_signal_connect (button, "clicked",
                          G_CALLBACK (group_dialog_insert_group_cb),
                          dialog);
 
-       data->remove_button = glade_xml_get_widget (gui, "remove_group");
+       data->remove_button = GTK_WIDGET (gtk_builder_get_object (builder, "remove_group"));
        g_signal_connect (data->remove_button,
                          "clicked",
                          G_CALLBACK (group_dialog_remove_group_cb),
                          dialog);
 
-       button = glade_xml_get_widget (gui, "close_editor");
+       button = GTK_WIDGET (gtk_builder_get_object (builder, "close_editor"));
        g_signal_connect (button,
                          "clicked",
                          G_CALLBACK (group_dialog_close_editor_cb),
@@ -223,6 +220,7 @@ group_dialog_create (PlannerView *view)
 
        group_dialog_setup_tree_view (dialog);
 
+       g_object_unref (builder);
        return dialog;
 }
 
diff --git a/src/planner-phase-dialog.c b/src/planner-phase-dialog.c
index 19393cb9..b665c8a2 100644
--- a/src/planner-phase-dialog.c
+++ b/src/planner-phase-dialog.c
@@ -24,11 +24,11 @@
 #include <config.h>
 #include <string.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-project.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-phase-dialog.h"
+#include "planner-util.h"
 
 #define RESPONSE_ADD    1
 #define RESPONSE_REMOVE 2
@@ -174,25 +174,15 @@ GtkWidget *
 planner_phase_dialog_new (PlannerWindow *window)
 {
        DialogData       *data;
-       GladeXML         *glade;
+       GtkBuilder       *builder;
        GtkWidget        *dialog;
        GtkTreeSelection *selection;
-       gchar            *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
 
-       filename = mrp_paths_get_glade_dir ("project-properties.glade");
-       glade = glade_xml_new (filename,
-                              "phase_dialog",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/phase-dialog.ui");
 
-       if (!glade) {
-               g_warning ("Could not create phase dialog.");
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "phase_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "phase_dialog"));
 
        data = g_new0 (DialogData, 1);
 
@@ -206,9 +196,9 @@ planner_phase_dialog_new (PlannerWindow *window)
                                 dialog,
                                 0);
 
-       data->remove_button = glade_xml_get_widget (glade, "remove_button");
+       data->remove_button = GTK_WIDGET (gtk_builder_get_object (builder, "remove_button"));
 
-       data->tree_view = glade_xml_get_widget (glade, "phase_treeview");
+       data->tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "phase_treeview"));
 
        phase_dialog_setup_tree_view (data);
 
@@ -229,6 +219,7 @@ planner_phase_dialog_new (PlannerWindow *window)
                                "data", data,
                                g_free);
 
+       g_object_unref (builder);
        return dialog;
 }
 
@@ -423,23 +414,18 @@ phase_dialog_new_name_changed_cb (GtkEntry   *entry,
 static void
 phase_dialog_new_dialog_run (DialogData *data)
 {
-       GladeXML    *glade;
+       GtkBuilder  *builder;
        GtkWidget   *dialog;
        GtkWidget   *entry;
        const gchar *name;
-       gchar       *filename;
 
-       filename = mrp_paths_get_glade_dir ("project-properties.glade");
-       glade = glade_xml_new (filename,
-                              "new_phase_dialog",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/new-phase-dialog.ui");
 
-       dialog = glade_xml_get_widget (glade, "new_phase_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "new_phase_dialog"));
 
-       data->new_ok_button = glade_xml_get_widget (glade, "ok_button");
+       data->new_ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 
-       entry = glade_xml_get_widget (glade, "name_entry");
+       entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
        g_signal_connect (entry,
                          "changed",
                          G_CALLBACK (phase_dialog_new_name_changed_cb),
@@ -450,7 +436,7 @@ phase_dialog_new_dialog_run (DialogData *data)
                phase_cmd_insert (data->main_window, (gchar *) name ,-1);
        }
 
-       g_object_unref (glade);
+       g_object_unref (builder);
        gtk_widget_destroy (dialog);
 }
 
diff --git a/src/planner-project-properties.c b/src/planner-project-properties.c
index a44453b6..bf3c2df6 100644
--- a/src/planner-project-properties.c
+++ b/src/planner-project-properties.c
@@ -28,7 +28,6 @@
 #include <string.h>
 #include <stdlib.h>
 #include <time.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include <libplanner/mrp-project.h>
@@ -38,6 +37,7 @@
 #include "planner-format.h"
 #include "planner-popup-button.h"
 #include "planner-project-properties.h"
+#include "planner-util.h"
 
 typedef struct {
        PlannerWindow *main_window;
@@ -1320,25 +1320,20 @@ mpp_add_property_button_clicked_cb (GtkButton *button, GtkWidget *dialog)
        const gchar     *label;
        const gchar     *name;
        const gchar     *description;
-       GladeXML        *glade;
+       GtkBuilder      *builder;
        GtkWidget       *label_entry;
        GtkWidget       *name_entry;
        GtkWidget       *add_dialog;
        GtkWidget       *w;
        gint             response;
        gboolean         finished = FALSE;
-       gchar           *filename;
 
-       filename = mrp_paths_get_glade_dir ("new-property.glade");
-       glade = glade_xml_new (filename,
-                              NULL,
-                              NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/new-property.ui");
 
-       add_dialog = glade_xml_get_widget (glade, "add_dialog");
+       add_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "add_dialog"));
 
-       label_entry = glade_xml_get_widget (glade, "label_entry");
-       name_entry = glade_xml_get_widget (glade, "name_entry");
+       label_entry = GTK_WIDGET (gtk_builder_get_object (builder, "label_entry"));
+       name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
 
        g_signal_connect (label_entry,
                          "focus_out_event",
@@ -1346,7 +1341,7 @@ mpp_add_property_button_clicked_cb (GtkButton *button, GtkWidget *dialog)
                          name_entry);
 
        mpp_property_dialog_setup_option_menu (
-               glade_xml_get_widget (glade, "type_menu"),
+               GTK_WIDGET (gtk_builder_get_object (builder, "type_menu")),
                G_CALLBACK (mpp_property_dialog_type_selected_cb),
                add_dialog,
                mrp_property_type_as_string (MRP_PROPERTY_TYPE_STRING),
@@ -1397,10 +1392,10 @@ mpp_add_property_button_clicked_cb (GtkButton *button, GtkWidget *dialog)
                                break;
                        }
 
-                       w = glade_xml_get_widget (glade, "description_entry");
+                       w = GTK_WIDGET (gtk_builder_get_object (builder, "description_entry"));
                        description = gtk_entry_get_text (GTK_ENTRY (w));
 
-                       w = glade_xml_get_widget (glade, "type_menu");
+                       w = GTK_WIDGET (gtk_builder_get_object (builder, "type_menu"));
 
                        type = mpp_property_dialog_get_selected (w);
 
@@ -1428,7 +1423,8 @@ mpp_add_property_button_clicked_cb (GtkButton *button, GtkWidget *dialog)
                }
        }
 
-       gtk_widget_destroy (add_dialog);
+       gtk_widget_destroy (add_dialog);
+       g_object_unref (builder);
 }
 
 static void
@@ -1535,7 +1531,7 @@ mpp_dialog_destroy_cb (GtkWidget *dialog,
 GtkWidget *
 planner_project_properties_new (PlannerWindow *window)
 {
-       GladeXML    *glade;
+       GtkBuilder  *builder;
        GtkWidget   *dialog;
        GtkWidget   *w;
        DialogData  *data;
@@ -1543,22 +1539,12 @@ planner_project_properties_new (PlannerWindow *window)
        gchar       *name, *org, *manager;
        MrpCalendar *calendar;
        GtkWidget   *hbox;
-       gchar       *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
 
-       filename = mrp_paths_get_glade_dir ("project-properties.glade");
-       glade = glade_xml_new (filename,
-                              "project_properties",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/project-properties.ui");
 
-       if (!glade) {
-               g_warning (_("Could not create properties dialog."));
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "project_properties");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "project_properties"));
 
        data = g_new0 (DialogData, 1);
 
@@ -1566,7 +1552,7 @@ planner_project_properties_new (PlannerWindow *window)
        data->project = planner_window_get_project (window);
        data->dialog = dialog;
 
-       g_signal_connect_object (glade_xml_get_widget (glade, "close_button"),
+       g_signal_connect_object (GTK_WIDGET (gtk_builder_get_object (builder, "close_button")),
                                 "clicked",
                                 G_CALLBACK (mpp_parent_destroy_cb),
                                 dialog,
@@ -1583,20 +1569,20 @@ planner_project_properties_new (PlannerWindow *window)
                          G_CALLBACK (mpp_dialog_destroy_cb),
                          NULL);
 
-       data->name_entry = glade_xml_get_widget (glade, "entry_name");
-       data->org_entry = glade_xml_get_widget (glade, "entry_org");
-       data->manager_entry = glade_xml_get_widget (glade, "entry_manager");
-       hbox = glade_xml_get_widget (glade, "hbox_start");
-       data->start_entry = glade_xml_get_widget (glade, "entry_start");
+       data->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_name"));
+       data->org_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_org"));
+       data->manager_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_manager"));
+       hbox = GTK_WIDGET (gtk_builder_get_object (builder, "hbox_start"));
+       data->start_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_start"));
        data->start_button = planner_popup_button_new (_("Date..."));
-       data->phase_option_menu = glade_xml_get_widget (glade, "optionmenu_phase");
-       data->calendar_label = glade_xml_get_widget (glade, "label_calendar");
-       data->properties_tree = GTK_TREE_VIEW (glade_xml_get_widget (glade, "properties_tree"));
+       data->phase_option_menu = GTK_WIDGET (gtk_builder_get_object (builder, "optionmenu_phase"));
+       data->calendar_label = GTK_WIDGET (gtk_builder_get_object (builder, "label_calendar"));
+       data->properties_tree = GTK_TREE_VIEW (gtk_builder_get_object (builder, "properties_tree"));
 
-       data->add_property_button = glade_xml_get_widget (glade,
-                                                         "add_property_button");
-       data->remove_property_button = glade_xml_get_widget (glade,
-                                                            "remove_property_button");
+       data->add_property_button = GTK_WIDGET (gtk_builder_get_object (builder,
+                                                                       "add_property_button"));
+       data->remove_property_button = GTK_WIDGET (gtk_builder_get_object (builder,
+                                                                          "remove_property_button"));
 
        gtk_box_pack_start (GTK_BOX (hbox), data->start_button, FALSE, FALSE, 0);
 
@@ -1674,7 +1660,7 @@ planner_project_properties_new (PlannerWindow *window)
        gtk_label_set_text (GTK_LABEL (data->calendar_label),
                            mrp_calendar_get_name (calendar));
 
-       w = glade_xml_get_widget (glade, "button_calendar");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "button_calendar"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (mpp_select_calendar_clicked_cb),
@@ -1688,7 +1674,7 @@ planner_project_properties_new (PlannerWindow *window)
 
        gtk_widget_show_all (dialog);
 
-       g_object_unref (glade);
+       g_object_unref (builder);
 
        return dialog;
 }
diff --git a/src/planner-property-dialog.c b/src/planner-property-dialog.c
index 34566376..772d6013 100644
--- a/src/planner-property-dialog.c
+++ b/src/planner-property-dialog.c
@@ -28,7 +28,6 @@
 #include <string.h>
 #include <stdlib.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-object.h>
 #include <libplanner/mrp-property.h>
@@ -36,6 +35,7 @@
 #include "planner-cell-renderer-list.h"
 #include "planner-property-dialog.h"
 #include "planner-property-model.h"
+#include "planner-util.h"
 
 #define GET_PRIV(d) (g_object_get_data (G_OBJECT (d), "priv"))
 
@@ -113,7 +113,7 @@ static void        property_dialog_label_edited         (GtkCellRendererText *ce
                                                         GtkWidget           *dialog);
 static void        property_dialog_setup_list           (GtkWidget           *dialog);
 static void        property_dialog_setup_widgets        (GtkWidget           *dialog,
-                                                        GladeXML            *glade);
+                                                        GtkBuilder          *builder);
 static PlannerCmd *property_cmd_add                     (PlannerWindow       *window,
                                                         MrpProject          *project,
                                                         GType                owner,
@@ -247,7 +247,7 @@ property_dialog_add_cb (GtkWidget *button,
        const gchar               *label;
        const gchar               *name;
        const gchar               *description;
-       GladeXML                  *glade;
+       GtkBuilder                *builder;
        GtkWidget                 *label_entry;
        GtkWidget                 *name_entry;
        GtkWidget                 *add_dialog;
@@ -255,20 +255,14 @@ property_dialog_add_cb (GtkWidget *button,
        gint                       response;
        gboolean                   finished = FALSE;
        gunichar                   c;
-       gchar                     *filename;
 
        priv = GET_PRIV (dialog);
 
-       filename = mrp_paths_get_glade_dir ("new-property.glade");
-       glade = glade_xml_new (filename,
-                              NULL,
-                              NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/new-property.ui");
 
-       add_dialog = glade_xml_get_widget (glade, "add_dialog");
-
-       label_entry = glade_xml_get_widget (glade, "label_entry");
-       name_entry = glade_xml_get_widget (glade, "name_entry");
+       add_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "add_dialog"));
+       label_entry = GTK_WIDGET (gtk_builder_get_object (builder, "label_entry"));
+       name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
 
        g_signal_connect (label_entry,
                          "focus_out_event",
@@ -276,7 +270,7 @@ property_dialog_add_cb (GtkWidget *button,
                          name_entry);
 
        property_dialog_setup_option_menu (
-               glade_xml_get_widget (glade, "type_menu"),
+               GTK_WIDGET (gtk_builder_get_object (builder, "type_menu")),
                G_CALLBACK (property_dialog_type_selected_cb),
                add_dialog,
                mrp_property_type_as_string (MRP_PROPERTY_TYPE_STRING),
@@ -329,10 +323,10 @@ property_dialog_add_cb (GtkWidget *button,
                                break;
                        }
 
-                       w = glade_xml_get_widget (glade, "description_entry");
+                       w = GTK_WIDGET (gtk_builder_get_object (builder, "description_entry"));
                        description = gtk_entry_get_text (GTK_ENTRY (w));
 
-                       w = glade_xml_get_widget (glade, "type_menu");
+                       w = GTK_WIDGET (gtk_builder_get_object (builder, "type_menu"));
                        type = property_dialog_get_selected (w);
 
                        if (type != MRP_PROPERTY_TYPE_NONE) {
@@ -359,8 +353,8 @@ property_dialog_add_cb (GtkWidget *button,
                }
        }
 
-       gtk_widget_destroy (add_dialog);
-       g_object_unref (glade);
+       gtk_widget_destroy (add_dialog);
+       g_object_unref (builder);
 }
 
 static void
@@ -519,33 +513,33 @@ property_dialog_setup_list (GtkWidget *dialog)
 }
 
 static void
-property_dialog_setup_widgets (GtkWidget *dialog,
-                              GladeXML  *glade)
+property_dialog_setup_widgets (GtkWidget  *dialog,
+                              GtkBuilder *builder)
 {
        PlannerPropertyDialogPriv *priv;
        GtkWidget            *w;
 
        priv = GET_PRIV (dialog);
 
-       w = glade_xml_get_widget (glade, "close_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "close_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (property_dialog_close_cb),
                          dialog);
 
-       w = glade_xml_get_widget (glade, "add_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "add_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (property_dialog_add_cb),
                          dialog);
 
-       w = glade_xml_get_widget (glade, "remove_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "remove_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (property_dialog_remove_cb),
                          dialog);
 
-       w = glade_xml_get_widget (glade, "treeview");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "treeview"));
        priv->tree = w;
 
        property_dialog_setup_list (dialog);
@@ -557,21 +551,17 @@ planner_property_dialog_new (PlannerWindow *main_window,
                             GType          owner,
                             const gchar   *title)
 {
-       GladeXML                  *glade;
+       GtkBuilder                *builder;
        GtkWidget                 *dialog;
        PlannerPropertyDialogPriv *priv;
-       gchar                     *filename;
 
        g_return_val_if_fail (MRP_IS_PROJECT (project), NULL);
 
        priv = g_new0 (PlannerPropertyDialogPriv, 1);
 
-       filename = mrp_paths_get_glade_dir ("property-dialog.glade");
-       glade = glade_xml_new (filename,
-                              NULL, NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/property-dialog.ui");
 
-       dialog = glade_xml_get_widget (glade, "dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "dialog"));
 
        gtk_window_set_title (GTK_WINDOW (dialog), title);
 
@@ -581,9 +571,9 @@ planner_property_dialog_new (PlannerWindow *main_window,
        priv->project = project;
        priv->owner = owner;
 
-       property_dialog_setup_widgets (dialog, glade);
+       property_dialog_setup_widgets (dialog, builder);
 
-       g_object_unref (glade);
+       g_object_unref (builder);
 
        return dialog;
 }
diff --git a/src/planner-resource-dialog.c b/src/planner-resource-dialog.c
index 9b3d8312..e1d94d4b 100644
--- a/src/planner-resource-dialog.c
+++ b/src/planner-resource-dialog.c
@@ -25,7 +25,6 @@
 #include <config.h>
 #include <time.h>
 #include <string.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include <libplanner/mrp-resource.h>
@@ -35,6 +34,7 @@
 
 #include "planner-format.h"
 #include "planner-resource-dialog.h"
+#include "planner-util.h"
 
 typedef struct {
        PlannerWindow *main_window;
@@ -1664,7 +1664,7 @@ GtkWidget *
 planner_resource_dialog_new (PlannerWindow *window,
                             MrpResource  *resource)
 {
-       GladeXML        *glade;
+       GtkBuilder      *builder;
        GtkWidget       *dialog;
        GtkWidget       *w;
        DialogData      *data;
@@ -1676,7 +1676,6 @@ planner_resource_dialog_new (PlannerWindow *window,
        GList           *groups;
        gint             index = 0;
        gchar           *note;
-       gchar           *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
        g_return_val_if_fail (MRP_IS_RESOURCE (resource), NULL);
@@ -1693,18 +1692,9 @@ planner_resource_dialog_new (PlannerWindow *window,
 
        g_object_get (resource, "project", &project, NULL);
 
-       filename = mrp_paths_get_glade_dir ("resource-dialog.glade");
-       glade = glade_xml_new (filename,
-                              NULL,
-                              GETTEXT_PACKAGE);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/resource-dialog.ui");
 
-       if (!glade) {
-               g_warning ("Could not create resource dialog.");
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "resource_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "resource_dialog"));
 
        data = g_new0 (DialogData, 1);
 
@@ -1731,14 +1721,14 @@ planner_resource_dialog_new (PlannerWindow *window,
                          data);
 
 
-       data->name_entry = glade_xml_get_widget (glade, "entry_name");
-       data->short_name_entry = glade_xml_get_widget (glade, "entry_short_name");
-       data->type_menu = glade_xml_get_widget (glade, "menu_type");
-       data->group_menu = glade_xml_get_widget (glade, "menu_group");
-       data->email_entry = glade_xml_get_widget (glade, "entry_email");
-       data->cost_entry = glade_xml_get_widget (glade, "entry_cost");
-       data->calendar_tree_view = glade_xml_get_widget (glade, "calendar_treeview");
-       data->note_textview = glade_xml_get_widget (glade, "note_textview");
+       data->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_name"));
+       data->short_name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_short_name"));
+       data->type_menu = GTK_WIDGET (gtk_builder_get_object (builder, "menu_type"));
+       data->group_menu = GTK_WIDGET (gtk_builder_get_object (builder, "menu_group"));
+       data->email_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_email"));
+       data->cost_entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry_cost"));
+       data->calendar_tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "calendar_treeview"));
+       data->note_textview = GTK_WIDGET (gtk_builder_get_object (builder, "note_textview"));
 
        data->note_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data->note_textview));
 
@@ -1766,19 +1756,19 @@ planner_resource_dialog_new (PlannerWindow *window,
                          data);
 
 
-       w = glade_xml_get_widget (glade, "calendar_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "calendar_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (resource_dialog_edit_calendar_clicked_cb),
                          data);
 
-       w = glade_xml_get_widget (glade, "stamp_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "stamp_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (resource_dialog_note_stamp_clicked_cb),
                          data);
 
-       w = glade_xml_get_widget (glade, "close_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "close_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (resource_dialog_close_clicked_cb),
@@ -1917,7 +1907,7 @@ planner_resource_dialog_new (PlannerWindow *window,
 
        resource_dialog_update_title (data);
 
-       g_object_unref (glade);
+       g_object_unref (builder);
 
        return dialog;
 }
diff --git a/src/planner-resource-input-dialog.c b/src/planner-resource-input-dialog.c
index 73ba2803..b1000d00 100644
--- a/src/planner-resource-input-dialog.c
+++ b/src/planner-resource-input-dialog.c
@@ -21,13 +21,13 @@
  */
 
 #include <config.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-marshal.h"
 #include "planner-resource-input-dialog.h"
 #include "planner-resource-cmd.h"
+#include "planner-util.h"
 
 typedef struct {
        MrpProject *project;
@@ -221,9 +221,8 @@ planner_resource_input_dialog_new (PlannerWindow *main_window)
 {
        GtkWidget  *dialog;
        DialogData *data;
-       GladeXML   *gui;
+       GtkBuilder *builder;
        MrpProject *project;
-       gchar      *filename;
 
        project = planner_window_get_project (main_window);
 
@@ -232,35 +231,33 @@ planner_resource_input_dialog_new (PlannerWindow *main_window)
        data->project = g_object_ref (project);
        data->main_window = g_object_ref (main_window);
 
-       filename = mrp_paths_get_glade_dir ("resource-input-dialog.glade");
-       gui = glade_xml_new (filename, NULL, NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/resource-input-dialog.ui");
 
-       dialog = glade_xml_get_widget (gui, "resource_input_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "resource_input_dialog"));
        g_signal_connect (dialog,
                          "response",
                          G_CALLBACK (resource_input_dialog_response_cb),
                          dialog);
 
-       data->name_entry = glade_xml_get_widget (gui, "name_entry");
+       data->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
        g_signal_connect (data->name_entry,
                          "activate",
                          G_CALLBACK (resource_input_dialog_activate_cb),
                          dialog);
 
-       data->short_name_entry = glade_xml_get_widget (gui, "short_name_entry");
+       data->short_name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "short_name_entry"));
        g_signal_connect (data->short_name_entry,
                          "activate",
                          G_CALLBACK (resource_input_dialog_activate_cb),
                          dialog);
 
-       data->email_entry = glade_xml_get_widget (gui, "email_entry");
+       data->email_entry = GTK_WIDGET (gtk_builder_get_object (builder, "email_entry"));
        g_signal_connect (data->email_entry,
                          "activate",
                          G_CALLBACK (resource_input_dialog_activate_cb),
                          dialog);
 
-       data->group_option_menu = glade_xml_get_widget (gui, "group_optionmenu");
+       data->group_option_menu = GTK_WIDGET (gtk_builder_get_object (builder, "group_optionmenu"));
 
        resource_input_dialog_setup_groups (data);
 
@@ -281,5 +278,6 @@ planner_resource_input_dialog_new (PlannerWindow *main_window)
                                data,
                                resource_input_dialog_free);
 
-        return dialog;
+       g_object_unref (builder);
+       return dialog;
 }
diff --git a/src/planner-sql-plugin.c b/src/planner-sql-plugin.c
index 5511a6e8..9590ca33 100644
--- a/src/planner-sql-plugin.c
+++ b/src/planner-sql-plugin.c
@@ -27,7 +27,6 @@
 #include <stdlib.h>
 #include <glib.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libgda/libgda.h>
 #include <libgda/sql-parser/gda-sql-parser.h>
@@ -37,6 +36,7 @@
 #include "planner-window.h"
 #include "planner-application.h"
 #include "planner-plugin.h"
+#include "org.gnome.Planner.plugin.sql.h"
 
 #define SERVER     "sql-plugin-server"
 #define DATABASE   "sql-plugin-database"
@@ -774,6 +774,24 @@ out:
        return NULL;
 }
 
+GtkBuilder *
+sql_plugin_new_builder (const gchar *resource_path)
+{
+       GtkBuilder    *builder;
+       GBytes        *res_bytes;
+       gconstpointer  res_data;
+       gsize          res_size;
+       GError        *error = NULL;
+
+       builder = gtk_builder_new ();
+       res_bytes = g_resource_lookup_data (sql_plugin_resources_get_resource (), resource_path, 0, NULL);
+       res_data = g_bytes_get_data (res_bytes, &res_size);
+       if (gtk_builder_add_from_string (builder, res_data, res_size, &error) == 0)
+               g_error ("Failed to load resources: %s", error->message);
+       g_bytes_unref (res_bytes);
+       return builder;
+}
+
 /**
  * Display a list with projects and let the user select one. Returns the project
  * id of the selected one.
@@ -789,7 +807,7 @@ sql_plugin_retrieve_project_id (PlannerPlugin *plugin,
        GdaConnection     *conn;
        GdaDataModel      *model;
        gboolean           success;
-       GladeXML          *gui;
+       GtkBuilder        *builder;
        GtkWidget         *dialog;
        GtkWidget         *treeview;
        GtkWidget         *ok_button;
@@ -802,7 +820,6 @@ sql_plugin_retrieve_project_id (PlannerPlugin *plugin,
        GtkTreeSelection  *selection;
        GtkTreeIter        iter;
        const gchar       *dsn_name = "planner-auto";
-       gchar             *filename;
 
        conn = sql_get_tested_connection (dsn_name, server, database, plugin);
 
@@ -832,15 +849,13 @@ sql_plugin_retrieve_project_id (PlannerPlugin *plugin,
                return -1;
        }
 
-       filename = mrp_paths_get_glade_dir ("sql.glade");
-       gui = glade_xml_new (filename, "select_dialog", NULL);
-       g_free (filename);
+       builder = sql_plugin_new_builder ("/org/gnome/Planner/plugin/sql/ui/sql-select-dialog.ui");
 
-       dialog = glade_xml_get_widget (gui, "select_dialog");
-       treeview = glade_xml_get_widget (gui, "project_treeview");
-       ok_button = glade_xml_get_widget (gui, "ok_button");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "select_dialog"));
+       treeview = GTK_WIDGET (gtk_builder_get_object (builder, "project_treeview"));
+       ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 
-       g_object_unref (gui);
+       g_object_unref (builder);
 
        liststore = gtk_list_store_new (4, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT);
        gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (liststore));
@@ -953,6 +968,7 @@ sql_plugin_retrieve_project_id (PlannerPlugin *plugin,
        };
 
        gtk_widget_destroy (dialog);
+       g_object_unref (builder);
 
        return project_id;
 }
@@ -966,8 +982,7 @@ sql_plugin_retrieve_db_values (PlannerPlugin  *plugin,
                               gchar         **login,
                               gchar         **password)
 {
-       gchar              *filename;
-       GladeXML           *gui;
+       GtkBuilder         *builder;
        GtkWidget          *dialog;
        gchar              *str;
        gint                response;
@@ -979,18 +994,16 @@ sql_plugin_retrieve_db_values (PlannerPlugin  *plugin,
 
        planner_window_get_application (plugin->main_window);
 
-       filename = mrp_paths_get_glade_dir ("sql.glade");
-       gui = glade_xml_new (filename, "open_dialog" , NULL);
-       g_free (filename);
+       builder = sql_plugin_new_builder ("/org/gnome/Planner/plugin/sql/ui/sql-open-dialog.ui");
 
-       dialog = glade_xml_get_widget (gui, "open_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "open_dialog"));
 
        gtk_window_set_title (GTK_WINDOW (dialog), title);
 
-       server_entry   = glade_xml_get_widget (gui, "server_entry");
-       db_entry       = glade_xml_get_widget (gui, "db_entry");
-       user_entry     = glade_xml_get_widget (gui, "user_entry");
-       password_entry = glade_xml_get_widget (gui, "password_entry");
+       server_entry   = GTK_WIDGET (gtk_builder_get_object (builder, "server_entry"));
+       db_entry       = GTK_WIDGET (gtk_builder_get_object (builder, "db_entry"));
+       user_entry     = GTK_WIDGET (gtk_builder_get_object (builder, "user_entry"));
+       password_entry = GTK_WIDGET (gtk_builder_get_object (builder, "password_entry"));
 
        str = planner_conf_get_string (CONF_SERVER, NULL);
        if (str) {
@@ -1010,7 +1023,7 @@ sql_plugin_retrieve_db_values (PlannerPlugin  *plugin,
                g_free (str);
        }
 
-       g_object_unref (gui);
+       g_object_unref (builder);
 
        response = gtk_dialog_run (GTK_DIALOG (dialog));
 
diff --git a/src/planner-task-date-widget.c b/src/planner-task-date-widget.c
index bc711a42..8b6231de 100644
--- a/src/planner-task-date-widget.c
+++ b/src/planner-task-date-widget.c
@@ -21,12 +21,12 @@
 #include <config.h>
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include "planner-marshal.h"
 #include "libplanner/mrp-time.h"
 #include "libplanner/mrp-task.h"
 #include "libplanner/mrp-paths.h"
 #include "planner-task-date-widget.h"
+#include "planner-util.h"
 
 typedef struct {
        GtkWidget   *calendar;
@@ -164,48 +164,40 @@ static void
 task_date_widget_setup (PlannerTaskDateWidget *widget)
 {
        PlannerTaskDateWidgetPrivate *priv;
-       GladeXML                  *glade;
+       GtkBuilder                *builder;
        GtkWidget                 *vbox;
        GtkWidget                 *root_vbox;
        GtkWidget                 *button;
-       gchar                     *filename;
 
        priv = planner_task_date_widget_get_instance_private (widget);
 
        vbox = gtk_vbox_new (FALSE, 0);
        gtk_container_add (GTK_CONTAINER (widget), vbox);
 
-       filename = mrp_paths_get_glade_dir ("task-date-widget.glade");
-       glade = glade_xml_new (filename,
-                              "root_vbox",
-                              GETTEXT_PACKAGE);
-       g_free (filename);
-       if (!glade) {
-               g_assert_not_reached ();
-       }
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/task-date-widget.ui");
 
-       root_vbox = glade_xml_get_widget (glade, "root_vbox");
+       root_vbox = GTK_WIDGET (gtk_builder_get_object (builder, "root_vbox"));
        gtk_container_add (GTK_CONTAINER (vbox), root_vbox);
 
-       priv->calendar = glade_xml_get_widget (glade, "schedule_calendar");
-       priv->combo = glade_xml_get_widget (glade, "schedule_combo");
+       priv->calendar = GTK_WIDGET (gtk_builder_get_object (builder, "schedule_calendar"));
+       priv->combo = GTK_WIDGET (gtk_builder_get_object (builder, "schedule_combo"));
 
        g_signal_connect (priv->combo,
                          "changed",
                          G_CALLBACK (task_date_widget_combo_changed_cb),
                          widget);
 
-       priv->today_button = glade_xml_get_widget (glade, "today_button");
+       priv->today_button = GTK_WIDGET (gtk_builder_get_object (builder, "today_button"));
        g_signal_connect (priv->today_button, "clicked",
                          G_CALLBACK (task_date_widget_today_clicked_cb),
                          widget);
 
-       button = glade_xml_get_widget (glade, "cancel_button");
+       button = GTK_WIDGET (gtk_builder_get_object (builder, "cancel_button"));
        g_signal_connect (button, "clicked",
                          G_CALLBACK (task_date_widget_cancel_clicked_cb),
                          widget);
 
-       button = glade_xml_get_widget (glade, "select_button");
+       button = GTK_WIDGET (gtk_builder_get_object (builder, "select_button"));
        g_signal_connect (button, "clicked",
                          G_CALLBACK (task_date_widget_select_clicked_cb),
                          widget);
@@ -214,7 +206,8 @@ task_date_widget_setup (PlannerTaskDateWidget *widget)
                          G_CALLBACK (task_date_day_selected_double_click_cb),
                          widget);
 
-        gtk_widget_show_all (vbox);
+       gtk_widget_show_all (vbox);
+       g_object_unref (builder);
 }
 
 void
diff --git a/src/planner-task-dialog.c b/src/planner-task-dialog.c
index 813cd678..aa92fddf 100644
--- a/src/planner-task-dialog.c
+++ b/src/planner-task-dialog.c
@@ -27,7 +27,6 @@
 #include <string.h>
 #include <stdlib.h> /* for atoi */
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-object.h>
 #include <libplanner/mrp-project.h>
@@ -41,6 +40,7 @@
 #include "planner-popup-button.h"
 #include "planner-task-date-widget.h"
 #include "planner-task-dialog.h"
+#include "planner-util.h"
 
 
 typedef struct {
@@ -149,7 +149,7 @@ static void            task_dialog_note_stamp_cb                  (GtkWidget
 static void            task_dialog_task_child_added_or_removed_cb (MrpTask                 *task,
                                                                   GtkWidget               *dialog);
 static void            task_dialog_setup_widgets                  (DialogData              *data,
-                                                                  GladeXML                *glade);
+                                                                  GtkBuilder              *builder);
 static void            task_dialog_assignment_toggled_cb          (GtkCellRendererText     *cell,
                                                                   gchar                   *path_str,
                                                                   DialogData              *data);
@@ -1838,11 +1838,10 @@ task_dialog_predecessor_dialog_new (MrpTask       *task,
                                    PlannerWindow *main_window)
 {
        MrpProject              *project;
-       GladeXML                *glade;
+       GtkBuilder              *builder;
        GtkWidget               *dialog;
        GtkWidget               *w;
        GList                   *tasks;
-       gchar                   *filename;
        GList                   *relations, *l;
        MrpRelationType          rel_type;
        MrpConstraint            constraint;
@@ -1885,22 +1884,20 @@ task_dialog_predecessor_dialog_new (MrpTask       *task,
 
        mrp_object_get (task, "project", &project, NULL);
 
-       filename = mrp_paths_get_glade_dir ("add-predecessor.glade");
-       glade = glade_xml_new (filename, NULL, NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/add-predecessor.ui");
 
-       dialog = glade_xml_get_widget (glade, "add_predecessor_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "add_predecessor_dialog"));
 
        g_object_set_data (G_OBJECT (dialog), "task_main", task);
        g_object_set_data (G_OBJECT (dialog), "main_window", main_window);
-       w = glade_xml_get_widget (glade, "predecessor_combo");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "predecessor_combo"));
        g_object_set_data (G_OBJECT (dialog), "predecessor_combo", w);
 
        tasks = mrp_project_get_all_tasks (project);
        tasks = g_list_remove (tasks, task);
        task_dialog_setup_task_combo (GTK_COMBO_BOX_ENTRY (w), tasks);
 
-       w = glade_xml_get_widget (glade, "type_optionmenu");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "type_optionmenu"));
        g_object_set_data (G_OBJECT (dialog), "type_optionmenu", w);
 
        task_dialog_setup_option_menu (w,
@@ -1912,21 +1909,22 @@ task_dialog_predecessor_dialog_new (MrpTask       *task,
                                       _("Start to finish (SF)"), MRP_RELATION_SF,
                                       NULL);
 
-       w = glade_xml_get_widget (glade, "lag_entry");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "lag_entry"));
        g_object_set_data (G_OBJECT (dialog), "lag_entry", w);
 
-       w = glade_xml_get_widget (glade, "cancel_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "cancel_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (task_dialog_new_pred_cancel_clicked_cb),
                          dialog);
 
-       w = glade_xml_get_widget (glade, "ok_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (task_dialog_new_pred_ok_clicked_cb),
                          dialog);
 
+       g_object_unref (builder);
        return dialog;
 }
 
@@ -2361,7 +2359,7 @@ task_dialog_schedule_popdown_cb (PlannerPopupButton *popup_button,
 
 static void
 task_dialog_setup_widgets (DialogData *data,
-                          GladeXML   *glade)
+                          GtkBuilder *builder)
 {
        GtkWidget    *w;
        gchar        *name;
@@ -2372,13 +2370,13 @@ task_dialog_setup_widgets (DialogData *data,
        gchar        *str;
        GtkWidget    *hbox;
 
-       w = glade_xml_get_widget (glade, "close_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "close_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (task_dialog_close_clicked_cb),
                          data);
 
-       data->name_entry = glade_xml_get_widget (glade, "name_entry");
+       data->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
 
        g_object_get (data->task, "name", &name, NULL);
        if (name) {
@@ -2401,7 +2399,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_name_focus_out_cb),
                          data);
 
-       data->milestone_checkbutton = glade_xml_get_widget (glade, "milestone_checkbutton");
+       data->milestone_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "milestone_checkbutton"));
        g_object_get (data->task, "type", &type, NULL);
        if (type == MRP_TASK_TYPE_MILESTONE) {
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->milestone_checkbutton), TRUE);
@@ -2411,7 +2409,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_type_toggled_cb),
                          data);
 
-       data->fixed_checkbutton = glade_xml_get_widget (glade, "fixed_checkbutton");
+       data->fixed_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "fixed_checkbutton"));
        g_object_get (data->task, "sched", &sched, NULL);
        if (sched == MRP_TASK_SCHED_FIXED_DURATION) {
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->fixed_checkbutton), TRUE);
@@ -2421,7 +2419,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_fixed_toggled_cb),
                          data);
 
-       data->work_entry = glade_xml_get_widget (glade, "work_entry");
+       data->work_entry = GTK_WIDGET (gtk_builder_get_object (builder, "work_entry"));
        g_object_get (data->task, "work", &int_value, NULL);
        str = planner_format_duration (mrp_object_get_project (MRP_OBJECT (data->task)), int_value);
        gtk_entry_set_text (GTK_ENTRY (data->work_entry), str);
@@ -2435,7 +2433,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_work_focus_out_cb),
                          data);
 
-       data->duration_entry = glade_xml_get_widget (glade, "duration_entry");
+       data->duration_entry = GTK_WIDGET (gtk_builder_get_object (builder, "duration_entry"));
        g_object_get (data->task, "duration", &int_value, NULL);
        str = planner_format_duration (mrp_object_get_project (MRP_OBJECT (data->task)), int_value);
        gtk_entry_set_text (GTK_ENTRY (data->duration_entry), str);
@@ -2450,10 +2448,10 @@ task_dialog_setup_widgets (DialogData *data,
                          data);
 
        /* Schedule. */
-       data->schedule_label = glade_xml_get_widget (glade, "schedule_label");
+       data->schedule_label = GTK_WIDGET (gtk_builder_get_object (builder, "schedule_label"));
        task_dialog_update_schedule_label (data);
 
-       hbox = glade_xml_get_widget (glade, "schedule_hbox");
+       hbox = GTK_WIDGET (gtk_builder_get_object (builder, "schedule_hbox"));
        data->schedule_button = planner_popup_button_new (_("Change..."));
        gtk_widget_show (data->schedule_button);
        gtk_box_pack_start (GTK_BOX (hbox), data->schedule_button, FALSE, FALSE, 0);
@@ -2468,7 +2466,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_schedule_popdown_cb),
                          data);
 
-       data->complete_spinbutton = glade_xml_get_widget (glade, "complete_spinbutton");
+       data->complete_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "complete_spinbutton"));
        g_object_get (data->task, "percent_complete", &int_value, NULL);
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->complete_spinbutton), int_value);
        g_signal_connect (data->complete_spinbutton,
@@ -2484,7 +2482,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_complete_focus_out_cb),
                          data);
 
-       data->priority_spinbutton = glade_xml_get_widget (glade, "priority_spinbutton");
+       data->priority_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "priority_spinbutton"));
        g_object_get (data->task, "priority", &int_value, NULL);
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->priority_spinbutton), int_value);
        g_signal_connect (data->priority_spinbutton,
@@ -2500,7 +2498,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_priority_focus_out_cb),
                          data);
 
-       data->note_textview = glade_xml_get_widget (glade, "note_textview");
+       data->note_textview = GTK_WIDGET (gtk_builder_get_object (builder, "note_textview"));
 
        data->note_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data->note_textview));
 
@@ -2524,7 +2522,7 @@ task_dialog_setup_widgets (DialogData *data,
                          G_CALLBACK (task_dialog_note_focus_in_cb),
                          data);
 
-       w = glade_xml_get_widget (glade, "stamp_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "stamp_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (task_dialog_note_stamp_cb),
@@ -2906,13 +2904,12 @@ planner_task_dialog_new (PlannerWindow *window,
                         PlannerTaskDialogPage  page)
 {
        DialogData   *data;
-       GladeXML     *glade;
+       GtkBuilder   *builder;
        GtkWidget    *dialog;
        GtkWidget    *w;
        GtkSizeGroup *size_group;
        MrpProject   *project;
        MrpCalendar  *calendar;
-       gchar        *filename;
 
        g_return_val_if_fail (MRP_IS_TASK (task), NULL);
 
@@ -2926,16 +2923,9 @@ planner_task_dialog_new (PlannerWindow *window,
                return dialog;
        }
 
-       filename = mrp_paths_get_glade_dir ("task-dialog.glade");
-       glade = glade_xml_new (filename, NULL, NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/task-dialog.ui");
 
-       if (!glade) {
-               g_warning ("Could not create task dialog.");
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "task_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "task_dialog"));
 
        data = g_new0 (DialogData, 1);
 
@@ -2962,23 +2952,23 @@ planner_task_dialog_new (PlannerWindow *window,
                                 dialog,
                                 0);
 
-       w = glade_xml_get_widget (glade, "task_notebook");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "task_notebook"));
 
        gtk_notebook_set_current_page (GTK_NOTEBOOK (w), page);
 
-       data->resource_list = glade_xml_get_widget (glade, "resource_list");
+       data->resource_list = GTK_WIDGET (gtk_builder_get_object (builder, "resource_list"));
        task_dialog_setup_resource_list (data);
 
-       data->predecessor_list = glade_xml_get_widget (glade, "predecessor_list");
+       data->predecessor_list = GTK_WIDGET (gtk_builder_get_object (builder, "predecessor_list"));
        task_dialog_setup_predecessor_list (data);
 
-       w = glade_xml_get_widget (glade, "add_predecessor_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "add_predecessor_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (task_dialog_add_predecessor_cb),
                          data);
 
-       w = glade_xml_get_widget (glade, "remove_predecessor_button");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "remove_predecessor_button"));
        g_signal_connect (w,
                          "clicked",
                          G_CALLBACK (task_dialog_remove_predecessor_cb),
@@ -2986,16 +2976,16 @@ planner_task_dialog_new (PlannerWindow *window,
 
        size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
 
-       w = glade_xml_get_widget (glade, "name_pad");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "name_pad"));
        gtk_size_group_add_widget (size_group, w);
 
-       w = glade_xml_get_widget (glade, "milestone_pad");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "milestone_pad"));
        gtk_size_group_add_widget (size_group, w);
 
-       w = glade_xml_get_widget (glade, "complete_pad");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "complete_pad"));
        gtk_size_group_add_widget (size_group, w);
 
-       w = glade_xml_get_widget (glade, "priority_pad");
+       w = GTK_WIDGET (gtk_builder_get_object (builder, "priority_pad"));
        gtk_size_group_add_widget (size_group, w);
 
        g_object_unref (size_group);
@@ -3004,7 +2994,7 @@ planner_task_dialog_new (PlannerWindow *window,
                                "data", data,
                                g_free);
 
-       task_dialog_setup_widgets (data, glade);
+       task_dialog_setup_widgets (data, builder);
 
        task_dialog_update_sensitivity (data);
 
@@ -3021,5 +3011,6 @@ planner_task_dialog_new (PlannerWindow *window,
                                 dialog,
                                 0);
 
+       g_object_unref (builder);
        return dialog;
 }
diff --git a/src/planner-task-input-dialog.c b/src/planner-task-input-dialog.c
index dfd71c42..0541d4fd 100644
--- a/src/planner-task-input-dialog.c
+++ b/src/planner-task-input-dialog.c
@@ -21,13 +21,13 @@
  */
 
 #include <config.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-marshal.h"
 #include "planner-task-input-dialog.h"
 #include "planner-task-cmd.h"
 #include "planner-format.h"
+#include "planner-util.h"
 
 typedef struct {
        MrpProject    *project;
@@ -105,9 +105,8 @@ planner_task_input_dialog_new (PlannerWindow *main_window)
 {
        GtkWidget  *dialog;
        DialogData *data;
-       GladeXML   *gui;
+       GtkBuilder *builder;
        MrpProject *project;
-       gchar      *filename;
 
        data = g_new0 (DialogData, 1);
 
@@ -116,23 +115,21 @@ planner_task_input_dialog_new (PlannerWindow *main_window)
        data->project = g_object_ref (project);
        data->main_window = g_object_ref (main_window);
 
-       filename = mrp_paths_get_glade_dir ("task-input-dialog.glade");
-       gui = glade_xml_new (filename, NULL, NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/task-input-dialog.ui");
 
-       dialog = glade_xml_get_widget (gui, "task_input_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "task_input_dialog"));
        g_signal_connect (dialog,
                          "response",
                          G_CALLBACK (task_input_dialog_response_cb),
                          dialog);
 
-       data->name_entry = glade_xml_get_widget (gui, "name_entry");
+       data->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
        g_signal_connect (data->name_entry,
                          "activate",
                          G_CALLBACK (task_input_dialog_activate_cb),
                          dialog);
 
-       data->work_entry = glade_xml_get_widget (gui, "work_entry");
+       data->work_entry = GTK_WIDGET (gtk_builder_get_object (builder, "work_entry"));
        g_signal_connect (data->work_entry,
                          "activate",
                          G_CALLBACK (task_input_dialog_activate_cb),
@@ -143,5 +140,6 @@ planner_task_input_dialog_new (PlannerWindow *main_window)
                                data,
                                task_input_dialog_free);
 
-        return dialog;
+       g_object_unref (builder);
+       return dialog;
 }
diff --git a/src/planner-util.c b/src/planner-util.c
index 167fada0..e78589f2 100644
--- a/src/planner-util.c
+++ b/src/planner-util.c
@@ -21,6 +21,7 @@
 #include <config.h>
 
 #include "planner-util.h"
+#include "org.gnome.Planner.h"
 
 void
 planner_util_show_help (GtkWindow *parent)
@@ -46,3 +47,21 @@ planner_util_show_url (GtkWindow *parent, const gchar *url)
                g_error_free (error);
        }
 }
+
+GtkBuilder *
+planner_util_new_builder (const gchar *resource_path)
+{
+       GtkBuilder    *builder;
+       GBytes        *res_bytes;
+       gconstpointer  res_data;
+       gsize          res_size;
+       GError        *error = NULL;
+
+       builder = gtk_builder_new ();
+       res_bytes = g_resource_lookup_data (resources_get_resource (), resource_path, 0, NULL);
+       res_data = g_bytes_get_data (res_bytes, &res_size);
+       if (gtk_builder_add_from_string (builder, res_data, res_size, &error) == 0)
+               g_error ("Failed to load resources: %s", error->message);
+       g_bytes_unref (res_bytes);
+       return builder;
+}
diff --git a/src/planner-util.h b/src/planner-util.h
index 28749985..69c57497 100644
--- a/src/planner-util.h
+++ b/src/planner-util.h
@@ -28,5 +28,6 @@ void planner_util_show_help (GtkWindow    *parent);
 void planner_util_show_url  (GtkWindow    *parent,
                              const gchar  *url);
 
+GtkBuilder *planner_util_new_builder (const gchar *resource_path);
 #endif /* __PLANNER_UTIL_H__ */
 
diff --git a/src/planner-window.c b/src/planner-window.c
index 9212b8c0..745f573b 100644
--- a/src/planner-window.c
+++ b/src/planner-window.c
@@ -27,7 +27,6 @@
 #include <glib/gi18n.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include <libplanner/mrp-error.h>
 #include <libplanner/mrp-project.h>
 #include <libplanner/mrp-paths.h>
diff --git a/src/planner-working-time-dialog.c b/src/planner-working-time-dialog.c
index f803791d..8ddb4ef5 100644
--- a/src/planner-working-time-dialog.c
+++ b/src/planner-working-time-dialog.c
@@ -24,11 +24,11 @@
 #include <stdio.h>
 #include <config.h>
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <libplanner/mrp-project.h>
 #include "libplanner/mrp-paths.h"
 #include "planner-working-time-dialog.h"
+#include "planner-util.h"
 
 #define RESPONSE_CLOSE  GTK_RESPONSE_CLOSE
 #define RESPONSE_APPLY  GTK_RESPONSE_APPLY
@@ -199,29 +199,19 @@ planner_working_time_dialog_new (PlannerWindow *window,
                                 MrpCalendar   *calendar)
 {
        DialogData        *data;
-       GladeXML          *glade;
+       GtkBuilder        *builder;
        GtkWidget         *dialog;
        gint               i;
        GtkTreeModel      *model;
        GtkCellRenderer   *cell;
        GtkTreeViewColumn *col;
        GtkTreeSelection  *selection;
-       gchar             *filename;
 
        g_return_val_if_fail (PLANNER_IS_WINDOW (window), NULL);
 
-       filename = mrp_paths_get_glade_dir ("calendar-dialog.glade");
-       glade = glade_xml_new (filename,
-                              "working_time_dialog",
-                              NULL);
-       g_free (filename);
+       builder = planner_util_new_builder ("/org/gnome/Planner/ui/working-time-dialog.ui");
 
-       if (!glade) {
-               g_warning ("Could not create working_time dialog.");
-               return NULL;
-       }
-
-       dialog = glade_xml_get_widget (glade, "working_time_dialog");
+       dialog = GTK_WIDGET (gtk_builder_get_object (builder, "working_time_dialog"));
 
        data = g_new0 (DialogData, 1);
 
@@ -229,7 +219,7 @@ planner_working_time_dialog_new (PlannerWindow *window,
        data->project = planner_window_get_project (window);
        data->calendar = calendar;
        data->dialog = dialog;
-       data->apply_button = glade_xml_get_widget (glade, "apply_button");
+       data->apply_button = GTK_WIDGET (gtk_builder_get_object (builder, "apply_button"));
 
        g_signal_connect_object (window,
                                 "destroy",
@@ -249,7 +239,7 @@ planner_working_time_dialog_new (PlannerWindow *window,
                                 data->dialog,
                                 0);
 
-       data->tree_view = glade_xml_get_widget (glade, "treeview");
+       data->tree_view = GTK_WIDGET (gtk_builder_get_object (builder, "treeview"));
 
        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (data->tree_view));
 
@@ -263,11 +253,11 @@ planner_working_time_dialog_new (PlannerWindow *window,
                gchar *tmp;
 
                tmp = g_strdup_printf ("from%d_entry", i + 1);
-               data->from_entry[i] = glade_xml_get_widget (glade, tmp);
+               data->from_entry[i] = GTK_WIDGET (gtk_builder_get_object (builder, tmp));
                g_free (tmp);
 
                tmp = g_strdup_printf ("to%d_entry", i + 1);
-               data->to_entry[i] = glade_xml_get_widget (glade, tmp);
+               data->to_entry[i] = GTK_WIDGET (gtk_builder_get_object (builder, tmp));
                g_free (tmp);
 
                g_signal_connect (data->from_entry[i],
@@ -303,6 +293,7 @@ planner_working_time_dialog_new (PlannerWindow *window,
                          G_CALLBACK (working_time_dialog_response_cb),
                          data);
 
+       g_object_unref (builder);
        return dialog;
 }
 
diff --git a/src/planner-xml-planner-plugin.c b/src/planner-xml-planner-plugin.c
index 58c37554..a123f70b 100644
--- a/src/planner-xml-planner-plugin.c
+++ b/src/planner-xml-planner-plugin.c
@@ -22,7 +22,6 @@
 #include <config.h>
 #include <string.h>
 #include <glib.h>
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include <libplanner/mrp-paths.h>


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