Switch unread for item of msgid and related items in other STableWidgets "All Accounts" and "Chans"
(self, widget, row, msgid, unread=True)
| 915 | ) |
| 916 | |
| 917 | def updateUnreadStatus(self, widget, row, msgid, unread=True): |
| 918 | """ |
| 919 | Switch unread for item of msgid and related items in |
| 920 | other STableWidgets "All Accounts" and "Chans" |
| 921 | """ |
| 922 | related = [self.ui.tableWidgetInbox, self.ui.tableWidgetInboxChans] |
| 923 | try: |
| 924 | related.remove(widget) |
| 925 | related = related.pop() |
| 926 | except ValueError: |
| 927 | rrow = None |
| 928 | related = [] |
| 929 | else: |
| 930 | # maybe use instead: |
| 931 | # rrow = related.row(msgid), msgid should be QTableWidgetItem |
| 932 | # related = related.findItems(msgid, QtCore.Qt.MatchExactly), |
| 933 | # returns an empty list |
| 934 | for rrow in xrange(related.rowCount()): |
| 935 | if msgid == str(related.item(rrow, 3).data( |
| 936 | QtCore.Qt.UserRole).toPyObject()): |
| 937 | break |
| 938 | else: |
| 939 | rrow = None |
| 940 | |
| 941 | status = widget.item(row, 0).unread |
| 942 | if status == unread: |
| 943 | font = QtGui.QFont() |
| 944 | font.setBold(not status) |
| 945 | widget.item(row, 3).setFont(font) |
| 946 | for col in (0, 1, 2): |
| 947 | widget.item(row, col).setUnread(not status) |
| 948 | |
| 949 | try: |
| 950 | related.item(rrow, 3).setFont(font) |
| 951 | except (TypeError, AttributeError): |
| 952 | pass |
| 953 | else: |
| 954 | for col in (0, 1, 2): |
| 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] |
no test coverage detected