Example #1
0
void EditorView::mouseMoveEvent(QMouseEvent *event)
{
    if (mWheelPressed) {
        if (mMouseOldPosition != QPointF()) {
            const qreal scaleFactor = transform().m11();
            const qreal dx = (event->localPos().x() - mMouseOldPosition.x()) / scaleFactor;
            const qreal dy = (event->localPos().y() - mMouseOldPosition.y()) / scaleFactor;
            viewport()->scroll(dx, dy);
            scene()->update();
        }

        mMouseOldPosition = event->localPos();
    }

    QGraphicsView::mouseMoveEvent(event);
    if (event->buttons() & Qt::RightButton) {
        setDragMode(NoDrag);
    } else {
        if ((event->buttons() & Qt::LeftButton) && (event->modifiers() & Qt::ControlModifier)) {
            setDragMode(RubberBandDrag);
        } else if (event->buttons() & Qt::LeftButton) {
            EdgeElement *newEdgeEl = dynamic_cast<EdgeElement *>(itemAt(event->pos()));
            if (newEdgeEl && newEdgeEl->isBreakPointPressed()) {
                newEdgeEl->breakPointUnpressed();
                setDragMode(NoDrag);
            }
        }
    }
}
Example #2
0
void EditorView::mouseMoveEvent(QMouseEvent *event)
{
	if (mWheelPressed) {
		if (mMouseOldPosition != QPointF()) {
			QRectF rect = sceneRect();
			qreal dx = (event->localPos().x() - mMouseOldPosition.x());
			qreal dy = (event->localPos().y() - mMouseOldPosition.y());
			rect.moveLeft(rect.left() - dx);
			rect.moveTop(rect.top() - dy);
			setSceneRect(rect);
			translate(dx, dy);
		}
		mMouseOldPosition = event->localPos();
	}
	QGraphicsView::mouseMoveEvent(event);
	if (event->buttons() & Qt::RightButton) {
		setDragMode(NoDrag);
	} else {
		if ((event->buttons() & Qt::LeftButton) && (event->modifiers() & Qt::ControlModifier)) {
			setDragMode(RubberBandDrag);
			mScene->itemSelectUpdate();
		/*} else 	if ((event->buttons() & Qt::LeftButton) && (event->modifiers() & Qt::ShiftModifier)) {
			setDragMode(ScrollHandDrag); //  (see #615)
			mScene->itemSelectUpdate();*/
		} else if (event->buttons() & Qt::LeftButton ) {
			EdgeElement *newEdgeEl = dynamic_cast<EdgeElement *>(itemAt(event->pos()));
			if (newEdgeEl && newEdgeEl->isBreakPointPressed()) {
				newEdgeEl->breakPointUnpressed();
				setDragMode(NoDrag);
			}
		}
	}
	if (mScene->getNeedDrawGrid())
		mScene->invalidate();
}