← Back to team overview

gtg team mailing list archive

[Merge] lp:~parthpanchl/gtg/fix-931904 into lp:gtg

 

Parth Panchal has proposed merging lp:~parthpanchl/gtg/fix-931904 into lp:gtg.

Commit message:
Fixes Bug #931904

Requested reviews:
  Gtg developers (gtg)
Related bugs:
  Bug #931904 in Getting Things GNOME!: "Scheduling many task"
  https://bugs.launchpad.net/gtg/+bug/931904

For more details, see:
https://code.launchpad.net/~parthpanchl/gtg/fix-931904/+merge/209907

Fixes Bug #316922
- Replaces the tasks' context menu entry to directly open calendar widget 
  to set date for multiple tasks, reducing no. of clicks
- Detaches the calender ui from task editor ui so that opening calendar
  widget doesn't need to load whole task editor ui
-- 
https://code.launchpad.net/~parthpanchl/gtg/fix-931904/+merge/209907
Your team Gtg developers is requested to review the proposed merge of lp:~parthpanchl/gtg/fix-931904 into lp:gtg.
=== modified file 'AUTHORS'
--- AUTHORS	2014-03-01 21:15:24 +0000
+++ AUTHORS	2014-03-07 12:28:35 +0000
@@ -132,4 +132,5 @@
 * Sagar Ghuge <ghugesss@xxxxxxxxx>
 * Sushant Raikar <sushantthecoder@xxxxxxxxx>
 * Atit Anand <atit.anand.cs@xxxxxxxxx>
-* Sara Ribeiro <sara.rmgr@xxxxxxxxx>
+* Parth P. Panchal <parthpanchl@xxxxxxxxx>
+* Sara Ribeiro <sara.rmgr@xxxxxxxxx>
\ No newline at end of file

=== modified file 'CHANGELOG'
--- CHANGELOG	2014-03-01 21:15:24 +0000
+++ CHANGELOG	2014-03-07 12:28:35 +0000
@@ -18,6 +18,7 @@
     * Fix for bug #1286491 : RTM sync backend fails to load, by Pawan Hegde
     * Fix for bug #1286493 : GTG cannot connect to RTM, by Pawan Hegde
     * Fix for bug #1288011 : More intuitive title label for tasks, by Sara Ribeiro
+    * Fix for bug #931904 : Scheduling many task, by Parth Panchal
 
 2013-11-24 Getting Things GNOME! 0.3.1
     * Fix for bug #1024473: Have 'Show Main Window' in notification area, by Antonio Roquentin

=== modified file 'GTG/gtk/browser/browser.py'
--- GTG/gtk/browser/browser.py	2014-02-17 12:55:55 +0000
+++ GTG/gtk/browser/browser.py	2014-03-07 12:28:35 +0000
@@ -39,6 +39,7 @@
 from GTG.gtk.browser.modifytags_dialog import ModifyTagsDialog
 from GTG.gtk.browser.tag_context_menu import TagContextMenu
 from GTG.gtk.browser.treeview_factory import TreeviewFactory
+from GTG.gtk.editor.calendar import GTGCalendar
 from GTG.tools.dates import Date
 from GTG.tools.logger import Log
 
@@ -180,12 +181,14 @@
 
     def _init_ui_widget(self):
         """ Sets the main pane with the tree with active tasks and
-        create ModifyTagsDialog """
+        create ModifyTagsDialog & Calendar"""
         # The Active tasks treeview
         self.main_pane.add(self.vtree_panes['active'])
 
         tag_completion = TagCompletion(self.req.get_tag_tree())
         self.modifytags_dialog = ModifyTagsDialog(tag_completion, self.req)
+        self.calendar = GTGCalendar()
+        self.calendar.connect("date-changed", self.on_date_changed)
 
     def init_tags_sidebar(self):
         """
@@ -268,34 +271,10 @@
             self.on_mark_as_done,
             "on_mark_as_started":
             self.on_mark_as_started,
