From 802a17d0c36910e1e2044a90906561b6590e62e9 Mon Sep 17 00:00:00 2001 From: Mika Fischer Date: Mon, 1 Aug 2011 15:24:57 +0200 Subject: [PATCH] Fix some bugs with NPointFaceItem --- sloth/items/items.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sloth/items/items.py b/sloth/items/items.py index 1380f3e..e5cdd87 100644 --- a/sloth/items/items.py +++ b/sloth/items/items.py @@ -374,16 +374,19 @@ class NPointFaceItem(BaseItem): def __init__(self, model_item=None, parent=None): self._children = {} BaseItem.__init__(self, model_item, parent) + self.setFlag(QGraphicsItem.ItemIsMovable, False) self.dataChange() self.changeColor() def updateModel(self): changes = {} for lm, lmstr in self.landmarks: + if lm not in self._children: + continue lmx, lmy = (lm+"x", lm+"y") - if self._model_item[lmx] != self._children[lm].scenePos().x(): + if lmx not in self._model_item or self._model_item[lmx] != self._children[lm].scenePos().x(): changes[lmx] = self._children[lm].scenePos().x() - if self._model_item[lmy] != self._children[lm].scenePos().y(): + if lmy not in self._model_item or self._model_item[lmy] != self._children[lm].scenePos().y(): changes[lmy] = self._children[lm].scenePos().y() if changes: self._model_item.update(changes)