| 165 | |
| 166 | |
| 167 | class Ui_AddressWidget(QtGui.QTreeWidgetItem, AccountMixin, SettingsMixin): |
| 168 | def __init__(self, parent, pos = 0, address = None, unreadCount = 0, enabled = True): |
| 169 | super(QtGui.QTreeWidgetItem, self).__init__() |
| 170 | parent.insertTopLevelItem(pos, self) |
| 171 | # only set default when creating |
| 172 | #super(QtGui.QTreeWidgetItem, self).setExpanded(BMConfigParser().getboolean(self.address, 'enabled')) |
| 173 | self.setAddress(address) |
| 174 | self.setEnabled(enabled) |
| 175 | self.setUnreadCount(unreadCount) |
| 176 | self.setType() |
| 177 | |
| 178 | def _getLabel(self): |
| 179 | if self.address is None: |
| 180 | return unicode(_translate( |
| 181 | "MainWindow", "All accounts").toUtf8(), 'utf-8', 'ignore') |
| 182 | else: |
| 183 | try: |
| 184 | return unicode( |
| 185 | BMConfigParser().get(self.address, 'label'), |
| 186 | 'utf-8', 'ignore') |
| 187 | except: |
| 188 | return unicode(self.address, 'utf-8') |
| 189 | |
| 190 | def _getAddressBracket(self, unreadCount = False): |
| 191 | ret = "" |
| 192 | if unreadCount: |
| 193 | ret += " (" + str(self.unreadCount) + ")" |
| 194 | if self.address is not None: |
| 195 | ret += " (" + self.address + ")" |
| 196 | return ret |
| 197 | |
| 198 | def data(self, column, role): |
| 199 | if column == 0: |
| 200 | if role == QtCore.Qt.DisplayRole: |
| 201 | if self.unreadCount > 0 and not self.isExpanded(): |
| 202 | return self._getLabel() + self._getAddressBracket(True) |
| 203 | else: |
| 204 | return self._getLabel() + self._getAddressBracket(False) |
| 205 | elif role == QtCore.Qt.EditRole: |
| 206 | return self._getLabel() |
| 207 | elif role == QtCore.Qt.ToolTipRole: |
| 208 | return self._getLabel() + self._getAddressBracket(False) |
| 209 | elif role == QtCore.Qt.DecorationRole: |
| 210 | if self.address is None: |
| 211 | return avatarize(self._getLabel().encode('utf8')) |
| 212 | else: |
| 213 | return avatarize(self.address) |
| 214 | elif role == QtCore.Qt.FontRole: |
| 215 | font = QtGui.QFont() |
| 216 | font.setBold(self.unreadCount > 0) |
| 217 | return font |
| 218 | elif role == QtCore.Qt.ForegroundRole: |
| 219 | return self.accountBrush() |
| 220 | return super(Ui_AddressWidget, self).data(column, role) |
| 221 | |
| 222 | def setData(self, column, role, value): |
| 223 | if role == QtCore.Qt.EditRole and self.type != AccountMixin.SUBSCRIPTION: |
| 224 | if isinstance(value, QtCore.QVariant): |