Delete key and shift modifier

Addresses #114
- delete from sent works when pressing delete key
- delete from trash deletes rather than moves
- delete with shift deletes rather than moves
This commit is contained in:
mailchuck 2015-11-19 17:37:34 +01:00 committed by Peter Surda
parent cd9a7b5157
commit dd15d1b6ed
1 changed files with 21 additions and 3 deletions

View File

@ -1065,7 +1065,7 @@ class MyForm(settingsmixin.SMainWindow):
tableWidget.setSortingEnabled(False)
tableWidget.horizontalHeader().setSortIndicator(3, Qt.DescendingOrder)
tableWidget.keyPressEvent = self.tableWidgetInboxKeyPressEvent
tableWidget.keyPressEvent = self.tableWidgetSentKeyPressEvent
# Load messages from database file
def loadMessagelist(self, tableWidget, account, folder="inbox", where="", what=""):
@ -1497,6 +1497,12 @@ class MyForm(settingsmixin.SMainWindow):
self.on_action_InboxTrash()
return QtGui.QTableWidget.keyPressEvent(self.getCurrentMessagelist(), event)
# set delete key in inbox
def tableWidgetSentKeyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Delete:
self.on_action_SentTrash()
return QtGui.QTableWidget.keyPressEvent(self.getCurrentMessagelist(), event)
# menu button 'manage keys'
def click_actionManageKeys(self):
if 'darwin' in sys.platform or 'linux' in sys.platform:
@ -3161,10 +3167,17 @@ class MyForm(settingsmixin.SMainWindow):
return
unread = False
currentRow = 0
folder = self.getCurrentFolder()
shifted = QtGui.QApplication.queryKeyboardModifiers() & QtCore.Qt.ShiftModifier
while tableWidget.selectedIndexes():
currentRow = tableWidget.selectedIndexes()[0].row()
inventoryHashToTrash = str(tableWidget.item(
currentRow, 3).data(Qt.UserRole).toPyObject())
if folder == "trash" or shifted:
logger.debug ("deleting")
sqlExecute('''DELETE FROM inbox WHERE msgid=?''', inventoryHashToTrash)
else:
logger.debug ("moving to trash, because folder = \"%s\" and shifted = %r %x", folder, shifted)
sqlExecute('''UPDATE inbox SET folder='trash' WHERE msgid=?''', inventoryHashToTrash)
if tableWidget.item(currentRow, 0).font().bold():
unread = True
@ -3241,10 +3254,15 @@ class MyForm(settingsmixin.SMainWindow):
tableWidget = self.getCurrentMessagelist()
if not tableWidget:
return
folder = self.getCurrentFolder()
shifted = (QtGui.QApplication.queryKeyboardModifiers() & QtCore.Qt.ShiftModifier) > 0
while tableWidget.selectedIndexes() != []:
currentRow = tableWidget.selectedIndexes()[0].row()
ackdataToTrash = str(tableWidget.item(
currentRow, 3).data(Qt.UserRole).toPyObject())
if folder == "trash" or shifted:
sqlExecute('''DELETE FROM sent WHERE ackdata=?''', ackdataToTrash)
else:
sqlExecute('''UPDATE sent SET folder='trash' WHERE ackdata=?''', ackdataToTrash)
if tableWidget.item(currentRow, 0).font().bold():
unread = True