Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/timetab.py
diff options
context:
space:
mode:
Diffstat (limited to 'timetab.py')
-rw-r--r--timetab.py126
1 files changed, 126 insertions, 0 deletions
diff --git a/timetab.py b/timetab.py
new file mode 100644
index 0000000..6a6b717
--- /dev/null
+++ b/timetab.py
@@ -0,0 +1,126 @@
+# This maneges the interface of and provides functionality for the
+# "Start/End Time" tab.
+
+'''
+Fixing this file... redundecy needs to be eleminated readablility needs to be improved
+Ideas:
+1. use a class that start and end implament
+2. use a class for start and end that stores the widgets
+3. create a class that does everything start and end time need to do and take the start/end out of it
+'''
+
+import interface
+import datetime
+import gobject
+
+TAB_NAME = "Start/End Time"
+WIDGET_NAME = "start_end_time"
+
+
+class Tab(interface.NewTab):
+
+ def make(self):
+
+ self.start_calendar = self.get_widget('start_cal')
+ self.end_calendar = self.get_widget('end_cal')
+ self.start_hour = self.get_widget('start_hour')
+ self.end_hour = self.get_widget('end_hour')
+ self.start_min = self.get_widget('start_min')
+ self.end_min = self.get_widget('end_min')
+ self.start_sec = self.get_widget('start_sec')
+ self.end_sec = self.get_widget('end_sec')
+ self.start_adjustment_frame = self.get_widget('start_time_adjustment')
+ self.end_adjustment_frame = self.get_widget('end_time_adjustment')
+ self.no_start_time_text = self.get_widget('no_start_label')
+ self.no_end_time_text = self.get_widget('no_end_label')
+ self.start_time_toggle = self.get_widget('start_time_toggle')
+ self.end_time_toggle = self.get_widget('end_time_toggle')
+ self.start_adjuster_toggle = self.get_widget('start_adjustment_toggle')
+ self.end_adjuster_toggle = self.get_widget('end_adjustment_toggle')
+
+ time = datetime.datetime.now()
+ if time.hour == 23:
+ hour = 0
+ # I know, day could be pushed over to 32, causing this program to
+ # not function in the last hour of the last day of every month.
+ # I need to fix this.
+ day = time.day + 1
+ else:
+ day = time.day
+ hour = time.hour + 1
+ self.end_calendar.select_month(time.month - 1, time.year)
+ self.end_calendar.select_day(day + 1)
+ self.end_hour.set_value(hour)
+ self.start_hour.set_value(hour)
+ self.start_calendar.select_month(time.month - 1, time.year)
+ self.start_calendar.select_day(day)
+ self.set_start_time()
+ self.set_end_time()
+ gobject.timeout_add(1000, self.update_time)
+
+ def update_time(self):
+ self.current_time = datetime.datetime.now().ctime()
+ self.get_widget('time').set_text(self.current_time)
+ return True
+
+ def set_time(self, calendar, hour, minute, second, adjuster_toggle, time_toggle):
+ print 'setting end time'
+ date = calendar.get_date()
+ time = datetime.datetime(date[0], date[1] + 1, date[2],
+ int(hour.get_value()),
+ int(minute.get_value()),
+ int(second.get_value()))
+ adjuster_toggle.set_label(time.ctime())
+ if not time_toggle.get_active():
+ time = None
+ return time
+
+ def set_start_time(self):
+ self.start = self.set_time(self.start_calendar, self.start_hour,
+ self.start_min, self.start_sec,
+ self.start_adjuster_toggle,
+ self.start_time_toggle)
+
+ def set_end_time(self):
+ self.end = self.set_time(self.end_calendar, self.end_hour,
+ self.end_min, self.end_sec,
+ self.end_adjuster_toggle,
+ self.end_time_toggle)
+
+ def time_toggled(self, widget, adjuster_toggle, no_time_text):
+ if widget.get_active():
+ adjuster_toggle.show()
+ no_time_text.hide()
+ else:
+ adjuster_toggle.hide()
+ no_time_text.show()
+ adjuster_toggle.set_active(False)
+
+ def change_time_toggled(self, widget, adjustment_frame):
+ if widget.get_active():
+ adjustment_frame.show()
+ else:
+ adjustment_frame.hide()
+
+ def on_start_time_changed(self, widget):
+ self.set_start_time()
+
+ def on_end_time_changed(self, widget):
+ self.set_end_time()
+
+ def on_start_toggled(self, widget):
+ self.time_toggled(widget, self.start_adjuster_toggle,
+ self.no_start_time_text)
+
+ def on_end_toggled(self, widget):
+ self.time_toggled(widget, self.end_adjuster_toggle,
+ self.no_end_time_text)
+
+ def on_change_start_toggled(self, widget):
+ self.change_time_toggled(widget, self.start_adjustment_frame)
+
+ def on_change_end_toggled(self, widget):
+ self.change_time_toggled(widget, self.end_adjustment_frame)
+
+
+tab = Tab(interface.GLADE_TABS, WIDGET_NAME, TAB_NAME)