Switching from sound to an alert
authorEd Page <eopage@byu.net>
Fri, 25 Feb 2011 04:12:55 +0000 (22:12 -0600)
committerEd Page <eopage@byu.net>
Wed, 13 Apr 2011 03:08:47 +0000 (22:08 -0500)
src/dialcentral_qt.py
src/session.py

index f68280e..152d0f5 100755 (executable)
@@ -369,11 +369,7 @@ class MainWindow(qwrappers.WindowWrapper):
                self._voicemailRefreshDelay.setSingleShot(True)
                self._callHandler = call_handler.MissedCallWatcher()
                self._callHandler.callMissed.connect(self._voicemailRefreshDelay.start)
-               self._alertSoundPath = self._app.get_resource("bell.wav")
-               if QtGui.QSound.isAvailable():
-                       self._session.newMessages.connect(self._on_new_message_alert)
-               else:
-                       _moduleLogger.info("No sound support available")
+               self._session.newMessages.connect(self._on_new_message_alert)
                self._defaultCredentials = "", ""
                self._curentCredentials = "", ""
                self._currentTab = 0
@@ -611,10 +607,7 @@ class MainWindow(qwrappers.WindowWrapper):
        @misc_utils.log_exception(_moduleLogger)
        def _on_new_message_alert(self):
                with qui_utils.notify_error(self._errorLog):
-                       if self._alertSoundPath is not None:
-                               QtGui.QSound.play(self._alertSoundPath)
-                       else:
-                               _moduleLogger.info("Alert but alas I am missing my voice")
+                       self._errorLog.push_message("New messages available")
 
        @QtCore.pyqtSlot(str)
        @misc_utils.log_exception(_moduleLogger)
index e1962f5..c325d92 100644 (file)
@@ -678,12 +678,25 @@ class Session(QtCore.QObject):
 
        def _clean_messages(self, messages):
                for message in messages:
-                       cleaned = dict(message)
-                       del cleaned["relTime"]
-                       del cleaned["time"]
-                       del cleaned["isArchived"]
-                       del cleaned["isRead"]
-                       del cleaned["isSpam"]
-                       del cleaned["isTrash"]
-                       cleaned["messageParts"] = [tuple(part[0:-1]) for part in cleaned["messageParts"] if part[0] != "Me:"]
+                       cleaned = dict(
+                               kv
+                               for kv in message.iteritems()
+                               if kv[0] not in
+                               [
+                                       "relTime",
+                                       "time",
+                                       "isArchived",
+                                       "isRead",
+                                       "isSpam",
+                                       "isTrash",
+                               ]
+                       )
+
+                       # Don't let outbound messages cause alerts, especially if the package has only outbound
+                       cleaned["messageParts"] = [
+                               tuple(part[0:-1]) for part in cleaned["messageParts"] if part[0] != "Me:"
+                       ]
+                       if not cleaned["messageParts"]:
+                               continue
+
                        yield cleaned