1919from labelme import PY2
2020from labelme import __appname__
2121from labelme import ai
22+ from labelme import utils
2223from labelme .ai import MODELS
2324from labelme .config import get_config
2425from labelme .label_file import LabelFile
2526from labelme .label_file import LabelFileError
2627from labelme .logger import logger
2728from labelme .shape import Shape
29+ from labelme .utils .qt import shift_and_ctrl_pressed
30+ from labelme .utils .qt import shift_pressed
2831from labelme .widgets import AiPromptWidget
2932from labelme .widgets import BrightnessContrastDialog
3033from labelme .widgets import Canvas
3639from labelme .widgets import UniqueLabelQListWidget
3740from labelme .widgets import ZoomWidget
3841
39- from . import utils
40-
4142# FIXME
4243# - [medium] Set max zoom value to something big enough for FitWidth/Window
4344
@@ -410,7 +411,10 @@ def __init__(
410411 self .deleteSelectedShape ,
411412 shortcuts ["delete_polygon" ],
412413 "cancel" ,
413- self .tr ("Delete the selected polygons" ),
414+ "{} {}" .format (
415+ self .tr ("Delete the selected polygons" ),
416+ self .tr ("(Hold Shift to skip confirmation)" ),
417+ ),
414418 enabled = False ,
415419 )
416420 duplicate = action (
@@ -1857,9 +1861,7 @@ def loadRecent(self, filename):
18571861
18581862 def openPrevImg (self , _value = False ):
18591863 keep_prev = self ._config ["keep_prev" ]
1860- if QtWidgets .QApplication .keyboardModifiers () == (
1861- Qt .ControlModifier | Qt .ShiftModifier
1862- ):
1864+ if shift_and_ctrl_pressed ():
18631865 self ._config ["keep_prev" ] = True
18641866
18651867 if not self .mayContinue ():
@@ -1881,9 +1883,7 @@ def openPrevImg(self, _value=False):
18811883
18821884 def openNextImg (self , _value = False , load = True ):
18831885 keep_prev = self ._config ["keep_prev" ]
1884- if QtWidgets .QApplication .keyboardModifiers () == (
1885- Qt .ControlModifier | Qt .ShiftModifier
1886- ):
1886+ if shift_and_ctrl_pressed ():
18871887 self ._config ["keep_prev" ] = True
18881888
18891889 if not self .mayContinue ():
@@ -2117,8 +2117,12 @@ def deleteSelectedShape(self):
21172117 msg = self .tr (
21182118 "You are about to permanently delete {} polygons, " "proceed anyway?"
21192119 ).format (len (self .canvas .selectedShapes ))
2120- if yes == QtWidgets .QMessageBox .warning (
2121- self , self .tr ("Attention" ), msg , yes | no , yes
2120+
2121+ if shift_pressed () or (
2122+ yes
2123+ == QtWidgets .QMessageBox .warning (
2124+ self , self .tr ("Attention" ), msg , yes | no , yes
2125+ )
21222126 ):
21232127 self .remLabels (self .canvas .deleteSelected ())
21242128 self .setDirty ()
0 commit comments