From 187fcfc03116e642bb96ed5a19fdca99d50bd27c Mon Sep 17 00:00:00 2001 From: Peter Surda Date: Tue, 1 Mar 2016 09:25:39 +0800 Subject: [PATCH] deleteRowFromMessagelist implementation Rows are deleted from a message list in multiple places, and this is an attempt to refactor it so that it is done in one function. It's not used anywhere yet. --- src/bitmessageqt/__init__.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 4f889f34..744750ee 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -3074,6 +3074,24 @@ class MyForm(settingsmixin.SMainWindow): self.statusBar().showMessage(_translate( "MainWindow", "Error: You cannot add the same address to your blacklist twice. Try renaming the existing one if you want.")) + def deleteRowFromMessagelist(row = None, inventoryHash = None, ackData = None, messageLists = None): + if messageLists is None: + messageLists = (self.ui.tableWidgetInbox, self.ui.tableWidgetInboxChans, self.ui.tableWidgetInboxSubscriptions) + elif type(messageLists) not in (list, tuple): + messageLists = (messageLists) + for messageList in messageLists: + if row is not None: + inventoryHash = str(messageList.item(row, 3).data(Qt.UserRole).toPyObject()) + messageList.removeRow(row) + elif inventoryHash is not None: + for i in range(messageList.rowCount() - 1, -1, -1): + if messageList.item(i, 3).data(Qt.UserRole).toPyObject() == inventoryHash: + messageList.removeRow(i) + elif ackData is not None: + for i in range(messageList.rowCount() - 1, -1, -1): + if messageList.item(i, 3).data(Qt.UserRole).toPyObject() == ackData: + messageList.removeRow(i) + # Send item on the Inbox tab to trash def on_action_InboxTrash(self): tableWidget = self.getCurrentMessagelist()