1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import re
20
21 from timelinelib.time.typeinterface import TimeType
22 from timelinelib.db.objects import time_period_center
23 from timelinelib.drawing.interface import Strip
24 from timelinelib.drawing.utils import get_default_font
25 from timelinelib.db.objects import TimePeriod
26
27
29
32
43
45 return [
46 (_("Go to &Zero\tCtrl+Z"), go_to_zero_fn),
47 (_("Go to &Time\tCtrl+T"), go_to_time_fn),
48 ("SEP", None),
49 (_("Backward\tPgUp"), backward_fn),
50 (_("Forward\tPgDn"), forward_fn),
51 ]
52
55
63
66
69
72
74 start_time = 1
75 end_time = 2
76 limit = 30
77 period = TimePeriod(self, start_time, end_time)
78 period_width = metrics.calc_exact_width(period)
79 while period_width == 0:
80 start_time *= 10
81 end_time *= 10
82 limit /= 10
83 period = TimePeriod(self, start_time, end_time)
84 period_width = metrics.calc_exact_width(period)
85 nbr_of_units = metrics.width / period_width
86 size = 1
87 while nbr_of_units > limit:
88 size *= 10
89 nbr_of_units /= 10
90 return (NumStrip(size * 10), NumStrip(size))
91
94
97
100
102 """Return the time at pixel `x`."""
103 delta = time_period.end_time - time_period.start_time
104 return time_period.start_time + delta * x_percent_of_width
105
107 return delta1 / delta2
108
111
113 return (5, _("Can't zoom deeper than 5"))
114
117
120
123
125 return [
126 (_("1-period"), lambda p, d : move_period(p, d)),
127 (_("10-period"), lambda p, d : move_period(p, d * 10)),
128 (_("100-period"), lambda p, d : move_period(p, d * 100)),
129 (_("1000-period"), lambda p, d : move_period(p, d * 1000)),
130 ]
131
134
137
140
143
144
146
149
150 - def label(self, time, major=False):
152
158
160 return time + self.size
161
164
165
167 navigation_fn(lambda tp: tp.center(0))
168
169
171 def navigate_to(time):
172 navigation_fn(lambda tp: tp.center(time))
173 main_frame.display_time_editor_dialog(
174 NumTimeType(), current_period.mean_time(), navigate_to, _("Go to Time"))
175
176
177 -def backward_fn(main_frame, current_period, navigation_fn):
178 delta = current_period.start_time - current_period.end_time
179 navigation_fn(lambda tp: tp.move_delta(delta))
180
181
182 -def forward_fn(main_frame, current_period, navigation_fn):
183 delta = current_period.end_time - current_period.start_time
184 navigation_fn(lambda tp: tp.move_delta(delta))
185
186
188 start_time = period.start_time + delta
189 end_time = period.end_time + delta
190 return TimePeriod(period.time_type, start_time, end_time)
191