8a582b8a90
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 10m28s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 11m39s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m8s
Build Packages / build:rpm (rocky8) (push) Successful in 12m57s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m20s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m43s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 13m54s
Build Packages / XDS test (durin plugin) (push) Successful in 8m50s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m23s
Build Packages / Generate python client (push) Successful in 15s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 8m33s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m26s
Build Packages / Build documentation (push) Successful in 38s
Build Packages / build:rpm (rocky9) (push) Successful in 12m39s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m34s
Build Packages / DIALS test (push) Successful in 12m28s
Build Packages / Unit tests (push) Failing after 40m27s
46 lines
1.6 KiB
C++
46 lines
1.6 KiB
C++
// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
#include "JFJochMagnifierWindow.h"
|
|
#include "../image_viewer/JFJochSimpleImage.h"
|
|
#include "../SimpleImage.h"
|
|
|
|
#include <QTransform>
|
|
|
|
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<const JFJochReaderImage> image) {
|
|
if (!image) {
|
|
m_have_image = false;
|
|
m_image->setImage(nullptr);
|
|
return;
|
|
}
|
|
|
|
const double scale = m_have_image ? m_image->GetScaleFactor() : m_magnification;
|
|
const QPointF center = m_have_image
|
|
? m_image->mapToScene(m_image->viewport()->rect().center())
|
|
: QPointF(image->Dataset().experiment.GetXPixelsNum() * 0.5,
|
|
image->Dataset().experiment.GetYPixelsNum() * 0.5);
|
|
|
|
const auto &exp = image->Dataset().experiment;
|
|
auto si = std::make_shared<SimpleImage>();
|
|
si->image = CompressedImage(image->Image(), exp.GetXPixelsNum(), exp.GetYPixelsNum());
|
|
m_image->setImage(si);
|
|
m_image->applyViewport(QTransform::fromScale(scale, scale), center);
|
|
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);
|
|
}
|