Skip to content

Commit fc0c5d5

Browse files
committed
PyListModel: Extract item data directly
1 parent cfad657 commit fc0c5d5

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

Orange/widgets/utils/itemmodels.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,9 @@ def setData(self, index, value, role=Qt.EditRole):
582582

583583
def setItemData(self, index, data):
584584
data = dict(data)
585+
if not data:
586+
return True
587+
585588
with signal_blocking(self):
586589
for role, value in data.items():
587590
if role == Qt.EditRole and \
@@ -758,8 +761,16 @@ def mimeData(self, indexlist):
758761
if len(indexlist) <= 0:
759762
return None
760763

764+
def itemData(row):
765+
# type: (int) -> Dict[int, Any]
766+
if row < len(self._other_data):
767+
return {key: val for key, val in self._other_data[row].items()
768+
if isinstance(key, int)}
769+
else:
770+
return {}
771+
761772
items = [self[i.row()] for i in indexlist]
762-
itemdata = [self.itemData(i) for i in indexlist]
773+
itemdata = [itemData(i.row()) for i in indexlist]
763774
mime = QMimeData()
764775
mime.setData(self.MIME_TYPE, b'see properties: _items, _itemdata')
765776
mime.setProperty('_items', items)

0 commit comments

Comments
 (0)