All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 10m22s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m30s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 11m41s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 12m32s
Build Packages / Generate python client (push) Successful in 18s
Build Packages / Build documentation (push) Successful in 54s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m44s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m53s
Build Packages / build:rpm (rocky8) (push) Successful in 9m40s
Build Packages / build:rpm (rocky9) (push) Successful in 10m37s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m54s
Build Packages / Unit tests (push) Successful in 1h6m33s
This is an UNSTABLE release. * jfjoch_broker: Use newer version of Google Ceres for (potential) CUDA 13 compatibility * jfjoch_broker: Improve performance of generating preview images, especially for large detectors (9M-16M) * jfjoch_viewer: Improve performance of displaying images, especially for large detectors (9M-16M) * jfjoch_viewer: Add more color schemes for better image readability * HDF5: Common mutex for reading and writing HDF5 if both operations were to happen in the same executable * HDF5: suppress warning if path (upstream group) doesn't exists when checking if leaf exists Reviewed-on: #30 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
71 lines
3.1 KiB
C++
71 lines
3.1 KiB
C++
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
#include "JFJochViewerToolbarDisplay.h"
|
|
#include <QLabel>
|
|
#include "../../common/ColorScale.h"
|
|
|
|
JFJochViewerToolbarDisplay::JFJochViewerToolbarDisplay(QWidget *parent)
|
|
: QToolBar(parent) {
|
|
addWidget(new QLabel("<b>Foreground </b> "));
|
|
|
|
foreground_slider = new SliderPlusBox(1, 65000, 1.0, 1, this,
|
|
SliderPlusBox::ScaleType::Logarithmic);
|
|
foreground_slider->setValue(10);
|
|
addWidget(foreground_slider);
|
|
auto_foreground_button = new QPushButton("Auto");
|
|
auto_foreground_button->setCheckable(true);
|
|
auto_foreground_button->setChecked(false);
|
|
addWidget(auto_foreground_button);
|
|
|
|
addWidget(new QLabel(" <b>Color map</b> "));
|
|
|
|
// Initialize QComboBox with the options
|
|
color_map_select = new QComboBox(this);
|
|
color_map_select->addItem("Indigo", static_cast<int>(ColorScaleEnum::Indigo));
|
|
color_map_select->addItem("Viridis", static_cast<int>(ColorScaleEnum::Viridis));
|
|
color_map_select->addItem("Magma", static_cast<int>(ColorScaleEnum::Magma));
|
|
color_map_select->addItem("Inferno", static_cast<int>(ColorScaleEnum::Inferno));
|
|
color_map_select->addItem("Heat", static_cast<int>(ColorScaleEnum::Heat));
|
|
color_map_select->addItem("Black on white", static_cast<int>(ColorScaleEnum::BW));
|
|
color_map_select->addItem("White on black", static_cast<int>(ColorScaleEnum::WB));
|
|
color_map_select->addItem("Green (gamma)", static_cast<int>(ColorScaleEnum::Green1));
|
|
color_map_select->addItem("Green (asinh)", static_cast<int>(ColorScaleEnum::Green2));
|
|
color_map_select->addItem("Green (linear)", static_cast<int>(ColorScaleEnum::Green3));
|
|
|
|
color_map_select->setCurrentIndex(static_cast<int>(ColorScaleEnum::Indigo));
|
|
addWidget(color_map_select);
|
|
|
|
connect(foreground_slider, &SliderPlusBox::valueChanged, this, &JFJochViewerToolbarDisplay::foregroundSet);
|
|
connect(color_map_select, QOverload<int>::of(&QComboBox::currentIndexChanged),
|
|
this, &JFJochViewerToolbarDisplay::colorComboBoxSet);
|
|
connect(auto_foreground_button, &QPushButton::clicked, this, &JFJochViewerToolbarDisplay::autoForegroundButtonPressed);
|
|
|
|
auto *stretch = new QWidget(this);
|
|
stretch->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
|
addWidget(stretch);
|
|
}
|
|
|
|
void JFJochViewerToolbarDisplay::foregroundSet(double val) {
|
|
emit setForeground(static_cast<float>(val));
|
|
}
|
|
|
|
void JFJochViewerToolbarDisplay::updateForeground(float val) {
|
|
QSignalBlocker blocker(foreground_slider);
|
|
foreground_slider->setValue(val);
|
|
}
|
|
|
|
void JFJochViewerToolbarDisplay::colorComboBoxSet(int val) {
|
|
emit colorMapChanged(val);
|
|
}
|
|
|
|
|
|
void JFJochViewerToolbarDisplay::autoForegroundButtonPressed() {
|
|
emit setAutoForeground(auto_foreground_button->isChecked());
|
|
}
|
|
|
|
void JFJochViewerToolbarDisplay::updateAutoForeground(bool val) {
|
|
QSignalBlocker blocker(auto_foreground_button);
|
|
auto_foreground_button->setChecked(val);
|
|
}
|