Newer
Older
// ************************************************************************************************
//
// BornAgain: simulate and fit reflection and scattering
//
//! @file GUI/View/Sample/LayerStackForm.cpp
//! @brief Implements class LayerStackForm.
//!
//! @homepage http://www.bornagainproject.org
//! @license GNU General Public License v3 or higher (see COPYING)
//! @copyright Forschungszentrum Jülich GmbH 2024
//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
//
// ************************************************************************************************
#include "GUI/View/Sample/LayerStackForm.h"
#include "GUI/Model/Sample/LayerStackItem.h"
#include "GUI/View/Sample/SampleEditorController.h"
#include <QPushButton>
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
namespace {
//! Widget with a button to add a layer or stack (the "Add layer/add stack" buttons shown between
//! items)
class AddLayerContainerWidget : public QWidget {
public:
AddLayerContainerWidget(QWidget* parent, LayerStackItem& parentStackItem,
ItemWithLayers* itemBefore, SampleEditorController* ec)
: QWidget(parent)
, m_item(itemBefore)
{
auto* l = new QHBoxLayout(this);
l->setContentsMargins(0, 0, 0, 0);
l->addStretch();
auto* layer_btn = new QPushButton("Add layer", this);
l->addWidget(layer_btn);
connect(layer_btn, &QPushButton::clicked,
[&] { ec->addLayerItem(parentStackItem, itemBefore); });
auto* stack_btn = new QPushButton("Add stack", this);
l->addWidget(stack_btn);
connect(stack_btn, &QPushButton::clicked,
[&] { ec->addLayerItem(parentStackItem, itemBefore); });
l->addStretch();
}
ItemWithLayers* m_item;
};
} // namespace
LayerStackForm::LayerStackForm(QWidget* parent, LayerStackItem* stack, SampleEditorController* ec)
: LayerContainerForm(parent, stack, ec, "stack")
, m_layout(new QVBoxLayout(this))
{
}
LayerStackItem* LayerStackForm::stackItem() const
{
return dynamic_cast<LayerStackItem*>(m_item);
}