Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 9348fedd3b9602c4c3bc3458cb76035e561ead0f Mon Sep 17 00:00:00 2001
- From: Eslam Mostafa <cseslam@gmail.com>
- Date: Sun, 19 Aug 2012 02:28:49 +0200
- Subject: [PATCH] Fix Alarms am/pm
- ---
- gnomeclocks/alarm.py | 47 ++++++++++++++-------------------------
- gnomeclocks/widgets.py | 57 +++++++++++++++++++++++-------------------------
- 2 files changed, 43 insertions(+), 61 deletions(-)
- diff --git a/gnomeclocks/alarm.py b/gnomeclocks/alarm.py
- index 84f9624..472ade4 100644
- --- a/gnomeclocks/alarm.py
- +++ b/gnomeclocks/alarm.py
- @@ -66,27 +66,25 @@ class ICSHandler():
- class AlarmItem:
- - def __init__(self, name=None, repeat=None, h=None, m=None, p=None):
- + def __init__(self, name=None, repeat=None, h=None, m=None):
- self.name = name
- self.repeat = repeat
- self.vevent = None
- self.uid = None
- self.h = h
- - self.m = m
- - self.p = p
- + self.m = m
- def new_from_vevent(self, vevent):
- self.vevent = vevent
- self.name = vevent.summary.value
- self.time = vevent.dtstart.value
- self.h = int(self.time.strftime("%H"))
- - self.m = int(self.time.strftime("%M"))
- - self.p = self.time.strftime("%p")
- + self.m = int(self.time.strftime("%M"))
- self.uid = vevent.uid.value
- - if vevent.rrule.value == 'FREQ=DAILY;':
- + if vevent.rrule.value == 'FREQ=DAILY':
- self.repeat = ['FR', 'MO', 'SA', 'SU', 'TH', 'TU', 'WE']
- else:
- - self.repeat = vevent.rrule.value[19:].split(',')
- + self.repeat = vevent.rrule.value[18:].split(',')
- def set_alarm_time(self, h, m, p):
- self.h = h
- @@ -100,24 +98,18 @@ class AlarmItem:
- time['p'] = self.p
- return self.time
- - def get_time_12h_as_string(self):
- - if self.p == 'AM' or self.p == 'PM':
- - if self.h == 12 or self.h == 0:
- - h = 12
- - else:
- - h = self.h - 12
- + def get_time_12h_as_string(self):
- + p = self.vevent.dtstart.value.strftime("%p")
- + if self.h == 12 or self.h == 0:
- + h = 12
- + elif self.h > 12:
- + h = self.h - 12
- else:
- h = self.h
- - return "%2i:%02i %s" % (h, self.m, self.p)
- + return "%2i:%02i %s" % (h, self.m, p)
- - def get_time_24h_as_string(self):
- - if self.p == 'AM' or self.p == 'PM':
- - h = self.h + 12
- - if h == 24:
- - h = 12
- - else:
- - h = self.h
- - return "%2i:%02i" % (h, self.m)
- + def get_time_24h_as_string(self):
- + return "%2i:%02i" % (self.h, self.m)
- def set_alarm_name(self, name):
- self.name = name
- @@ -167,14 +159,7 @@ class AlarmItem:
- self.vevent = vevent = vobject.newFromBehavior('vevent')
- vevent.add('summary').value = self.name
- h = self.h
- - m = self.m
- - if self.p == "PM":
- - h = self.h + 12
- - if h == 24:
- - h = 12
- - elif self.p == "AM":
- - if h == 12:
- - h = 0
- + m = self.m
- vevent.add('dtstart').value =\
- datetime.datetime.combine(datetime.date.today(),
- datetime.time(h, m))
- @@ -182,7 +167,7 @@ class AlarmItem:
- datetime.datetime.combine(datetime.date.today(),
- datetime.time(h, m))
- if len(self.repeat) == 0:
- - vevent.add('rrule').value = 'FREQ=DAILY;'
- + vevent.add('rrule').value = 'FREQ=DAILY'
- else:
- vevent.add('rrule').value = 'FREQ=WEEKLY;BYDAY=%s' %\
- ','.join(self.repeat)
- diff --git a/gnomeclocks/widgets.py b/gnomeclocks/widgets.py
- index 60eef3b..242b4c5 100644
- --- a/gnomeclocks/widgets.py
- +++ b/gnomeclocks/widgets.py
- @@ -32,6 +32,10 @@ import time
- def get_is_day(hour):
- return (hour > 7 and hour < 19)
- +def get_system_clock_format():
- + settings = Gio.Settings.new('org.gnome.desktop.interface')
- + systemClockFormat = settings.get_string('clock-format')
- + return systemClockFormat
- class NewWorldClockDialog(Gtk.Dialog):
- @@ -131,21 +135,16 @@ class DigitalClock():
- return t
- def get_local_time_text(self):
- - text = time.strftime("%I:%M%p", self.get_local_time())
- + text = time.strftime("%I:%M %p", self.get_local_time())
- if text.startswith("0"):
- text = text[1:]
- return text
- - def get_system_clock_format(self):
- - settings = Gio.Settings.new('org.gnome.desktop.interface')
- - systemClockFormat = settings.get_string('clock-format')
- - return systemClockFormat
- -
- def update(self):
- t = self.get_local_time_text()
- - systemClockFormat = self.get_system_clock_format()
- + systemClockFormat = get_system_clock_format()
- if systemClockFormat == '12h':
- - t = time.strftime("%I:%M%p", self.get_local_time())
- + t = time.strftime("%I:%M %p", self.get_local_time())
- else:
- t = time.strftime("%H:%M", self.get_local_time())
- if not t == self._last_time:
- @@ -395,18 +394,13 @@ class AlarmWidget():
- def __init__(self, time_given, repeat):
- self.drawing = DigitalClockDrawing()
- t = time_given
- - isDay = get_is_day(int(t[:2]))
- + isDay = get_is_day(int(t[:2]))
- if isDay:
- img = os.path.join(Dirs.get_image_dir(), "cities", "day.png")
- else:
- img = os.path.join(Dirs.get_image_dir(), "cities", "night.png")
- self.drawing.render(t, img, isDay, repeat)
- - def get_system_clock_format(self):
- - settings = Gio.Settings.new('org.gnome.desktop.interface')
- - systemClockFormat = settings.get_string('clock-format')
- - return systemClockFormat
- -
- def set_iter(self, list_store, view_iter):
- self.view_iter = view_iter
- self.list_store = list_store
- @@ -430,7 +424,7 @@ class AlarmDialog(Gtk.Dialog):
- self.set_modal(True)
- self.repeat_days = []
- - self.cf = cf = self.get_system_clock_format()
- + self.cf = cf = get_system_clock_format()
- if cf == "12h":
- table1 = Gtk.Table(4, 6, False)
- else:
- @@ -446,7 +440,7 @@ class AlarmDialog(Gtk.Dialog):
- if vevent:
- t = vevent.dtstart.value
- h = int(t.strftime("%I"))
- - m = int(t.strftime("%m"))
- + m = int(t.strftime("%M"))
- p = t.strftime("%p")
- else:
- t = time.localtime()
- @@ -473,9 +467,9 @@ class AlarmDialog(Gtk.Dialog):
- if cf == "12h":
- self.ampm = ampm = Gtk.ComboBoxText()
- - ampm.append_text("AM")
- - ampm.append_text("PM")
- - if p == "PM":
- + ampm.append_text("am")
- + ampm.append_text("pm")
- + if p == "pm":
- h = h - 12
- ampm.set_active(1)
- else:
- @@ -542,18 +536,20 @@ class AlarmDialog(Gtk.Dialog):
- table1.attach(box, 1, 4, 2, 3)
- def show_leading_zeros(self, spin_button):
- + val = spin_button.get_value_as_int()
- + if val < 10:
- + spin_button.set_text("0"+str(val))
- + else:
- + spin_button.set_text(str(val))
- spin_button.set_text('{: 02d}'.format(spin_button.get_value_as_int()))
- return True
- - def get_system_clock_format(self):
- - settings = Gio.Settings.new('org.gnome.desktop.interface')
- - systemClockFormat = settings.get_string('clock-format')
- - return systemClockFormat
- -
- def get_repeat_days_from_vevent(self, vevent):
- rrule = vevent.rrule.value
- repeat = []
- - if rrule[5] == 'W':
- + if vevent.rrule.value == 'FREQ=DAILY':
- + pass
- + else:
- days = rrule[18:]
- repeat = days.split(",")
- return repeat
- @@ -570,12 +566,13 @@ class AlarmDialog(Gtk.Dialog):
- if self.cf == "12h":
- r = self.ampm.get_active()
- if r == 0:
- - p = "AM"
- + p = "am"
- else:
- - p = "PM"
- - else:
- - p = None
- - new_alarm = AlarmItem(name, repeat, h, m, p)
- + p = "pm"
- + h = h + 12
- + if h == 24:
- + h = 12
- + new_alarm = AlarmItem(name, repeat, h, m)
- self.emit('add-alarm', new_alarm)
- self.destroy()
- else:
- --
- 1.7.9.5
Add Comment
Please, Sign In to add comment