void CurvesWidget::leaveEvent(QEvent*) { d->xMouseOver = -1; d->yMouseOver = -1; emit signalMouseMoved(d->xMouseOver, d->yMouseOver); update(); }
void ImageDisplay::mouseMoveEvent(QMouseEvent *e) { if (e->buttons().testFlag(Qt::LeftButton)) { m_states.manhattan += (e->pos()-m_states.mousePrevPos).manhattanLength(); } m_states.mousePrevPos = e->pos(); if (!m_aScaling->isChecked()) { #if QT_VERSION < 0x040700 if (e->buttons().testFlag(Qt::MidButton)) { #else if (e->buttons().testFlag(Qt::MiddleButton)) { #endif // Move the viewport QPointF offset = m_states.mouseInitialImagePos - convertCanvasToPixel(e->pos()); m_imageOffset = offset; repaint(); } } if (hasMouseTracking() && !m_image.isNull()) { int x = e->pos().x() - contentsRect().x(); int y = e->pos().y() - contentsRect().y(); if (x < 0 || y < 0 || x >= contentsRect().width() || y >= contentsRect().height()) { // qDebug() << "Not inside drawing boundaries."; return; } QPointF pos = convertCanvasToImage(e->pos()); emit signalMouseMoved(pos.x(), pos.y()); } repaint(); } void ImageDisplay::mouseReleaseEvent(QMouseEvent *e) { QPointF p0 = m_states.mouseInitialImagePos; QPointF releasePos = convertCanvasToImage(e->pos()); QPointF minPoint = min(p0, releasePos, true); QPointF maxPoint = max(p0, releasePos, true); qDebug() << p0 << releasePos << minPoint << maxPoint; QRectF mouseRect(minPoint, maxPoint); if (m_states.countsAsMove()) { emit signalRectDrawn(mouseRect); } }
void CurvesWidget::mouseMoveEvent(QMouseEvent* e) { if (d->readOnlyMode || !d->imageHistogram) { return; } if (d->clearFlag == CurvesWidgetPriv::HistogramStarted) { return; } int x, y, closest_point; d->getHistogramCoordinates(e->pos(), x, y, closest_point); switch (d->curves->getCurveType(d->channelType)) { case ImageCurves::CURVE_SMOOTH: { if (d->grabPoint == -1) // If no point is grabbed... { if (d->curves->getCurvePointX(d->channelType, closest_point) != -1) { setCursor(Qt::ArrowCursor); } else { setCursor(Qt::CrossCursor); } } else // Else, drag the grabbed point { setCursor(Qt::CrossCursor); d->curves->setCurvePointX(d->channelType, d->grabPoint, -1); if (x > d->leftMost && x < d->rightMost) { closest_point = (x + d->getDelta() / 2) / d->getDelta(); if (d->curves->getCurvePointX(d->channelType, closest_point) == -1) { d->grabPoint = closest_point; } d->curves->setCurvePoint(d->channelType, d->grabPoint, QPoint(x, d->imageHistogram->getMaxSegmentIndex() - y)); } d->curves->curvesCalculateCurve(d->channelType); emit signalCurvesChanged(); } break; } case ImageCurves::CURVE_FREE: { if (d->grabPoint != -1) { int x1, x2, y1, y2; if (d->grabPoint > x) { x1 = x; x2 = d->grabPoint; y1 = y; y2 = d->last; } else { x1 = d->grabPoint; x2 = x; y1 = d->last; y2 = y; } if (x2 != x1) { for (int i = x1 ; i <= x2 ; ++i) d->curves->setCurveValue(d->channelType, i, d->imageHistogram->getMaxSegmentIndex() - (y1 + ((y2 - y1) * (i - x1)) / (x2 - x1))); } else { d->curves->setCurveValue(d->channelType, x, d->imageHistogram->getMaxSegmentIndex() - y); } d->grabPoint = x; d->last = y; emit signalCurvesChanged(); } break; } } d->xMouseOver = x; d->yMouseOver = d->imageHistogram->getMaxSegmentIndex() - y; emit signalMouseMoved(d->xMouseOver, d->yMouseOver); update(); }
void ImageGraphicsViewForm::mouseMoveEvent(QMouseEvent *event) { emit signalMouseMoved(mapToScene(event->pos())); }