jfjoch_viewer: add option to have standard view for grid scan

This commit is contained in:
2025-11-19 15:33:28 +01:00
parent 33dc6ebcf5
commit 871457219e
2 changed files with 26 additions and 4 deletions

View File

@@ -5,7 +5,7 @@
#include <QPushButton>
#include "JFJochViewerDatasetInfo.h"
#include <iostream>
JFJochViewerDatasetInfo::JFJochViewerDatasetInfo(QWidget *parent) : QWidget(parent) {
setFixedHeight(200);
@@ -26,7 +26,15 @@ JFJochViewerDatasetInfo::JFJochViewerDatasetInfo(QWidget *parent) : QWidget(pare
layout->addWidget(combo_box, 0, 0);
auto reset_button = new QPushButton("Reset zoom", this);
layout->addWidget(reset_button, 0, 1);
reset_button->setFixedWidth(100);
grid_button = new QPushButton("Grid", this);
grid_button->setFixedWidth(100);
grid_button->setCheckable(true);
grid_button->setEnabled(false);
layout->addWidget(reset_button, 0, 2);
layout->addWidget(grid_button, 0, 3);
stack = new QStackedWidget(this);
chart_view = new JFJochChartView(this);
@@ -35,7 +43,7 @@ JFJochViewerDatasetInfo::JFJochViewerDatasetInfo(QWidget *parent) : QWidget(pare
stack->addWidget(chart_view);
stack->addWidget(grid_scan_image);
layout->addWidget(stack, 1, 0, 1, 2);
layout->addWidget(stack, 1, 0, 1, 4);
connect(chart_view, &JFJochChartView::imageSelected,
this, &JFJochViewerDatasetInfo::imageSelectedInChart);
@@ -53,7 +61,13 @@ JFJochViewerDatasetInfo::JFJochViewerDatasetInfo(QWidget *parent) : QWidget(pare
[this] (QString string, int timeout_ms) {
emit writeStatusBar(string, timeout_ms);
});
connect(grid_button, &QPushButton::clicked,
[this] () {
if (grid_button->isChecked() && dataset && dataset->experiment.GetGridScan())
stack->setCurrentWidget(grid_scan_image);
else
stack->setCurrentWidget(chart_view);
});
setLayout(layout);
}
@@ -109,11 +123,17 @@ void JFJochViewerDatasetInfo::UpdatePlot() {
if (dataset->experiment.GetGridScan()) {
grid_scan_image->loadData(data, dataset->experiment.GetGridScan().value());
stack->setCurrentWidget(grid_scan_image);
grid_button->setEnabled(true);
grid_button->setChecked(true);
} else {
grid_scan_image->clear();
stack->setCurrentWidget(chart_view);
grid_button->setEnabled(false);
}
} else {
grid_button->setEnabled(false);
}
}
void JFJochViewerDatasetInfo::comboBoxSelected(int index) {

View File

@@ -6,6 +6,7 @@
#include <QComboBox>
#include <QStackedWidget>
#include <QPushButton>
#include "charts/JFJochChartView.h"
#include "../reader/JFJochReader.h"
@@ -21,6 +22,7 @@ class JFJochViewerDatasetInfo : public QWidget {
JFJochGridScanImage *grid_scan_image = nullptr;
QStackedWidget *stack = nullptr;
QPushButton *grid_button = nullptr;
void UpdatePlot();
signals: