BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SampleValidator.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/SampleValidator.h
6 //! @brief Defines class SampleValidator
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_SAMPLEVALIDATOR_H
16 #define BORNAGAIN_GUI_COREGUI_MODELS_SAMPLEVALIDATOR_H
17 
18 #include <QModelIndex>
19 
20 class SessionItem;
21 class MultiLayerItem;
22 
23 //! Validates SampleModel for MultiLayerItem suitable for simulation
25 public:
27 
28  bool isValidMultiLayer(const MultiLayerItem* multilayer);
29 
30  QString getValidationMessage() const { return m_validation_message; }
31 
32 private:
33  void initValidator();
34 
35  void iterateItems(const SessionItem* parentItem);
36  void validateItem(const SessionItem* item);
37 
38  QString validateMultiLayerItem(const SessionItem* item);
39  QString validateParticleLayoutItem(const SessionItem* item);
40  QString validateParticleCoreShellItem(const SessionItem* item);
41  QString validateParticleCompositionItem(const SessionItem* item);
42  QString validateParticleDistributionItem(const SessionItem* item);
43 
46 };
47 
48 #endif // BORNAGAIN_GUI_COREGUI_MODELS_SAMPLEVALIDATOR_H
Validates SampleModel for MultiLayerItem suitable for simulation.
void validateItem(const SessionItem *item)
QString validateMultiLayerItem(const SessionItem *item)
QString m_validation_message
QString validateParticleCoreShellItem(const SessionItem *item)
QString getValidationMessage() const
QString validateParticleDistributionItem(const SessionItem *item)
QString validateParticleLayoutItem(const SessionItem *item)
void iterateItems(const SessionItem *parentItem)
bool isValidMultiLayer(const MultiLayerItem *multilayer)
QString validateParticleCompositionItem(const SessionItem *item)