From 7831c43118bdbecc6553d1272225007108acaccc Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 5 Jan 2011 19:19:43 -0600 Subject: [PATCH] Turn off notifications on refresh --- src/dialcentral_qt.py | 29 +++++++++++++++++++++++++++++ src/gv_views.py | 4 ++++ 2 files changed, 33 insertions(+) diff --git a/src/dialcentral_qt.py b/src/dialcentral_qt.py index cadafe0..bb377c4 100755 --- a/src/dialcentral_qt.py +++ b/src/dialcentral_qt.py @@ -23,6 +23,30 @@ import session _moduleLogger = logging.getLogger(__name__) +class LedWrapper(object): + + def __init__(self): + self._ledHandler = None + self._init = False + + def off(self): + self._lazy_init() + if self._ledHandler is not None: + self._ledHandler.off() + + def _lazy_init(self): + if self._init: + return + self._init = True + try: + import led_handler + self._ledHandler = led_handler.LedHandler() + except Exception, e: + _moduleLogger.exception('Unable to initialize LED Handling: "%s"' % str(e)) + self._ledHandler = None + + + class Dialcentral(object): _DATA_PATHS = [ @@ -37,6 +61,7 @@ class Dialcentral(object): self._hiddenUnits = {} self._clipboard = QtGui.QApplication.clipboard() self._dataPath = None + self._ledHandler = LedWrapper() self.notifyOnMissed = False self.notifyOnVoicemail = False self.notifyOnSms = False @@ -217,6 +242,10 @@ class Dialcentral(object): def alarmHandler(self): return self._alarmHandler + @property + def ledHandler(self): + return self._ledHandler + def _walk_children(self): if self._mainWindow is not None: return (self._mainWindow, ) diff --git a/src/gv_views.py b/src/gv_views.py index 6525f85..e6b243b 100644 --- a/src/gv_views.py +++ b/src/gv_views.py @@ -343,6 +343,8 @@ class History(object): def refresh(self, force=True): self._session.update_history(force) + if self._app.notifyOnMissed: + self._app.ledHandler.off() def _populate_items(self): self._categoryManager.prepare_for_update(self._session.get_when_history_updated()) @@ -548,6 +550,8 @@ class Messages(object): def refresh(self, force=True): self._session.update_messages(force) + if self._app.notifyOnSms or self._app.notifyOnVoicemail: + self._app.ledHandler.off() def _populate_items(self): self._categoryManager.prepare_for_update(self._session.get_when_messages_updated()) -- 1.7.9.5