1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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)
|