-            "on_start_for_tomorrow":
-            self.on_start_for_tomorrow,
-            "on_start_for_next_week":
-            self.on_start_for_next_week,
-            "on_start_for_next_month":
-            self.on_start_for_next_month,
-            "on_start_for_next_year":
-            self.on_start_for_next_year,
-            "on_start_clear":
-            self.on_start_clear,
-            "on_set_due_today":
-            self.on_set_due_today,
-            "on_set_due_tomorrow":
-            self.on_set_due_tomorrow,
-            "on_set_due_next_week":
-            self.on_set_due_next_week,
-            "on_set_due_next_month":
-            self.on_set_due_next_month,
-            "on_set_due_next_year":
-            self.on_set_due_next_year,
-            "on_set_due_now":
-            self.on_set_due_now,
-            "on_set_due_soon":
-            self.on_set_due_soon,
-            "on_set_due_someday":
-            self.on_set_due_someday,
-            "on_set_due_clear":
-            self.on_set_due_clear,
+            "on_start_for_specific_date":
+            self.on_start_for_specific_date,
+            "on_set_due_for_specific_date":
+            self.on_set_due_for_specific_date,
             "on_dismiss_task":
             self.on_dismiss_task,
             "on_move":
@@ -1053,20 +1032,47 @@
     def on_mark_as_started(self, widget):
         self.update_start_date(widget, "today")
 
