diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..18fa555f Binary files /dev/null and b/.DS_Store differ diff --git a/labelImg.py b/labelImg.py index 5a95a6cd..f1281e4e 100755 --- a/labelImg.py +++ b/labelImg.py @@ -51,8 +51,11 @@ __appname__ = 'labelImg' class WindowMixin(object): def menu(self, title, actions=None): + menu = self.menuBar().addMenu(title) + if actions: + addActions(menu, actions) return menu @@ -137,7 +140,7 @@ class MainWindow(QMainWindow, WindowMixin): listLayout.addWidget(self.diffcButton) listLayout.addWidget(useDefaultLabelContainer) - # Create and add combobox for showing unique labels in group + # Create and add combobox for showing unique labels in group self.comboBox = ComboBox(self) listLayout.addWidget(self.comboBox) @@ -236,6 +239,8 @@ class MainWindow(QMainWindow, WindowMixin): close = action(getStr('closeCur'), self.closeFile, 'Ctrl+W', 'close', getStr('closeCurDetail')) + deleteImg = action(getStr('deleteImg'), self.deleteImg, 'Ctrl+D', 'close', getStr('deleteImgDetail')) + resetAll = action(getStr('resetAll'), self.resetAll, None, 'resetall', getStr('resetAllDetail')) color1 = action(getStr('boxLineColor'), self.chooseColor1, @@ -330,7 +335,7 @@ class MainWindow(QMainWindow, WindowMixin): self.drawSquaresOption.triggered.connect(self.toogleDrawSquare) # Store actions for further handling. - self.actions = struct(save=save, save_format=save_format, saveAs=saveAs, open=open, close=close, resetAll = resetAll, + self.actions = struct(save=save, save_format=save_format, saveAs=saveAs, open=open, close=close, resetAll = resetAll, deleteImg = deleteImg, lineColor=color1, create=create, delete=delete, edit=edit, copy=copy, createMode=createMode, editMode=editMode, advancedMode=advancedMode, shapeLineColor=shapeLineColor, shapeFillColor=shapeFillColor, @@ -375,7 +380,7 @@ class MainWindow(QMainWindow, WindowMixin): self.displayLabelOption.triggered.connect(self.togglePaintLabelsOption) addActions(self.menus.file, - (open, opendir, changeSavedir, openAnnotation, self.menus.recentFiles, save, save_format, saveAs, close, resetAll, quit)) + (open, opendir, changeSavedir, openAnnotation, self.menus.recentFiles, save, save_format, saveAs, close, resetAll, deleteImg, quit)) addActions(self.menus.help, (help, showInfo)) addActions(self.menus.view, ( self.autoSaving, @@ -410,6 +415,7 @@ class MainWindow(QMainWindow, WindowMixin): # Application state. self.image = QImage() self.filePath = ustr(defaultFilename) + self.lastOpenDir= None self.recentFiles = [] self.maxRecent = 7 self.lineColor = None @@ -840,7 +846,7 @@ class MainWindow(QMainWindow, WindowMixin): text = self.comboBox.cb.itemText(index) for i in range(self.labelList.count()): if text == "": - self.labelList.item(i).setCheckState(2) + self.labelList.item(i).setCheckState(2) elif text != self.labelList.item(i).text(): self.labelList.item(i).setCheckState(0) else: @@ -1217,7 +1223,7 @@ class MainWindow(QMainWindow, WindowMixin): QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)) else: targetDirPath = ustr(defaultOpenDirPath) - + self.lastOpenDir = targetDirPath self.importDirImages(targetDirPath) def importDirImages(self, dirpath): @@ -1367,6 +1373,13 @@ class MainWindow(QMainWindow, WindowMixin): self.toggleActions(False) self.canvas.setEnabled(False) self.actions.saveAs.setEnabled(False) + def deleteImg(self): + deletePath = self.filePath + if self.filePath is not None: + self.openNextImg() + os.remove(deletePath) + self.importDirImages(self.lastOpenDir) + def resetAll(self): self.settings.reset() diff --git a/resources/strings/strings.properties b/resources/strings/strings.properties index e2815be6..a40350cd 100644 --- a/resources/strings/strings.properties +++ b/resources/strings/strings.properties @@ -20,6 +20,8 @@ saveAs=Save As saveAsDetail=Save the labels to a different file closeCur=Close closeCurDetail=Close the current file +deleteImg = Delete Current Image +deleteImgDetail = Delete current image resetAll=Reset All resetAllDetail=Reset All boxLineColor=Box Line Color