diff --git a/GUI/View/Project/SimulationView.cpp b/GUI/View/Project/SimulationView.cpp index 43b47b0a110182c149ccdf529b5ad075694a78f2..28f801905d27ef6a4569bb9c74676b2a0ef96448 100644 --- a/GUI/View/Project/SimulationView.cpp +++ b/GUI/View/Project/SimulationView.cpp @@ -47,8 +47,9 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) layout->addWidget(g1); auto* f1 = new QFormLayout; g1->body()->setLayout(f1); + m_instrumentLabel = new QLabel("Instrument"); m_instrumentCombo = new QComboBox; - f1->addRow("Instrument", m_instrumentCombo); + f1->addRow(m_instrumentLabel, m_instrumentCombo); m_sampleCombo = new QComboBox; f1->addRow("Sample", m_sampleCombo); m_realDataCombo = new QComboBox; @@ -90,7 +91,7 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) m_includeSpecularCheck = new QCheckBox("Also compute specular peak"); l2->addWidget(m_includeSpecularCheck); - // .. Execution settings + //... Execution settings auto* g3 = new StaticGroupBox("Execution settings", this); layout->addWidget(g3); @@ -98,12 +99,12 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) g3->body()->setLayout(l3); // immediately/background? - auto* b_jb = new QButtonGroup; + auto* b_exec = new QButtonGroup; m_runPolicyImmediatelyRadio = new QRadioButton("Run immediately"); - b_jb->addButton(m_runPolicyImmediatelyRadio); + b_exec->addButton(m_runPolicyImmediatelyRadio); l3->addWidget(m_runPolicyImmediatelyRadio ); m_runPolicyBackgroundRadio = new QRadioButton("Run in background"); - b_jb->addButton(m_runPolicyBackgroundRadio); + b_exec->addButton(m_runPolicyBackgroundRadio); l2->addWidget(m_runPolicyBackgroundRadio ); l3->addSpacerItem(new QSpacerItem(10, 10)); @@ -113,52 +114,19 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) m_numberOfThreadsCombo->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); f3->addRow("Number of threads",m_numberOfThreadsCombo); l3->addLayout(f3); + l3->addSpacerItem(new QSpacerItem(10, 10)); + + auto* l_launchers = new QHBoxLayout; + l3->addLayout(l_launchers); + m_simulateButton = new QPushButton("Run simulation"); + l_launchers->addWidget(m_simulateButton); + m_exportToPyScriptButton = new QPushButton("Export to Python Script"); + l_launchers->addWidget(m_exportToPyScriptButton); + l_launchers->addStretch(1); layout->addStretch(1); -/* - // layer material - f2->addWidget(bg_mc); - bg_mc->addButton(m_monteCarloRadio); - auto* bg_milieu = new QButtonGroup; - g2->addWidget(bg_milieu); - bg_milieu->addButton(m_ambientLayerRadio = new QRadioButton); - bg_milieu->addButton(m_averageLayerRadio = new QRadioButton); - m_includeSpecularCheck = new QCheckButton; - g2->addWidget(m_includeSpecularCheck); - auto* g3 = new StaticGroupBox("Execution settings", this); - layout->addWidget(g3); - auto* f3 = new QFormLayout; - g3->setLayout(f3); - auto* bg_exec = new QButtonGroup(this); - bg_exec->addButton(m_runPolicyImmediatelyRadio = new QRadioButton); - bg_exec->addButton(m_runPolicyBackgroundRadio = new QRadioButton); - - m_ambientLayerRadio = m_ui->ambientLayerRadio; - m_analyticalRadio = m_ui->analyticalRadio; - m_averageLayerRadio = m_ui->averageLayerRadio; - m_exportToPyScriptButton = m_ui->exportToPyScriptButton; - m_groupBox = m_ui->groupBox; - m_groupBox_2 = m_ui->groupBox_2; - m_groupBox_3 = m_ui->groupBox_3; - m_includeSpecularCheck = m_ui->includeSpecularCheck; - = m_ui->instrumentCombo; - m_instrumentLabel = m_ui->instrumentLabel; - m_monteCarloRadio = m_ui->monteCarloRadio; - m_numberOfMonteCarloPoints = m_ui->numberOfMonteCarloPoints; - m_numberOfThreadsCombo = m_ui->numberOfThreadsCombo; - m_realDataCombo = m_ui->realDataCombo; - m_runPolicyBackgroundRadio = m_ui->runPolicyBackgroundRadio; - = m_ui->runPolicyImmediatelyRadio; - = m_ui->sampleCombo; - m_simulateButton = m_ui->simulateButton; - - - auto* bg_exec = new QButtonGroup(this); - bg_exec->addButton(m_analyticalRadio); - bg_exec->addButton(m_monteCarloRadio); - - buttonGroup = new QButtonGroup(this); + //... Set data // -- fill combo for "number of threads" const int nthreads = static_cast<int>(std::thread::hardware_concurrency()); @@ -169,6 +137,8 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) updateFunctionalityNarrowing(); + //... Connect + connect(m_instrumentCombo, &QComboBox::currentTextChanged, [this] { updateStateFromUI(); }); connect(m_sampleCombo, &QComboBox::currentTextChanged, [this] { updateStateFromUI(); }); connect(m_realDataCombo, &QComboBox::currentTextChanged, [this] { updateStateFromUI(); }); @@ -176,7 +146,7 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) connect(m_simulateButton, &QPushButton::clicked, this, &SimulationView::simulate); connect(m_exportToPyScriptButton, &QPushButton::clicked, this, &SimulationView::exportPythonScript); - connect(bg_exec, &QButtonGroup::buttonClicked, this, + connect(b_exec, &QButtonGroup::buttonClicked, this, &SimulationView::updateEnabling); connect(m_runPolicyImmediatelyRadio, &QRadioButton::toggled, @@ -196,7 +166,6 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) connect(m_document, &ProjectDocument::modifiedStateChanged, this, &SimulationView::updateFunctionalityNarrowing); -*/ } void SimulationView::showEvent(QShowEvent*) diff --git a/GUI/View/Project/SimulationView.h b/GUI/View/Project/SimulationView.h index 7adaf1de32b7a619cc8489d59464242bb7c99eba..5e2c35f51280698df3f21c4b8faa929d577facdd 100644 --- a/GUI/View/Project/SimulationView.h +++ b/GUI/View/Project/SimulationView.h @@ -85,24 +85,26 @@ private: ProjectDocument* m_document; - QRadioButton* m_ambientLayerRadio; - QRadioButton* m_analyticalRadio; - QRadioButton* m_averageLayerRadio; - QPushButton* m_exportToPyScriptButton; - QGroupBox* m_groupBox; - QGroupBox* m_groupBox_2; - QGroupBox* m_groupBox_3; - QCheckBox* m_includeSpecularCheck; - QComboBox* m_instrumentCombo; QLabel* m_instrumentLabel; + QComboBox* m_instrumentCombo; + QComboBox* m_sampleCombo; + QComboBox* m_realDataCombo; + + QRadioButton* m_analyticalRadio; QRadioButton* m_monteCarloRadio; QSpinBox* m_numberOfMonteCarloPoints; - QComboBox* m_numberOfThreadsCombo; - QComboBox* m_realDataCombo; - QRadioButton* m_runPolicyBackgroundRadio; + + QRadioButton* m_ambientLayerRadio; + QRadioButton* m_averageLayerRadio; + + QCheckBox* m_includeSpecularCheck; + QRadioButton* m_runPolicyImmediatelyRadio; - QComboBox* m_sampleCombo; + QRadioButton* m_runPolicyBackgroundRadio; + QComboBox* m_numberOfThreadsCombo; + QPushButton* m_simulateButton; + QPushButton* m_exportToPyScriptButton; // Convenience method for easier access SimulationOptionsItem* optionsItem() const;