gnome-schedule r1114 - in branches/x-output-support: . src



Author: gauteh
Date: Mon Dec  8 01:13:34 2008
New Revision: 1114
URL: http://svn.gnome.org/viewvc/gnome-schedule?rev=1114&view=rev

Log:
broken..

Modified:
   branches/x-output-support/ChangeLog
   branches/x-output-support/TODO
   branches/x-output-support/src/at.py
   branches/x-output-support/src/atEditor.py
   branches/x-output-support/src/crontab.py
   branches/x-output-support/src/crontabEditor.py
   branches/x-output-support/src/gnome-schedule.glade
   branches/x-output-support/src/template_manager.py
   branches/x-output-support/src/xwrapper.py.in

Modified: branches/x-output-support/TODO
==============================================================================
--- branches/x-output-support/TODO	(original)
+++ branches/x-output-support/TODO	Mon Dec  8 01:13:34 2008
@@ -6,10 +6,8 @@
 in case work has allready been started on some of the features.
 
 Development:
-check bug: 419392, http://bugzilla.gnome.org/show_bug.cgi?id=419392
 
 * labels should be expanded
-* toolbar template button, icon should work with different toolbar setups (appearance -> interface in user settings)
 
  Wishlist (need a new branch and/or will not be included in the next release)
   * Show the next-run time for crontab records

Modified: branches/x-output-support/src/at.py
==============================================================================
--- branches/x-output-support/src/at.py	(original)
+++ branches/x-output-support/src/at.py	Mon Dec  8 01:13:34 2008
@@ -591,6 +591,7 @@
 			result = lines[prelen:(-1 - prelen)]
 
 		result = result.replace("\n",";")
+		result = result.replace ("&", "&")
 		#remove ending newlines, not if result len = 0
 		if len(result) < 2:
 			done = 1

Modified: branches/x-output-support/src/atEditor.py
==============================================================================
--- branches/x-output-support/src/atEditor.py	(original)
+++ branches/x-output-support/src/atEditor.py	Mon Dec  8 01:13:34 2008
@@ -85,7 +85,7 @@
 		
 		self.cal_loaded = False
 		self.x, self.y = self.widget.get_position ()
-		self.height, self.wid9847th = self.widget.get_size ()
+		self.height, self.width = self.widget.get_size ()
 		self.cal_active = True
 		
 		self.xml.signal_connect ("on_at_editor_size_changed", self.on_at_editor_size_changed)

Modified: branches/x-output-support/src/crontab.py
==============================================================================
--- branches/x-output-support/src/crontab.py	(original)
+++ branches/x-output-support/src/crontab.py	Mon Dec  8 01:13:34 2008
@@ -751,5 +751,6 @@
 			cnt = cnt + 1
 		if cnt > preview_len:
 			result = result + "..."
-		return result
+		result = result.replace ("&", "&amp;")
+
 

Modified: branches/x-output-support/src/crontabEditor.py
==============================================================================
--- branches/x-output-support/src/crontabEditor.py	(original)
+++ branches/x-output-support/src/crontabEditor.py	Mon Dec  8 01:13:34 2008
@@ -74,7 +74,16 @@
 		self.frequency_combobox_model.append([_("At reboot"), ["", "", "", "", "", "@reboot"]])
 		self.frequency_combobox.set_model (self.frequency_combobox_model)
 		
-		self.cb_nooutput = self.xml.get_widget("cb_nooutput")
+		#self.cb_nooutput = self.xml.get_widget("cb_nooutput")
+		self.cb_output = self.xml.get_widget ("combo_output")
+		self.cb_o_model = gtk.ListStore (gobject.TYPE_STRING)
+		self.cb_o_model.append ([""])
+		self.cb_o_model.append ([_("Supress output")])
+		self.cb_o_model.append ([_("X application")])
+		self.cb_o_model.append ([_("X application: supress output")])
+		self.cb_output.set_model (self.cb_o_model)
+		self.cb_output.show ()
+
 				
 		#self.help_button = self.xml.get_widget ("cron_help_button")
 		
@@ -91,7 +100,7 @@
 		self.xml.signal_connect("on_anyadvanced_entry_changed", self.on_anyadvanced_entry_changed)
 		self.xml.signal_connect("on_anybasic_entry_changed", self.on_anybasic_entry_changed)
 		self.xml.signal_connect("on_frequency_combobox_changed", self.on_frequency_combobox_changed)
-		self.xml.signal_connect("on_cb_nooutput_toggeled", self.on_anybasic_entry_changed)
+		self.xml.signal_connect ("on_combo_output_changed", self.on_anybasic_entry_changed)
 
 		self.xml.signal_connect("on_help_clicked", self.on_fieldHelp_clicked)
 		
@@ -100,9 +109,6 @@
 		
 		self.xml.signal_connect ("on_button_template_clicked", self.on_template_clicked)
 		
-		
-		##
-		
 		##advanced
 		self.minute_entry = self.xml.get_widget ("minute_entry")
 		self.hour_entry = self.xml.get_widget ("hour_entry")
@@ -115,8 +121,6 @@
 		self.help_day = self.xml.get_widget ("help_day")
 		self.help_month = self.xml.get_widget ("help_month")
 		self.help_weekday = self.xml.get_widget ("help_weekday")
-		##
-		
 		
 		self.editorhelper = crontabEditorHelper.CrontabEditorHelper(self)
 		
@@ -131,9 +135,9 @@
 		self.widget.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
 		self.button_template.show ()
 		self.widget.show ()
-		self.cb_nooutput.set_active (True)
+		self.cb_output.set_active (0)
 
-	def showadd_template (self, transient, title, command, nooutput,timeexpression):
+	def showadd_template (self, transient, title, command, output,timeexpression):
 		self.button_apply.set_label (gtk.STOCK_ADD)
 		self.__reset__ ()
 		self.mode = 0
@@ -143,7 +147,7 @@
 		self.button_template.show ()
 		self.widget.show ()
 		
-		self.nooutput = nooutput
+		self.output = output 
 		# hehe again, why make it less complicated..
 		timeexpression = timeexpression + " echo hehe"
 		self.minute, self.hour, self.day, self.month, self.weekday, hehe = self.scheduler.parse (timeexpression, True)
@@ -168,15 +172,10 @@
 			self.rb_basic.set_active (True)
 			self.frequency_combobox.set_active (i)
 
-		if self.nooutput:
-			self.entry_task.set_text (self.command)
-			self.cb_nooutput.set_active (True)
-			
-		else:
-			self.cb_nooutput.set_active (False)
+		self.cb_output.set_active (self.output)
 			
 			
-	def showedit_template (self, transient, id, title, command, nooutput, timeexpression):
+	def showedit_template (self, transient, id, title, command, output, timeexpression):
 		self.button_apply.set_label (gtk.STOCK_SAVE)
 		
 		self.mode = 2
@@ -185,7 +184,7 @@
 		
 		self.command = command
 		self.title = title
-		self.nooutput = nooutput
+		self.output = output
 		
 		timeexpression = timeexpression + " echo hehe"
 		self.minute, self.hour, self.day, self.month, self.weekday, hehe = self.scheduler.parse (timeexpression, True)
@@ -213,13 +212,8 @@
 			self.rb_basic.set_active (True)
 			self.frequency_combobox.set_active (i)
 
-		if self.nooutput:
-			self.entry_task.set_text (self.command)
-			self.cb_nooutput.set_active (True)
-			
-		else:
-			self.cb_nooutput.set_active (False)
-			
+		self.cb_output.set_active (self.output)
+
 	def shownew_template (self, transient):
 		self.button_apply.set_label (gtk.STOCK_ADD)
 		
@@ -244,7 +238,7 @@
 		self.record = record
 		self.job_id = job_id
 		self.__reset__ ()
-		(self.minute, self.hour, self.day, self.month, self.weekday, self.command, self.comment, self.job_id, self.title, self.desc, self.nooutput) = self.scheduler.parse (record)[1]
+		(self.minute, self.hour, self.day, self.month, self.weekday, self.command, self.comment, self.job_id, self.title, self.desc, self.output) = self.scheduler.parse (record)[1]
 		self.special = ""
 		if self.minute == "@reboot":
 			self.special = "@reboot"
@@ -269,13 +263,7 @@
 			self.rb_basic.set_active (True)
 			self.frequency_combobox.set_active (i)
 
