Files
Jungfraujoch/viewer/windows/JFJoch2DAzintImageWindow.cpp
Filip Leonarski 808691251e
All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m48s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m18s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m18s
Build Packages / build:rpm (rocky8) (push) Successful in 11m43s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 12m31s
Build Packages / Unit tests (push) Has been skipped
Build Packages / Generate python client (push) Successful in 17s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m2s
Build Packages / Build documentation (push) Successful in 37s
Build Packages / build:rpm (rocky9) (push) Successful in 9m45s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 6m35s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 7m8s
v1.0.0-rc.101 (#6)
This is an UNSTABLE release.

* jfjoch_viewer: Auto load is better handling change of states
* jfjoch_viewer: Fix DBus registration
* jfjoch_viewer: Handle charts better with vertical lines on hover and status bar update
* jfjoch_viewer: Calculate ROI in a more efficient way

Reviewed-on: #6
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-11-16 12:35:00 +01:00

72 lines
2.7 KiB
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#include <QStatusBar>
#include "JFJoch2DAzintImageWindow.h"
#include "../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<const JFJochReaderImage> image) {
viewer->imageLoaded(std::move(image));
}
void JFJoch2DAzintImageWindow::setColorMap(int color_map) {
viewer->setColorMap(color_map);
}