// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include #include "JFJoch2DAzintImageWindow.h" #include "../widgets/JFJochViewerROIResult.h" JFJoch2DAzintImageWindow::JFJoch2DAzintImageWindow(QWidget *parent) : JFJochHelperWindow(parent) { QWidget *centralWidget = new QWidget(this); setWindowTitle("2D azimuthal integration viewer"); setCentralWidget(centralWidget); auto grid_layout = new QGridLayout(); viewer = new JFJochAzIntImage(this); background_slider = new SliderPlusBox(-100, 100, 1.0, 0, this, SliderPlusBox::ScaleType::Linear); foreground_slider = new SliderPlusBox(1, 32768, 1.0, 0, this, SliderPlusBox::ScaleType::Logarithmic); background_slider->setValue(0); auto background_row = new QHBoxLayout(); auto foreground_row = new QHBoxLayout(); background_row->addWidget(new QLabel("Background:")); background_row->addWidget(background_slider); foreground_row->addWidget(new QLabel("Foreground:")); foreground_row->addWidget(foreground_slider); auto roi_result = new JFJochViewerROIResult(this); grid_layout->addLayout(background_row, 0, 0, 1, 2); grid_layout->addLayout(foreground_row, 1, 0, 1, 2); grid_layout->addWidget(viewer, 2, 0, 1, 2); grid_layout->addWidget(roi_result, 3, 0, 1, 2); centralWidget->setLayout(grid_layout); connect(viewer, &JFJochAzIntImage::backgroundChanged, [this](float val) { QSignalBlocker blocker(background_slider); background_slider->setValue(val); }); connect(viewer, &JFJochAzIntImage::foregroundChanged, [this](float val) { QSignalBlocker blocker(foreground_slider); foreground_slider->setValue(val); }); connect(viewer, &JFJochAzIntImage::roiCalculated, roi_result, &JFJochViewerROIResult::SetROIResult); connect(background_slider, &SliderPlusBox::valueChanged, viewer, &JFJochAzIntImage::changeBackground); connect(foreground_slider, &SliderPlusBox::valueChanged, viewer, &JFJochAzIntImage::changeForeground); statusBar = new QStatusBar(this); setStatusBar(statusBar); connect(viewer, &JFJochAzIntImage::writeStatusBar, statusBar, &QStatusBar::showMessage); connect(viewer, &JFJochAzIntImage::zoomOnBin, this, &JFJoch2DAzintImageWindow::viewerZoomOnBin); } void JFJoch2DAzintImageWindow::viewerZoomOnBin(QPointF input) { emit zoomOnBin(input); } void JFJoch2DAzintImageWindow::imageLoaded(std::shared_ptr image) { viewer->imageLoaded(std::move(image)); } void JFJoch2DAzintImageWindow::setColorMap(int color_map) { viewer->setColorMap(color_map); }