-		if self.nooutput:
-			self.entry_task.set_text (self.command)
-			self.cb_nooutput.set_active (True)
-			
-		else:
-			self.cb_nooutput.set_active (False)
-			
+		self.cb_outpute.set_active (self.output)		
 
 	def __reset__ (self):
 		self.noevents = True
@@ -287,7 +275,7 @@
 		self.special = ""
 		self.command = "ls"
 		self.title = _("Untitled")
-		self.nooutput = 1
+		self.output = 0
 		self.frequency_combobox.set_active (1)
 		self.rb_basic.set_active (True)
 		self.minute_entry.set_editable (False)
@@ -305,7 +293,7 @@
 		self.help_day.set_sensitive (False)
 		self.help_month.set_sensitive (False)
 		self.help_weekday.set_sensitive (False)
-		self.cb_nooutput.set_active (True)
+		self.cb_output.set_active (0)
 		self.frequency_combobox.set_sensitive (True)
 		self.__update_textboxes__ ()
 		self.noevents = False
@@ -446,9 +434,9 @@
 			return	False
 			
 		if self.special != "":
-			self.template.savetemplate_crontab (0, self.title, self.command, self.nooutput, self.special)
+			self.template.savetemplate_crontab (0, self.title, self.command, self.output, self.special)
 		else:
-			self.template.savetemplate_crontab (0, self.title, self.command, self.nooutput, self.minute + " " + self.hour + " " + self.day + " " + self.month + " " + self.weekday)
+			self.template.savetemplate_crontab (0, self.title, self.command, self.output, self.minute + " " + self.hour + " " + self.day + " " + self.month + " " + self.weekday)
 		
 		self.widget.hide ()
 		
@@ -502,10 +490,10 @@
 			del dia2
 			
 		if self.mode == 1:
-			self.scheduler.update (self.minute, self.hour, self.day, self.month, self.weekday, self.command, self.linenumber, self.parentiter, self.nooutput, self.job_id, self.comment, self.title, self.desc)
+			self.scheduler.update (self.minute, self.hour, self.day, self.month, self.weekday, self.command, self.linenumber, self.parentiter, self.output, self.job_id, self.comment, self.title, self.desc)
 			
 		elif self.mode == 0:
-			self.scheduler.append (self.minute, self.hour, self.day, self.month, self.weekday, self.command, self.nooutput, self.title)
+			self.scheduler.append (self.minute, self.hour, self.day, self.month, self.weekday, self.command, self.output, self.title)
 			
 		elif self.mode == 2:
 			if self.special != "":
@@ -540,9 +528,9 @@
 				return	False
 			
 			if self.special != "":
-				self.template.savetemplate_crontab (self.tid, self.title, self.command, self.nooutput, self.special)
+				self.template.savetemplate_crontab (self.tid, self.title, self.command, self.output, self.special)
 			else:
-				self.template.savetemplate_crontab (self.tid, self.title, self.command, self.nooutput, self.minute + " " + self.hour + " " + self.day + " " + self.month + " " + self.weekday)
+				self.template.savetemplate_crontab (self.tid, self.title, self.command, self.output, self.minute + " " + self.hour + " " + self.day + " " + self.month + " " + self.weekday)
 	
 			self.widget.hide ()
 			return
@@ -582,7 +570,7 @@
 		
 	def __update_textboxes__ (self):
 		self.noevents = True
-		self.cb_nooutput.set_active (self.nooutput)
+		self.cb_output.set_active (self.output)
 		self.entry_task.set_text (self.command)
 		self.entry_title.set_text (self.title)
 		self.minute_entry.set_text (self.minute)
@@ -660,7 +648,7 @@
 			self.day = self.day_entry.get_text ()
 			self.month = self.month_entry.get_text ()
 			self.weekday = self.weekday_entry.get_text ()
-			self.nooutput = self.cb_nooutput.get_active()
+			self.output = self.cb_output.get_active()
 			
 			self.__update_textboxes__ ()
 
@@ -669,7 +657,7 @@
 		if self.noevents == False:
 			self.command = self.entry_task.get_text ()
 			self.title = self.entry_title.get_text ()
-			self.nooutput = self.cb_nooutput.get_active()
+			self.output = self.cb_output.get_active()
 			self.__update_textboxes__ ()
 
 

Modified: branches/x-output-support/src/gnome-schedule.glade
==============================================================================
--- branches/x-output-support/src/gnome-schedule.glade	(original)
+++ branches/x-output-support/src/gnome-schedule.glade	Mon Dec  8 01:13:34 2008
@@ -1,142 +1,124 @@
 <?xml version="1.0"?>
 <glade-interface>
   <requires-version lib="gtk+" version="2.12"/>
-  <widget class="GtkWindow" id="template_chooser">
-    <property name="width_request">450</property>
-    <property name="height_request">300</property>
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <property name="title" translatable="yes">Choose template</property>
-    <property name="modal">True</property>
-    <property name="skip_taskbar_hint">True</property>
-    <property name="skip_pager_hint">True</property>
-    <property name="transient_for">template_manager</property>
+  <widget class="GtkWindow" id="mainWindow">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Configure Scheduled Tasks</property>
+    <property name="default_width">700</property>
+    <property name="default_height">400</property>
+    <signal name="delete_event" handler="on_mainWindow_delete_event"/>
+    <signal name="window_state_event" handler="on_mainWindow_window_state_event"/>
     <child>
-      <widget class="GtkVBox" id="vbox4">
+      <widget class="GtkVBox" id="main_vbox">
         <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <child>
-          <widget class="GtkHBox" id="hbox9">
+          <widget class="GtkToolbar" id="toolbar">
             <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow5">
+              <widget class="GtkToolButton" id="prop_button">
+                <property name="visible">True</property>
+                <property name="tooltip" translatable="yes">Edit a scheduled task</property>
+                <property name="is_important">True</property>
+                <property name="stock_id">gtk-edit</property>
+                <signal name="clicked" handler="on_prop_button_clicked"/>
+              </widget>
+              <packing>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkToolButton" id="del_button">
+                <property name="visible">True</property>
+                <property name="tooltip" translatable="yes">Delete a scheduled task</property>
+                <property name="is_important">True</property>
+                <property name="stock_id">gtk-delete</property>
+                <signal name="clicked" handler="on_del_button_clicked"/>
+              </widget>
+              <packing>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkToolButton" id="run_button">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="tooltip_text">Run the selected task</property>
+                <property name="tooltip" translatable="yes">Run selected task</property>
+                <property name="label" translatable="yes">Run task</property>
+                <property name="stock_id">gtk-execute</property>
+                <signal name="clicked" handler="on_run_button_clicked"/>
+              </widget>
+              <packing>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkToolItem" id="toolitem1">
+                <property name="visible">True</property>
                 <child>
-                  <widget class="GtkTreeView" id="tc_treeview">
+                  <widget class="GtkVSeparator" id="vseparator1">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <signal name="button_press_event" handler="on_tc_treeview_button_press_event"/>
                   </widget>
                 </child>
               </widget>
             </child>
-          </widget>
-        </child>
-        <child>
-          <widget class="GtkHButtonBox" id="hbuttonbox5">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="border_width">5</property>
-            <property name="spacing">5</property>
-            <property name="layout_style">GTK_BUTTONBOX_EDGE</property>
             <child>
-              <widget class="GtkButton" id="tc_button_cancel">
+              <widget class="GtkToolButton" id="button_m_template">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label">gtk-close</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="on_tc_button_cancel_clicked"/>
-                <accelerator key="Escape" signal="clicked"/>
+                <property name="tooltip_text">Manage templates</property>
+                <property name="tooltip" translatable="yes">Manage templates</property>
+                <property name="label" translatable="yes">Templates</property>
+                <signal name="clicked" handler="on_button_m_template_clicked"/>
               </widget>
+              <packing>
+                <property name="homogeneous">True</property>
+              </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="tc_button_use">
+              <widget class="GtkToggleToolButton" id="edit_mode_button">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip" translatable="yes">Create a new task from the selected template</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="on_tc_button_use_clicked"/>
-                <child>
-                  <placeholder/>
-                </child>
+                <property name="tooltip" translatable="yes">Change edit mode</property>
+                <property name="is_important">True</property>
+                <property name="label" translatable="yes">Advanced</property>
+                <property name="use_underline">True</property>
+                <property name="stock_id">gtk-dialog-warning</property>
+                <signal name="clicked" handler="on_edit_mode_button_clicked"/>
               </widget>
               <packing>
