From b5c04ff29befec16f77f4674a95949bc0a36129f Mon Sep 17 00:00:00 2001 From: olpc Date: Tue, 22 Jun 2010 22:37:31 +0000 Subject: Initial commit --- (limited to 'timetab.py') 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) -- cgit v0.9.1