Labels will be added to history and re-use it while showing pop window
This commit is contained in:
parent
06c9adf494
commit
87dab57ec9
15
labelImg.py
15
labelImg.py
@ -59,6 +59,7 @@ class MainWindow(QMainWindow, WindowMixin):
|
||||
# For loading all image under a directory
|
||||
self.mImgList = []
|
||||
self.dirname = None
|
||||
self.labelHist = []
|
||||
|
||||
# Whether we need to save or not.
|
||||
self.dirty = False
|
||||
@ -593,6 +594,9 @@ class MainWindow(QMainWindow, WindowMixin):
|
||||
|
||||
position MUST be in global coordinates.
|
||||
"""
|
||||
if len(self.labelHist) > 0:
|
||||
self.labelDialog = LabelDialog(parent=self, listItem=self.labelHist)
|
||||
|
||||
text = self.labelDialog.popUp()
|
||||
if text is not None:
|
||||
self.addLabel(self.canvas.setLastLabel(text))
|
||||
@ -602,6 +606,10 @@ class MainWindow(QMainWindow, WindowMixin):
|
||||
else:
|
||||
self.actions.editMode.setEnabled(True)
|
||||
self.setDirty()
|
||||
|
||||
|
||||
if text not in self.labelHist:
|
||||
self.labelHist.append(text)
|
||||
else:
|
||||
#self.canvas.undoLastLine()
|
||||
self.canvas.resetAllLines()
|
||||
@ -790,9 +798,12 @@ class MainWindow(QMainWindow, WindowMixin):
|
||||
self.mImgList = self.scanAllImages(dirpath)
|
||||
self.openNextImg()
|
||||
|
||||
def openPrevImg(self, _value=False):
|
||||
if not self.mayContinue():
|
||||
return
|
||||
|
||||
|
||||
def openNextImg(self, _value=False):
|
||||
if self.dirty == True:
|
||||
print 'dirty'
|
||||
if not self.mayContinue():
|
||||
return
|
||||
if len(self.mImgList) <= 0:
|
||||
|
||||
@ -7,7 +7,7 @@ BB = QDialogButtonBox
|
||||
|
||||
class LabelDialog(QDialog):
|
||||
|
||||
def __init__(self, text="Enter object label", parent=None):
|
||||
def __init__(self, text="Enter object label", parent=None, listItem=None):
|
||||
super(LabelDialog, self).__init__(parent)
|
||||
self.edit = QLineEdit()
|
||||
self.edit.setText(text)
|
||||
@ -21,6 +21,14 @@ class LabelDialog(QDialog):
|
||||
bb.accepted.connect(self.validate)
|
||||
bb.rejected.connect(self.reject)
|
||||
layout.addWidget(bb)
|
||||
|
||||
if listItem is not None and len(listItem) > 0:
|
||||
self.listWidget = QListWidget(self)
|
||||
for item in listItem:
|
||||
self.listWidget.addItem(item)
|
||||
self.listWidget.itemDoubleClicked.connect(self.listItemClick)
|
||||
layout.addWidget(self.listWidget)
|
||||
|
||||
self.setLayout(layout)
|
||||
|
||||
def validate(self):
|
||||
@ -38,3 +46,6 @@ class LabelDialog(QDialog):
|
||||
self.move(QCursor.pos())
|
||||
return self.edit.text() if self.exec_() else None
|
||||
|
||||
def listItemClick(self, tQListWidgetItem):
|
||||
text = tQListWidgetItem.text().trimmed()
|
||||
self.edit.setText(text)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user