[hamster-applet] tick correctly on the first weekday
- From: Toms Baugis <tbaugis src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [hamster-applet] tick correctly on the first weekday
- Date: Mon, 28 Dec 2009 02:04:39 +0000 (UTC)
commit d9da1d9e716d1642c30e1dc58bcdce6ffb3607a5
Author: Toms Bauģis <toms baugis gmail com>
Date: Mon Dec 28 01:54:19 2009 +0000
tick correctly on the first weekday
hamster/widgets/timeline.py | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/hamster/widgets/timeline.py b/hamster/widgets/timeline.py
index 83b901f..06e07ca 100644
--- a/hamster/widgets/timeline.py
+++ b/hamster/widgets/timeline.py
@@ -97,9 +97,12 @@ class TimeLine(graphics.Area):
self.minor_tick = WEEK
# make sure we start week on first day
#set to monday
- self.start_time = self.start_time - dt.timedelta(self.start_time.weekday() + 1)
+ start_time = self.start_time - dt.timedelta(self.start_time.weekday() + 1)
# look if we need to start on sunday or monday
- self.start_time = self.start_time + dt.timedelta(self.first_weekday)
+ start_time = start_time + dt.timedelta(self.first_weekday)
+ if self.start_time - start_time == dt.timedelta(days=7):
+ start_time += dt.timedelta(days=7)
+ self.start_time = start_time
elif days > 2: # more than two days -> show per day
self.minor_tick = dt.timedelta(days = 1)
else: # show per hour
@@ -168,6 +171,9 @@ class TimeLine(graphics.Area):
x, width = exes[left_index]
line(x + round(width * adjustment) - 1, color)
+ def first_weekday(date):
+ return (date.weekday() + 1 - self.first_weekday) % 7 == 0
+
while current_time < self.end_time:
current_time += major_step
x += major_tick_step
@@ -180,7 +186,7 @@ class TimeLine(graphics.Area):
line(exes[current_time][0] - 1, "#aaaaaa")
else:
if self.minor_tick == DAY: # week change
- if current_time.weekday() == 0:
+ if first_weekday(current_time):
line(exes[current_time][0] - 1, "#cccccc")
if self.minor_tick <= WEEK: # month change
@@ -226,7 +232,7 @@ class TimeLine(graphics.Area):
# ticks. we loop once again to avoid next bar overlapping previous text
for i, (current_time, total) in enumerate(self.tick_totals):
if (self.end_time - self.start_time) > dt.timedelta(10) \
- and self.minor_tick == DAY and current_time.weekday() != 0:
+ and self.minor_tick == DAY and first_weekday(current_time) == False:
continue
x, bar_width = exes[current_time]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]