| 294 | |
| 295 | |
| 296 | class MessageList_AddressWidget(QtGui.QTableWidgetItem, AccountMixin, SettingsMixin): |
| 297 | def __init__(self, parent, address = None, label = None, unread = False): |
| 298 | super(QtGui.QTableWidgetItem, self).__init__() |
| 299 | #parent.insertTopLevelItem(pos, self) |
| 300 | # only set default when creating |
| 301 | #super(QtGui.QTreeWidgetItem, self).setExpanded(BMConfigParser().getboolean(self.address, 'enabled')) |
| 302 | self.isEnabled = True |
| 303 | self.setAddress(address) |
| 304 | self.setLabel(label) |
| 305 | self.setUnread(unread) |
| 306 | self.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) |
| 307 | self.setType() |
| 308 | parent.append(self) |
| 309 | |
| 310 | def setLabel(self, label = None): |
| 311 | newLabel = self.address |
| 312 | if label is None: |
| 313 | queryreturn = None |
| 314 | if self.type in (AccountMixin.NORMAL, AccountMixin.CHAN, AccountMixin.MAILINGLIST): |
| 315 | try: |
| 316 | newLabel = unicode(BMConfigParser().get(self.address, 'label'), 'utf-8', 'ignore') |
| 317 | except: |
| 318 | queryreturn = sqlQuery( |
| 319 | '''select label from addressbook where address=?''', self.address) |
| 320 | elif self.type == AccountMixin.SUBSCRIPTION: |
| 321 | queryreturn = sqlQuery( |
| 322 | '''select label from subscriptions where address=?''', self.address) |
| 323 | if queryreturn is not None: |
| 324 | if queryreturn != []: |
| 325 | for row in queryreturn: |
| 326 | newLabel = unicode(row[0], 'utf-8', 'ignore') |
| 327 | else: |
| 328 | newLabel = label |
| 329 | if hasattr(self, 'label') and newLabel == self.label: |
| 330 | return |
| 331 | self.label = newLabel |
| 332 | |
| 333 | def setUnread(self, unread): |
| 334 | self.unread = unread |
| 335 | |
| 336 | def data(self, role): |
| 337 | if role == QtCore.Qt.DisplayRole: |
| 338 | return self.label |
| 339 | elif role == QtCore.Qt.EditRole: |
| 340 | return self.label |
| 341 | elif role == QtCore.Qt.ToolTipRole: |
| 342 | return self.label + " (" + self.address + ")" |
| 343 | elif role == QtCore.Qt.DecorationRole: |
| 344 | if BMConfigParser().safeGetBoolean('bitmessagesettings', 'useidenticons'): |
| 345 | if self.address is None: |
| 346 | return avatarize(self.label) |
| 347 | else: |
| 348 | return avatarize(self.address) |
| 349 | elif role == QtCore.Qt.FontRole: |
| 350 | font = QtGui.QFont() |
| 351 | font.setBold(self.unread) |
| 352 | return font |
| 353 | elif role == QtCore.Qt.ForegroundRole: |
no outgoing calls
no test coverage detected