diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 73c4c687..1fc784a1 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -921,6 +921,7 @@ class MyForm(QtGui.QMainWindow): toAddressItem.setToolTip(unicode(acct.toLabel, 'utf-8')) toAddressItem.setIcon(avatarize(toAddress)) toAddressItem.setData(Qt.UserRole, str(toAddress)) + toAddressItem.setTextColor(AccountColor(toAddress).accountColor()) toAddressItem.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) tableWidget.setItem(0, 0, toAddressItem) @@ -929,6 +930,7 @@ class MyForm(QtGui.QMainWindow): fromAddressItem.setToolTip(unicode(acct.fromLabel, 'utf-8')) fromAddressItem.setIcon(avatarize(fromAddress)) fromAddressItem.setData(Qt.UserRole, str(fromAddress)) + fromAddressItem.setTextColor(AccountColor(fromAddress).accountColor()) fromAddressItem.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) tableWidget.setItem(0, 1, fromAddressItem) @@ -1058,10 +1060,7 @@ class MyForm(QtGui.QMainWindow): if not read: to_item.setFont(font) to_item.setData(Qt.UserRole, str(toAddress)) - if shared.safeConfigGetBoolean(toAddress, 'mailinglist'): - to_item.setTextColor(QtGui.QColor(137, 04, 177)) # magenta - if shared.safeConfigGetBoolean(str(toAddress), 'chan'): - to_item.setTextColor(QtGui.QColor(216, 119, 0)) # orange + to_item.setTextColor(AccountColor(toAddress).accountColor()) to_item.setIcon(avatarize(toAddress)) tableWidget.setItem(0, 0, to_item) # from @@ -1072,8 +1071,7 @@ class MyForm(QtGui.QMainWindow): if not read: from_item.setFont(font) from_item.setData(Qt.UserRole, str(fromAddress)) - if shared.safeConfigGetBoolean(str(fromAddress), 'chan'): - from_item.setTextColor(QtGui.QColor(216, 119, 0)) # orange + from_item.setTextColor(AccountColor(fromAddress).accountColor()) from_item.setIcon(avatarize(fromAddress)) tableWidget.setItem(0, 1, from_item) # subject diff --git a/src/bitmessageqt/account.py b/src/bitmessageqt/account.py index 2342bcc5..6e1083f6 100644 --- a/src/bitmessageqt/account.py +++ b/src/bitmessageqt/account.py @@ -6,6 +6,7 @@ import sys import inspect from helper_sql import * from addresses import decodeAddress +from foldertree import AccountMixin from pyelliptic.openssl import OpenSSL from utils import str_broadcast_subscribers import time @@ -41,6 +42,24 @@ def accountClass(address): # no gateway return BMAccount(address) +class AccountColor(AccountMixin): + def __init__(self, address, type = None): + self.isEnabled = True + self.address = address + if type is None: + if shared.safeConfigGetBoolean(self.address, 'mailinglist'): + self.type = "mailinglist" + elif shared.safeConfigGetBoolean(self.address, 'chan'): + self.type = "chan" + elif sqlQuery( + '''select label from subscriptions where address=?''', self.address): + self.type = 'subscription' + else: + self.type = "normal" + else: + self.type = type + + class BMAccount(object): def __init__(self, address = None): self.address = address diff --git a/src/bitmessageqt/foldertree.py b/src/bitmessageqt/foldertree.py index f49b1d6d..e0ce72b8 100644 --- a/src/bitmessageqt/foldertree.py +++ b/src/bitmessageqt/foldertree.py @@ -6,13 +6,16 @@ import shared class AccountMixin (object): def accountColor (self): if not self.isEnabled: - return QtGui.QBrush(QtGui.QColor(128, 128, 128)) + return QtGui.QColor(128, 128, 128) elif self.type == "chan": - return QtGui.QBrush(QtGui.QColor(216, 119, 0)) + return QtGui.QColor(216, 119, 0) elif self.type == "mailinglist" or self.type == "subscription": - return QtGui.QBrush(QtGui.QColor(137, 04, 177)) + return QtGui.QColor(137, 04, 177) else: - return QtGui.QBrush(QtGui.QApplication.palette().text().color()) + return QtGui.QApplication.palette().text().color() + + def accountBrush(self): + return QtGui.QBrush(self.accountColor()) def setAddress(self, address): self.address = str(address) @@ -121,7 +124,7 @@ class Ui_AddressWidget(QtGui.QTreeWidgetItem, AccountMixin): self.setFont(0, font) #set text color - brush = self.accountColor() + brush = self.accountBrush() brush.setStyle(QtCore.Qt.NoBrush) self.setForeground(0, brush) @@ -204,7 +207,7 @@ class Ui_SubscriptionWidget(Ui_AddressWidget, AccountMixin): self.setFont(0, font) #set text color - brush = self.accountColor() + brush = self.accountBrush() brush.setStyle(QtCore.Qt.NoBrush) self.setForeground(0, brush) @@ -246,7 +249,7 @@ class Ui_AddressBookWidgetItem(QtGui.QTableWidgetItem, AccountMixin): except: self.type = 0 self.setEnabled(True) - brush = self.accountColor() + brush = self.accountBrush() brush.setStyle(QtCore.Qt.NoBrush) self.setForeground(brush)