Messagelist subject class
Messagelist subjects now are their own class. Fixes #153 Also fixes replies/clipboard for gatewayed messages.
This commit is contained in:
parent
d6ec2a2b8d
commit
3b30afea29
|
@ -984,16 +984,9 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
acct.parseMessage(toAddress, fromAddress, subject, "")
|
acct.parseMessage(toAddress, fromAddress, subject, "")
|
||||||
|
|
||||||
items = []
|
items = []
|
||||||
MessageList_AddressWidget(items, str(acct.toAddress), unicode(acct.toLabel, 'utf-8'))
|
MessageList_AddressWidget(items, str(toAddress), unicode(acct.toLabel, 'utf-8'))
|
||||||
|
MessageList_AddressWidget(items, str(fromAddress), unicode(acct.fromLabel, 'utf-8'))
|
||||||
MessageList_AddressWidget(items, str(acct.fromAddress), unicode(acct.fromLabel, 'utf-8'))
|
MessageList_SubjectWidget(items, str(subject), unicode(acct.subject, 'utf-8'))
|
||||||
|
|
||||||
subjectItem = QtGui.QTableWidgetItem(unicode(acct.subject, 'utf-8'))
|
|
||||||
subjectItem.setToolTip(unicode(acct.subject, 'utf-8'))
|
|
||||||
subjectItem.setData(Qt.UserRole, str(subject))
|
|
||||||
subjectItem.setFlags(
|
|
||||||
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
|
|
||||||
items.append(subjectItem)
|
|
||||||
|
|
||||||
if status == 'awaitingpubkey':
|
if status == 'awaitingpubkey':
|
||||||
statusText = _translate(
|
statusText = _translate(
|
||||||
|
@ -1060,18 +1053,11 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
|
|
||||||
items = []
|
items = []
|
||||||
#to
|
#to
|
||||||
MessageList_AddressWidget(items, str(acct.toAddress), unicode(acct.toLabel, 'utf-8'), not read)
|
MessageList_AddressWidget(items, toAddress, unicode(acct.toLabel, 'utf-8'), not read)
|
||||||
# from
|
# from
|
||||||
MessageList_AddressWidget(items, str(acct.fromAddress), unicode(acct.fromLabel, 'utf-8'), not read)
|
MessageList_AddressWidget(items, fromAddress, unicode(acct.fromLabel, 'utf-8'), not read)
|
||||||
# subject
|
# subject
|
||||||
subject_item = QtGui.QTableWidgetItem(unicode(acct.subject, 'utf-8'))
|
MessageList_SubjectWidget(items, str(subject), unicode(acct.subject, 'utf-8'), not read)
|
||||||
subject_item.setToolTip(unicode(acct.subject, 'utf-8'))
|
|
||||||
subject_item.setData(Qt.UserRole, str(subject))
|
|
||||||
subject_item.setFlags(
|
|
||||||
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
|
|
||||||
if not read:
|
|
||||||
subject_item.setFont(font)
|
|
||||||
items.append(subject_item)
|
|
||||||
# time received
|
# time received
|
||||||
time_item = myTableWidgetItem(l10n.formatTimestamp(received))
|
time_item = myTableWidgetItem(l10n.formatTimestamp(received))
|
||||||
time_item.setToolTip(l10n.formatTimestamp(received))
|
time_item.setToolTip(l10n.formatTimestamp(received))
|
||||||
|
@ -3000,7 +2986,7 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
inventoryHashesToMarkUnread.append(inventoryHashToMarkUnread)
|
inventoryHashesToMarkUnread.append(inventoryHashToMarkUnread)
|
||||||
tableWidget.item(currentRow, 0).setUnread(True)
|
tableWidget.item(currentRow, 0).setUnread(True)
|
||||||
tableWidget.item(currentRow, 1).setUnread(True)
|
tableWidget.item(currentRow, 1).setUnread(True)
|
||||||
tableWidget.item(currentRow, 2).setFont(font)
|
tableWidget.item(currentRow, 2).setUnread(True)
|
||||||
tableWidget.item(currentRow, 3).setFont(font)
|
tableWidget.item(currentRow, 3).setFont(font)
|
||||||
#sqlite requires the exact number of ?s to prevent injection
|
#sqlite requires the exact number of ?s to prevent injection
|
||||||
sqlExecute('''UPDATE inbox SET read=0 WHERE msgid IN (%s)''' % (
|
sqlExecute('''UPDATE inbox SET read=0 WHERE msgid IN (%s)''' % (
|
||||||
|
@ -3064,7 +3050,7 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
if queryreturn != []:
|
if queryreturn != []:
|
||||||
for row in queryreturn:
|
for row in queryreturn:
|
||||||
messageAtCurrentInboxRow, = row
|
messageAtCurrentInboxRow, = row
|
||||||
acct.parseMessage(toAddressAtCurrentInboxRow, fromAddressAtCurrentInboxRow, unicode(tableWidget.item(currentInboxRow, 2).data(Qt.UserRole).toPyObject(), 'utf-8'), messageAtCurrentInboxRow)
|
acct.parseMessage(toAddressAtCurrentInboxRow, fromAddressAtCurrentInboxRow, tableWidget.item(currentInboxRow, 2).subject, messageAtCurrentInboxRow)
|
||||||
widget = {
|
widget = {
|
||||||
'subject': self.ui.lineEditSubject,
|
'subject': self.ui.lineEditSubject,
|
||||||
'from': self.ui.comboBoxSendFrom,
|
'from': self.ui.comboBoxSendFrom,
|
||||||
|
@ -3148,7 +3134,7 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
queryreturn = sqlQuery('''select * from blacklist where address=?''',
|
queryreturn = sqlQuery('''select * from blacklist where address=?''',
|
||||||
addressAtCurrentInboxRow)
|
addressAtCurrentInboxRow)
|
||||||
if queryreturn == []:
|
if queryreturn == []:
|
||||||
label = "\"" + unicode(tableWidget.item(currentInboxRow, 2).data(Qt.UserRole).toString(), 'utf-8') + "\" in " + shared.config.get(recipientAddress, "label")
|
label = "\"" + tableWidget.item(currentInboxRow, 2).subject + "\" in " + shared.config.get(recipientAddress, "label")
|
||||||
sqlExecute('''INSERT INTO blacklist VALUES (?,?, ?)''',
|
sqlExecute('''INSERT INTO blacklist VALUES (?,?, ?)''',
|
||||||
label,
|
label,
|
||||||
addressAtCurrentInboxRow, True)
|
addressAtCurrentInboxRow, True)
|
||||||
|
@ -3219,7 +3205,7 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
return
|
return
|
||||||
currentInboxRow = tableWidget.currentRow()
|
currentInboxRow = tableWidget.currentRow()
|
||||||
try:
|
try:
|
||||||
subjectAtCurrentInboxRow = str(tableWidget.item(currentInboxRow,2).text())
|
subjectAtCurrentInboxRow = str(tableWidget.item(currentInboxRow,2).data(Qt.UserRole))
|
||||||
except:
|
except:
|
||||||
subjectAtCurrentInboxRow = ''
|
subjectAtCurrentInboxRow = ''
|
||||||
|
|
||||||
|
@ -4017,7 +4003,7 @@ class MyForm(settingsmixin.SMainWindow):
|
||||||
# inventoryHashesToMarkRead.append(inventoryHashToMarkRead)
|
# inventoryHashesToMarkRead.append(inventoryHashToMarkRead)
|
||||||
tableWidget.item(currentRow, 0).setUnread(False)
|
tableWidget.item(currentRow, 0).setUnread(False)
|
||||||
tableWidget.item(currentRow, 1).setUnread(False)
|
tableWidget.item(currentRow, 1).setUnread(False)
|
||||||
tableWidget.item(currentRow, 2).setFont(font)
|
tableWidget.item(currentRow, 2).setUnread(False)
|
||||||
tableWidget.item(currentRow, 3).setFont(font)
|
tableWidget.item(currentRow, 3).setFont(font)
|
||||||
self.propagateUnreadCount(tableWidget.item(currentRow, 1 if tableWidget == self.ui.tableWidgetInboxSubscriptions else 0).data(Qt.UserRole), folder, self.getCurrentTreeWidget(), -1)
|
self.propagateUnreadCount(tableWidget.item(currentRow, 1 if tableWidget == self.ui.tableWidgetInboxSubscriptions else 0).data(Qt.UserRole), folder, self.getCurrentTreeWidget(), -1)
|
||||||
|
|
||||||
|
|
|
@ -324,6 +324,52 @@ class MessageList_AddressWidget(QtGui.QTableWidgetItem, AccountMixin, SettingsMi
|
||||||
return super(QtGui.QTableWidgetItem, self).__lt__(other)
|
return super(QtGui.QTableWidgetItem, self).__lt__(other)
|
||||||
|
|
||||||
|
|
||||||
|
class MessageList_SubjectWidget(QtGui.QTableWidgetItem, SettingsMixin):
|
||||||
|
def __init__(self, parent, subject = None, label = None, unread = False):
|
||||||
|
super(QtGui.QTableWidgetItem, self).__init__()
|
||||||
|
#parent.insertTopLevelItem(pos, self)
|
||||||
|
# only set default when creating
|
||||||
|
#super(QtGui.QTreeWidgetItem, self).setExpanded(shared.config.getboolean(self.address, 'enabled'))
|
||||||
|
self.setSubject(subject)
|
||||||
|
self.setLabel(label)
|
||||||
|
self.setUnread(unread)
|
||||||
|
self.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
|
||||||
|
parent.append(self)
|
||||||
|
|
||||||
|
def setLabel(self, label):
|
||||||
|
self.label = label
|
||||||
|
|
||||||
|
def setSubject(self, subject):
|
||||||
|
self.subject = subject
|
||||||
|
|
||||||
|
def setUnread(self, unread):
|
||||||
|
self.unread = unread
|
||||||
|
|
||||||
|
def data(self, role):
|
||||||
|
if role == QtCore.Qt.DisplayRole:
|
||||||
|
return self.label
|
||||||
|
elif role == QtCore.Qt.EditRole:
|
||||||
|
return self.label
|
||||||
|
elif role == QtCore.Qt.ToolTipRole:
|
||||||
|
return self.label
|
||||||
|
elif role == QtCore.Qt.FontRole:
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setBold(self.unread)
|
||||||
|
return font
|
||||||
|
elif role == QtCore.Qt.UserRole:
|
||||||
|
return self.subject
|
||||||
|
return super(MessageList_SubjectWidget, self).data(role)
|
||||||
|
|
||||||
|
def setData(self, role, value):
|
||||||
|
return super(MessageList_SubjectWidget, self).setData(role, value)
|
||||||
|
|
||||||
|
# label (or address) alphabetically, disabled at the end
|
||||||
|
def __lt__(self, other):
|
||||||
|
if (isinstance(other, MessageList_SubjectWidget)):
|
||||||
|
return self.label.lower() < other.label.lower()
|
||||||
|
return super(QtGui.QTableWidgetItem, self).__lt__(other)
|
||||||
|
|
||||||
|
|
||||||
class Ui_AddressBookWidgetItem(QtGui.QTableWidgetItem, AccountMixin):
|
class Ui_AddressBookWidgetItem(QtGui.QTableWidgetItem, AccountMixin):
|
||||||
def __init__ (self, text, type = AccountMixin.NORMAL):
|
def __init__ (self, text, type = AccountMixin.NORMAL):
|
||||||
super(QtGui.QTableWidgetItem, self).__init__(text)
|
super(QtGui.QTableWidgetItem, self).__init__(text)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user