diff options
Diffstat (limited to 'timelinelib/time')
-rw-r--r-- | timelinelib/time/__init__.py | 4 | ||||
-rw-r--r-- | timelinelib/time/numtime.py | 6 | ||||
-rw-r--r-- | timelinelib/time/pytime.py | 51 | ||||
-rw-r--r-- | timelinelib/time/wxtime.py | 28 |
4 files changed, 52 insertions, 37 deletions
diff --git a/timelinelib/time/__init__.py b/timelinelib/time/__init__.py index 383e478..d320ea5 100644 --- a/timelinelib/time/__init__.py +++ b/timelinelib/time/__init__.py @@ -16,7 +16,7 @@ # along with Timeline. If not, see <http://www.gnu.org/licenses/>. -from timelinelib.time.pytime import PyTimeType from timelinelib.time.numtime import NumTimeType -from timelinelib.time.wxtime import WxTimeType +from timelinelib.time.pytime import PyTimeType from timelinelib.time.wxtime import try_to_create_wx_date_time_from_dmy +from timelinelib.time.wxtime import WxTimeType diff --git a/timelinelib/time/numtime.py b/timelinelib/time/numtime.py index ab898cc..3318ab8 100644 --- a/timelinelib/time/numtime.py +++ b/timelinelib/time/numtime.py @@ -16,11 +16,8 @@ # along with Timeline. If not, see <http://www.gnu.org/licenses/>. -import sys import re -import wx - from timelinelib.time.typeinterface import TimeType from timelinelib.db.objects import time_period_center from timelinelib.drawing.interface import Strip @@ -76,7 +73,6 @@ class NumTimeType(TimeType): def choose_strip(self, metrics, config): start_time = 1 end_time = 2 - period_width = 0 limit = 30 period = TimePeriod(self, start_time, end_time) period_width = metrics.calc_exact_width(period) @@ -108,7 +104,7 @@ class NumTimeType(TimeType): return time_period.start_time + delta * x_percent_of_width def div_timedeltas(self, delta1, delta2): - return delta1 / delta2 + return delta1 / delta2 def get_max_zoom_delta(self): return (None, None) diff --git a/timelinelib/time/pytime.py b/timelinelib/time/pytime.py index e0f0afc..bd0e335 100644 --- a/timelinelib/time/pytime.py +++ b/timelinelib/time/pytime.py @@ -130,7 +130,7 @@ class PyTimeType(TimeType): collector.append(u"1 %s" % _("minute")) elif minutes > 1: collector.append(u"%d %s" % (minutes, _("minutes"))) - delta_string = u" ".join(collector) + delta_string = u" ".join(collector) if delta_string == "": delta_string = "0" return delta_string @@ -194,10 +194,10 @@ class PyTimeType(TimeType): total_us1 = delta_to_microseconds(delta1) total_us2 = delta_to_microseconds(delta2) # Make sure that the result is a floating point number - return total_us1 / float(total_us2) + return total_us1 / float(total_us2) def get_max_zoom_delta(self): - return (timedelta(days=1200*365), + return (timedelta(days=1200*365), _("Can't zoom wider than 1200 years")) def get_min_zoom_delta(self): @@ -238,11 +238,11 @@ class PyTimeType(TimeType): return "%02d:%02d" % (time.hour, time.minute) def eventtimes_equals(self, time1, time2): - s1 = "%s %s" % (self.event_date_string(time1), + s1 = "%s %s" % (self.event_date_string(time1), self.event_date_string(time1)) - s2 = "%s %s" % (self.event_date_string(time2), + s2 = "%s %s" % (self.event_date_string(time2), self.event_date_string(time2)) - return s1 == s2 + return s1 == s2 def go_to_today_fn(main_frame, current_period, navigation_fn): @@ -392,15 +392,35 @@ def backward_one_year_fn(main_frame, current_period, navigation_fn): def fit_millennium_fn(main_frame, current_period, navigation_fn): mean = current_period.mean_time() - start = datetime(int(mean.year/1000)*1000, 1, 1) - end = datetime(int(mean.year/1000)*1000 + 1000, 1, 1) + if mean.year > get_millenium_max_year(): + year = get_millenium_max_year() + else: + year = max(get_min_year(), int(mean.year/1000)*1000) + start = datetime(year, 1, 1) + end = datetime(year + 1000, 1, 1) navigation_fn(lambda tp: tp.update(start, end)) +def get_min_year(): + return PyTimeType().get_min_time()[0].year + + +def get_millenium_max_year(): + return PyTimeType().get_max_time()[0].year - 1000 + + +def get_century_max_year(): + return PyTimeType().get_max_time()[0].year - 100 + + def fit_century_fn(main_frame, current_period, navigation_fn): mean = current_period.mean_time() - start = datetime(int(mean.year/100)*100, 1, 1) - end = datetime(int(mean.year/100)*100 + 100, 1, 1) + if mean.year > get_century_max_year(): + year = get_century_max_year() + else: + year = max(get_min_year(), int(mean.year/100)*100) + start = datetime(year, 1, 1) + end = datetime(year + 100, 1, 1) navigation_fn(lambda tp: tp.update(start, end)) @@ -449,13 +469,16 @@ class StripCentury(Strip): return datetime(max(self._century_start_year(time.year), 10), 1, 1) def increment(self, time): - return time.replace(year=time.year+100) + return time.replace(year=time.year + 100) def get_font(self, time_period): return get_default_font(8) def _century_start_year(self, year): - return (int(year) / 100) * 100 + year = (int(year) / 100) * 100 + #if year > get_century_max_year(): + # year = get_century_max_year + return year class StripDecade(Strip): @@ -643,8 +666,8 @@ def delta_to_microseconds(delta): def move_period_num_days(period, num): delta = timedelta(days=1) * num - start_time = period.start_time + delta - end_time = period.end_time + delta + start_time = period.start_time + delta + end_time = period.end_time + delta return TimePeriod(period.time_type, start_time, end_time) diff --git a/timelinelib/time/wxtime.py b/timelinelib/time/wxtime.py index 7ded2ec..61b50d2 100644 --- a/timelinelib/time/wxtime.py +++ b/timelinelib/time/wxtime.py @@ -18,10 +18,6 @@ import sys import re -from wx import DateTime -from wx import DateSpan -from wx import TimeSpan -import calendar import wx @@ -132,7 +128,7 @@ class WxTimeType(TimeType): collector.append(u"1 %s" % _("minute")) elif minutes > 1: collector.append(u"%d %s" % (minutes, _("minutes"))) - delta_string = u" ".join(collector) + delta_string = u" ".join(collector) if delta_string == "": delta_string = "0" return delta_string @@ -195,7 +191,7 @@ class WxTimeType(TimeType): total_us1 = delta_to_microseconds(delta1) total_us2 = delta_to_microseconds(delta2) # Make sure that the result is a floating point number - return float(total_us1) / float(total_us2) + return float(total_us1) / float(total_us2) def get_max_zoom_delta(self): max_zoom_delta = wx.TimeSpan.Days(1200 * 365) @@ -241,11 +237,11 @@ class WxTimeType(TimeType): return time.Format("%H:%M") def eventtimes_equals(self, time1, time2): - s1 = "%s %s" % (self.event_date_string(time1), + s1 = "%s %s" % (self.event_date_string(time1), self.event_date_string(time1)) - s2 = "%s %s" % (self.event_date_string(time2), + s2 = "%s %s" % (self.event_date_string(time2), self.event_date_string(time2)) - return s1 == s2 + return s1 == s2 def go_to_today_fn(main_frame, current_period, navigation_fn): @@ -318,7 +314,7 @@ def _move_smart_month_backward(navigation_fn, start, end): new_start_year, new_start_month = _months_to_year_and_month( start_months - month_diff) - new_start = wx.DateTimeFromDMY(start.Day, new_start_month, new_start_year, + new_start = wx.DateTimeFromDMY(start.Day, new_start_month, new_start_year, start.Hour, start.Minute, start.Second) navigation_fn(lambda tp: tp.update(new_start, new_end)) @@ -331,7 +327,7 @@ def _move_smart_month_forward(navigation_fn, start, end): new_end_year, new_end_month = _months_to_year_and_month( end_months + month_diff) - new_end = wx.DateTimeFromDMY(end.Day, new_end_month, new_end_year, + new_end = wx.DateTimeFromDMY(end.Day, new_end_month, new_end_year, end.Hour, end.Minute, end.Second) navigation_fn(lambda tp: tp.update(new_start, new_end)) @@ -619,7 +615,7 @@ class StripHour(Strip): return str(time.Hour) def start(self, time): - start_time = wx.DateTimeFromDMY(time.Day, time.Month, time.Year, time.Hour) + start_time = wx.DateTimeFromDMY(time.Day, time.Month, time.Year, time.Hour) return start_time def increment(self, time): @@ -642,7 +638,7 @@ def microseconds_to_delta(microsecs): counter += 1 delta = wx.TimeSpan.Milliseconds(milliseconds) while counter > 0: - delta = delta * 2; + delta = delta * 2; counter -= 1 return delta @@ -657,7 +653,7 @@ def delta_to_microseconds(delta): neg = False if days < 0: neg = True - days = -days + days = -days hours = -hours minutes = -minutes seconds = -seconds @@ -670,9 +666,9 @@ def delta_to_microseconds(delta): if seconds >= 0: microsecs = seconds * US_PER_SEC if milliseconds >= 0: - microsecs = milliseconds * 1000 + microsecs = milliseconds * 1000 if neg: - microsecs = -microsecs + microsecs = -microsecs return microsecs |