diff --git a/labelme/app.py b/labelme/app.py index 5c45dc945..b48a425b9 100644 --- a/labelme/app.py +++ b/labelme/app.py @@ -258,6 +258,14 @@ def __init__( shortcuts['edit_fill_color'], 'color', 'Choose polygon fill color') + toggle_keep_prev_mode = action( + 'Keep Previous Annotation', + self.toggleKeepPrevMode, + shortcuts['toggle_keep_prev_mode'], None, + 'Toggle "keep pevious annotation" mode', + checkable=True) + toggle_keep_prev_mode.setChecked(self._config['keep_prev']) + createMode = action( 'Create Polygons', lambda: self.toggleDrawMode(False, createMode='polygon'), @@ -411,6 +419,7 @@ def __init__( changeOutputDir=changeOutputDir, save=save, saveAs=saveAs, open=open_, close=close, lineColor=color1, fillColor=color2, + toggleKeepPrevMode=toggle_keep_prev_mode, delete=delete, edit=edit, copy=copy, undoLastPoint=undoLastPoint, undo=undo, addPoint=addPoint, @@ -428,7 +437,7 @@ def __init__( fileMenuActions=(open_, opendir, save, saveAs, close, quit), tool=(), editMenu=(edit, copy, delete, None, undo, undoLastPoint, - None, color1, color2), + None, color1, color2, None, toggle_keep_prev_mode), # menu shown at right click menu=( createMode, @@ -1435,6 +1444,9 @@ def chooseColor2(self): self.canvas.update() self.setDirty() + def toggleKeepPrevMode(self): + self._config['keep_prev'] = not self._config['keep_prev'] + def deleteSelectedShape(self): yes, no = QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No msg = 'You are about to permanently delete this polygon, ' \ diff --git a/labelme/config/default_config.yaml b/labelme/config/default_config.yaml index b23222f7e..0b46dab2d 100644 --- a/labelme/config/default_config.yaml +++ b/labelme/config/default_config.yaml @@ -73,3 +73,4 @@ shortcuts: edit_label: Ctrl+E edit_line_color: Ctrl+L edit_fill_color: Ctrl+Shift+L + toggle_keep_prev_mode: Ctrl+P