MCPcopy Index your code
hub / github.com/Bitmessage/PyBitmessage / propagateUnreadCount

Method propagateUnreadCount

src/bitmessageqt/__init__.py:957–1008  ·  view source on GitHub ↗
(self, address = None, folder = "inbox", widget = None, type = 1)

Source from the content-addressed store, hash-verified

955 related.item(rrow, col).setUnread(not status)
956
957 def propagateUnreadCount(self, address = None, folder = "inbox", widget = None, type = 1):
958 widgets = [self.ui.treeWidgetYourIdentities, self.ui.treeWidgetSubscriptions, self.ui.treeWidgetChans]
959 queryReturn = sqlQuery("SELECT toaddress, folder, COUNT(msgid) AS cnt FROM inbox WHERE read = 0 GROUP BY toaddress, folder")
960 totalUnread = {}
961 normalUnread = {}
962 for row in queryReturn:
963 normalUnread[row[0]] = {}
964 if row[1] in ["trash"]:
965 continue
966 normalUnread[row[0]][row[1]] = row[2]
967 if row[1] in totalUnread:
968 totalUnread[row[1]] += row[2]
969 else:
970 totalUnread[row[1]] = row[2]
971 queryReturn = sqlQuery("SELECT fromaddress, folder, COUNT(msgid) AS cnt FROM inbox WHERE read = 0 AND toaddress = ? GROUP BY fromaddress, folder", str_broadcast_subscribers)
972 broadcastsUnread = {}
973 for row in queryReturn:
974 broadcastsUnread[row[0]] = {}
975 broadcastsUnread[row[0]][row[1]] = row[2]
976
977 for treeWidget in widgets:
978 root = treeWidget.invisibleRootItem()
979 for i in range(root.childCount()):
980 addressItem = root.child(i)
981 newCount = 0
982 if addressItem.type == AccountMixin.ALL:
983 newCount = sum(totalUnread.itervalues())
984 self.drawTrayIcon(self.currentTrayIconFileName, newCount)
985 elif addressItem.type == AccountMixin.SUBSCRIPTION:
986 if addressItem.address in broadcastsUnread:
987 newCount = sum(broadcastsUnread[addressItem.address].itervalues())
988 elif addressItem.address in normalUnread:
989 newCount = sum(normalUnread[addressItem.address].itervalues())
990 if newCount != addressItem.unreadCount:
991 addressItem.setUnreadCount(newCount)
992 if addressItem.childCount == 0:
993 continue
994 for j in range(addressItem.childCount()):
995 folderItem = addressItem.child(j)
996 newCount = 0
997 folderName = folderItem.folderName
998 if folderName == "new":
999 folderName = "inbox"
1000 if addressItem.type == AccountMixin.ALL and folderName in totalUnread:
1001 newCount = totalUnread[folderName]
1002 elif addressItem.type == AccountMixin.SUBSCRIPTION:
1003 if addressItem.address in broadcastsUnread and folderName in broadcastsUnread[addressItem.address]:
1004 newCount = broadcastsUnread[addressItem.address][folderName]
1005 elif addressItem.address in normalUnread and folderName in normalUnread[addressItem.address]:
1006 newCount = normalUnread[addressItem.address][folderName]
1007 if newCount != folderItem.unreadCount:
1008 folderItem.setUnreadCount(newCount)
1009
1010 def addMessageListItem(self, tableWidget, items):
1011 sortingEnabled = tableWidget.isSortingEnabled()

Callers 9

removeInboxRowByMsgidMethod · 0.95
on_action_MarkAllReadMethod · 0.95
on_action_InboxTrashMethod · 0.95
on_action_SentTrashMethod · 0.95
treeWidgetItemClickedMethod · 0.95

Calls 3

drawTrayIconMethod · 0.95
sqlQueryFunction · 0.90
setUnreadCountMethod · 0.80

Tested by

no test coverage detected