// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include #include "JFJochViewerImageROIStatistics_Box.h" #include JFJochViewerImageROIStatistics_Box::JFJochViewerImageROIStatistics_Box(QWidget *parent) : QWidget(parent) { auto layout = new QHBoxLayout(this); setFixedWidth(300); layout->addWidget(new QLabel("x:")); x0 = new NumberLineEdit(0, 10000, 0, 0, "", this); x0->setFixedWidth(50); layout->addWidget(x0); layout->addWidget(new QLabel(" - ")); x1 = new NumberLineEdit(0, 10000, 0, 0, "", this); x1->setFixedWidth(50); layout->addWidget(x1); layout->addWidget(new QLabel(" y:")); y0 = new NumberLineEdit(0, 10000, 0, 0, "", this); y0->setFixedWidth(50); layout->addWidget(y0); layout->addWidget(new QLabel(" - ")); y1 = new NumberLineEdit(0, 10000, 0, 0, "", this); y1->setFixedWidth(50); layout->addWidget(y1); connect(x0, &NumberLineEdit::newValue, [this] (float) { emit Updated(); } ); connect(y0, &NumberLineEdit::newValue, [this] (float) { emit Updated(); } ); connect(x1, &NumberLineEdit::newValue, [this] (float) { emit Updated(); } ); connect(y1, &NumberLineEdit::newValue, [this] (float) { emit Updated(); } ); } void JFJochViewerImageROIStatistics_Box::ROIBoxConfigured(QRect box) { Enable(); x0->setValue(box.left()); x1->setValue(box.right()); y0->setValue(box.top()); y1->setValue(box.bottom()); } void JFJochViewerImageROIStatistics_Box::Disable() { x0->setEnabled(false); x1->setEnabled(false); y0->setEnabled(false); y1->setEnabled(false); } void JFJochViewerImageROIStatistics_Box::Enable() { x0->setEnabled(true); x1->setEnabled(true); y0->setEnabled(true); y1->setEnabled(true); } QRect JFJochViewerImageROIStatistics_Box::GetROIBox() { int64_t out_x0 = std::lround(x0->value()); int64_t out_x1 = std::lround(x1->value()); int64_t out_y0 = std::lround(y0->value()); int64_t out_y1 = std::lround(y1->value()); return QRect(out_x0, out_y0, out_x1 - out_x0, out_y1 - out_y0).normalized(); }