(self)
| 3113 | |
| 3114 | # Send item on the Inbox tab to trash |
| 3115 | def on_action_InboxTrash(self): |
| 3116 | tableWidget = self.getCurrentMessagelist() |
| 3117 | if not tableWidget: |
| 3118 | return |
| 3119 | currentRow = 0 |
| 3120 | folder = self.getCurrentFolder() |
| 3121 | shifted = QtGui.QApplication.queryKeyboardModifiers() & QtCore.Qt.ShiftModifier |
| 3122 | tableWidget.setUpdatesEnabled(False); |
| 3123 | inventoryHashesToTrash = [] |
| 3124 | # ranges in reversed order |
| 3125 | for r in sorted(tableWidget.selectedRanges(), key=lambda r: r.topRow())[::-1]: |
| 3126 | for i in range(r.bottomRow()-r.topRow()+1): |
| 3127 | inventoryHashToTrash = str(tableWidget.item( |
| 3128 | r.topRow()+i, 3).data(QtCore.Qt.UserRole).toPyObject()) |
| 3129 | if inventoryHashToTrash in inventoryHashesToTrash: |
| 3130 | continue |
| 3131 | inventoryHashesToTrash.append(inventoryHashToTrash) |
| 3132 | currentRow = r.topRow() |
| 3133 | self.getCurrentMessageTextedit().setText("") |
| 3134 | tableWidget.model().removeRows(r.topRow(), r.bottomRow()-r.topRow()+1) |
| 3135 | idCount = len(inventoryHashesToTrash) |
| 3136 | if folder == "trash" or shifted: |
| 3137 | sqlExecuteChunked('''DELETE FROM inbox WHERE msgid IN ({0})''', |
| 3138 | idCount, *inventoryHashesToTrash) |
| 3139 | else: |
| 3140 | sqlExecuteChunked('''UPDATE inbox SET folder='trash' WHERE msgid IN ({0})''', |
| 3141 | idCount, *inventoryHashesToTrash) |
| 3142 | tableWidget.selectRow(0 if currentRow == 0 else currentRow - 1) |
| 3143 | tableWidget.setUpdatesEnabled(True) |
| 3144 | self.propagateUnreadCount(self.getCurrentAccount, folder) |
| 3145 | self.updateStatusBar(_translate( |
| 3146 | "MainWindow", "Moved items to trash.")) |
| 3147 | |
| 3148 | def on_action_TrashUndelete(self): |
| 3149 | tableWidget = self.getCurrentMessagelist() |
no test coverage detected