-                <property name="position">1</property>
+                <property name="homogeneous">True</property>
               </packing>
             </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="padding">5</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkWindow" id="template_manager">
-    <property name="width_request">500</property>
-    <property name="height_request">300</property>
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <property name="title" translatable="yes">Manage templates</property>
-    <property name="modal">True</property>
-    <property name="skip_taskbar_hint">True</property>
-    <property name="skip_pager_hint">True</property>
-    <property name="transient_for">mainWindow</property>
-    <child>
-      <widget class="GtkVBox" id="vbox2">
-        <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <child>
-          <widget class="GtkToolbar" id="toolbar1">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="toolbar_style">GTK_TOOLBAR_BOTH_HORIZ</property>
             <child>
-              <widget class="GtkToolButton" id="tm_button_new">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip" translatable="yes">Create a new template.</property>
+              <widget class="GtkToolButton" id="btnSetUser">
+                <property name="tooltip" translatable="yes">Choose the user whose tasks you want to modify</property>
                 <property name="is_important">True</property>
-                <property name="stock_id">gtk-new</property>
-                <signal name="clicked" handler="on_tm_button_new_clicked"/>
+                <property name="label" translatable="yes">Change User</property>
+                <property name="use_underline">True</property>
+                <property name="stock_id">gtk-dialog-authentication</property>
+                <signal name="clicked" handler="on_btnSetUser_clicked"/>
               </widget>
               <packing>
                 <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="tm_button_edit">
+              <widget class="GtkToolButton" id="help_button">
                 <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip" translatable="yes">Edit the selected template</property>
-                <property name="is_important">True</property>
-                <property name="stock_id">gtk-edit</property>
-                <signal name="clicked" handler="on_tm_button_edit_clicked"/>
+                <property name="tooltip" translatable="yes">Show help</property>
+                <property name="stock_id">gtk-help</property>
+                <signal name="clicked" handler="on_help_button_clicked"/>
               </widget>
               <packing>
                 <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="tm_button_delete">
+              <widget class="GtkToolButton" id="about_button">
                 <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip" translatable="yes">Delete the selected template</property>
-                <property name="is_important">True</property>
-                <property name="stock_id">gtk-delete</property>
-                <signal name="clicked" handler="on_tm_button_delete_clicked"/>
+                <property name="tooltip" translatable="yes">About Gnome-schedule</property>
+                <property name="stock_id">gtk-about</property>
+                <signal name="clicked" handler="on_about_menu_activate"/>
               </widget>
               <packing>
                 <property name="homogeneous">True</property>
@@ -148,18 +130,18 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkScrolledWindow" id="scrolledwindow3">
+          <widget class="GtkScrolledWindow" id="main_scrolledwindow">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
             <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
             <child>
-              <widget class="GtkTreeView" id="tm_treeview">
+              <widget class="GtkTreeView" id="treeview">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <signal name="button_press_event" handler="on_tm_treeview_button_press_event"/>
+                <property name="tooltip" translatable="yes">Scheduled and active tasks</property>
+                <signal name="button_press_event" handler="on_treeview_button_press_event"/>
+                <signal name="key_press_event" handler="on_treeview_key_press_event"/>
               </widget>
             </child>
           </widget>
@@ -168,88 +150,198 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkHButtonBox" id="tm_hbuttonbox">
+          <widget class="GtkStatusbar" id="statusbar">
             <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="border_width">5</property>
-            <property name="spacing">5</property>
-            <property name="layout_style">GTK_BUTTONBOX_EDGE</property>
-            <child>
-              <widget class="GtkButton" id="tm_button_cancel">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label">gtk-close</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="on_tm_button_cancel_clicked"/>
-                <accelerator key="Escape" signal="clicked"/>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkButton" id="tm_button_use">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip" translatable="yes">Create a new task from the selected template</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="on_tm_button_use_clicked"/>
-                <child>
-                  <placeholder/>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
           </widget>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
-            <property name="padding">5</property>
-            <property name="position">2</property>
+            <property name="pack_type">GTK_PACK_END</property>
+            <property name="position">4</property>
           </packing>
         </child>
       </widget>
     </child>
   </widget>
-  <widget class="GtkDialog" id="at_editor">
-    <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+  <widget class="GtkWindow" id="crontabEditorHelper">
     <property name="border_width">12</property>
-    <property name="title">Edit a one-time task</property>
+    <property name="title" translatable="yes">Time expression help</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="default_width">430</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="has_separator">False</property>
-    <signal name="event" handler="on_at_editor_size_changed"/>
-    <signal name="delete_event" handler="on_at_editor_delete"/>
-    <signal name="set_focus" handler="on_cal_lost_focus"/>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="at_dialog_vbox">
+    <property name="skip_taskbar_hint">True</property>
+    <property name="skip_pager_hint">True</property>
+    <child>
+      <widget class="GtkVBox" id="vbox5">
         <property name="visible">True</property>
         <property name="spacing">12</property>
         <child>
-          <widget class="GtkVBox" id="vbox8">
+          <widget class="GtkTable" id="table4">
             <property name="visible">True</property>
-            <property name="spacing">6</property>
+            <property name="n_rows">9</property>
+            <property name="column_spacing">5</property>
+            <property name="row_spacing">1</property>
             <child>
-              <widget class="GtkHBox" id="title_box">
-                <property name="visible">True</property>
-                <property name="spacing">6</property>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <widget class="GtkVBox" id="vbox14">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <widget class="GtkRadioButton" id="radEvery">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Execution at a step width. For example every five minutes, hours, days, weekdays or months.</property>
+                <property name="label" translatable="yes">In a step width</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
+                <property name="group">radOth</property>
+                <signal name="toggled" handler="on_radEvery_toggled"/>
+              </widget>
+              <packing>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkRadioButton" id="radAll">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Execution at every minute, hour, day, weekday or month.</property>
+                <property name="label" translatable="yes">Every minute</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">True</property>
+                <property name="group">radOth</property>
+                <signal name="toggled" handler="on_radAll_toggled"/>
+              </widget>
+              <packing>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkRadioButton" id="radRange">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Execution in a range.</property>
+                <property name="label" translatable="yes">In a range</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
+                <property name="group">radOth</property>
+                <signal name="toggled" handler="on_radRange_toggled"/>
+              </widget>
+              <packing>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkRadioButton" id="radFix">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Execution at a specific minute, hour, day, weekday or month.</property>
+                <property name="label" translatable="yes">At an exact minute</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
+                <property name="group">radOth</property>
+                <signal name="toggled" handler="on_radFix_toggled"/>
+              </widget>
+              <packing>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkRadioButton" id="radOth">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">See "man 5 crontab" for information about the crontab format.</property>
+                <property name="label" translatable="yes">Other</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
+                <signal name="toggled" handler="on_radFix_toggled"/>
+              </widget>
+              <packing>
+                <property name="top_attach">7</property>
+                <property name="bottom_attach">8</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="left_padding">36</property>
+                <child>
+                  <widget class="GtkHBox" id="hbox2">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label1">
+                      <widget class="GtkLabel" id="lblEveryEntity">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Task description:</property>
+                        <property name="label" translatable="yes">Minutes:</property>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
@@ -257,95 +349,68 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="at_entry_title">
+                      <widget class="GtkEntry" id="entEvery">
+                        <property name="width_request">40</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <signal name="changed" handler="on_at_entry_title_changed"/>
+                        <property name="width_chars">3</property>
+                        <signal name="changed" handler="on_entEvery_changed"/>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
                   </widget>
-                  <packing>
-                    <property name="padding">5</property>
-                    <property name="position">1</property>
-                  </packing>
                 </child>
               </widget>
               <packing>
-                <property name="expand">False</property>
-                <property name="padding">5</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="at_vbox_time">
+              <widget class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="left_padding">36</property>
                 <child>
-                  <widget class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Execute at:</property>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkTable" id="table3">
+                  <widget class="GtkTable" id="table1">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="n_rows">2</property>
-                    <property name="n_columns">7</property>
-                    <property name="column_spacing">5</property>
-                    <property name="row_spacing">5</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
+                    <property name="n_columns">2</property>
+                    <property name="column_spacing">6</property>
+                    <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkAlignment" id="align_cal">
+                      <widget class="GtkEntry" id="entRangeStart">
                         <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <child>
