mirror of
https://github.com/wassname/sloth.git
synced 2026-07-18 12:40:43 +08:00
make deletion hotkey configurable (fixes #10)
This commit is contained in:
@@ -530,14 +530,6 @@ class AnnotationTreeView(QTreeView):
|
||||
QTreeView.setModel(self, model)
|
||||
self.resizeColumns()
|
||||
|
||||
def keyPressEvent(self, event):
|
||||
## handle deletions of items
|
||||
if event.key() == Qt.Key_Delete:
|
||||
self.model().itemFromIndex(self.currentindex()).delete()
|
||||
|
||||
## it is important to use the keyPressEvent of QAbstractItemView, not QTreeView
|
||||
QAbstractItemView.keyPressEvent(self, event)
|
||||
|
||||
def rowsInserted(self, index, start, end):
|
||||
QTreeView.rowsInserted(self, index, start, end)
|
||||
self.resizeColumns()
|
||||
|
||||
@@ -61,11 +61,12 @@ LABELS = (
|
||||
# third entry -- if present -- is expected to be a string describing the
|
||||
# action.
|
||||
HOTKEYS = (
|
||||
('PgDown', lambda lt: lt.gotoNext(), 'Next image/frame'),
|
||||
('PgUp', lambda lt: lt.gotoPrevious(), 'Previous image/frame'),
|
||||
('Tab', lambda lt: lt.selectNextAnnotation(), 'Select next annotation'),
|
||||
('Shift+Tab', lambda lt: lt.selectPreviousAnnotation(), 'Select previous annotation'),
|
||||
('ESC', lambda lt: lt.exitInsertMode(), 'Exit insert mode'),
|
||||
('PgDown', lambda lt: lt.gotoNext(), 'Next image/frame'),
|
||||
('PgUp', lambda lt: lt.gotoPrevious(), 'Previous image/frame'),
|
||||
('Tab', lambda lt: lt.selectNextAnnotation(), 'Select next annotation'),
|
||||
('Shift+Tab', lambda lt: lt.selectPreviousAnnotation(), 'Select previous annotation'),
|
||||
('Del', lambda lt: lt.deleteSelectedAnnotations(), 'Delete selected annotations'),
|
||||
('ESC', lambda lt: lt.exitInsertMode(), 'Exit insert mode'),
|
||||
)
|
||||
|
||||
# CONTAINERS
|
||||
|
||||
@@ -347,6 +347,11 @@ class LabelTool(QObject):
|
||||
if self._mainwindow is not None:
|
||||
return self._mainwindow.scene.selectNextItem(reverse=True)
|
||||
|
||||
def deleteSelectedAnnotations(self):
|
||||
if self._mainwindow is not None:
|
||||
for item in self._mainwindow.scene.selectedItems():
|
||||
item.modelItem().delete()
|
||||
|
||||
def exitInsertMode(self):
|
||||
if self._mainwindow is not None:
|
||||
return self._mainwindow.buttonarea.exitInsertMode()
|
||||
|
||||
Reference in New Issue
Block a user