// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include "JFJochMagnifierWindow.h" #include "../image_viewer/JFJochSimpleImage.h" #include "../SimpleImage.h" #include JFJochMagnifierWindow::JFJochMagnifierWindow(QWidget *parent) : JFJochHelperWindow(parent) { setWindowTitle("Magnifier"); m_image = new JFJochSimpleImage(this); m_image->setZoom(m_magnification); setCentralWidget(m_image); resize(320, 320); } void JFJochMagnifierWindow::imageLoaded(std::shared_ptr image) { if (!image) { m_have_image = false; m_image->setImage(nullptr); return; } const auto &exp = image->Dataset().experiment; auto si = std::make_shared(); si->image = CompressedImage(image->Image(), exp.GetXPixelsNum(), exp.GetYPixelsNum()); m_image->setImage(si); m_image->setZoom(m_magnification); m_have_image = true; } void JFJochMagnifierWindow::centerAt(QPointF scenePos) { if (!m_have_image || !isVisible()) return; double scale = m_image->GetScaleFactor(); m_image->applyViewport(QTransform::fromScale(scale, scale), scenePos); }