-                          <widget class="GtkToggleButton" id="cal_button">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="response_id">0</property>
-                            <signal name="toggled" handler="on_cal_button_toggled"/>
-                            <child>
-                              <placeholder/>
-                            </child>
-                          </widget>
-                        </child>
+                        <property name="can_focus">True</property>
+                        <property name="width_chars">3</property>
+                        <signal name="changed" handler="on_entRangeStart_changed"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">6</property>
-                        <property name="right_attach">7</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label3">
+                      <widget class="GtkLabel" id="lblRangeStart">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
-                        <property name="xpad">15</property>
-                        <property name="label" translatable="yes">Date:</property>
+                        <property name="label" translatable="yes">From:</property>
+                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label4">
+                      <widget class="GtkLabel" id="lblRangeEnd">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
-                        <property name="xpad">15</property>
-                        <property name="label" translatable="yes">Time:</property>
+                        <property name="label" translatable="yes">To:</property>
+                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
                       </widget>
                       <packing>
                         <property name="top_attach">1</property>
@@ -353,251 +418,442 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="at_spin_year">
+                      <widget class="GtkEntry" id="entRangeEnd">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="adjustment">2007 2007 4000 1 10 10</property>
-                        <property name="climb_rate">1</property>
-                        <signal name="value_changed" handler="on_at_spin_year_changed"/>
+                        <property name="width_chars">3</property>
+                        <signal name="changed" handler="on_entRangeEnd_changed"/>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkAlignment" id="alignment3">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="left_padding">36</property>
+                <child>
+                  <widget class="GtkHBox" id="hbox5">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label8">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label">-</property>
-                        <property name="width_chars">0</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
-                        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkSpinButton" id="at_spin_month">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="adjustment">1 1 12 1 10 10</property>
-                        <property name="climb_rate">1</property>
-                        <signal name="value_changed" handler="on_at_spin_month_changed"/>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">3</property>
-                        <property name="right_attach">4</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkLabel" id="label10">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label">-</property>
-                        <property name="width_chars">0</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
-                        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkSpinButton" id="at_spin_day">
+                      <widget class="GtkLabel" id="lblFixEntity">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="adjustment">1 1 31 1 10 10</property>
-                        <property name="climb_rate">1</property>
-                        <signal name="value_changed" handler="on_at_spin_day_changed"/>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Minute:</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="at_spin_hour">
+                      <widget class="GtkEntry" id="entFix">
+                        <property name="width_request">40</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="adjustment">0 0 24 1 10 10</property>
-                        <property name="climb_rate">1</property>
-                        <signal name="value_changed" handler="on_at_spin_hour_changed"/>
+                        <property name="width_chars">3</property>
+                        <signal name="changed" handler="on_entFix_changed"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="top_attach">6</property>
+                <property name="bottom_attach">7</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkAlignment" id="alignment4">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="left_padding">36</property>
+                <child>
+                  <widget class="GtkHBox" id="hbox6">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label5">
+                      <widget class="GtkLabel" id="lblExpression">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">:</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Expression:</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="at_spin_minute">
+                      <widget class="GtkEntry" id="entExpression">
+                        <property name="width_request">70</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="adjustment">1 0 60 1 10 10</property>
-                        <property name="climb_rate">1</property>
-                        <signal name="value_changed" handler="on_at_spin_minute_changed"/>
+                        <property name="width_chars">8</property>
+                        <signal name="changed" handler="on_entExpression_changed"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">3</property>
-                        <property name="right_attach">4</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                   </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
                 </child>
               </widget>
               <packing>
+                <property name="top_attach">8</property>
+                <property name="bottom_attach">9</property>
+              </packing>
+            </child>
+          </widget>
+        </child>
+        <child>
+          <widget class="GtkHButtonBox" id="hbuttonbox3">
+            <property name="visible">True</property>
+            <property name="spacing">6</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="btnCancel">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">0</property>
+                <signal name="clicked" handler="on_btnCancel_clicked"/>
+                <accelerator key="Escape" signal="clicked"/>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkButton" id="btnOk">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-ok</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">0</property>
+                <signal name="clicked" handler="on_btnOk_clicked"/>
+              </widget>
+              <packing>
                 <property name="position">1</property>
               </packing>
             </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkDialog" id="addWindow">
+    <property name="border_width">12</property>
+    <property name="title" translatable="yes">Add a Scheduled Task</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="select_dialog_vbox">
+        <property name="visible">True</property>
+        <property name="spacing">12</property>
+        <child>
+          <widget class="GtkHBox" id="select_hbox">
+            <property name="visible">True</property>
+            <property name="border_width">12</property>
+            <property name="spacing">12</property>
             <child>
-              <widget class="GtkLabel" id="label6">
+              <widget class="GtkImage" id="select_image">
                 <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">Task:</property>
+                <property name="yalign">0</property>
+                <property name="stock">gtk-dialog-question</property>
+                <property name="icon_size">6</property>
               </widget>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="position">2</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow2">
+              <widget class="GtkVBox" id="select_vbox">
                 <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="spacing">12</property>
                 <child>
-                  <widget class="GtkTextView" id="at_text_task">
-                    <property name="height_request">244</property>
+                  <widget class="GtkLabel" id="select_label">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="left_margin">5</property>
-                    <property name="right_margin">2</property>
-                    <signal name="popup_menu" handler="on_at_text_task_popup_menu"/>
-                    <signal name="key_release_event" handler="on_at_text_task_key_release_event"/>
+                    <property name="xalign">0</property>
+                    <property name="ypad">5</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Select the type of the scheduled task:&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkAlignment" id="select_radio_alignment">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <child>
+                      <widget class="GtkVBox" id="select_vbox">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <widget class="GtkButton" id="button_crontab">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="response_id">0</property>
+                            <signal name="clicked" handler="on_button_crontab_clicked"/>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="button_at">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="response_id">0</property>
+                            <signal name="clicked" handler="on_button_at_clicked"/>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="button_templates">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="response_id">0</property>
+                            <signal name="clicked" handler="on_button_templates_clicked"/>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
-                <property name="position">3</property>
+                <property name="position">1</property>
               </packing>
             </child>
           </widget>
           <packing>
-            <property name="position">1</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">2</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="at_dialog_action_area">
+          <widget class="GtkHButtonBox" id="select_dialog_action_area">
             <property name="visible">True</property>
             <property name="layout_style">GTK_BUTTONBOX_END</property>
             <child>
-              <widget class="GtkButton" id="at_button_template">
+              <placeholder/>
+            </child>
+            <child>
+              <widget class="GtkButton" id="select_cancel_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label" translatable="yes">Add as template</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="on_at_button_template_clicked"/>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-6</property>
+                <signal name="clicked" handler="on_select_cancel_button_clicked"/>
               </widget>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
+                <property name="position">1</property>
               </packing>
             </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkDialog" id="setuserWindow">
+    <property name="title" translatable="yes">Change User</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="setuser_dialog_vbox">
+        <property name="visible">True</property>
+        <property name="spacing">12</property>
+        <child>
+          <widget class="GtkHBox" id="setuser_hbox">
+            <property name="visible">True</property>
+            <property name="border_width">12</property>
+            <property name="spacing">12</property>
+            <child>
+              <widget class="GtkImage" id="setuser_image">
+                <property name="visible">True</property>
+                <property name="yalign">0</property>
+                <property name="stock">gtk-dialog-authentication</property>
+                <property name="icon_size">6</property>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="setuser_vbox">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkLabel" id="setuser_label">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Choose the user whose tasks you want to modify&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkAlignment" id="alignment5">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <widget class="GtkHBox" id="setuser_combobox_hbox">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <widget class="GtkLabel" id="setuser_combobox_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_User:</property>
+                            <property name="use_underline">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkVBox" id="setuser_combobox_vbox">
+                            <property name="visible">True</property>
+                            <property name="homogeneous">True</property>
+                            <child>
+                              <widget class="GtkComboBoxEntry" id="entUser">
+                                <property name="visible">True</property>
+                                <child internal-child="entry">
+                                  <widget class="GtkEntry" id="comboboxentry-entry1"/>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="setuser_dialog_action_area">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
             <child>
-              <widget class="GtkButton" id="at_button_cancel">
+              <widget class="GtkButton" id="setuser_cancel_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="label">gtk-cancel</property>
                 <property name="use_stock">True</property>
                 <property name="response_id">-6</property>
-                <signal name="clicked" handler="on_at_button_cancel_clicked"/>
+                <signal name="clicked" handler="on_setuser_cancel_button_clicked"/>
               </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="at_button_save">
