mirror of
https://github.com/wassname/sloth.git
synced 2026-08-12 12:30:50 +08:00
Emit dataChanged signal for KeyValueRowItem
This commit is contained in:
@@ -203,9 +203,11 @@ class KeyValueModelItem(ModelItem, MutableMapping):
|
||||
def __getitem__(self, key):
|
||||
return self._dict[key]
|
||||
|
||||
def _emitDataChanged(self):
|
||||
def _emitDataChanged(self, key):
|
||||
if self.model() is not None:
|
||||
self.model().dataChanged.emit(self.index(), self.index())
|
||||
index_tl = self._items[key].index()
|
||||
index_br = self._items[key].index(1)
|
||||
self.model().dataChanged.emit(index_tl, index_br)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
if key not in self._dict:
|
||||
@@ -216,7 +218,7 @@ class KeyValueModelItem(ModelItem, MutableMapping):
|
||||
elif self._dict[key] != value:
|
||||
self._dict[key] = value
|
||||
# TODO: Emit for hidden key/values?
|
||||
self._emitDataChanged()
|
||||
self._emitDataChanged(key)
|
||||
|
||||
def __delitem__(self, key):
|
||||
del self._dict[key]
|
||||
|
||||
@@ -264,13 +264,14 @@ class AnnotationScene(QGraphicsScene):
|
||||
if not self.root_.isValid():
|
||||
return
|
||||
|
||||
if self.root_ != indexFrom.parent() or self.root_ != indexTo.parent():
|
||||
annotation_item_index= indexFrom.parent()
|
||||
|
||||
if self.root_ != annotation_item_index.parent():
|
||||
return
|
||||
|
||||
for row in range(indexFrom.row(), indexTo.row()+1):
|
||||
item = self.itemFromIndex(indexFrom.sibling(row, 0))
|
||||
if item is not None:
|
||||
item.dataChanged()
|
||||
item = self.itemFromIndex(annotation_item_index)
|
||||
if item is not None:
|
||||
item.dataChanged()
|
||||
|
||||
def rowsInserted(self, index, first, last):
|
||||
if self.root_ != index:
|
||||
|
||||
Reference in New Issue
Block a user