/ src / bitmessageqt / uisignaler.py
uisignaler.py
 1  
 2  from PyQt4.QtCore import QThread, SIGNAL
 3  import sys
 4  
 5  import queues
 6  
 7  
 8  class UISignaler(QThread):
 9      _instance = None
10  
11      def __init__(self, parent=None):
12          QThread.__init__(self, parent)
13  
14      @classmethod
15      def get(cls):
16          if not cls._instance:
17              cls._instance = UISignaler()
18          return cls._instance
19  
20      def run(self):
21          while True:
22              command, data = queues.UISignalQueue.get()
23              if command == 'writeNewAddressToTable':
24                  label, address, streamNumber = data
25                  self.emit(
26                      SIGNAL("writeNewAddressToTable(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
27                      label,
28                      address,
29                      str(streamNumber))
30              elif command == 'updateStatusBar':
31                  self.emit(SIGNAL("updateStatusBar(PyQt_PyObject)"), data)
32              elif command == 'updateSentItemStatusByToAddress':
33                  toAddress, message = data
34                  self.emit(SIGNAL(
35                      "updateSentItemStatusByToAddress(PyQt_PyObject,PyQt_PyObject)"), toAddress, message)
36              elif command == 'updateSentItemStatusByAckdata':
37                  ackData, message = data
38                  self.emit(SIGNAL(
39                      "updateSentItemStatusByAckdata(PyQt_PyObject,PyQt_PyObject)"), ackData, message)
40              elif command == 'displayNewInboxMessage':
41                  inventoryHash, toAddress, fromAddress, subject, body = data
42                  self.emit(SIGNAL(
43                      "displayNewInboxMessage(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
44                      inventoryHash, toAddress, fromAddress, subject, body)
45              elif command == 'displayNewSentMessage':
46                  toAddress, fromLabel, fromAddress, subject, message, ackdata = data
47                  self.emit(SIGNAL(
48                      "displayNewSentMessage(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
49                      toAddress, fromLabel, fromAddress, subject, message, ackdata)
50              elif command == 'updateNetworkStatusTab':
51                  outbound, add, destination = data
52                  self.emit(
53                      SIGNAL("updateNetworkStatusTab(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
54                      outbound,
55                      add,
56                      destination)
57              elif command == 'updateNumberOfMessagesProcessed':
58                  self.emit(SIGNAL("updateNumberOfMessagesProcessed()"))
59              elif command == 'updateNumberOfPubkeysProcessed':
60                  self.emit(SIGNAL("updateNumberOfPubkeysProcessed()"))
61              elif command == 'updateNumberOfBroadcastsProcessed':
62                  self.emit(SIGNAL("updateNumberOfBroadcastsProcessed()"))
63              elif command == 'setStatusIcon':
64                  self.emit(SIGNAL("setStatusIcon(PyQt_PyObject)"), data)
65              elif command == 'changedInboxUnread':
66                  self.emit(SIGNAL("changedInboxUnread(PyQt_PyObject)"), data)
67              elif command == 'rerenderMessagelistFromLabels':
68                  self.emit(SIGNAL("rerenderMessagelistFromLabels()"))
69              elif command == 'rerenderMessagelistToLabels':
70                  self.emit(SIGNAL("rerenderMessagelistToLabels()"))
71              elif command == 'rerenderAddressBook':
72                  self.emit(SIGNAL("rerenderAddressBook()"))
73              elif command == 'rerenderSubscriptions':
74                  self.emit(SIGNAL("rerenderSubscriptions()"))
75              elif command == 'rerenderBlackWhiteList':
76                  self.emit(SIGNAL("rerenderBlackWhiteList()"))
77              elif command == 'removeInboxRowByMsgid':
78                  self.emit(SIGNAL("removeInboxRowByMsgid(PyQt_PyObject)"), data)
79              elif command == 'newVersionAvailable':
80                  self.emit(SIGNAL("newVersionAvailable(PyQt_PyObject)"), data)
81              elif command == 'alert':
82                  title, text, exitAfterUserClicksOk = data
83                  self.emit(
84                      SIGNAL("displayAlert(PyQt_PyObject, PyQt_PyObject, PyQt_PyObject)"),
85                      title,
86                      text,
87                      exitAfterUserClicksOk)
88              else:
89                  sys.stderr.write(
90                      'Command sent to UISignaler not recognized: %s\n' % command)