+              <widget class="GtkButton" id="setuser_ok_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label">gtk-add</property>
+                <property name="label">gtk-ok</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="on_at_button_save_clicked"/>
+                <property name="response_id">-5</property>
+                <signal name="clicked" handler="on_setuser_ok_button_clicked"/>
               </widget>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
+                <property name="position">1</property>
               </packing>
             </child>
           </widget>
           <packing>
             <property name="expand">False</property>
-            <property name="fill">False</property>
             <property name="pack_type">GTK_PACK_END</property>
           </packing>
         </child>
       </widget>
     </child>
   </widget>
-  <widget class="GtkWindow" id="cal_window">
-    <property name="can_focus">True</property>
-    <property name="can_default">True</property>
-    <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
-    <property name="type">GTK_WINDOW_POPUP</property>
-    <property name="skip_taskbar_hint">True</property>
-    <property name="skip_pager_hint">True</property>
-    <property name="decorated">False</property>
-    <property name="deletable">False</property>
-    <signal name="focus_out_event" handler="on_cal_lost_focus"/>
-    <signal name="delete_event" handler="on_cal_window_destroy"/>
-    <child>
-      <widget class="GtkCalendar" id="calendar">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="year">2007</property>
-        <property name="month">10</property>
-        <property name="day">21</property>
-        <signal name="month_changed" handler="on_cal_day_selected"/>
-        <signal name="day_selected_double_click" handler="on_cal_day_selected_dc"/>
-        <signal name="day_selected" handler="on_cal_day_selected"/>
-        <signal name="prev_year" handler="on_cal_day_selected"/>
-        <signal name="next_year" handler="on_cal_day_selected"/>
-      </widget>
-    </child>
-  </widget>
   <widget class="GtkWindow" id="crontab_editor">
     <property name="extension_events">GDK_EXTENSION_EVENTS_ALL</property>
     <property name="border_width">12</property>
@@ -626,40 +882,39 @@
                 <property name="column_spacing">6</property>
                 <property name="row_spacing">6</property>
                 <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <widget class="GtkCheckButton" id="cb_nooutput">
+                  <widget class="GtkComboBox" id="combo_output">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">_No output (&gt;/dev/null 2&gt;&amp;1)</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="draw_indicator">True</property>
-                    <signal name="toggled" handler="on_anybasic_entry_changed"/>
+                    <signal name="changed" handler="on_combo_output_changed"/>
                   </widget>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
                     <property name="top_attach">2</property>
                     <property name="bottom_attach">3</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label7">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Description:</property>
+                  </widget>
+                  <packing>
                     <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="entry_task">
+                  <widget class="GtkEntry" id="entry_title">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="text" translatable="yes">ls -l</property>
                     <signal name="changed" handler="on_anybasic_entry_changed"/>
                   </widget>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
@@ -676,24 +931,18 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="entry_title">
+                  <widget class="GtkEntry" id="entry_task">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
+                    <property name="text" translatable="yes">ls -l</property>
                     <signal name="changed" handler="on_anybasic_entry_changed"/>
                   </widget>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label7">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Description:</property>
-                  </widget>
-                  <packing>
-                    <property name="x_options">GTK_FILL</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="y_options"></property>
                   </packing>
                 </child>
               </widget>
@@ -732,15 +981,18 @@
               <placeholder/>
             </child>
             <child>
-              <widget class="GtkComboBox" id="frequency_combobox">
+              <widget class="GtkRadioButton" id="rb_basic">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes">Every hour</property>
-                <signal name="changed" handler="on_frequency_combobox_changed"/>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Basic</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
+                <signal name="toggled" handler="on_rb_basic_toggled"/>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="y_options">GTK_FILL</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
               </packing>
             </child>
             <child>
@@ -762,18 +1014,15 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkRadioButton" id="rb_basic">
+              <widget class="GtkComboBox" id="frequency_combobox">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="label" translatable="yes">Basic</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <property name="draw_indicator">True</property>
-                <signal name="toggled" handler="on_rb_basic_toggled"/>
+                <property name="items" translatable="yes">Every hour</property>
+                <signal name="changed" handler="on_frequency_combobox_changed"/>
               </widget>
               <packing>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="y_options">GTK_FILL</property>
               </packing>
             </child>
           </widget>
@@ -795,75 +1044,75 @@
                 <property name="column_spacing">6</property>
                 <property name="row_spacing">3</property>
                 <child>
-                  <widget class="GtkEntry" id="minute_entry">
+                  <widget class="GtkLabel" id="label26">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="text" translatable="yes">0</property>
-                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Weekday:</property>
                   </widget>
                   <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">GTK_FILL</property>
+                    <property name="y_options"></property>
+                    <property name="x_padding">5</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="hour_entry">
+                  <widget class="GtkLabel" id="label25">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="text" translatable="yes">*</property>
-                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Month:</property>
                   </widget>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                    <property name="x_padding">5</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="day_entry">
+                  <widget class="GtkLabel" id="label18">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="text" translatable="yes">*</property>
-                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Minute:</property>
                   </widget>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                    <property name="x_padding">5</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="month_entry">
+                  <widget class="GtkLabel" id="label19">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="text" translatable="yes">*</property>
-                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Hour:</property>
                   </widget>
                   <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="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                    <property name="x_padding">5</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="weekday_entry">
+                  <widget class="GtkLabel" id="label20">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="text" translatable="yes">*</property>
-                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Day:</property>
                   </widget>
                   <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="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                    <property name="x_padding">5</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkButton" id="help_weekday">
+                  <widget class="GtkButton" id="help_minute">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="label">gtk-edit</property>
@@ -874,14 +1123,12 @@
                   <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"></property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkButton" id="help_month">
+                  <widget class="GtkButton" id="help_hour">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="label">gtk-edit</property>
@@ -892,8 +1139,8 @@
                   <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="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
                     <property name="x_options"></property>
                     <property name="y_options"></property>
                   </packing>
@@ -917,7 +1164,7 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkButton" id="help_hour">
+                  <widget class="GtkButton" id="help_month">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="label">gtk-edit</property>
@@ -928,14 +1175,14 @@
                   <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="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
                     <property name="x_options"></property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkButton" id="help_minute">
+                  <widget class="GtkButton" id="help_weekday">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="label">gtk-edit</property>
@@ -946,76 +1193,78 @@
                   <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"></property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label20">
+                  <widget class="GtkEntry" id="weekday_entry">
                     <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Day:</property>
+                    <property name="can_focus">True</property>
+                    <property name="text" translatable="yes">*</property>
+                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
                   </widget>
                   <packing>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                    <property name="x_padding">5</property>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">4</property>
+                    <property name="bottom_attach">5</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label19">
+                  <widget class="GtkEntry" id="month_entry">
                     <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Hour:</property>
+                    <property name="can_focus">True</property>
+                    <property name="text" translatable="yes">*</property>
+                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
                   </widget>
                   <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                    <property name="x_padding">5</property>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label18">
+                  <widget class="GtkEntry" id="day_entry">
                     <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Minute:</property>
+                    <property name="can_focus">True</property>
+                    <property name="text" translatable="yes">*</property>
+                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
                   </widget>
                   <packing>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                    <property name="x_padding">5</property>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label25">
+                  <widget class="GtkEntry" id="hour_entry">
                     <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Month:</property>
+                    <property name="can_focus">True</property>
+                    <property name="text" translatable="yes">*</property>
+                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
                   </widget>
                   <packing>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                    <property name="x_padding">5</property>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label26">
+                  <widget class="GtkEntry" id="minute_entry">
                     <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Weekday:</property>
+                    <property name="can_focus">True</property>
+                    <property name="text" translatable="yes">0</property>
+                    <signal name="changed" handler="on_anyadvanced_entry_changed"/>
                   </widget>
                   <packing>
-                    <property name="top_attach">4</property>
-                    <property name="bottom_attach">5</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                    <property name="x_padding">5</property>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
                   </packing>
                 </child>
               </widget>
@@ -1094,360 +1343,105 @@
                     <property name="label">gtk-cancel</property>
                     <property name="use_stock">True</property>
                     <property name="response_id">0</property>
