diff --git a/viewer/widgets/JFJochDiffractionImage.h b/viewer/widgets/JFJochDiffractionImage.h index 0f477623..9511106b 100644 --- a/viewer/widgets/JFJochDiffractionImage.h +++ b/viewer/widgets/JFJochDiffractionImage.h @@ -59,8 +59,6 @@ private: QPointF roiEndPos; enum class RoiType {RoiBox, RoiCircle}; - enum class MouseEventType {None, Panning, DrawingROI, MovingROI}; - MouseEventType mouse_event_type = MouseEventType::None; RoiType roi_type = RoiType::RoiBox; public slots: diff --git a/viewer/widgets/JFJochImage.h b/viewer/widgets/JFJochImage.h index 2002a608..a9031a2b 100644 --- a/viewer/widgets/JFJochImage.h +++ b/viewer/widgets/JFJochImage.h @@ -24,6 +24,8 @@ protected: ColorScale color_scale; std::vector image_rgb; QPixmap pixmap; + enum class MouseEventType {None, Panning, DrawingROI, MovingROI, ResizingROI}; + MouseEventType mouse_event_type = MouseEventType::None; signals: void foregroundChanged(float v); diff --git a/viewer/widgets/JFJochSimpleImage.cpp b/viewer/widgets/JFJochSimpleImage.cpp index 29fe5534..ccdd192b 100644 --- a/viewer/widgets/JFJochSimpleImage.cpp +++ b/viewer/widgets/JFJochSimpleImage.cpp @@ -54,22 +54,22 @@ void JFJochSimpleImage::mousePressEvent(QMouseEvent* event) { // Determine if we are over an existing ROI handle active_handle_ = hitTestROIHandle(scenePos, 4.0 / std::sqrt(std::max(1e-4, scale_factor))); if (active_handle_ != ResizeHandle::None && active_handle_ != ResizeHandle::Inside) { - mouse_event_type_ = MouseEventType::ResizingROI; + mouse_event_type = MouseEventType::ResizingROI; roi_start_pos_ = roi_box_.topLeft(); roi_end_pos_ = roi_box_.bottomRight(); setCursor(Qt::SizeAllCursor); } else if (roi_box_.contains(scenePos)) { - mouse_event_type_ = MouseEventType::MovingROI; + mouse_event_type = MouseEventType::MovingROI; last_mouse_pos_ = event->pos(); setCursor(Qt::ClosedHandCursor); } else { - mouse_event_type_ = MouseEventType::DrawingROI; + mouse_event_type = MouseEventType::DrawingROI; roi_start_pos_ = RoundPoint(scenePos); roi_end_pos_ = roi_start_pos_; setCursor(Qt::CrossCursor); } } else { - mouse_event_type_ = MouseEventType::Panning; + mouse_event_type = MouseEventType::Panning; panning_ = true; setCursor(Qt::ClosedHandCursor); last_mouse_pos_ = event->pos(); @@ -84,7 +84,7 @@ void JFJochSimpleImage::mouseMoveEvent(QMouseEvent* event) { const QPointF scenePos = mapToScene(event->pos()); - switch (mouse_event_type_) { + switch (mouse_event_type) { case MouseEventType::Panning: { const QPointF delta = mapToScene(event->pos()) - mapToScene(last_mouse_pos_); last_mouse_pos_ = event->pos(); @@ -150,12 +150,12 @@ void JFJochSimpleImage::mouseReleaseEvent(QMouseEvent* event) { if (!scene() || !has_image_) return; if (event->button() == Qt::LeftButton) { - if (mouse_event_type_ == MouseEventType::DrawingROI) { + if (mouse_event_type == MouseEventType::DrawingROI) { roi_end_pos_ = RoundPoint(mapToScene(event->pos())); updateROI(); } panning_ = false; - mouse_event_type_ = MouseEventType::None; + mouse_event_type = MouseEventType::None; active_handle_ = ResizeHandle::None; setCursor(Qt::ArrowCursor); } diff --git a/viewer/widgets/JFJochSimpleImage.h b/viewer/widgets/JFJochSimpleImage.h index 736bb655..5d870a1c 100644 --- a/viewer/widgets/JFJochSimpleImage.h +++ b/viewer/widgets/JFJochSimpleImage.h @@ -70,10 +70,6 @@ private: template void renderImage(QImage &qimg, const uint8_t *input); - // ROI (box) state - enum class MouseEventType { None, Panning, DrawingROI, MovingROI, ResizingROI }; - MouseEventType mouse_event_type_ = MouseEventType::None; - QRectF roi_box_; // in scene/image pixel coordinates QPointF roi_start_pos_; // for drawing/resizing QPointF roi_end_pos_; // for drawing/resizing