diff --git a/viewer/JFJochViewerDatasetInfo.cpp b/viewer/JFJochViewerDatasetInfo.cpp index ee717348..697b86a4 100644 --- a/viewer/JFJochViewerDatasetInfo.cpp +++ b/viewer/JFJochViewerDatasetInfo.cpp @@ -5,7 +5,7 @@ #include #include "JFJochViewerDatasetInfo.h" - +#include 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) { diff --git a/viewer/JFJochViewerDatasetInfo.h b/viewer/JFJochViewerDatasetInfo.h index b60d3790..8df1ddb5 100644 --- a/viewer/JFJochViewerDatasetInfo.h +++ b/viewer/JFJochViewerDatasetInfo.h @@ -6,6 +6,7 @@ #include #include +#include #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: