mirror of
https://github.com/wassname/sloth.git
synced 2026-08-12 12:30:50 +08:00
properly update items if model changes
This commit is contained in:
+12
-6
@@ -96,6 +96,14 @@ class BaseItem(QAbstractGraphicsShapeItem):
|
||||
(key, self.annotation().get(key, "")))
|
||||
return '\n'.join(text_lines)
|
||||
|
||||
def dataChanged(self):
|
||||
self.data_ = self.index().data(DataRole).toPyObject()
|
||||
self.dataChange()
|
||||
self.update()
|
||||
|
||||
def dataChange(self):
|
||||
pass
|
||||
|
||||
def updateModel(self, data=None):
|
||||
if data is not None:
|
||||
model = self.index().model()
|
||||
@@ -157,6 +165,9 @@ class PointItem(BaseItem):
|
||||
pointitem.setRadius(self.radius_)
|
||||
return pointitem
|
||||
|
||||
def dataChange(self):
|
||||
self.updatePoint()
|
||||
|
||||
def updateModel(self):
|
||||
self.data_['x'] = self.scenePos().x()
|
||||
self.data_['y'] = self.scenePos().y()
|
||||
@@ -189,10 +200,6 @@ class PointItem(BaseItem):
|
||||
painter.setPen(pen)
|
||||
painter.drawEllipse(self.boundingRect())
|
||||
|
||||
def dataChanged(self):
|
||||
self.data_ = self.index().data(DataRole).toPyObject()
|
||||
self.updatePoint()
|
||||
|
||||
def keyPressEvent(self, event):
|
||||
step = 1
|
||||
if event.modifiers() & Qt.ShiftModifier:
|
||||
@@ -265,8 +272,7 @@ class RectItem(BaseItem):
|
||||
painter.setPen(pen)
|
||||
painter.drawRect(self.boundingRect())
|
||||
|
||||
def dataChanged(self):
|
||||
self.data_ = self.index().data(DataRole).toPyObject()
|
||||
def dataChange(self):
|
||||
rect = self._dataToRect(self.data_)
|
||||
self._updateRect(rect)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user