-                    <signal name="clicked" handler="on_button_cancel_clicked"/>
-                    <accelerator key="Escape" signal="clicked"/>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkButton" id="button_apply">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="can_default">True</property>
-                    <property name="label">gtk-add</property>
-                    <property name="use_stock">True</property>
-                    <property name="response_id">0</property>
-                    <signal name="clicked" handler="on_button_apply_clicked"/>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">6</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkDialog" id="setuserWindow">
-    <property name="title" translatable="yes">Change User</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="setuser_dialog_vbox">
-        <property name="visible">True</property>
-        <property name="spacing">12</property>
-        <child>
-          <widget class="GtkHBox" id="setuser_hbox">
-            <property name="visible">True</property>
-            <property name="border_width">12</property>
-            <property name="spacing">12</property>
-            <child>
-              <widget class="GtkImage" id="setuser_image">
-                <property name="visible">True</property>
-                <property name="yalign">0</property>
-                <property name="stock">gtk-dialog-authentication</property>
-                <property name="icon_size">6</property>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkVBox" id="setuser_vbox">
-                <property name="visible">True</property>
-                <property name="spacing">12</property>
-                <child>
-                  <widget class="GtkLabel" id="setuser_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Choose the user whose tasks you want to modify&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkAlignment" id="alignment5">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <widget class="GtkHBox" id="setuser_combobox_hbox">
-                        <property name="visible">True</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <widget class="GtkLabel" id="setuser_combobox_label">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">_User:</property>
-                            <property name="use_underline">True</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkVBox" id="setuser_combobox_vbox">
-                            <property name="visible">True</property>
-                            <property name="homogeneous">True</property>
-                            <child>
-                              <widget class="GtkComboBoxEntry" id="entUser">
-                                <property name="visible">True</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="comboboxentry-entry1"/>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="setuser_dialog_action_area">
-            <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <widget class="GtkButton" id="setuser_cancel_button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label">gtk-cancel</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">-6</property>
-                <signal name="clicked" handler="on_setuser_cancel_button_clicked"/>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkButton" id="setuser_ok_button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label">gtk-ok</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">-5</property>
-                <signal name="clicked" handler="on_setuser_ok_button_clicked"/>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkDialog" id="addWindow">
-    <property name="border_width">12</property>
-    <property name="title" translatable="yes">Add a Scheduled Task</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="select_dialog_vbox">
-        <property name="visible">True</property>
-        <property name="spacing">12</property>
-        <child>
-          <widget class="GtkHBox" id="select_hbox">
-            <property name="visible">True</property>
-            <property name="border_width">12</property>
-            <property name="spacing">12</property>
-            <child>
-              <widget class="GtkImage" id="select_image">
-                <property name="visible">True</property>
-                <property name="yalign">0</property>
-                <property name="stock">gtk-dialog-question</property>
-                <property name="icon_size">6</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkVBox" id="select_vbox">
-                <property name="visible">True</property>
-                <property name="spacing">12</property>
-                <child>
-                  <widget class="GtkLabel" id="select_label">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="ypad">5</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Select the type of the scheduled task:&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
+                    <signal name="clicked" handler="on_button_cancel_clicked"/>
+                    <accelerator key="Escape" signal="clicked"/>
                   </widget>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkAlignment" id="select_radio_alignment">
+                  <widget class="GtkButton" id="button_apply">
                     <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <child>
-                      <widget class="GtkVBox" id="select_vbox">
-                        <property name="visible">True</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <widget class="GtkButton" id="button_crontab">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="response_id">0</property>
-                            <signal name="clicked" handler="on_button_crontab_clicked"/>
-                            <child>
-                              <placeholder/>
-                            </child>
-                          </widget>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="button_at">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="response_id">0</property>
-                            <signal name="clicked" handler="on_button_at_clicked"/>
-                            <child>
-                              <placeholder/>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="button_templates">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="response_id">0</property>
-                            <signal name="clicked" handler="on_button_templates_clicked"/>
-                            <child>
-                              <placeholder/>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
+                    <property name="can_focus">True</property>
+                    <property name="can_default">True</property>
+                    <property name="label">gtk-add</property>
+                    <property name="use_stock">True</property>
+                    <property name="response_id">0</property>
+                    <signal name="clicked" handler="on_button_apply_clicked"/>
                   </widget>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="position">1</property>
+                    <property name="position">2</property>
                   </packing>
                 </child>
               </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
             </child>
           </widget>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="select_dialog_action_area">
-            <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <widget class="GtkButton" id="select_cancel_button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label">gtk-cancel</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">-6</property>
-                <signal name="clicked" handler="on_select_cancel_button_clicked"/>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
+            <property name="position">6</property>
           </packing>
         </child>
       </widget>
     </child>
   </widget>
-  <widget class="GtkWindow" id="crontabEditorHelper">
-    <property name="border_width">12</property>
-    <property name="title" translatable="yes">Time expression help</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+  <widget class="GtkWindow" id="cal_window">
+    <property name="can_focus">True</property>
+    <property name="can_default">True</property>
+    <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+    <property name="type">GTK_WINDOW_POPUP</property>
     <property name="skip_taskbar_hint">True</property>
     <property name="skip_pager_hint">True</property>
+    <property name="decorated">False</property>
+    <property name="deletable">False</property>
+    <signal name="focus_out_event" handler="on_cal_lost_focus"/>
+    <signal name="delete_event" handler="on_cal_window_destroy"/>
     <child>
-      <widget class="GtkVBox" id="vbox5">
+      <widget class="GtkCalendar" id="calendar">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="year">2007</property>
+        <property name="month">10</property>
+        <property name="day">21</property>
+        <signal name="month_changed" handler="on_cal_day_selected"/>
+        <signal name="day_selected_double_click" handler="on_cal_day_selected_dc"/>
+        <signal name="day_selected" handler="on_cal_day_selected"/>
+        <signal name="prev_year" handler="on_cal_day_selected"/>
+        <signal name="next_year" handler="on_cal_day_selected"/>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkDialog" id="at_editor">
+    <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+    <property name="border_width">12</property>
+    <property name="title">Edit a one-time task</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="default_width">430</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="has_separator">False</property>
+    <signal name="event" handler="on_at_editor_size_changed"/>
+    <signal name="delete_event" handler="on_at_editor_delete"/>
+    <signal name="set_focus" handler="on_cal_lost_focus"/>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="at_dialog_vbox">
         <property name="visible">True</property>
         <property name="spacing">12</property>
         <child>
-          <widget class="GtkTable" id="table4">
+          <widget class="GtkVBox" id="vbox8">
             <property name="visible">True</property>
-            <property name="n_rows">9</property>
-            <property name="column_spacing">5</property>
-            <property name="row_spacing">1</property>
+            <property name="spacing">6</property>
             <child>
-              <widget class="GtkAlignment" id="alignment4">
+              <widget class="GtkHBox" id="title_box">
                 <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="left_padding">36</property>
+                <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkHBox" id="hbox6">
+                  <placeholder/>
+                </child>
+                <child>
+                  <widget class="GtkVBox" id="vbox14">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="lblExpression">
+                      <widget class="GtkLabel" id="label1">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Expression:</property>
+                        <property name="label" translatable="yes">Task description:</property>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
@@ -1455,476 +1449,529 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="entExpression">
-                        <property name="width_request">70</property>
+                      <widget class="GtkEntry" id="at_entry_title">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="width_chars">8</property>
-                        <signal name="changed" handler="on_entExpression_changed"/>
+                        <signal name="changed" handler="on_at_entry_title_changed"/>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
-                        <property name="pack_type">GTK_PACK_END</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
                   </widget>
+                  <packing>
+                    <property name="padding">5</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
-                <property name="top_attach">8</property>
-                <property name="bottom_attach">9</property>
+                <property name="expand">False</property>
+                <property name="padding">5</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment3">
+              <widget class="GtkVBox" id="at_vbox_time">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="left_padding">36</property>
                 <child>
-                  <widget class="GtkHBox" id="hbox5">
+                  <widget class="GtkLabel" id="label2">
                     <property name="visible">True</property>
-                    <property name="spacing">6</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Execute at:</property>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkTable" id="table3">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="n_rows">2</property>
+                    <property name="n_columns">7</property>
+                    <property name="column_spacing">5</property>
+                    <property name="row_spacing">5</property>
                     <child>
-                      <widget class="GtkLabel" id="lblFixEntity">
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <widget class="GtkSpinButton" id="at_spin_minute">
                         <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Minute:</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">1 0 60 1 10 10</property>
+                        <property name="climb_rate">1</property>
+                        <signal name="value_changed" handler="on_at_spin_minute_changed"/>
                       </widget>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="entFix">
