提交 64958b5b 编写于 作者: K Kentaro Wada

Fix item drag-drop in polygon list

上级 bac03f07
...@@ -94,18 +94,27 @@ class LabelListWidgetItem(QtGui.QStandardItem): ...@@ -94,18 +94,27 @@ class LabelListWidgetItem(QtGui.QStandardItem):
return '{}("{}")'.format(self.__class__.__name__, self.text()) return '{}("{}")'.format(self.__class__.__name__, self.text())
class StandardItemModel(QtGui.QStandardItemModel):
itemDropped = QtCore.Signal()
def removeRows(self, *args, **kwargs):
ret = super().removeRows(*args, **kwargs)
self.itemDropped.emit()
return ret
class LabelListWidget(QtWidgets.QListView): class LabelListWidget(QtWidgets.QListView):
itemDoubleClicked = QtCore.Signal(LabelListWidgetItem) itemDoubleClicked = QtCore.Signal(LabelListWidgetItem)
itemSelectionChanged = QtCore.Signal(list, list) itemSelectionChanged = QtCore.Signal(list, list)
itemDropped = QtCore.Signal()
def __init__(self): def __init__(self):
super(LabelListWidget, self).__init__() super(LabelListWidget, self).__init__()
self._selectedItems = [] self._selectedItems = []
self.setWindowFlags(Qt.Window) self.setWindowFlags(Qt.Window)
self.setModel(QtGui.QStandardItemModel()) self.setModel(StandardItemModel())
self.model().setItemPrototype(LabelListWidgetItem()) self.model().setItemPrototype(LabelListWidgetItem())
self.setItemDelegate(HTMLDelegate()) self.setItemDelegate(HTMLDelegate())
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
...@@ -127,9 +136,9 @@ class LabelListWidget(QtWidgets.QListView): ...@@ -127,9 +136,9 @@ class LabelListWidget(QtWidgets.QListView):
for i in range(len(self)): for i in range(len(self)):
yield self[i] yield self[i]
def dropEvent(self, event): @property
super(LabelListWidget, self).dropEvent(event) def itemDropped(self):
self.itemDropped.emit() return self.model().itemDropped
@property @property
def itemChanged(self): def itemChanged(self):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册