gnome-schedule r1120 - in branches/x-output-support: . src
- From: gauteh svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-schedule r1120 - in branches/x-output-support: . src
- Date: Sun, 14 Dec 2008 00:00:45 +0000 (UTC)
Author: gauteh
Date: Sun Dec 14 00:00:45 2008
New Revision: 1120
URL: http://svn.gnome.org/viewvc/gnome-schedule?rev=1120&view=rev
Log:
x-support for at
Modified:
branches/x-output-support/ChangeLog
branches/x-output-support/src/at.py
branches/x-output-support/src/atEditor.py
branches/x-output-support/src/gnome-schedule.glade
branches/x-output-support/src/template.py
branches/x-output-support/src/template_chooser.py
branches/x-output-support/src/template_manager.py
Modified: branches/x-output-support/src/at.py
==============================================================================
--- branches/x-output-support/src/at.py (original)
+++ branches/x-output-support/src/at.py Sun Dec 14 00:00:45 2008
@@ -54,15 +54,16 @@
self.atRecordRegexAdd = re.compile('^job\s([0-9]+)\sat')
self.atRecordRegexAdded = re.compile('[^\s]+\s([0-9]+)\sat')
- self.nooutput = 0
self.SCRIPT_DELIMITER = "###### ---- GNOME_SCHEDULE_SCRIPT_DELIMITER #####"
+ self.DISPLAY = "DISPLAY=%s; export DISPLAY\n"
+
# If normally this variable is unset the user would not expect it
# to be set, which it will be because Gnome Schedule needs it.
# Therefore we unset it in the script.
self.POSIXLY_CORRECT_UNSET = "unset POSIXLY_CORRECT\n"
- self.atdatafileversion = 4
+ self.atdatafileversion = 5
self.atdata = self.user_home_dir + "/.gnome/gnome-schedule/at"
if os.path.exists (self.user_home_dir + "/.gnome") != True:
os.mkdir (self.user_home_dir + "/.gnome", 0700)
@@ -139,13 +140,13 @@
class_id = m.groups ()[6]
user = m.groups ()[7]
- success, title, desc, manual_poscorrect = self.get_job_data (int (job_id))
+ success, title, desc, manual_poscorrect, output, display = self.get_job_data (int (job_id))
# manual_poscorrect is only used during preparation of script
execute = config.getAtbin() + " -c " + job_id
# read lines and detect starter
script = os.popen(execute).read()
- script, prelen, dangerous = self.__prepare_script__ (script, manual_poscorrect)
+ script, dangerous = self.__prepare_script__ (script, manual_poscorrect, output, display)
#removing ending newlines, but keep one
#if a date in the past is selected the record is removed by at, this creates an error, and generally if the script is of zero length
@@ -162,7 +163,7 @@
else:
done = 1
- return job_id, date, time, class_id, user, script, title, prelen, dangerous
+ return job_id, date, time, class_id, user, script, title, dangerous, output
elif (output == False):
if len (line) > 1 and line[0] != '#':
@@ -213,14 +214,29 @@
elif manual_poscorrect == "false":
manual_poscorrect_b = False
+ if ver >= 5:
+ output_str = d[7:d.find ("\n")]
+ output = int (output_str)
+ d = d[d.find("\n") + 1:]
+ else:
+ output = 0
+
+ if ver >= 5:
+ display = d[8:d.find ("\n")]
+ d = d[d.find ("\n") + 1:]
+ if (len (display) < 1) or (output == 0):
+ display = ""
+ else:
+ display = ""
+
fh.close ()
- return True, title, desc, manual_poscorrect_b
+ return True, title, desc, manual_poscorrect_b, output, display
else:
return False, "", "", False, 0, ""
- def write_job_data (self, job_id, title, desc):
+ def write_job_data (self, job_id, title, desc, output, display):
# Create and write data file
f = os.path.join (self.atdata, str(job_id))
#print f
@@ -236,6 +252,10 @@
fh.write ("manual_poscorrect=true\n")
else:
fh.write ("manual_poscorrect=false\n")
+
+ fh.write ("output=" + str (output) + "\n")
+ fh.write ("display=" + display + "\n")
+
fh.close ()
os.chown (f, self.uid, self.gid)
os.chmod (f, 0600)
@@ -365,13 +385,19 @@
return True, "ok"
- def append (self, runat, command, title):
+ def append (self, runat, command, title, output):
tmpfile = tempfile.mkstemp ()
fd, path = tmpfile
tmp = os.fdopen(fd, 'w')
tmp.write (self.SCRIPT_DELIMITER + "\n")
if self.manual_poscorrect:
tmp.write (self.POSIXLY_CORRECT_UNSET)
+
+ display = ""
+ if output > 0:
+ display = os.getenv ('DISPLAY')
+ tmp.write (self.DISPLAY % display)
+
tmp.write (command + "\n")
tmp.close ()
@@ -401,12 +427,12 @@
#print job_id
desc = ""
- self.write_job_data (job_id, title, desc)
+ self.write_job_data (job_id, title, desc, output, display)
os.unlink (path)
- def update (self, job_id, runat, command, title):
+ def update (self, job_id, runat, command, title, output):
#print "update" + str (job_id) + runat + command + title
#remove old
f = os.path.join (self.atdata, str (job_id))
@@ -423,6 +449,12 @@
tmp.write (self.SCRIPT_DELIMITER + "\n")
if self.manual_poscorrect:
tmp.write (self.POSIXLY_CORRECT_UNSET)
+
+ display = ""
+ if output > 0:
+ display = os.getenv ('DISPLAY')
+ tmp.write (self.DISPLAY % display)
+
tmp.write (command + "\n")
tmp.close ()
@@ -449,7 +481,7 @@
#print job_id
desc = ""
- self.write_job_data (job_id, title, desc)
+ self.write_job_data (job_id, title, desc, output, display)
os.unlink (path)
@@ -474,14 +506,13 @@
array_or_false = self.parse (line)
#print array_or_false
if array_or_false != False:
- (job_id, date, time, class_id, user, lines, title, prelen, dangerous) = array_or_false
+ (job_id, date, time, class_id, user, lines, title, dangerous, output) = array_or_false
- preview = self.__make_preview__ (lines, prelen)
+ preview = self.__make_preview__ (lines)
if dangerous == 1:
preview = _("DANGEROUS PARSE: %(preview)s") % {'preview': preview}
#chopping of script delimiter
- lines = lines[prelen:]
lines.strip ()
timestring = "%s %s" % (date, time)
@@ -491,12 +522,12 @@
# TODO: looks like it could be one append
if self.root == 1:
if self.user == user:
- data.append([title, timestring_show, preview, lines, int(job_id), timestring, self, None, date, class_id, user, time, _("Once"), "at", self.nooutput, timestring])
+ data.append([title, timestring_show, preview, lines, int(job_id), timestring, self, None, date, class_id, user, time, _("Once"), "at", output, timestring])
else:
#print "Record omitted, not current user"
pass
else:
- data.append([title, timestring_show, preview, lines, int(job_id), timestring, self, None, date, class_id, user, time, _("Once"), "at", self.nooutput, timestring])
+ data.append([title, timestring_show, preview, lines, int(job_id), timestring, self, None, date, class_id, user, time, _("Once"), "at", output, timestring])
#print _("added %(id)s") % { "id": job_id }
else:
@@ -504,7 +535,7 @@
return data
- def __prepare_script__ (self, script, manual_poscorrect):
+ def __prepare_script__ (self, script, manual_poscorrect, output, display):
# It looks like at prepends a bunch of stuff to each script
# Luckily it delimits that using two newlines
@@ -517,19 +548,21 @@
# If the script is created by Gnome Schedule the script is seperated by a delimiter.
dangerous = 0
- prelen = 0
- string = self.SCRIPT_DELIMITER
- scriptstart = script.find(string)
+ scriptstart = script.find(self.SCRIPT_DELIMITER)
if scriptstart != -1:
script = script[scriptstart:]
if manual_poscorrect == True:
scriptstart = script.find (self.POSIXLY_CORRECT_UNSET)
if scriptstart != -1:
- script = script[scriptstart:]
- prelen = len (self.POSIXLY_CORRECT_UNSET)
+ script = script[scriptstart + len(self.POSIXLY_CORRECT_UNSET):]
else:
- prelen = len(self.SCRIPT_DELIMITER) + 1
+ script = script[len(self.SCRIPT_DELIMITER) + 1:]
+
+ if output > 0:
+ scriptstart = script.find (self.DISPLAY % display)
+ if scriptstart != -1:
+ script = script [scriptstart + len (self.DISPLAY % display):]
else:
dangerous = 1
@@ -560,20 +593,19 @@
else:
icon = None
- return script, prelen, dangerous
+ script = script[prelen:]
+
+ return script, dangerous
- def __make_preview__ (self, lines, prelen, preview_len = 0):
+ def __make_preview__ (self, lines, preview_len = 0):
if preview_len == 0:
preview_len = self.preview_len
- try:
- if prelen:
- result = lines[(0 + prelen):(preview_len + prelen)]
- else:
- result = lines[0:preview_len]
- except:
- #print "short preview"
- result = lines[prelen:(-1 - prelen)]
+
+ if len (lines) > preview_len:
+ result = lines[0:preview_len]
+ else:
+ result = lines
result = result.replace("\n",";")
result = result.replace ("&", "&")
Modified: branches/x-output-support/src/atEditor.py
==============================================================================
--- branches/x-output-support/src/atEditor.py (original)
+++ branches/x-output-support/src/atEditor.py Sun Dec 14 00:00:45 2008
@@ -53,7 +53,8 @@
self.text_task_buffer = self.text_task.get_buffer()
self.button_add_template = self.xml.get_widget ("at_button_template")
self.at_vbox_time = self.xml.get_widget ("at_vbox_time")
-
+
+ self.cb_xoutput = self.xml.get_widget ("cb_xoutput")
self.spin_hour = self.xml.get_widget ("at_spin_hour")
self.spin_minute = self.xml.get_widget ("at_spin_minute")
@@ -82,6 +83,7 @@
self.cal_button.show_all ()
self.xml.signal_connect ("on_cal_button_toggled", self.on_cal_button_toggled)
+ self.xml.signal_connect ("on_cb_xoutput_toggled", self.on_cb_xoutput_toggled)
self.cal_loaded = False
self.x, self.y = self.widget.get_position ()
@@ -126,15 +128,19 @@
self.__setup_calendar__ ()
self.button_add_template.show ()
self.widget.show_all ()
+ self.output = 0
+ self.cb_xoutput.set_active (0)
self.__update_textboxes__()
- def showadd_template (self, transient, title, command):
+ def showadd_template (self, transient, title, command, output):
self.button_save.set_label (gtk.STOCK_ADD)
self.__reset__ ()
self.title = title
self.command = command
self.mode = 0 # add new task
+ self.output = output
+ self.cb_xoutput.set_active (output)
self.widget.set_title(_("Create a New Scheduled Task"))
self.widget.set_transient_for(transient)
self.widget.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
@@ -144,14 +150,15 @@
self.__update_textboxes__()
- def showedit_template (self, transient, id, title, command):
+ def showedit_template (self, transient, id, title, command, output):
self.button_save.set_label (gtk.STOCK_ADD)
self.__reset__ ()
self.tid = id
self.title = title
self.command = command
self.mode = 2 # edit template
-
+ self.output = output
+ self.cb_xoutput.set_active (output)
self.widget.set_title(_("Edit template"))
self.widget.set_transient_for(transient)
self.widget.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
@@ -172,7 +179,8 @@
self.__reset__ ()
self.tid = 0
self.mode = 2 # edit template
-
+ self.output = 0
+ self.cb_xoutput.set_active (0)
self.widget.set_title(_("New template"))
self.widget.set_transient_for(transient)
self.widget.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
@@ -195,9 +203,11 @@
self.date = self.ParentClass.treemodel.get_value(iter, 9)
self.time = self.ParentClass.treemodel.get_value(iter, 12)
self.title = self.ParentClass.treemodel.get_value(iter, 0)
- self.class_id = self.ParentClass.treemodel.get_value(iter, 9)
- self.user = self.ParentClass.treemodel.get_value(iter, 10)
+ self.class_id = self.ParentClass.treemodel.get_value(iter, 10)
+ self.user = self.ParentClass.treemodel.get_value(iter, 11)
self.command = self.ParentClass.treemodel.get_value(iter, 3)
+ self.output = self.ParentClass.treemodel.get_value (iter, 15)
+ self.cb_xoutput.set_active (self.output)
# removing beginning newlines.. wherever they come from..
i = self.command.find ('\n', 0)
while i == 0:
@@ -235,6 +245,12 @@
if ((x != self.x) or (y != self.y) or (height != self.height) or (width != self.width)):
self.__hide_calendar__ ()
+ def on_cb_xoutput_toggled (self, *args):
+ if self.cb_xoutput.get_active ():
+ self.output = 1
+ else:
+ self.output = 0
+
def on_cal_button_toggled (self, *args):
if self.cal_button.get_active ():
self.__show_calendar__ ()
@@ -509,6 +525,8 @@
day = ctime[2]
hour = ctime[3]
minute = ctime[4]
+
+ self.output = 0
self.runat = str(hour) + str(minute) + " " + str(day) + "." + str(month) + "." + str (year)
@@ -556,12 +574,12 @@
self.wrongdialog.destroy()
def on_button_template_clicked (self, *args):
- self.template.savetemplate_at (0, self.title, self.command)
+ self.template.savetemplate_at (0, self.title, self.command, self.output)
self.widget.hide ()
def on_button_save_clicked (self, *args):
if self.mode == 2:
- self.template.savetemplate_at (self.tid, self.title, self.command)
+ self.template.savetemplate_at (self.tid, self.title, self.command, self.output)
self.widget.hide ()
return
@@ -587,9 +605,9 @@
del dia2
if self.mode == 1:
- self.scheduler.update (self.job_id, self.runat, self.command, self.title)
+ self.scheduler.update (self.job_id, self.runat, self.command, self.title, self.output)
else:
- self.scheduler.append (self.runat, self.command, self.title)
+ self.scheduler.append (self.runat, self.command, self.title, self.output)
self.ParentClass.schedule_reload ()
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 Sun Dec 14 00:00:45 2008
@@ -1,124 +1,142 @@
<?xml version="1.0"?>
<glade-interface>
<requires-version lib="gtk+" version="2.12"/>
- <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_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="main_vbox">
+ <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="GtkToolbar" id="toolbar">
+ <widget class="GtkHBox" id="hbox9">
<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="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">
+ <widget class="GtkScrolledWindow" id="scrolledwindow5">
<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">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>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<child>
- <widget class="GtkVSeparator" id="vseparator1">
+ <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>
+ </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="GtkToolButton" id="button_m_template">
+ <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="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"/>
+ <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>
- <packing>
- <property name="homogeneous">True</property>
- </packing>
</child>
<child>
- <widget class="GtkToggleToolButton" id="edit_mode_button">
+ <widget class="GtkButton" id="tc_button_use">
<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"/>
+ <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="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">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="btnSetUser">
- <property name="tooltip" translatable="yes">Choose the user whose tasks you want to modify</property>
+ <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>
<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"/>
+ <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="help_button">
+ <widget class="GtkToolButton" id="tm_button_edit">
<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="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"/>
</widget>
<packing>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="about_button">
+ <widget class="GtkToolButton" id="tm_button_delete">
<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="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"/>
</widget>
<packing>
<property name="homogeneous">True</property>
@@ -130,18 +148,18 @@
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="main_scrolledwindow">
+ <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="GtkTreeView" id="treeview">
+ <widget class="GtkTreeView" id="tm_treeview">
<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>
+ <signal name="button_press_event" handler="on_tm_treeview_button_press_event"/>
</widget>
</child>
</widget>
@@ -150,198 +168,88 @@
</packing>
</child>
<child>
- <widget class="GtkStatusbar" id="statusbar">
+ <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="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="pack_type">GTK_PACK_END</property>
- <property name="position">4</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
</child>
</widget>
- <widget class="GtkWindow" id="crontabEditorHelper">
+ <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" translatable="yes">Time expression help</property>
- <property name="resizable">False</property>
- <property name="modal">True</property>
+ <property name="title">Edit a one-time task</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="skip_taskbar_hint">True</property>
- <property name="skip_pager_hint">True</property>
- <child>
- <widget class="GtkVBox" id="vbox5">
+ <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>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="spacing">6</property>
<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">
+ <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="hbox2">
+ <placeholder/>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox14">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="lblEveryEntity">
+ <widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Minutes:</property>
+ <property name="label" translatable="yes">Task description:</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -349,68 +257,108 @@
</packing>
</child>
<child>
- <widget class="GtkEntry" id="entEvery">
- <property name="width_request">40</property>
+ <widget class="GtkEntry" id="at_entry_title">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="width_chars">3</property>
- <signal name="changed" handler="on_entEvery_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>
+ <child>
+ <widget class="GtkCheckButton" id="cb_xoutput">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">X application</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_cb_xoutput_toggled"/>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
</widget>
+ <packing>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
</child>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="expand">False</property>
+ <property name="padding">5</property>
</packing>
</child>
<child>
- <widget class="GtkAlignment" id="alignment2">
+ <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="GtkTable" id="table1">
+ <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">
<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>
+ <property name="n_columns">7</property>
+ <property name="column_spacing">5</property>
+ <property name="row_spacing">5</property>
<child>
- <widget class="GtkEntry" id="entRangeStart">
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="align_cal">
<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="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="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_EXPAND</property>
+ <property name="left_attach">6</property>
+ <property name="right_attach">7</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="lblRangeStart">
+ <widget class="GtkLabel" id="label3">
<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="xpad">15</property>
+ <property name="label" translatable="yes">Date:</property>
</widget>
</child>
<child>
- <widget class="GtkLabel" id="lblRangeEnd">
+ <widget class="GtkLabel" id="label4">
<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="xpad">15</property>
+ <property name="label" translatable="yes">Time:</property>
</widget>
<packing>
<property name="top_attach">1</property>
@@ -418,442 +366,251 @@
</packing>
</child>
<child>
- <widget class="GtkEntry" id="entRangeEnd">
+ <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_entRangeEnd_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="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="lblFixEntity">
+ <widget class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Minute:</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="expand">False</property>
- <property name="fill">False</property>
+ <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="GtkEntry" id="entFix">
- <property name="width_request">40</property>
+ <widget class="GtkSpinButton" id="at_spin_month">
<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="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="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">3</property>
+ <property name="right_attach">4</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="lblExpression">
+ <widget class="GtkLabel" id="label10">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Expression:</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="expand">False</property>
- <property name="fill">False</property>
+ <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="GtkEntry" id="entExpression">
- <property name="width_request">70</property>
+ <widget class="GtkSpinButton" id="at_spin_day">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="width_chars">8</property>
- <signal name="changed" handler="on_entExpression_changed"/>
+ <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="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">5</property>
+ <property name="right_attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="at_spin_hour">
+ <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"/>
+ </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>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">:</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>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="at_spin_minute">
+ <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"/>
+ </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>
</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="GtkImage" id="select_image">
+ <widget class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="yalign">0</property>
- <property name="stock">gtk-dialog-question</property>
- <property name="icon_size">6</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Task:</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="select_vbox">
+ <widget class="GtkScrolledWindow" id="scrolledwindow2">
<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"><b>Select the type of the scheduled task:</b></property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <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>
<child>
- <widget class="GtkAlignment" id="select_radio_alignment">
+ <widget class="GtkTextView" id="at_text_task">
+ <property name="height_request">244</property>
<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="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>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
</child>
</widget>
<packing>
- <property name="position">1</property>
+ <property name="position">3</property>
</packing>
</child>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
<child internal-child="action_area">
- <widget class="GtkHButtonBox" id="select_dialog_action_area">
+ <widget class="GtkHButtonBox" id="at_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">
+ <widget class="GtkButton" id="at_button_template">
<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>
- </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"><b>Choose the user whose tasks you want to modify</b></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>
+ <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"/>
</widget>
<packing>
- <property name="position">1</property>
+ <property name="expand">False</property>
+ <property name="fill">False</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">
+ <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">-6</property>
- <signal name="clicked" handler="on_setuser_cancel_button_clicked"/>
+ <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="setuser_ok_button">
+ <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">-5</property>
- <signal name="clicked" handler="on_setuser_ok_button_clicked"/>
+ <property name="response_id">0</property>
+ <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="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>
@@ -882,28 +639,34 @@
<property name="column_spacing">6</property>
<property name="row_spacing">6</property>
<child>
- <widget class="GtkComboBox" id="combo_output">
+ <placeholder/>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="entry_task">
<property name="visible">True</property>
- <signal name="changed" handler="on_combo_output_changed"/>
+ <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">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <placeholder/>
- </child>
- <child>
- <widget class="GtkLabel" id="label7">
+ <widget class="GtkLabel" id="label27">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Description:</property>
+ <property name="label" translatable="yes">Command:</property>
</widget>
<packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
@@ -918,31 +681,25 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label27">
+ <widget class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Command:</property>
+ <property name="label" translatable="yes">Description:</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="entry_task">
+ <widget class="GtkComboBox" id="combo_output">
<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"/>
+ <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">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
</widget>
@@ -981,18 +738,15 @@
<placeholder/>
</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>
<child>
@@ -1014,15 +768,18 @@
</packing>
</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>
</widget>
@@ -1044,75 +801,75 @@
<property name="column_spacing">6</property>
<property name="row_spacing">3</property>
<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>
<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="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="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="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="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>
@@ -1123,12 +880,14 @@
<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_hour">
+ <widget class="GtkButton" id="help_month">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-edit</property>
@@ -1139,8 +898,8 @@
<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>
@@ -1164,7 +923,7 @@
</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>
@@ -1175,14 +934,14 @@
<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>
</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>
@@ -1193,78 +952,76 @@
<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="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="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="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="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="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>
</widget>
@@ -1365,83 +1122,392 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">2</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"><b>Choose the user whose tasks you want to modify</b></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"><b>Select the type of the scheduled task:</b></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">1</property>
+ </packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">6</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>
</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>
+ <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>
<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="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">
+ <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">
+ <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="GtkAlignment" id="alignment4">
<property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <placeholder/>
- </child>
+ <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="GtkVBox" id="vbox14">
+ <widget class="GtkHBox" id="hbox6">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label1">
+ <widget class="GtkLabel" id="lblExpression">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Task description:</property>
+ <property name="label" translatable="yes">Expression:</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -1449,529 +1515,476 @@
</packing>
</child>
<child>
- <widget class="GtkEntry" id="at_entry_title">
+ <widget class="GtkEntry" id="entExpression">
+ <property name="width_request">70</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">8</property>
+ <signal name="changed" handler="on_entExpression_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">8</property>
+ <property name="bottom_attach">9</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="at_vbox_time">
+ <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="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="GtkHBox" id="hbox5">
<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="spacing">6</property>
<child>
- <widget class="GtkSpinButton" id="at_spin_minute">
+ <widget class="GtkLabel" id="lblFixEntity">
<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="xalign">0</property>
+ <property name="label" translatable="yes">Minute:</property>
</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>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label5">
+ <widget class="GtkEntry" id="entFix">
+ <property name="width_request">40</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">:</property>
+ <property name="can_focus">True</property>
+ <property name="width_chars">3</property>
+ <signal name="changed" handler="on_entFix_changed"/>
</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>
+ <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="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="GtkSpinButton" id="at_spin_hour">
- <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"/>
+ <widget class="GtkEntry" id="entRangeEnd">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <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>
<child>
- <widget class="GtkSpinButton" id="at_spin_day">
- <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"/>
- </widget>
- <packing>
- <property name="left_attach">5</property>
- <property name="right_attach">6</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_month">
+ <widget class="GtkLabel" id="lblRangeEnd">
<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"/>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">To:</property>
+ <property name="justify">GTK_JUSTIFY_RIGHT</property>
</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>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label8">
+ <widget class="GtkLabel" id="lblRangeStart">
<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>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">From:</property>
+ <property name="justify">GTK_JUSTIFY_RIGHT</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">
+ <widget class="GtkEntry" id="entRangeStart">
<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_entRangeStart_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="label4">
+ <widget class="GtkLabel" id="lblEveryEntity">
<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">Minutes:</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <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">
+ <widget class="GtkEntry" id="entEvery">
+ <property name="width_request">40</property>
<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_entEvery_changed"/>
</widget>
<packing>
- <property name="left_attach">6</property>
- <property name="right_attach">7</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="position">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label6">
+ <widget class="GtkRadioButton" id="radOth">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Task:</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="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
+ <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="GtkScrolledWindow" id="scrolledwindow2">
+ <widget class="GtkRadioButton" id="radFix">
<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>
- <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>
+ <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="position">3</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
- </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="GtkButton" id="at_button_template">
+ <widget class="GtkRadioButton" id="radRange">
<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="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>
- <signal name="clicked" handler="on_at_button_template_clicked"/>
+ <property name="draw_indicator">True</property>
+ <property name="group">radOth</property>
+ <signal name="toggled" handler="on_radRange_toggled"/>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</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>
</packing>
</child>
<child>
- <widget class="GtkButton" id="at_button_cancel">
+ <widget class="GtkRadioButton" id="radAll">
<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"/>
+ <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="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </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>
+ </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="at_button_save">
+ <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-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"/>
+ <signal name="clicked" handler="on_btnOk_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>
+ <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>
+ <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="vbox2">
+ <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="GtkToolbar" id="toolbar1">
+ <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>
- <property name="toolbar_style">GTK_TOOLBAR_BOTH_HORIZ</property>
<child>
- <widget class="GtkToolButton" id="tm_button_new">
+ <widget class="GtkToolButton" id="prop_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">Create a new template.</property>
+ <property name="tooltip" translatable="yes">Edit a scheduled task</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="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="tm_button_edit">
+ <widget class="GtkToolButton" id="del_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="tooltip" translatable="yes">Delete a scheduled task</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="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="tm_button_delete">
+ <widget class="GtkToolButton" id="run_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_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>
- </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="GtkTreeView" id="tm_treeview">
+ <widget class="GtkToolItem" id="toolitem1">
<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"/>
+ <child>
+ <widget class="GtkVSeparator" id="vseparator1">
+ <property name="visible">True</property>
+ </widget>
+ </child>
</widget>
</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="GtkButton" id="tm_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_tm_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="tm_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_tm_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>
+ <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"/>
+ </widget>
+ <packing>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkToolButton" id="help_button">
+ <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"/>
+ </widget>
+ <packing>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkToolButton" id="about_button">
+ <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"/>
+ </widget>
+ <packing>
+ <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">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="GtkHBox" id="hbox9">
+ <widget class="GtkScrolledWindow" id="main_scrolledwindow">
<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="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow5">
+ <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>
- <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>
+ <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>
+ <packing>
+ <property name="position">1</property>
+ </packing>
</child>
<child>
- <widget class="GtkHButtonBox" id="hbuttonbox5">
+ <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="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="padding">5</property>
- <property name="position">1</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ <property name="position">4</property>
</packing>
</child>
</widget>
Modified: branches/x-output-support/src/template.py
==============================================================================
--- branches/x-output-support/src/template.py (original)
+++ branches/x-output-support/src/template.py Sun Dec 14 00:00:45 2008
@@ -48,6 +48,7 @@
self.gconf_client.unset("/apps/gnome-schedule/templates/at/%s/title" % (str (template_id)))
self.gconf_client.unset("/apps/gnome-schedule/templates/at/%s/command" % (str (template_id)))
+ self.gconf_client.unset ("/apps/gnome-schedule/templates/at/%s/output" % (str (template_id)))
if newstring == " ":
self.gconf_client.unset ("/apps/gnome-schedule/templates/at/installed")
@@ -145,7 +146,8 @@
try:
command = self.gconf_client.get_string("/apps/gnome-schedule/templates/at/%s/command" % (str (template_id)))
title = self.gconf_client.get_string("/apps/gnome-schedule/templates/at/%s/title" % (str (template_id)))
- return template_id, title, command
+ output = self.gconf_client.get_int ("/apps/gnome-schedule/templates/at/%s/output" % (str (template_id)))
+ return template_id, title, command, output
except Exception, ex:
return False
@@ -160,13 +162,16 @@
self.gconf_client.set_int ("/apps/gnome-schedule/templates/at/last_id", i)
return i
- def savetemplate_at (self, template_id, title, command):
+ def savetemplate_at (self, template_id, title, command, output):
+ print "savetemplate"
if (template_id == 0):
template_id = self.create_new_id_at ()
+ print "got new id"
self.gconf_client.set_string("/apps/gnome-schedule/templates/at/%s/title" % (str (template_id)), title)
self.gconf_client.set_string("/apps/gnome-schedule/templates/at/%s/command" % (str (template_id)), command)
+ self.gconf_client.set_int ("/apps/gnome-schedule/templates/at/%s/output" % ( str(template_id)), output)
installed = self.gconf_client.get_string("/apps/gnome-schedule/templates/at/installed")
@@ -187,9 +192,13 @@
self.parent.template_manager.reload_tv ()
self.parent.template_chooser.reload_tv ()
- def format_at (self, title, command):
+ # TODO: output
+ def format_at (self, title, command, output):
command = self.parent.at.__make_preview__ (command, 0)
s = "<b>" + _("Title:") + "</b> " + title + "\n<b>" + _("Command:") + "</b> " + command
+ if output > 0:
+ s = (s + " <i>(%s)</i>") % (str (self.parent.output_strings [2]))
+
return s
def format_crontab (self, title, command, output, timeexpression):
@@ -202,7 +211,7 @@
s = "<b>" + _("Title:") + "</b> " + title + "\n<b>" + _("Run:") + "</b> " + timeexpression + "\n<b>" + _("Command:") + "</b> " + command
- if output:
- s = (s + " <i>(" + "%s" + ")</i>") % (str (self.parent.output_strings[output]))
+ if output > 0:
+ s = (s + " <i>(%s)</i>") % (str (self.parent.output_strings[output]))
return s
Modified: branches/x-output-support/src/template_chooser.py
==============================================================================
--- branches/x-output-support/src/template_chooser.py (original)
+++ branches/x-output-support/src/template_chooser.py Sun Dec 14 00:00:45 2008
@@ -92,8 +92,8 @@
for id in at:
t = self.template.gettemplate ("at", int (id))
if t != False:
- id2, title, command = t
- formatted = self.template.format_at (title, command)
+ id2, title, command, output = t
+ formatted = self.template.format_at (title, command, output)
iter = self.treemodel.append ([int (id), "at", _("One-time"), formatted, self.parent.bigiconat])
crontab = self.template.gettemplateids ("crontab")
@@ -126,8 +126,8 @@
if type == "at":
t = self.template.gettemplate ("at", int (id))
if t != False:
- id2, title, command = t
- self.parent.at_editor.showadd_template (self.transient, title, command)
+ id2, title, command, output = t
+ self.parent.at_editor.showadd_template (self.transient, title, command, output)
elif type == "crontab":
t = self.template.gettemplate ("crontab", int (id))
if t != False:
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 Sun Dec 14 00:00:45 2008
@@ -97,8 +97,8 @@
for id in at:
t = self.template.gettemplate ("at", int (id))
if t != False:
- id2, title, command = t
- formatted = self.template.format_at (title, command)
+ id2, title, command, output = t
+ formatted = self.template.format_at (title, command, output)
iter = self.treemodel.append ([int (id), "at", _("One-time"), formatted, self.parent.bigiconat])
crontab = self.template.gettemplateids ("crontab")
@@ -165,8 +165,8 @@
if type == "at":
t = self.template.gettemplate ("at", int (id))
if t != False:
- id2, title, command = t
- self.parent.at_editor.showadd_template (self.widget, title, command)
+ id2, title, command, output = t
+ self.parent.at_editor.showadd_template (self.widget, title, command, output)
elif type == "crontab":
t = self.template.gettemplate ("crontab", int (id) )
if t != False:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]