-    def on_start_for_tomorrow(self, widget):
-        self.update_start_date(widget, "tomorrow")
-
-    def on_start_for_next_week(self, widget):
-        self.update_start_date(widget, "next week")
-
-    def on_start_for_next_month(self, widget):
-        self.update_start_date(widget, "next month")
-
-    def on_start_for_next_year(self, widget):
-        self.update_start_date(widget, "next year")
-
-    def on_start_clear(self, widget):
-        self.update_start_date(widget, None)
+    def on_start_for_specific_date(self, widget):
+        """ Run Calendar dialog for selected tasks """
+        # Disable widget as drag source
+        widget.drag_source_unset()
+        # Get task from task name
+        task = self.req.get_task(self.get_selected_tasks()[0])
+        date = task.get_start_date()
+        self.calendar.set_date(date, GTGCalendar.DATE_KIND_START)
+        # Shows the calendar just above the mouse on widget's line of symmetry
+        rect = widget.get_allocation()
+        result, x, y = widget.get_window().get_origin()
+        self.calendar.show_at_position(x + rect.x + rect.width,
+                                       y + rect.y)
+
+    def on_set_due_for_specific_date(self, widget):
+        """ Run Calendar dialog for selected tasks """
+        # Disable widget as drag source
+        widget.drag_source_unset()
+        # Get task from task name
+        task = self.req.get_task(self.get_selected_tasks()[0])
+        if not task.get_due_date():
+            date = task.get_start_date()
+        else:
+            date = task.get_due_date()
+        self.calendar.set_date(date, GTGCalendar.DATE_KIND_DUE)
+        # Shows the calendar just above the mouse on widget's line of symmetry
+        rect = widget.get_allocation()
+        result, x, y = widget.get_window().get_origin()
+        self.calendar.show_at_position(x + rect.x + rect.width,
+                                       y + rect.y)
+    
+    def on_date_changed(self, calendar):
+        # Get tasks' list from task names' list
+        tasks = [self.req.get_task(task) for task in self.get_selected_tasks()]
+        date, date_kind = calendar.get_selected_date()
+        if date_kind == GTGCalendar.DATE_KIND_DUE:
+            for task in tasks:
+                task.set_due_date(date)
+        elif date_kind == GTGCalendar.DATE_KIND_START:
+            for task in tasks:
+                task.set_start_date(date)
 
     def update_due_date(self, widget, new_due_date):
         tasks = [self.req.get_task(uid)
@@ -1079,33 +1085,6 @@
         for task in tasks:
             task.set_due_date(due_date)
 
-    def on_set_due_today(self, widget):
-        self.update_due_date(widget, "today")
-
-    def on_set_due_tomorrow(self, widget):
-        self.update_due_date(widget, "tomorrow")
-
-    def on_set_due_next_week(self, widget):
-        self.update_due_date(widget, "next week")
-
-    def on_set_due_next_month(self, widget):
-        self.update_due_date(widget, "next month")
-
-    def on_set_due_next_year(self, widget):
-        self.update_due_date(widget, "next year")
-
-    def on_set_due_now(self, widget):
-        self.update_due_date(widget, "now")
-
-    def on_set_due_soon(self, widget):
-        self.update_due_date(widget, "soon")
-
-    def on_set_due_someday(self, widget):
-        self.update_due_date(widget, "someday")
-
-    def on_set_due_clear(self, widget):
-        self.update_due_date(widget, None)
-
     def on_modify_tags(self, widget):
         """ Run Modify Tags dialog on selected tasks """
         tasks = self.get_selected_tasks()

=== modified file 'GTG/gtk/browser/taskbrowser.ui'
--- GTG/gtk/browser/taskbrowser.ui	2013-11-25 02:37:46 +0000
+++ GTG/gtk/browser/taskbrowser.ui	2014-03-07 12:28:35 +0000
@@ -998,201 +998,23 @@
       </object>
     </child>
     <child>
-      <object class="GtkImageMenuItem" id="tcm_start_menu">
-        <property name="label" translatable="yes">_Set Start Date</property>
+      <object class="GtkImageMenuItem" id="tcm_start_for_specific_date">
+        <property name="label" translatable="yes">Set Start Date...</property>
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="use_underline">True</property>
         <property name="use_stock">False</property>
-        <child type="submenu">
-          <object class="GtkMenu" id="start_for_context_menu">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_mark_as_started">
-                <property name="label" translatable="yes">T_oday</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_mark_as_started" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_start_for_tomorrow">
-                <property name="label" translatable="yes">_Tomorrow</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_start_for_tomorrow" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_start_for_next_week">
-                <property name="label" translatable="yes">Next _Week</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_start_for_next_week" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_start_for_next_month">
-                <property name="label" translatable="yes">Next _Month</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_start_for_next_month" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_start_for_next_year">
-                <property name="label" translatable="yes">Next _Year</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_start_for_next_year" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkSeparatorMenuItem" id="menuitem1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_start_clear">
-                <property name="label" translatable="yes">_Clear Start Date</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_start_clear" swapped="no"/>
-              </object>
-            </child>
-          </object>
-        </child>
+        <signal name="activate" handler="on_start_for_specific_date" swapped="no"/>
       </object>
     </child>
     <child>
-      <object class="GtkImageMenuItem" id="tcm_due_menu">
-        <property name="label" translatable="yes">Set Due Date</property>
+      <object class="GtkImageMenuItem" id="tcm_due_specific_date">
+        <property name="label" translatable="yes">Set Due Date...</property>
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="use_underline">True</property>
         <property name="use_stock">False</property>
-        <child type="submenu">
-          <object class="GtkMenu" id="due_context_menu">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_today">
-                <property name="label" translatable="yes">T_oday</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_today" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_tomorrow">
-                <property name="label" translatable="yes">_Tomorrow</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_tomorrow" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_next_week">
-                <property name="label" translatable="yes">Next _Week</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_next_week" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_next_month">
-                <property name="label" translatable="yes">Next _Month</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_next_month" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_next_year">
-                <property name="label" translatable="yes">Next _Year</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_next_year" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkSeparatorMenuItem" id="menuitem2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_now">
-                <property name="label" translatable="yes">_Now</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_now" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_soon">
-                <property name="label" translatable="yes">_Soon</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_soon" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_someday">
-                <property name="label" translatable="yes">_Someday</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_someday" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkSeparatorMenuItem" id="menuitem3">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkImageMenuItem" id="tcm_due_clear">
-                <property name="label" translatable="yes">_Clear Due Date</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_underline">True</property>
-                <property name="use_stock">False</property>
-                <signal name="activate" handler="on_set_due_clear" swapped="no"/>
-              </object>
-            </child>
-          </object>
-        </child>
+        <signal name="activate" handler="on_set_due_for_specific_date" swapped="no"/>
       </object>
     </child>
     <child>

=== modified file 'GTG/gtk/editor/__init__.py'
--- GTG/gtk/editor/__init__.py	2013-11-25 02:37:46 +0000
+++ GTG/gtk/editor/__init__.py	2014-03-07 12:28:35 +0000
@@ -27,6 +27,7 @@
 class GnomeConfig:
     current_rep = os.path.dirname(os.path.abspath(__file__))
     EDITOR_UI_FILE = os.path.join(current_rep, "taskeditor.ui")
+    CALENDAR_UI_FILE = os.path.join(current_rep, "calendar.ui")
 
     MARK_DONE = _("Mark as Done")
     MARK_UNDONE = _("Mark as not Done")

=== modified file 'GTG/gtk/editor/calendar.py'
--- GTG/gtk/editor/calendar.py	2014-02-21 10:03:07 +0000
+++ GTG/gtk/editor/calendar.py	2014-03-07 12:28:35 +0000
@@ -19,8 +19,9 @@
 
 import datetime
 
-from gi.repository import GObject, Gdk
+from gi.repository import GObject, Gdk, Gtk
 
+from GTG.gtk.editor import GnomeConfig
 from GTG.tools.dates import Date
 
 
@@ -39,9 +40,10 @@
 
     __gsignals__ = {'date-changed': __signal_type__, }
 
-    def __init__(self, Gtk_builder):
+    def __init__(self):
         super(GTGCalendar, self).__init__()
-        self.__builder = Gtk_builder
+        self.__builder = Gtk.Builder()
+        self.__builder.add_from_file(GnomeConfig.CALENDAR_UI_FILE)
         self.__date_kind = None
         self.__date = Date.no_date()
         self.__init_gtk__()

=== added file 'GTG/gtk/editor/calendar.ui'
--- GTG/gtk/editor/calendar.ui	1970-01-01 00:00:00 +0000
+++ GTG/gtk/editor/calendar.ui	2014-03-07 12:28:35 +0000
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="calendar">
+    <property name="can_focus">False</property>
+    <property name="events">GDK_STRUCTURE_MASK | GDK_PROXIMITY_OUT_MASK</property>
+    <property name="type">popup</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">dropdown-menu</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="skip_pager_hint">True</property>
+    <property name="transient_for">TaskEditor</property>
+    <child>
+      <object class="GtkBox" id="vbox5">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <object class="GtkCalendar" id="calendar1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="fuzzydate_btns">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="homogeneous">True</property>
+            <child>
+              <object class="GtkButton" id="button_now">
+                <property name="label" translatable="yes">Now</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button_soon">
+                <property name="label" translatable="yes">Soon</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button_someday">
+                <property name="label" translatable="yes">Someday</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="button_clear">
+            <property name="label">gtk-clear</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_stock">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
\ No newline at end of file

=== modified file 'GTG/gtk/editor/editor.py'
--- GTG/gtk/editor/editor.py	2013-11-25 02:37:46 +0000
+++ GTG/gtk/editor/editor.py	2014-03-07 12:28:35 +0000
@@ -116,7 +116,7 @@
         if conf_font_value != "":
             self.textview.override_font(Pango.FontDescription(conf_font_value))
         # Voila! it's done
-        self.calendar = GTGCalendar(self.builder)
+        self.calendar = GTGCalendar()
         self.duedate_widget = self.builder.get_object("duedate_entry")
         self.startdate_widget = self.builder.get_object("startdate_entry")
         self.closeddate_widget = self.builder.get_object("closeddate_entry")

=== modified file 'GTG/gtk/editor/taskeditor.ui'
--- GTG/gtk/editor/taskeditor.ui	2014-02-18 21:25:17 +0000
+++ GTG/gtk/editor/taskeditor.ui	2014-03-07 12:28:35 +0000
@@ -373,99 +373,4 @@
       </object>
     </child>
   </object>
-  <object class="GtkWindow" id="calendar">
-    <property name="can_focus">False</property>
-    <property name="events">GDK_STRUCTURE_MASK | GDK_PROXIMITY_OUT_MASK</property>
-    <property name="type">popup</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="destroy_with_parent">True</property>
-    <property name="type_hint">dropdown-menu</property>
-    <property name="skip_taskbar_hint">True</property>
-    <property name="skip_pager_hint">True</property>
-    <property name="transient_for">TaskEditor</property>
-    <child>
-      <object class="GtkBox" id="vbox5">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <child>
-          <object class="GtkCalendar" id="calendar1">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="fuzzydate_btns">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="homogeneous">True</property>
-            <child>
-              <object class="GtkButton" id="button_now">
-                <property name="label" translatable="yes">Now</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button_soon">
-                <property name="label" translatable="yes">Soon</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button_someday">
-                <property name="label" translatable="yes">Someday</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkButton" id="button_clear">
-            <property name="label">gtk-clear</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
-            <property name="use_stock">True</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-  </object>
 </interface>