Skip to content
Snippets Groups Projects
Commit b5de362c authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

add m_use_dataset

parent 6d823577
Branches
Tags
1 merge request!2793Make dataset optional in simulation (#1052)
......@@ -73,7 +73,7 @@ JobItem::JobItem()
}
JobItem::JobItem(const SampleItem* sampleItem, const InstrumentItem* instrumentItem,
const DatafileItem* dfile_item, const SimulationOptionsItem* optionItem, int)
const DatafileItem* dfile_item, const SimulationOptionsItem* optionItem)
: m_simulation_options_item(std::make_unique<SimulationOptionsItem>(*optionItem))
, m_parameter_container(std::make_unique<ParameterContainerItem>())
, m_sample_item(sampleItem->clone())
......
......@@ -39,7 +39,7 @@ class JobItem : public QObject {
public:
JobItem();
JobItem(const SampleItem* sampleItem, const InstrumentItem* instrumentItem,
const DatafileItem* dfile_item, const SimulationOptionsItem* optionItem, int);
const DatafileItem* dfile_item, const SimulationOptionsItem* optionItem);
~JobItem();
//... job properties
......
......@@ -27,6 +27,7 @@ const QString UseAverageMaterials("UseAverageMaterials");
const QString IncludeSpecularPeak("IncludeSpecularPeak");
const QString UseFastMesoAlgorithm("UseFastMesoAlgorithm");
const QString MesoCutoffRadius("MesoCutoffRadius");
const QString UseDataset("UseDataset");
const QString ExpandOptionsGroupbox("ExpandOptionsGroupbox");
const QString ExpandAdvancedOptionsGroupbox("ExpandAdvancedOptionsGroupbox");
......@@ -60,6 +61,7 @@ void SimulationOptionsItem::writeTo(QXmlStreamWriter* w) const
XML::writeTaggedValue(w, Tag::IncludeSpecularPeak, m_include_specular_peak);
XML::writeTaggedValue(w, Tag::UseFastMesoAlgorithm, m_use_meso_reciprocal_sum);
XML::writeTaggedValue(w, Tag::MesoCutoffRadius, m_meso_radius_factor);
XML::writeTaggedValue(w, Tag::UseDataset, m_use_dataset);
XML::writeTaggedValue(w, Tag::ExpandAdvancedOptionsGroupbox, expandAdvancedOptions);
XML::writeTaggedValue(w, Tag::ExpandOptionsGroupbox, expandOptions);
}
......@@ -84,6 +86,8 @@ void SimulationOptionsItem::readFrom(QXmlStreamReader* r)
m_use_meso_reciprocal_sum = XML::readTaggedBool(r, tag);
else if (tag == Tag::MesoCutoffRadius)
m_meso_radius_factor = XML::readTaggedDouble(r, tag);
else if (tag == Tag::UseDataset)
m_use_dataset = XML::readTaggedBool(r, tag);
else if (tag == Tag::ExpandOptionsGroupbox)
expandOptions = XML::readTaggedBool(r, tag);
else if (tag == Tag::ExpandAdvancedOptionsGroupbox)
......
......@@ -51,6 +51,9 @@ public:
void setIncludeSpecularPeak(bool b) { m_include_specular_peak = b; }
bool includeSpecularPeak() const { return m_include_specular_peak; }
void setUseDataset(bool b) { m_use_dataset = b; }
bool useDataset() const { return m_use_dataset; }
void writeTo(QXmlStreamWriter* w) const;
void readFrom(QXmlStreamReader* r);
......@@ -66,6 +69,7 @@ private:
bool m_include_specular_peak = false;
bool m_use_meso_reciprocal_sum = false;
double m_meso_radius_factor = 2.1;
bool m_use_dataset = true;
};
#endif // BORNAGAIN_GUI_MODEL_SIM_SIMULATIONOPTIONSITEM_H
......@@ -153,7 +153,9 @@ SimulationView::SimulationView()
l_setup->addWidget(new QLabel("Simulation setup:"), 1, 0, 1, 1, Qt::AlignCenter);
l_setup->addWidget(new QLabel("Instrument:"), 0, 1, 1, 1, Qt::AlignCenter);
l_setup->addWidget(new QLabel("Sample:"), 0, 3, 1, 1, Qt::AlignCenter);
l_setup->addWidget(new QLabel("Data:"), 0, 5, 1, 1, Qt::AlignCenter);
m_use_dataset = new QCheckBox("Data:");
l_setup->addWidget(m_use_dataset, 0, 5, 1, 1, Qt::AlignCenter);
QFont names_font;
names_font.setBold(true);
......@@ -234,6 +236,11 @@ SimulationView::SimulationView()
connect(m_meso_radius_factor, &QDoubleSpinBox::valueChanged, [this] { updateStateFromUI(); });
connect(m_include_specular_check, &QCheckBox::toggled, [this] { updateStateFromUI(); });
connect(m_use_dataset, &QCheckBox::toggled, [this] {
updateStateFromUI();
updateEnabling();
});
}
void SimulationView::showEvent(QShowEvent*)
......@@ -296,6 +303,8 @@ void SimulationView::writeOptionsToUI()
? gDoc->datafiles()->currentItem()->name()
: "--------------------");
m_use_dataset->setChecked(optionsItem()->useDataset());
updateEnabling();
}
......@@ -324,7 +333,7 @@ void SimulationView::simulate()
return;
}
auto* job_item = new JobItem(gDoc->samples()->currentItem(), gDoc->instruments()->currentItem(),
nullptr /*gDoc->datafiles()->currentItem()*/, optionsItem(), 137);
gDoc->datafiles()->currentItem(), optionsItem());
gDoc->jobsRW()->addJobItem(job_item);
GUI::Sim::simulate(job_item, gDoc->jobsRW());
gDoc->setModified();
......@@ -364,12 +373,15 @@ void SimulationView::readOptionsFromUI()
optionsItem()->setFastMesocrystalCalc(true);
optionsItem()->setMesocrystalCutoff(m_meso_radius_factor->value());
}
optionsItem()->setUseDataset(m_use_dataset->isChecked());
}
void SimulationView::updateEnabling()
{
m_number_of_monte_carlo_points->setEnabled(m_monte_carlo_radio->isChecked());
m_meso_radius_factor->setEnabled(m_fourier_sum->isChecked());
m_current_data_name->setEnabled(m_use_dataset->isChecked());
}
void SimulationView::updateSelection(QComboBox* comboBox, QStringList itemList, int currentIndex,
......
......@@ -93,6 +93,7 @@ private:
QLabel* m_current_instrument_name;
QLabel* m_current_sample_name;
QLabel* m_current_data_name;
QCheckBox* m_use_dataset;
QPushButton* m_simulate_button;
QPushButton* m_export_to_py_script_button;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment