removeInboxRowByMsgid fixes

Now undertands messagelists and has better performance.
Haven't tested it yet though because it's triggered through API.
I think it fixes #85
This commit is contained in:
mailchuck 2015-10-31 18:42:44 +01:00
parent eb98192a0c
commit b04cf2da7e
No known key found for this signature in database
GPG Key ID: B6311FA753FBF089

View File

@ -1860,15 +1860,28 @@ class MyForm(QtGui.QMainWindow):
self.ui.tableWidgetInbox.item(i, 3).setText(textToDisplay)
def removeInboxRowByMsgid(self, msgid): # msgid and inventoryHash are the same thing
inbox = self.getCurrentMessagelist()
def widgetConvert (tableWidget):
if tableWidget == self.ui.tableWidgetInbox:
return self.ui.treeWidgetYourIdentities
elif tableWidget == self.ui.tableWidgetInboxSubscriptions:
return self.ui.treeWidgetSubscriptions
elif tableWidget == self.ui.tableWidgetInboxChans:
return self.ui.treeWidgetChans
else:
return None
for inbox in ([
self.ui.tableWidgetInbox,
self.ui.tableWidgetInboxSubscriptions,
self.ui.tableWidgetInboxChans]):
for i in range(inbox.rowCount()):
if msgid == str(inbox.item(i, 3).data(Qt.UserRole).toPyObject()):
self.statusBar().showMessage(_translate(
"MainWindow", "Message trashed"))
treeWidget = widgetConvert(inbox)
self.propagateUnreadCount(self.getCurrentAccount(treeWidget), self.getCurrentFolder(treeWidget), treeWidget, 0)
inbox.removeRow(i)
break
# this is a callback from core, not initiated by UI. We don't care about performance
self.propagateUnreadCount(None, None, None, 0)
def newVersionAvailable(self, version):
# if (not (self.windowState() & QtCore.Qt.WindowActive)) or (self.windowState() & QtCore.Qt.WindowMinimized):