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 committed by Peter Surda
parent 7478440bd6
commit 6123b27315
1 changed files with 22 additions and 9 deletions

View File

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