-                        <property name="width_request">40</property>
+                      <widget class="GtkLabel" id="label5">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="width_chars">3</property>
-                        <signal name="changed" handler="on_entFix_changed"/>
+                        <property name="label" translatable="yes">:</property>
                       </widget>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="pack_type">GTK_PACK_END</property>
-                        <property name="position">1</property>
+                        <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">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
                       </packing>
                     </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="top_attach">6</property>
-                <property name="bottom_attach">7</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkAlignment" id="alignment2">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="left_padding">36</property>
-                <child>
-                  <widget class="GtkTable" id="table1">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="n_rows">2</property>
-                    <property name="n_columns">2</property>
-                    <property name="column_spacing">6</property>
-                    <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkEntry" id="entRangeEnd">
+                      <widget class="GtkSpinButton" id="at_spin_hour">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="width_chars">3</property>
-                        <signal name="changed" handler="on_entRangeEnd_changed"/>
+                        <property name="adjustment">0 0 24 1 10 10</property>
+                        <property name="climb_rate">1</property>
+                        <signal name="value_changed" handler="on_at_spin_hour_changed"/>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="lblRangeEnd">
+                      <widget class="GtkSpinButton" id="at_spin_day">
                         <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">To:</property>
-                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">1 1 31 1 10 10</property>
+                        <property name="climb_rate">1</property>
+                        <signal name="value_changed" handler="on_at_spin_day_changed"/>
                       </widget>
                       <packing>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="lblRangeStart">
+                      <widget class="GtkLabel" id="label10">
                         <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">From:</property>
-                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label">-</property>
+                        <property name="width_chars">0</property>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
+                        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkSpinButton" id="at_spin_month">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">1 1 12 1 10 10</property>
+                        <property name="climb_rate">1</property>
+                        <signal name="value_changed" handler="on_at_spin_month_changed"/>
                       </widget>
+                      <packing>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                      </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="entRangeStart">
+                      <widget class="GtkLabel" id="label8">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label">-</property>
+                        <property name="width_chars">0</property>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkSpinButton" id="at_spin_year">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="width_chars">3</property>
-                        <signal name="changed" handler="on_entRangeStart_changed"/>
+                        <property name="adjustment">2007 2007 4000 1 10 10</property>
+                        <property name="climb_rate">1</property>
+                        <signal name="value_changed" handler="on_at_spin_year_changed"/>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="top_attach">4</property>
-                <property name="bottom_attach">5</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkAlignment" id="alignment1">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="left_padding">36</property>
-                <child>
-                  <widget class="GtkHBox" id="hbox2">
-                    <property name="visible">True</property>
-                    <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="lblEveryEntity">
+                      <widget class="GtkLabel" id="label4">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Minutes:</property>
+                        <property name="xpad">15</property>
+                        <property name="label" translatable="yes">Time:</property>
                       </widget>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="entEvery">
-                        <property name="width_request">40</property>
+                      <widget class="GtkLabel" id="label3">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="width_chars">3</property>
-                        <signal name="changed" handler="on_entEvery_changed"/>
+                        <property name="xalign">0</property>
+                        <property name="xpad">15</property>
+                        <property name="label" translatable="yes">Date:</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkAlignment" id="align_cal">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <child>
+                          <widget class="GtkToggleButton" id="cal_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="response_id">0</property>
+                            <signal name="toggled" handler="on_cal_button_toggled"/>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </widget>
+                        </child>
                       </widget>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="pack_type">GTK_PACK_END</property>
-                        <property name="position">1</property>
+                        <property name="left_attach">6</property>
+                        <property name="right_attach">7</property>
                       </packing>
                     </child>
                   </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkRadioButton" id="radOth">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">See "man 5 crontab" for information about the crontab format.</property>
-                <property name="label" translatable="yes">Other</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <property name="draw_indicator">True</property>
-                <signal name="toggled" handler="on_radFix_toggled"/>
-              </widget>
-              <packing>
-                <property name="top_attach">7</property>
-                <property name="bottom_attach">8</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkRadioButton" id="radFix">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">Execution at a specific minute, hour, day, weekday or month.</property>
-                <property name="label" translatable="yes">At an exact minute</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <property name="draw_indicator">True</property>
-                <property name="group">radOth</property>
-                <signal name="toggled" handler="on_radFix_toggled"/>
-              </widget>
-              <packing>
-                <property name="top_attach">5</property>
-                <property name="bottom_attach">6</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkRadioButton" id="radRange">
+              <widget class="GtkLabel" id="label6">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">Execution in a range.</property>
-                <property name="label" translatable="yes">In a range</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <property name="draw_indicator">True</property>
-                <property name="group">radOth</property>
-                <signal name="toggled" handler="on_radRange_toggled"/>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Task:</property>
               </widget>
               <packing>
-                <property name="top_attach">3</property>
-                <property name="bottom_attach">4</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkRadioButton" id="radAll">
+              <widget class="GtkScrolledWindow" id="scrolledwindow2">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">Execution at every minute, hour, day, weekday or month.</property>
-                <property name="label" translatable="yes">Every minute</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <property name="active">True</property>
-                <property name="draw_indicator">True</property>
-                <property name="group">radOth</property>
-                <signal name="toggled" handler="on_radAll_toggled"/>
+                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <child>
+                  <widget class="GtkTextView" id="at_text_task">
+                    <property name="height_request">244</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="left_margin">5</property>
+                    <property name="right_margin">2</property>
+                    <signal name="popup_menu" handler="on_at_text_task_popup_menu"/>
+                    <signal name="key_release_event" handler="on_at_text_task_key_release_event"/>
+                  </widget>
+                </child>
               </widget>
               <packing>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="position">3</property>
               </packing>
             </child>
+          </widget>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="at_dialog_action_area">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
             <child>
-              <widget class="GtkRadioButton" id="radEvery">
+              <widget class="GtkButton" id="at_button_template">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">Execution at a step width. For example every five minutes, hours, days, weekdays or months.</property>
-                <property name="label" translatable="yes">In a step width</property>
+                <property name="can_default">True</property>
+                <property name="label" translatable="yes">Add as template</property>
                 <property name="use_underline">True</property>
                 <property name="response_id">0</property>
-                <property name="draw_indicator">True</property>
-                <property name="group">radOth</property>
-                <signal name="toggled" handler="on_radEvery_toggled"/>
+                <signal name="clicked" handler="on_at_button_template_clicked"/>
               </widget>
               <packing>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
               </packing>
             </child>
-          </widget>
-        </child>
-        <child>
-          <widget class="GtkHButtonBox" id="hbuttonbox3">
-            <property name="visible">True</property>
-            <property name="spacing">6</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
             <child>
-              <widget class="GtkButton" id="btnCancel">
+              <widget class="GtkButton" id="at_button_cancel">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="label">gtk-cancel</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="on_btnCancel_clicked"/>
-                <accelerator key="Escape" signal="clicked"/>
+                <property name="response_id">-6</property>
+                <signal name="clicked" handler="on_at_button_cancel_clicked"/>
               </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="btnOk">
+              <widget class="GtkButton" id="at_button_save">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label">gtk-ok</property>
+                <property name="label">gtk-add</property>
                 <property name="use_stock">True</property>
                 <property name="response_id">0</property>
-                <signal name="clicked" handler="on_btnOk_clicked"/>
+                <signal name="clicked" handler="on_at_button_save_clicked"/>
               </widget>
               <packing>
-                <property name="position">1</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
               </packing>
             </child>
           </widget>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
-            <property name="position">1</property>
+            <property name="pack_type">GTK_PACK_END</property>
           </packing>
         </child>
       </widget>
     </child>
   </widget>
-  <widget class="GtkWindow" id="mainWindow">
-    <property name="visible">True</property>
-    <property name="title" translatable="yes">Configure Scheduled Tasks</property>
-    <property name="default_width">700</property>
-    <property name="default_height">400</property>
-    <signal name="delete_event" handler="on_mainWindow_delete_event"/>
-    <signal name="window_state_event" handler="on_mainWindow_window_state_event"/>
+  <widget class="GtkWindow" id="template_manager">
+    <property name="width_request">500</property>
+    <property name="height_request">300</property>
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Manage templates</property>
+    <property name="modal">True</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="skip_pager_hint">True</property>
+    <property name="transient_for">mainWindow</property>
     <child>
-      <widget class="GtkVBox" id="main_vbox">
+      <widget class="GtkVBox" id="vbox2">
         <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <child>
