2511-eiger-mask #2
@@ -14,8 +14,6 @@ ADD_EXECUTABLE(jfjoch_viewer jfjoch_viewer.cpp JFJochViewerWindow.cpp JFJochView
|
||||
JFJochViewerImage.h
|
||||
JFJochImageReadingWorker.cpp
|
||||
JFJochImageReadingWorker.h
|
||||
JFJochViewerToolbar.cpp
|
||||
JFJochViewerToolbar.h
|
||||
JFJochViewerDatasetInfo.cpp
|
||||
JFJochViewerDatasetInfo.h
|
||||
JFJochViewerSidePanel.cpp
|
||||
@@ -62,6 +60,10 @@ ADD_EXECUTABLE(jfjoch_viewer jfjoch_viewer.cpp JFJochViewerWindow.cpp JFJochView
|
||||
JFJochViewerImageROIStatistics_Box.h
|
||||
JFJochViewerImageROIStatistics_Circle.cpp
|
||||
JFJochViewerImageROIStatistics_Circle.h
|
||||
JFJochViewerToolbarImage.cpp
|
||||
JFJochViewerToolbarImage.h
|
||||
JFJochViewerToolbarDisplay.cpp
|
||||
JFJochViewerToolbarDisplay.h
|
||||
)
|
||||
|
||||
TARGET_LINK_LIBRARIES(jfjoch_viewer Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Charts Qt6::DBus
|
||||
|
||||
@@ -36,15 +36,15 @@ void JFJochImageReadingWorker::LoadFile(const QString &filename, qint64 image_nu
|
||||
total_images = http_reader.GetNumberOfImages();
|
||||
dataset = http_reader.GetDataset();
|
||||
if (image_number < 0)
|
||||
emit setToolbarMode(JFJochViewerToolbar::ToolbarMode::Autoload);
|
||||
emit setToolbarMode(JFJochViewerToolbarImage::ToolbarMode::Autoload);
|
||||
else
|
||||
emit setToolbarMode(JFJochViewerToolbar::ToolbarMode::None);
|
||||
emit setToolbarMode(JFJochViewerToolbarImage::ToolbarMode::None);
|
||||
} else {
|
||||
http_mode = false;
|
||||
file_reader.ReadFile(filename.toStdString());
|
||||
total_images = file_reader.GetNumberOfImages();
|
||||
dataset = file_reader.GetDataset();
|
||||
emit setToolbarMode(JFJochViewerToolbar::ToolbarMode::None);
|
||||
emit setToolbarMode(JFJochViewerToolbarImage::ToolbarMode::None);
|
||||
}
|
||||
current_image.reset();
|
||||
current_summation = 1;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include <QRect>
|
||||
#include <QMutex>
|
||||
|
||||
#include "JFJochViewerToolbar.h"
|
||||
#include "JFJochViewerToolbarImage.h"
|
||||
|
||||
#include "../reader/JFJochHDF5Reader.h"
|
||||
#include "../common/Logger.h"
|
||||
@@ -65,7 +65,7 @@ signals:
|
||||
void imageLoaded(std::shared_ptr<const JFJochReaderImage>);
|
||||
void imageStatsUpdated(std::shared_ptr<const JFJochReaderImage>);
|
||||
void imageNumberChanged(int64_t total_images, int64_t current_image);
|
||||
void setToolbarMode(JFJochViewerToolbar::ToolbarMode input);
|
||||
void setToolbarMode(JFJochViewerToolbarImage::ToolbarMode input);
|
||||
void setRings(const QVector<float> &v);
|
||||
public:
|
||||
JFJochImageReadingWorker(const SpotFindingSettings &settings, const DiffractionExperiment& experiment, QObject *parent = nullptr);
|
||||
|
||||
76
viewer/JFJochViewerToolbarDisplay.cpp
Normal file
76
viewer/JFJochViewerToolbarDisplay.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
// 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(auto_foreground);
|
||||
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("Viridis", static_cast<int>(ColorScaleEnum::Viridis));
|
||||
color_map_select->addItem("Heat", static_cast<int>(ColorScaleEnum::Heat));
|
||||
color_map_select->addItem("Indigo", static_cast<int>(ColorScaleEnum::Indigo));
|
||||
color_map_select->addItem("B/W", static_cast<int>(ColorScaleEnum::BW));
|
||||
color_map_select->setCurrentIndex(static_cast<int>(ColorScaleEnum::Indigo));
|
||||
addWidget(color_map_select);
|
||||
|
||||
addWidget(new QLabel(" <b>Background </b> "));
|
||||
|
||||
background_slider = new SliderPlusBox(-30000, 30000, 1.0, 1, this,
|
||||
SliderPlusBox::ScaleType::Linear);
|
||||
background_slider->setValue(0);
|
||||
addWidget(background_slider);
|
||||
auto *stretch = new QWidget(this);
|
||||
stretch->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
addWidget(stretch);
|
||||
|
||||
connect(foreground_slider, &SliderPlusBox::valueChanged, this, &JFJochViewerToolbarDisplay::foregroundSet);
|
||||
connect(background_slider, &SliderPlusBox::valueChanged, this, &JFJochViewerToolbarDisplay::backgroundSet);
|
||||
connect(color_map_select, QOverload<int>::of(&QComboBox::currentIndexChanged),
|
||||
this, &JFJochViewerToolbarDisplay::colorComboBoxSet);
|
||||
connect(auto_foreground_button, &QPushButton::clicked, this, &JFJochViewerToolbarDisplay::autoForegroundButtonPressed);
|
||||
}
|
||||
|
||||
void JFJochViewerToolbarDisplay::foregroundSet(double val) {
|
||||
if (auto_foreground) {
|
||||
auto_foreground = false;
|
||||
auto_foreground_button->setChecked(false);
|
||||
emit setAutoForeground(false);
|
||||
}
|
||||
emit setForeground(static_cast<float>(val));
|
||||
}
|
||||
|
||||
void JFJochViewerToolbarDisplay::backgroundSet(double val) {
|
||||
emit setBackground(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() {
|
||||
auto_foreground = !auto_foreground;
|
||||
auto_foreground_button->setChecked(auto_foreground);
|
||||
emit setAutoForeground(auto_foreground);
|
||||
}
|
||||
42
viewer/JFJochViewerToolbarDisplay.h
Normal file
42
viewer/JFJochViewerToolbarDisplay.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#ifndef JFJOCH_JFJOCHVIEWERTOOLBARDISPLAY_H
|
||||
#define JFJOCH_JFJOCHVIEWERTOOLBARDISPLAY_H
|
||||
|
||||
#include <QToolBar>
|
||||
#include "widgets/SliderPlusBox.h"
|
||||
#include <QPushButton>
|
||||
#include <QComboBox>
|
||||
|
||||
class JFJochViewerToolbarDisplay : public QToolBar {
|
||||
Q_OBJECT
|
||||
|
||||
bool auto_foreground = false;
|
||||
|
||||
SliderPlusBox *background_slider;
|
||||
SliderPlusBox *foreground_slider;
|
||||
QPushButton *auto_foreground_button;
|
||||
|
||||
QComboBox *color_map_select;
|
||||
public:
|
||||
JFJochViewerToolbarDisplay(QWidget *parent = nullptr);
|
||||
|
||||
signals:
|
||||
void setForeground(float val);
|
||||
void setBackground(float val);
|
||||
void colorMapChanged(int val);
|
||||
void setAutoForeground(bool val);
|
||||
|
||||
public slots:
|
||||
void updateForeground(float val);
|
||||
|
||||
private slots:
|
||||
void foregroundSet(double val);
|
||||
void backgroundSet(double val);
|
||||
void colorComboBoxSet(int val);
|
||||
void autoForegroundButtonPressed();
|
||||
};
|
||||
|
||||
|
||||
#endif //JFJOCH_JFJOCHVIEWERTOOLBARDISPLAY_H
|
||||
@@ -1,20 +1,10 @@
|
||||
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#include "JFJochViewerToolbar.h"
|
||||
#include "../common/ColorScale.h"
|
||||
|
||||
#include <QPushButton>
|
||||
#include <QSlider>
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
#include <QIntValidator>
|
||||
#include "JFJochViewerToolbarImage.h"
|
||||
#include <QTimer>
|
||||
#include <cmath>
|
||||
|
||||
#include "widgets/NumericComboBox.h"
|
||||
|
||||
JFJochViewerToolbar::JFJochViewerToolbar(QWidget *parent) : QToolBar(parent) {
|
||||
JFJochViewerToolbarImage::JFJochViewerToolbarImage(QWidget *parent) : QToolBar(parent) {
|
||||
image_count_in_dataset = 0;
|
||||
|
||||
auto title = new QLabel("<b>Image number</b> ", this);
|
||||
@@ -51,12 +41,12 @@ JFJochViewerToolbar::JFJochViewerToolbar(QWidget *parent) : QToolBar(parent) {
|
||||
addWidget(new QLabel(" Jump:", this));
|
||||
|
||||
jump = new NumericComboBox({1, 2, 5, 10, 20, 100, 500}, 1, 999, this);
|
||||
connect(jump, &NumericComboBox::valueChanged, this, &JFJochViewerToolbar::setImageJump);
|
||||
connect(jump, &NumericComboBox::valueChanged, this, &JFJochViewerToolbarImage::setImageJump);
|
||||
addWidget(jump);
|
||||
|
||||
addWidget(new QLabel(" Sum:", this));
|
||||
auto sum = new NumericComboBox({1, 2, 5, 10, 20, 50, 100}, 1, 10000, this);
|
||||
connect(sum, &NumericComboBox::valueChanged, this, &JFJochViewerToolbar::setSummation);
|
||||
connect(sum, &NumericComboBox::valueChanged, this, &JFJochViewerToolbarImage::setSummation);
|
||||
addWidget(sum);
|
||||
|
||||
image_number_slider = new QSlider(Qt::Horizontal, this);
|
||||
@@ -77,59 +67,28 @@ JFJochViewerToolbar::JFJochViewerToolbar(QWidget *parent) : QToolBar(parent) {
|
||||
autoload_button->setCheckable(true);
|
||||
addWidget(autoload_button);
|
||||
|
||||
connect(movie_button, &QPushButton::clicked, this, &JFJochViewerToolbar::movieButtonPressed);
|
||||
connect(autoload_button, &QPushButton::clicked, this, &JFJochViewerToolbar::autoloadButtonPressed);
|
||||
connect(movie_timer, &QTimer::timeout, this, &JFJochViewerToolbar::movieTimerTimeout);
|
||||
connect(movie_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::movieButtonPressed);
|
||||
connect(autoload_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::autoloadButtonPressed);
|
||||
connect(movie_timer, &QTimer::timeout, this, &JFJochViewerToolbarImage::movieTimerTimeout);
|
||||
|
||||
auto *stretch = new QWidget(this);
|
||||
stretch->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
addWidget(stretch);
|
||||
|
||||
addSeparator();
|
||||
addWidget(new QLabel("<b>Foreground </b> "));
|
||||
|
||||
foreground_slider = new SliderPlusBox(1, 30000, 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(auto_foreground);
|
||||
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("Viridis", static_cast<int>(ColorScaleEnum::Viridis));
|
||||
color_map_select->addItem("Heat", static_cast<int>(ColorScaleEnum::Heat));
|
||||
color_map_select->addItem("Indigo", static_cast<int>(ColorScaleEnum::Indigo));
|
||||
color_map_select->addItem("B/W", static_cast<int>(ColorScaleEnum::BW));
|
||||
color_map_select->setCurrentIndex(static_cast<int>(ColorScaleEnum::Indigo));
|
||||
addWidget(color_map_select);
|
||||
|
||||
auto *stretch_2 = new QWidget(this);
|
||||
stretch_2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
addWidget(stretch_2);
|
||||
|
||||
setImageNumber(0, 0);
|
||||
|
||||
connect(left_button, &QPushButton::clicked, this, &JFJochViewerToolbar::leftButtonPressed);
|
||||
connect(right_button, &QPushButton::clicked, this, &JFJochViewerToolbar::rightButtonPressed);
|
||||
connect(leftmost_button, &QPushButton::clicked, this, &JFJochViewerToolbar::leftmostButtonPressed);
|
||||
connect(rightmost_button, &QPushButton::clicked, this, &JFJochViewerToolbar::rightmostButtonPressed);
|
||||
connect(left_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::leftButtonPressed);
|
||||
connect(right_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::rightButtonPressed);
|
||||
connect(leftmost_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::leftmostButtonPressed);
|
||||
connect(rightmost_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::rightmostButtonPressed);
|
||||
|
||||
connect(current_image_edit, &QLineEdit::editingFinished, this, &JFJochViewerToolbar::editFinalized);
|
||||
connect(image_number_slider, &QSlider::sliderPressed, this, &JFJochViewerToolbar::imageNumberSliderPressed);
|
||||
connect(image_number_slider, &QSlider::sliderReleased, this, &JFJochViewerToolbar::imageNumberSliderReleased);
|
||||
connect(image_number_slider, &QSlider::sliderMoved, this, &JFJochViewerToolbar::imageNumberSliderMoved);
|
||||
connect(foreground_slider, &SliderPlusBox::valueChanged, this, &JFJochViewerToolbar::foregroundSet);
|
||||
connect(color_map_select, QOverload<int>::of(&QComboBox::currentIndexChanged),
|
||||
this, &JFJochViewerToolbar::colorComboBoxSet);
|
||||
connect(auto_foreground_button, &QPushButton::clicked, this, &JFJochViewerToolbar::autoForegroundButtonPressed);
|
||||
connect(current_image_edit, &QLineEdit::editingFinished, this, &JFJochViewerToolbarImage::editFinalized);
|
||||
connect(image_number_slider, &QSlider::sliderPressed, this, &JFJochViewerToolbarImage::imageNumberSliderPressed);
|
||||
connect(image_number_slider, &QSlider::sliderReleased, this, &JFJochViewerToolbarImage::imageNumberSliderReleased);
|
||||
connect(image_number_slider, &QSlider::sliderMoved, this, &JFJochViewerToolbarImage::imageNumberSliderMoved);
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::updateButtons() {
|
||||
void JFJochViewerToolbarImage::updateButtons() {
|
||||
if (image_count_in_dataset > 0) {
|
||||
current_image_edit->setDisabled(false);
|
||||
current_image_edit->setText(QString::number(curr_image));
|
||||
@@ -160,7 +119,7 @@ void JFJochViewerToolbar::updateButtons() {
|
||||
total_number_label->setText("/" + QString::number(image_count_in_dataset - 1));
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::setImageNumber(int64_t total_images, int64_t current_image) {
|
||||
void JFJochViewerToolbarImage::setImageNumber(int64_t total_images, int64_t current_image) {
|
||||
if (image_count_in_dataset != total_images && mode == ToolbarMode::Movie) {
|
||||
mode = ToolbarMode::None;
|
||||
updateAutoload();
|
||||
@@ -171,7 +130,7 @@ void JFJochViewerToolbar::setImageNumber(int64_t total_images, int64_t current_i
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::leftButtonPressed() {
|
||||
void JFJochViewerToolbarImage::leftButtonPressed() {
|
||||
if (curr_image >= jump_value) {
|
||||
emit loadImage(curr_image - jump_value, sum);
|
||||
mode = ToolbarMode::None;
|
||||
@@ -179,7 +138,7 @@ void JFJochViewerToolbar::leftButtonPressed() {
|
||||
}
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::rightButtonPressed() {
|
||||
void JFJochViewerToolbarImage::rightButtonPressed() {
|
||||
if (curr_image < image_count_in_dataset - jump_value) {
|
||||
emit loadImage(curr_image + jump_value, sum);
|
||||
mode = ToolbarMode::None;
|
||||
@@ -187,38 +146,38 @@ void JFJochViewerToolbar::rightButtonPressed() {
|
||||
}
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::rightmostButtonPressed() {
|
||||
void JFJochViewerToolbarImage::rightmostButtonPressed() {
|
||||
emit loadImage(image_count_in_dataset - 1, sum);
|
||||
mode = ToolbarMode::None;
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::leftmostButtonPressed() {
|
||||
void JFJochViewerToolbarImage::leftmostButtonPressed() {
|
||||
emit loadImage(0, sum);
|
||||
mode = ToolbarMode::None;
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::imageNumberSliderPressed() {
|
||||
void JFJochViewerToolbarImage::imageNumberSliderPressed() {
|
||||
image_number_slider_manual = true;
|
||||
mode = ToolbarMode::None;
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::imageNumberSliderReleased() {
|
||||
void JFJochViewerToolbarImage::imageNumberSliderReleased() {
|
||||
image_number_slider_manual = false;
|
||||
int val = image_number_slider->value();
|
||||
emit loadImage(val, sum);
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::imageNumberSliderMoved(int val) {
|
||||
void JFJochViewerToolbarImage::imageNumberSliderMoved(int val) {
|
||||
if (!image_number_slider_timer->isActive()) {
|
||||
emit loadImage(val, sum);
|
||||
image_number_slider_timer->start(300);
|
||||
}
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::editFinalized() {
|
||||
void JFJochViewerToolbarImage::editFinalized() {
|
||||
bool ok;
|
||||
int editedValue = current_image_edit->text().toInt(&ok);
|
||||
|
||||
@@ -229,32 +188,15 @@ void JFJochViewerToolbar::editFinalized() {
|
||||
}
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::foregroundSet(double val) {
|
||||
if (auto_foreground) {
|
||||
auto_foreground = false;
|
||||
auto_foreground_button->setChecked(false);
|
||||
emit setAutoForeground(false);
|
||||
}
|
||||
emit setForeground(static_cast<float>(val));
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::updateForeground(float val) {
|
||||
QSignalBlocker blocker(foreground_slider);
|
||||
foreground_slider->setValue(val);
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::colorComboBoxSet(int val) {
|
||||
emit colorMapChanged(val);
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::setImageJump(int val) {
|
||||
void JFJochViewerToolbarImage::setImageJump(int val) {
|
||||
jump_value = val;
|
||||
updateButtons();
|
||||
mode = ToolbarMode::None;
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::setSummation(int val) {
|
||||
void JFJochViewerToolbarImage::setSummation(int val) {
|
||||
sum = val;
|
||||
jump_value = val;
|
||||
jump->setValue(val);
|
||||
@@ -266,7 +208,7 @@ void JFJochViewerToolbar::setSummation(int val) {
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::autoloadButtonPressed() {
|
||||
void JFJochViewerToolbarImage::autoloadButtonPressed() {
|
||||
if (mode == ToolbarMode::Autoload)
|
||||
mode = ToolbarMode::None;
|
||||
else
|
||||
@@ -274,7 +216,7 @@ void JFJochViewerToolbar::autoloadButtonPressed() {
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::movieButtonPressed() {
|
||||
void JFJochViewerToolbarImage::movieButtonPressed() {
|
||||
if (mode == ToolbarMode::Movie)
|
||||
mode = ToolbarMode::None;
|
||||
else
|
||||
@@ -282,7 +224,7 @@ void JFJochViewerToolbar::movieButtonPressed() {
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::movieTimerTimeout() {
|
||||
void JFJochViewerToolbarImage::movieTimerTimeout() {
|
||||
switch (mode) {
|
||||
case ToolbarMode::Autoload:
|
||||
emit loadImage(-1, 1);
|
||||
@@ -299,7 +241,7 @@ void JFJochViewerToolbar::movieTimerTimeout() {
|
||||
}
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::updateAutoload() {
|
||||
void JFJochViewerToolbarImage::updateAutoload() {
|
||||
switch (mode) {
|
||||
case ToolbarMode::None:
|
||||
autoload_button->setChecked(false);
|
||||
@@ -326,13 +268,7 @@ void JFJochViewerToolbar::updateAutoload() {
|
||||
}
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::setAutoloadMode(JFJochViewerToolbar::ToolbarMode input) {
|
||||
void JFJochViewerToolbarImage::setAutoloadMode(JFJochViewerToolbarImage::ToolbarMode input) {
|
||||
mode = input;
|
||||
updateAutoload();
|
||||
}
|
||||
|
||||
void JFJochViewerToolbar::autoForegroundButtonPressed() {
|
||||
auto_foreground = !auto_foreground;
|
||||
auto_foreground_button->setChecked(auto_foreground);
|
||||
emit setAutoForeground(auto_foreground);
|
||||
}
|
||||
@@ -1,21 +1,20 @@
|
||||
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#ifndef JFJOCH_JFJOCHVIEWERTOOLBAR_H
|
||||
#define JFJOCH_JFJOCHVIEWERTOOLBAR_H
|
||||
#ifndef JFJOCH_JFJOCHVIEWERTOOLBARIMAGE_H
|
||||
#define JFJOCH_JFJOCHVIEWERTOOLBARIMAGE_H
|
||||
|
||||
#include <QToolBar>
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
#include <QIntValidator>
|
||||
#include <QPushButton>
|
||||
#include <QSlider>
|
||||
#include <QComboBox>
|
||||
#include "widgets/SliderPlusBox.h"
|
||||
#include <QTimer>
|
||||
|
||||
#include "widgets/NumberLineEdit.h"
|
||||
#include "widgets/NumericComboBox.h"
|
||||
|
||||
class JFJochViewerToolbar : public QToolBar {
|
||||
Q_OBJECT
|
||||
class JFJochViewerToolbarImage : public QToolBar {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum class ToolbarMode {Autoload, Movie, None};
|
||||
@@ -25,8 +24,6 @@ private:
|
||||
size_t image_count_in_dataset;
|
||||
int64_t curr_image;
|
||||
|
||||
bool auto_foreground = false;
|
||||
|
||||
int jump_value = 1;
|
||||
int sum = 1;
|
||||
|
||||
@@ -43,11 +40,6 @@ private:
|
||||
QTimer *image_number_slider_timer;
|
||||
bool image_number_slider_manual = false;
|
||||
|
||||
SliderPlusBox *foreground_slider;
|
||||
QPushButton *auto_foreground_button;
|
||||
|
||||
QComboBox *color_map_select;
|
||||
|
||||
QPushButton *movie_button;
|
||||
QPushButton *autoload_button;
|
||||
|
||||
@@ -60,15 +52,10 @@ private:
|
||||
void updateAutoload();
|
||||
signals:
|
||||
void loadImage(int64_t number, int summation);
|
||||
void setForeground(float val);
|
||||
void colorMapChanged(int val);
|
||||
void setAutoForeground(bool val);
|
||||
public:
|
||||
explicit JFJochViewerToolbar(QWidget *parent = nullptr);
|
||||
|
||||
explicit JFJochViewerToolbarImage(QWidget *parent = nullptr);
|
||||
public slots:
|
||||
void setImageNumber(int64_t total_images, int64_t current_image);
|
||||
void updateForeground(float val);
|
||||
void setAutoloadMode(ToolbarMode input);
|
||||
private slots:
|
||||
void leftButtonPressed();
|
||||
@@ -81,15 +68,12 @@ private slots:
|
||||
void imageNumberSliderMoved(int val);
|
||||
void imageNumberSliderReleased();
|
||||
|
||||
void foregroundSet(double val);
|
||||
void colorComboBoxSet(int val);
|
||||
void setImageJump(int val);
|
||||
void setSummation(int val);
|
||||
|
||||
void movieButtonPressed();
|
||||
void autoloadButtonPressed();
|
||||
void movieTimerTimeout();
|
||||
void autoForegroundButtonPressed();
|
||||
};
|
||||
|
||||
#endif //JFJOCH_JFJOCHVIEWERTOOLBAR_H
|
||||
#endif //JFJOCH_JFJOCHVIEWERTOOLBARIMAGE_H
|
||||
@@ -22,8 +22,11 @@ JFJochViewerWindow::JFJochViewerWindow(QWidget *parent, bool dbus, const QString
|
||||
menuBar = new JFJochViewerMenu(this);
|
||||
setMenuBar(menuBar);
|
||||
|
||||
toolBar = new JFJochViewerToolbar(this);
|
||||
addToolBar(toolBar);
|
||||
toolBarImage = new JFJochViewerToolbarImage(this);
|
||||
addToolBar(toolBarImage);
|
||||
|
||||
toolBarDisplay = new JFJochViewerToolbarDisplay(this);
|
||||
addToolBar(toolBarDisplay);
|
||||
|
||||
auto statusbar = new JFJochViewerStatusBar(this);
|
||||
setStatusBar(statusbar);
|
||||
@@ -150,22 +153,25 @@ JFJochViewerWindow::JFJochViewerWindow(QWidget *parent, bool dbus, const QString
|
||||
connect(reading_worker, &JFJochImageReadingWorker::imageStatsUpdated,
|
||||
side_panel, &JFJochViewerSidePanel::loadImage);
|
||||
|
||||
connect(reading_worker, &JFJochImageReadingWorker::imageNumberChanged, toolBar,
|
||||
&JFJochViewerToolbar::setImageNumber);
|
||||
connect(reading_worker, &JFJochImageReadingWorker::imageNumberChanged, toolBarImage,
|
||||
&JFJochViewerToolbarImage::setImageNumber);
|
||||
|
||||
connect(toolBar, &JFJochViewerToolbar::loadImage, reading_worker, &JFJochImageReadingWorker::LoadImage);
|
||||
connect(toolBarImage, &JFJochViewerToolbarImage::loadImage, reading_worker, &JFJochImageReadingWorker::LoadImage);
|
||||
|
||||
connect(toolBar, &JFJochViewerToolbar::setForeground, viewer,
|
||||
connect(toolBarDisplay, &JFJochViewerToolbarDisplay::setForeground, viewer,
|
||||
&JFJochViewerImage::changeForeground);
|
||||
|
||||
connect(toolBar, &JFJochViewerToolbar::setAutoForeground, viewer,
|
||||
connect(toolBarDisplay, &JFJochViewerToolbarDisplay::setBackground, viewer,
|
||||
&JFJochViewerImage::changeBackground);
|
||||
|
||||
connect(toolBarDisplay, &JFJochViewerToolbarDisplay::setAutoForeground, viewer,
|
||||
&JFJochViewerImage::setAutoForeground);
|
||||
|
||||
connect(toolBar, &JFJochViewerToolbar::colorMapChanged, viewer,
|
||||
connect(toolBarDisplay, &JFJochViewerToolbarDisplay::colorMapChanged, viewer,
|
||||
&JFJochViewerImage::setColorMap);
|
||||
|
||||
connect(viewer, &JFJochViewerImage::foregroundChanged,
|
||||
toolBar, &JFJochViewerToolbar::updateForeground);
|
||||
toolBarDisplay, &JFJochViewerToolbarDisplay::updateForeground);
|
||||
|
||||
connect(viewer, &JFJochViewerImage::roiBoxUpdated,
|
||||
reading_worker, &JFJochImageReadingWorker::SetROIBox);
|
||||
@@ -234,7 +240,7 @@ JFJochViewerWindow::JFJochViewerWindow(QWidget *parent, bool dbus, const QString
|
||||
reading_worker, &JFJochImageReadingWorker::LoadImage);
|
||||
|
||||
connect(reading_worker, &JFJochImageReadingWorker::setToolbarMode,
|
||||
toolBar, &JFJochViewerToolbar::setAutoloadMode);
|
||||
toolBarImage, &JFJochViewerToolbarImage::setAutoloadMode);
|
||||
|
||||
connect(side_panel, &JFJochViewerSidePanel::analyze,
|
||||
reading_worker, &JFJochImageReadingWorker::Analyze);
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
#include <QMainWindow>
|
||||
|
||||
#include "JFJochViewerMenu.h"
|
||||
#include "JFJochViewerToolbar.h"
|
||||
#include "JFJochViewerToolbarDisplay.h"
|
||||
#include "JFJochViewerToolbarImage.h"
|
||||
#include "../reader/JFJochHDF5Reader.h"
|
||||
#include "JFJochImageReadingWorker.h"
|
||||
#include "JFJochViewerDatasetInfo.h"
|
||||
@@ -21,7 +22,9 @@ public:
|
||||
|
||||
|
||||
private:
|
||||
JFJochViewerToolbar *toolBar;
|
||||
JFJochViewerToolbarImage *toolBarImage;
|
||||
JFJochViewerToolbarDisplay *toolBarDisplay;
|
||||
|
||||
JFJochViewerMenu *menuBar;
|
||||
JFJochViewerDatasetInfo *dataset_info;
|
||||
JFJochImageReadingWorker *reading_worker;
|
||||
|
||||
Reference in New Issue
Block a user