From d2f29410d6c60a6d5be5650e7a8c8fc254bafea5 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <svechnikovmv@gmail.com> Date: Thu, 5 Oct 2023 17:16:32 +0200 Subject: [PATCH] block distributions in gui --- GUI/View/Instrument/AlphaScanEditor.cpp | 6 +++--- GUI/View/Instrument/AlphaScanEditor.h | 2 +- GUI/View/Instrument/DepthprobeInstrumentEditor.cpp | 2 +- GUI/View/Instrument/DistributionEditor.cpp | 7 ++++--- GUI/View/Instrument/DistributionEditor.h | 4 ++-- GUI/View/Instrument/OffspecInstrumentEditor.cpp | 2 +- GUI/View/Instrument/ScanEditor.cpp | 6 +++--- GUI/View/Instrument/ScanEditor.h | 2 +- 8 files changed, 16 insertions(+), 15 deletions(-) diff --git a/GUI/View/Instrument/AlphaScanEditor.cpp b/GUI/View/Instrument/AlphaScanEditor.cpp index d0758f7d62d..4f7891d3dc6 100644 --- a/GUI/View/Instrument/AlphaScanEditor.cpp +++ b/GUI/View/Instrument/AlphaScanEditor.cpp @@ -20,7 +20,7 @@ #include "GUI/View/Instrument/DistributionEditor.h" #include "GUI/View/Instrument/DistributionPlot.h" -AlphaScanEditor::AlphaScanEditor(QWidget* parent, GrazingScanItem* item) +AlphaScanEditor::AlphaScanEditor(QWidget* parent, GrazingScanItem* item, bool allow_distr) : QGroupBox("Grazing angles", parent) , m_item(item) { @@ -43,8 +43,8 @@ AlphaScanEditor::AlphaScanEditor(QWidget* parent, GrazingScanItem* item) connect(m_form, &SphericalAxisForm::dataChanged, this, &AlphaScanEditor::dataChanged); //... beam distribution - m_selector = - new DistributionSelector(std::nullopt, GUI::ID::Distributions::Symmetric, this, m_item); + m_selector = new DistributionSelector(std::nullopt, GUI::ID::Distributions::Symmetric, this, + m_item, allow_distr); connect(m_selector, &DistributionSelector::distributionChanged, this, &AlphaScanEditor::dataChanged); connect(m_selector, &DistributionSelector::distributionChanged, this, diff --git a/GUI/View/Instrument/AlphaScanEditor.h b/GUI/View/Instrument/AlphaScanEditor.h index ad9578f52af..e0ec0327b2c 100644 --- a/GUI/View/Instrument/AlphaScanEditor.h +++ b/GUI/View/Instrument/AlphaScanEditor.h @@ -27,7 +27,7 @@ class SphericalAxisForm; class AlphaScanEditor : public QGroupBox { Q_OBJECT public: - AlphaScanEditor(QWidget* parent, GrazingScanItem* item); + AlphaScanEditor(QWidget* parent, GrazingScanItem* item, bool allow_distr); void updateIndicators(); diff --git a/GUI/View/Instrument/DepthprobeInstrumentEditor.cpp b/GUI/View/Instrument/DepthprobeInstrumentEditor.cpp index 86e4007ef32..861579edad8 100644 --- a/GUI/View/Instrument/DepthprobeInstrumentEditor.cpp +++ b/GUI/View/Instrument/DepthprobeInstrumentEditor.cpp @@ -29,7 +29,7 @@ DepthprobeInstrumentEditor::DepthprobeInstrumentEditor(QWidget* parent, auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); - auto* scanEditor = new ScanEditor(this, instrument->scanItem(), &m_ec); + auto* scanEditor = new ScanEditor(this, instrument->scanItem(), &m_ec, false); layout->addWidget(scanEditor); auto* depthAxisEditor = new AxisPropertyForm(this, "Depth axis", &instrument->zAxis(), diff --git a/GUI/View/Instrument/DistributionEditor.cpp b/GUI/View/Instrument/DistributionEditor.cpp index 1cbd1471458..fc627405f5a 100644 --- a/GUI/View/Instrument/DistributionEditor.cpp +++ b/GUI/View/Instrument/DistributionEditor.cpp @@ -29,7 +29,7 @@ DistributionSelector::DistributionSelector(std::optional<MeanConfig> mean_config, GUI::ID::Distributions distributions, QWidget* parent, - BeamDistributionItem* item) + BeamDistributionItem* item, bool allow_distr) : QWidget(parent) , m_item(item) , m_meanConfig(std::move(mean_config)) @@ -44,6 +44,7 @@ DistributionSelector::DistributionSelector(std::optional<MeanConfig> mean_config createDistributionWidgets(); emit distributionChanged(); }); + m_distributionCombo->setEnabled(allow_distr); m_formLayout->addRow("Distribution:", m_distributionCombo); createDistributionWidgets(); @@ -161,11 +162,11 @@ void DistributionSelector::refresh() DistributionEditor::DistributionEditor(const QString& title, const std::optional<MeanConfig>& mean_config, GUI::ID::Distributions distributions, QWidget* parent, - BeamDistributionItem* item) + BeamDistributionItem* item, bool allow_distr) : QGroupBox(title, parent) { auto* hLayout = new QHBoxLayout(this); - m_selector = new DistributionSelector(mean_config, distributions, this, item); + m_selector = new DistributionSelector(mean_config, distributions, this, item, allow_distr); hLayout->addWidget(m_selector); hLayout->setSpacing(50); diff --git a/GUI/View/Instrument/DistributionEditor.h b/GUI/View/Instrument/DistributionEditor.h index 0af4652af23..3ac7d646638 100644 --- a/GUI/View/Instrument/DistributionEditor.h +++ b/GUI/View/Instrument/DistributionEditor.h @@ -52,7 +52,7 @@ public: /// supported) DistributionSelector(std::optional<MeanConfig> mean_config, GUI::ID::Distributions distributions, QWidget* parent, - BeamDistributionItem* item); + BeamDistributionItem* item, bool allow_distr); BeamDistributionItem* item() const; GUI::ID::Distributions distributions() const; @@ -85,7 +85,7 @@ class DistributionEditor : public QGroupBox { public: DistributionEditor(const QString& title, const std::optional<MeanConfig>& mean_config, GUI::ID::Distributions distributions, QWidget* parent, - BeamDistributionItem* item); + BeamDistributionItem* item, bool allow_distr = true); //! Update UI from data void updateData(); diff --git a/GUI/View/Instrument/OffspecInstrumentEditor.cpp b/GUI/View/Instrument/OffspecInstrumentEditor.cpp index 7377cd4bbaf..8cd5b7b9485 100644 --- a/GUI/View/Instrument/OffspecInstrumentEditor.cpp +++ b/GUI/View/Instrument/OffspecInstrumentEditor.cpp @@ -29,7 +29,7 @@ OffspecInstrumentEditor::OffspecInstrumentEditor(QWidget* parent, OffspecInstrum auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); - auto* scanEditor = new ScanEditor(this, instrument->scanItem(), &m_ec); + auto* scanEditor = new ScanEditor(this, instrument->scanItem(), &m_ec, false); layout->addWidget(scanEditor); auto* detectorEditor = new OffspecDetectorEditor(this, instrument); diff --git a/GUI/View/Instrument/ScanEditor.cpp b/GUI/View/Instrument/ScanEditor.cpp index 9cca6169801..16aaabaf469 100644 --- a/GUI/View/Instrument/ScanEditor.cpp +++ b/GUI/View/Instrument/ScanEditor.cpp @@ -25,7 +25,7 @@ #include <QFormLayout> #include <QLineEdit> -ScanEditor::ScanEditor(QWidget* parent, ScanItem* item, InstrumentNotifier* ec) +ScanEditor::ScanEditor(QWidget* parent, ScanItem* item, InstrumentNotifier* ec, bool allow_distr) : QGroupBox("Beam and scan parameters", parent) { ASSERT(item); @@ -45,10 +45,10 @@ ScanEditor::ScanEditor(QWidget* parent, ScanItem* item, InstrumentNotifier* ec) auto* wavelengthEditor = new DistributionEditor("Wavelength", MeanConfig{true}, GUI::ID::Distributions::Symmetric, - this, item->wavelengthItem()); + this, item->wavelengthItem(), allow_distr); vLayout->addWidget(wavelengthEditor); - auto* inclinationEditor = new AlphaScanEditor(this, item->grazingScanItem()); + auto* inclinationEditor = new AlphaScanEditor(this, item->grazingScanItem(), allow_distr); vLayout->addWidget(inclinationEditor); auto* footprintEditor = new FootprintForm(this, item); diff --git a/GUI/View/Instrument/ScanEditor.h b/GUI/View/Instrument/ScanEditor.h index d542a467c0d..faa8ae07e1b 100644 --- a/GUI/View/Instrument/ScanEditor.h +++ b/GUI/View/Instrument/ScanEditor.h @@ -26,7 +26,7 @@ class ScanEditor : public QGroupBox { Q_OBJECT public: - ScanEditor(QWidget* parent, ScanItem* item, InstrumentNotifier* ec); + ScanEditor(QWidget* parent, ScanItem* item, InstrumentNotifier* ec, bool allow_distr = true); signals: void dataChanged(); -- GitLab