Changeset View
Changeset View
Standalone View
Standalone View
step/stepgraphicsitem.cc
Show First 20 Lines • Show All 158 Lines • ▼ Show 20 Line(s) | 153 | { | |||
---|---|---|---|---|---|
159 | } else { | 159 | } else { | ||
160 | Q_ASSERT(false); | 160 | Q_ASSERT(false); | ||
161 | } | 161 | } | ||
162 | } | 162 | } | ||
163 | 163 | | |||
164 | void StepGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *event) | 164 | void StepGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *event) | ||
165 | { | 165 | { | ||
166 | // Workaround for bug in Qt | 166 | // Workaround for bug in Qt | ||
167 | if (scene()->itemAt(event->scenePos()) != this) { | 167 | if (scene()->itemAt(event->scenePos(), QTransform()) != this) { | ||
168 | event->ignore(); | 168 | event->ignore(); | ||
169 | return; | 169 | return; | ||
170 | } | 170 | } | ||
171 | 171 | | |||
172 | if(event->button() == Qt::LeftButton && (flags() & ItemIsSelectable)) { | 172 | if(event->button() == Qt::LeftButton && (flags() & ItemIsSelectable)) { | ||
173 | bool multiSelect = (event->modifiers() & Qt::ControlModifier) != 0; | 173 | bool multiSelect = (event->modifiers() & Qt::ControlModifier) != 0; | ||
174 | if(!multiSelect && !isSelected()) { | 174 | if(!multiSelect && !isSelected()) { | ||
175 | if(scene()) scene()->clearSelection(); | 175 | if(scene()) scene()->clearSelection(); | ||
176 | _worldModel->selectionModel()->clearSelection(); | 176 | _worldModel->selectionModel()->clearSelection(); | ||
177 | setSelected(true); | 177 | setSelected(true); | ||
178 | } | 178 | } | ||
179 | } else if (!(flags() & ItemIsMovable)) { | 179 | } else if (!(flags() & ItemIsMovable)) { | ||
180 | event->ignore(); | 180 | event->ignore(); | ||
181 | } | 181 | } | ||
182 | } | 182 | } | ||
183 | 183 | | |||
184 | void StepGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) | 184 | void StepGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) | ||
185 | { | 185 | { | ||
186 | // Workaround for bug in Qt | 186 | // Workaround for bug in Qt | ||
187 | if (scene()->mouseGrabberItem() != this && | 187 | if (scene()->mouseGrabberItem() != this && | ||
188 | scene()->itemAt(event->scenePos()) != this) { | 188 | scene()->itemAt(event->scenePos(), QTransform()) != this) { | ||
189 | event->ignore(); | 189 | event->ignore(); | ||
190 | return; | 190 | return; | ||
191 | } | 191 | } | ||
192 | 192 | | |||
193 | if((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable)) { | 193 | if((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable)) { | ||
194 | QPointF pdiff(mapToParent(event->pos()) - mapToParent(event->lastPos())); | 194 | QPointF pdiff(mapToParent(event->pos()) - mapToParent(event->lastPos())); | ||
195 | QPointF newPos(mapToParent(event->pos()) - matrix().map(event->buttonDownPos(Qt::LeftButton))); | 195 | QPointF newPos(mapToParent(event->pos()) - matrix().map(event->buttonDownPos(Qt::LeftButton))); | ||
196 | 196 | | |||
Show All 40 Lines | |||||
237 | } else { | 237 | } else { | ||
238 | event->ignore(); | 238 | event->ignore(); | ||
239 | } | 239 | } | ||
240 | } | 240 | } | ||
241 | 241 | | |||
242 | void StepGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) | 242 | void StepGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) | ||
243 | { | 243 | { | ||
244 | // Workaround for bug in Qt | 244 | // Workaround for bug in Qt | ||
245 | if (scene()->itemAt(event->scenePos()) != this) { | 245 | if (scene()->itemAt(event->scenePos(), QTransform()) != this) { | ||
246 | event->ignore(); | 246 | event->ignore(); | ||
247 | return; | 247 | return; | ||
248 | } | 248 | } | ||
249 | 249 | | |||
250 | if(_isMoving && event->button() == Qt::LeftButton) { | 250 | if(_isMoving && event->button() == Qt::LeftButton) { | ||
251 | QPointF pdiff(mapToParent(event->pos()) - mapToParent(event->lastPos())); | 251 | QPointF pdiff(mapToParent(event->pos()) - mapToParent(event->lastPos())); | ||
252 | QPointF newPos(mapToParent(event->pos()) - matrix().map(event->buttonDownPos(Qt::LeftButton))); | 252 | QPointF newPos(mapToParent(event->pos()) - matrix().map(event->buttonDownPos(Qt::LeftButton))); | ||
253 | QPointF diff = newPos - pos(); | 253 | QPointF diff = newPos - pos(); | ||
▲ Show 20 Lines • Show All 347 Lines • ▼ Show 20 Line(s) | 599 | OnHoverHandlerGraphicsItem::OnHoverHandlerGraphicsItem(StepCore::Item* item, WorldModel* worldModel, | |||
601 | const StepCore::MetaProperty* positionProperty, int vertexNum) | 601 | const StepCore::MetaProperty* positionProperty, int vertexNum) | ||
602 | : ArrowHandlerGraphicsItem(item, worldModel, parent, property, positionProperty) | 602 | : ArrowHandlerGraphicsItem(item, worldModel, parent, property, positionProperty) | ||
603 | , _vertexNum(vertexNum) | 603 | , _vertexNum(vertexNum) | ||
604 | { | 604 | { | ||
605 | _deleteTimer = new QTimer(this); | 605 | _deleteTimer = new QTimer(this); | ||
606 | _deleteTimer->setInterval(500); | 606 | _deleteTimer->setInterval(500); | ||
607 | _deleteTimer->setSingleShot(true); | 607 | _deleteTimer->setSingleShot(true); | ||
608 | _deleteTimerEnabled = false; | 608 | _deleteTimerEnabled = false; | ||
609 | setAcceptsHoverEvents(true); | 609 | setAcceptHoverEvents(true); | ||
610 | connect(_deleteTimer, SIGNAL(timeout()), this, SLOT(deleteLater())); | 610 | connect(_deleteTimer, SIGNAL(timeout()), this, SLOT(deleteLater())); | ||
611 | } | 611 | } | ||
612 | 612 | | |||
613 | void OnHoverHandlerGraphicsItem::setDeleteTimerEnabled(bool enabled) | 613 | void OnHoverHandlerGraphicsItem::setDeleteTimerEnabled(bool enabled) | ||
614 | { | 614 | { | ||
615 | _deleteTimerEnabled = enabled; | 615 | _deleteTimerEnabled = enabled; | ||
616 | if(_deleteTimerEnabled && !isMouseOverItem()) _deleteTimer->start(); | 616 | if(_deleteTimerEnabled && !isMouseOverItem()) _deleteTimer->start(); | ||
617 | else _deleteTimer->stop(); | 617 | else _deleteTimer->stop(); | ||
Show All 14 Lines |