-          <widget class="GtkToolbar" id="toolbar">
+          <widget class="GtkToolbar" id="toolbar1">
             <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="toolbar_style">GTK_TOOLBAR_BOTH_HORIZ</property>
             <child>
-              <widget class="GtkToolButton" id="prop_button">
+              <widget class="GtkToolButton" id="tm_button_new">
                 <property name="visible">True</property>
-                <property name="tooltip" translatable="yes">Edit a scheduled task</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="tooltip" translatable="yes">Create a new template.</property>
                 <property name="is_important">True</property>
-                <property name="stock_id">gtk-edit</property>
-                <signal name="clicked" handler="on_prop_button_clicked"/>
+                <property name="stock_id">gtk-new</property>
+                <signal name="clicked" handler="on_tm_button_new_clicked"/>
               </widget>
               <packing>
                 <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="del_button">
+              <widget class="GtkToolButton" id="tm_button_edit">
                 <property name="visible">True</property>
-                <property name="tooltip" translatable="yes">Delete a scheduled task</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="tooltip" translatable="yes">Edit the selected template</property>
                 <property name="is_important">True</property>
-                <property name="stock_id">gtk-delete</property>
-                <signal name="clicked" handler="on_del_button_clicked"/>
+                <property name="stock_id">gtk-edit</property>
+                <signal name="clicked" handler="on_tm_button_edit_clicked"/>
               </widget>
               <packing>
                 <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="run_button">
+              <widget class="GtkToolButton" id="tm_button_delete">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip_text">Run the selected task</property>
-                <property name="tooltip" translatable="yes">Run selected task</property>
-                <property name="label" translatable="yes">Run task</property>
-                <property name="stock_id">gtk-execute</property>
-                <signal name="clicked" handler="on_run_button_clicked"/>
+                <property name="tooltip" translatable="yes">Delete the selected template</property>
+                <property name="is_important">True</property>
+                <property name="stock_id">gtk-delete</property>
+                <signal name="clicked" handler="on_tm_button_delete_clicked"/>
               </widget>
               <packing>
                 <property name="homogeneous">True</property>
               </packing>
             </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkScrolledWindow" id="scrolledwindow3">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
             <child>
-              <widget class="GtkToolItem" id="toolitem1">
-                <property name="visible">True</property>
-                <child>
-                  <widget class="GtkVSeparator" id="vseparator1">
-                    <property name="visible">True</property>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkToolButton" id="button_m_template">
+              <widget class="GtkTreeView" id="tm_treeview">
                 <property name="visible">True</property>
+                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="tooltip_text">Manage templates</property>
-                <property name="tooltip" translatable="yes">Manage templates</property>
-                <property name="label" translatable="yes">Templates</property>
-                <signal name="clicked" handler="on_button_m_template_clicked"/>
-              </widget>
-              <packing>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkToggleToolButton" id="edit_mode_button">
-                <property name="visible">True</property>
-                <property name="tooltip" translatable="yes">Change edit mode</property>
-                <property name="is_important">True</property>
-                <property name="label" translatable="yes">Advanced</property>
-                <property name="use_underline">True</property>
-                <property name="stock_id">gtk-dialog-warning</property>
-                <signal name="clicked" handler="on_edit_mode_button_clicked"/>
-              </widget>
-              <packing>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkToolButton" id="btnSetUser">
-                <property name="tooltip" translatable="yes">Choose the user whose tasks you want to modify</property>
-                <property name="is_important">True</property>
-                <property name="label" translatable="yes">Change User</property>
-                <property name="use_underline">True</property>
-                <property name="stock_id">gtk-dialog-authentication</property>
-                <signal name="clicked" handler="on_btnSetUser_clicked"/>
+                <signal name="button_press_event" handler="on_tm_treeview_button_press_event"/>
               </widget>
-              <packing>
-                <property name="homogeneous">True</property>
-              </packing>
             </child>
+          </widget>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkHButtonBox" id="tm_hbuttonbox">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="border_width">5</property>
+            <property name="spacing">5</property>
+            <property name="layout_style">GTK_BUTTONBOX_EDGE</property>
             <child>
-              <widget class="GtkToolButton" id="help_button">
+              <widget class="GtkButton" id="tm_button_cancel">
                 <property name="visible">True</property>
-                <property name="tooltip" translatable="yes">Show help</property>
-                <property name="stock_id">gtk-help</property>
-                <signal name="clicked" handler="on_help_button_clicked"/>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">0</property>
+                <signal name="clicked" handler="on_tm_button_cancel_clicked"/>
+                <accelerator key="Escape" signal="clicked"/>
               </widget>
-              <packing>
-                <property name="homogeneous">True</property>
-              </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="about_button">
+              <widget class="GtkButton" id="tm_button_use">
                 <property name="visible">True</property>
-                <property name="tooltip" translatable="yes">About Gnome-schedule</property>
-                <property name="stock_id">gtk-about</property>
-                <signal name="clicked" handler="on_about_menu_activate"/>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="tooltip" translatable="yes">Create a new task from the selected template</property>
+                <property name="response_id">0</property>
+                <signal name="clicked" handler="on_tm_button_use_clicked"/>
+                <child>
+                  <placeholder/>
+                </child>
               </widget>
               <packing>
-                <property name="homogeneous">True</property>
+                <property name="position">1</property>
               </packing>
             </child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="padding">5</property>
+            <property name="position">2</property>
           </packing>
         </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkWindow" id="template_chooser">
+    <property name="width_request">450</property>
+    <property name="height_request">300</property>
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Choose template</property>
+    <property name="modal">True</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="skip_pager_hint">True</property>
+    <property name="transient_for">template_manager</property>
+    <child>
+      <widget class="GtkVBox" id="vbox4">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <child>
-          <widget class="GtkScrolledWindow" id="main_scrolledwindow">
+          <widget class="GtkHBox" id="hbox9">
             <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="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <child>
-              <widget class="GtkTreeView" id="treeview">
+              <widget class="GtkScrolledWindow" id="scrolledwindow5">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">Scheduled and active tasks</property>
-                <signal name="button_press_event" handler="on_treeview_button_press_event"/>
-                <signal name="key_press_event" handler="on_treeview_key_press_event"/>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <child>
+                  <widget class="GtkTreeView" id="tc_treeview">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <signal name="button_press_event" handler="on_tc_treeview_button_press_event"/>
+                  </widget>
+                </child>
               </widget>
             </child>
           </widget>
-          <packing>
-            <property name="position">1</property>
-          </packing>
         </child>
         <child>
-          <widget class="GtkStatusbar" id="statusbar">
+          <widget class="GtkHButtonBox" id="hbuttonbox5">
             <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="border_width">5</property>
+            <property name="spacing">5</property>
+            <property name="layout_style">GTK_BUTTONBOX_EDGE</property>
+            <child>
+              <widget class="GtkButton" id="tc_button_cancel">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">0</property>
+                <signal name="clicked" handler="on_tc_button_cancel_clicked"/>
+                <accelerator key="Escape" signal="clicked"/>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkButton" id="tc_button_use">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="tooltip" translatable="yes">Create a new task from the selected template</property>
+                <property name="response_id">0</property>
+                <signal name="clicked" handler="on_tc_button_use_clicked"/>
+                <child>
+                  <placeholder/>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
           </widget>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
-            <property name="position">4</property>
+            <property name="padding">5</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </widget>

Modified: branches/x-output-support/src/template_manager.py
==============================================================================
--- branches/x-output-support/src/template_manager.py	(original)
+++ branches/x-output-support/src/template_manager.py	Mon Dec  8 01:13:34 2008
@@ -129,7 +129,7 @@
 		self.reload_tv ()
 		
 	def on_new_clicked (self, *args):
-		self.parent.addWindow.ShowAddWindow (self.widget, 1)
+		relf.parent.addWindow.ShowAddWindow (self.widget, 1)
 	
 	def on_delete_clicked (self, *args):
 		store, iter = self.treeview.get_selection().get_selected()

Modified: branches/x-output-support/src/xwrapper.py.in
==============================================================================
--- branches/x-output-support/src/xwrapper.py.in	(original)
+++ branches/x-output-support/src/xwrapper.py.in	Mon Dec  8 01:13:34 2008
@@ -100,7 +100,7 @@
 		print _("len(display)<2: No proper DISPLAY variable")
 		sys.exit ()
 		
-	#### TODO: LAUNCH ####
+	#TODO: Check for DISPLAY and user
 	ex = "export DISPLAY=" + display + " " + command
 	os.system (ex)
 	sys.exit ()



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