[gnome-clocks] AlarmItem: Save state for the cell renderer
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-clocks] AlarmItem: Save state for the cell renderer
- Date: Sat, 1 Dec 2012 23:09:07 +0000 (UTC)
commit c8ed694a1e5d8ca1d5dfa425e2195045000f8e61
Author: Volker Sobek <reklov live com>
Date: Sat Dec 1 23:56:28 2012 +0100
AlarmItem: Save state for the cell renderer
Provide various strings as attributes, so we don't call the functions
each time a cell is rendered.
gnomeclocks/alarm.py | 51 ++++++++++++++++++++++++++-----------------------
1 files changed, 27 insertions(+), 24 deletions(-)
---
diff --git a/gnomeclocks/alarm.py b/gnomeclocks/alarm.py
index 093b2fa..42072d8 100644
--- a/gnomeclocks/alarm.py
+++ b/gnomeclocks/alarm.py
@@ -77,8 +77,11 @@ class AlarmItem:
self.days = days # list of numbers, 0 == Monday
self._update_expiration_time()
- self._reset_snooze(self.time)
+ self._reset_snooze(self.alarm_time)
+ self.alarm_time_string = self._get_alarm_time_string()
+ self.alarm_repeat_string = self._get_alarm_repeat_string()
+ self.is_light = self._get_is_light()
self.alert = Alert("alarm-clock-elapsed", name)
def _update_expiration_time(self):
@@ -93,27 +96,19 @@ class AlarmItem:
# otherwise next week
else:
dt += timedelta(weeks=1, days=(self.days[0] - dt.weekday()))
- self.time = dt
+ self.alarm_time = dt
def _reset_snooze(self, start_time):
self.snooze_time = start_time + timedelta(minutes=9)
self.is_snoozing = False
- def snooze(self):
- self.is_snoozing = True
- self.alert.stop()
-
- def stop(self):
- self._reset_snooze(self.time)
- self.alert.stop()
-
- def get_time_as_string(self):
+ def _get_alarm_time_string(self):
if SystemSettings.get_clock_format() == "12h":
- return self.time.strftime("%I:%M %p")
+ return self.alarm_time.strftime("%I:%M %p")
else:
- return self.time.strftime("%H:%M")
+ return self.alarm_time.strftime("%H:%M")
- def get_alarm_repeat_string(self):
+ def _get_alarm_repeat_string(self):
n = len(self.days)
if n == 0:
return ""
@@ -131,11 +126,22 @@ class AlarmItem:
days.append(LocalizedWeekdays.get_abbr(day_num))
return ", ".join(days)
+ def _get_is_light(self):
+ return self.hour > 7 and self.hour < 19
+
+ def snooze(self):
+ self.is_snoozing = True
+ self.alert.stop()
+
+ def stop(self):
+ self._reset_snooze(self.alarm_time)
+ self.alert.stop()
+
def check_expired(self):
t = datetime.now()
- if t > self.time:
+ if t > self.alarm_time:
self.alert.show()
- self._reset_snooze(self.time)
+ self._reset_snooze(self.alarm_time)
self._update_expiration_time()
return True
elif self.is_snoozing and t > self.snooze_time:
@@ -145,9 +151,6 @@ class AlarmItem:
else:
return False
- def get_is_light(self):
- return self.hour > 7 and self.hour < 19
-
class AlarmDialog(Gtk.Dialog):
def __init__(self, parent, alarm=None):
@@ -362,8 +365,8 @@ class AlarmStandalone(Gtk.EventBox):
def update(self):
if self.alarm:
- timestr = self.alarm.get_time_as_string()
- repeat = self.alarm.get_alarm_repeat_string()
+ timestr = self.alarm.alarm_time_string
+ repeat = self.alarm.alarm_repeat_string
self.alarm_label.set_markup(
"<span size='72000' color='dimgray'><b>%s</b></span>" % timestr)
self.repeat_label.set_markup(
@@ -419,9 +422,9 @@ class Alarm(Clock):
def _thumb_data_func(self, view, cell, store, i, data):
alarm = store.get_value(i, 2)
- cell.text = alarm.get_time_as_string()
- cell.subtext = alarm.get_alarm_repeat_string()
- if alarm.get_is_light():
+ cell.text = alarm.alarm_time_string
+ cell.subtext = alarm.alarm_repeat_string
+ if alarm.is_light:
cell.props.pixbuf = self.daypixbuf
cell.css_class = "light"
else:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]