Newer
Older
'''
Created on 5 févr. 2014
@author: inso
'''
import logging
from ..tools.exceptions import PersonNotFoundError
from PyQt5.QtCore import QAbstractListModel, Qt
from PyQt5.QtGui import QFont
class SentListModel(QAbstractListModel):
'''
A Qt abstract item model to display communities in a tree
'''
def __init__(self, account, community, parent=None):
'''
Constructor
'''
super(SentListModel, self).__init__(parent)
self.account = account
self.community = community
return len(self.account.transactions_sent(self.community)) \
+ len(self.account.transactions_awaiting(self.community))
row = index.row()
if role == Qt.DisplayRole:
transactions = []
if row < len(self.account.transactions_sent(self.community)):
transactions = self.account.transactions_sent(self.community)
else:
transactions = self.account.transactions_awaiting(self.community)
row = row - len(self.account.transactions_sent(self.community))
amount = 0
outputs = []
for o in transactions[row].outputs:
pubkeys = [w.pubkey for w in self.account.wallets]
if o.pubkey not in pubkeys:
outputs.append(o)
amount += o.amount
try:
receiver = Person.lookup(outputs[0].pubkey, self.community)
value = "{0} to {1}".format(amount, receiver.name)
except PersonNotFoundError:
value = "{0} to {1}".format(amount, outputs[0].pubkey)
return value
if role == Qt.FontRole:
font = QFont()
if row < len(self.account.transactions_sent(self.community)):
font.setItalic(False)
else:
font.setItalic(True)
return font
return Qt.ItemIsSelectable | Qt.ItemIsEnabled