35 #include <QItemSelectionModel>
36 #include <QPushButton>
42 : m_mainWindow(mainWindow)
45 , m_sourceTree(new QTreeView)
48 , m_updateButton(new QPushButton(
"Update models"))
49 , m_addItemButton(new QPushButton(
"Add item"))
50 , m_expandButton(new QPushButton(
"Expand tree"))
51 , m_splitter(new QSplitter)
55 auto buttonLayout =
new QHBoxLayout;
60 m_sourceTree->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
61 m_sourceTree->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
67 auto layout =
new QVBoxLayout();
69 layout->setSpacing(0);
70 layout->addLayout(buttonLayout);
84 connect(
m_sourceTree->selectionModel(), &QItemSelectionModel::selectionChanged,
this,
114 QList<int> sizes = {imax, imax, imax};
125 const std::unique_ptr<MultiLayer> sample(
135 QModelIndexList indices = selected.indexes();
137 if (!indices.empty()) {
150 auto* result =
new QSplitter(Qt::Vertical);
153 m_componentTree->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
159 auto* result =
new QSplitter(Qt::Vertical);
162 m_componentFlat->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
Defines BeamItem hierarchy.
Defines ComponentEditor class.
Defines class ComponentFlatView.
Defines class ComponentTreeView.
Defines GUIObjectBuilder namespace.
Defines class MainWindow.
Defines class IntensityDataItem.
Defines MaterialDataItems classes.
Defines class MaterialItemUtils.
Defines class MaterialModel.
Defines class MultiLayer.
Defines class ParticleItem.
Defines class SampleBuilderFactory.
Defines class SampleModel.
Defines class SessionModelDelegate.
DefinesStyleUtils namespace.
Defines class TestComponentView.
Defines class VectorItem.
Component editor for SessionItem.
void setItem(SessionItem *item)
Factory to create standard pre-defined samples.
MultiLayer * createSampleByName(const std::string &name)
Retrieves a SampleBuilder from the registry, does the build, and returns the result.
Main model to hold sample items.
The SessionModelDelegate class presents the content of SessionModel items in standard QTreeView.
SessionItem * itemForIndex(const QModelIndex &index) const
T * insertItem(SessionItem *parent=nullptr, int row=-1, QString tag="")
void init_source()
Inserts test items into source model.
ComponentEditor * m_componentTree
QWidget * componentBoxPanel()
QPushButton * m_updateButton
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &)
QWidget * componentTreePanel()
SessionModelDelegate * m_delegate
TestComponentView(MainWindow *mainWindow=nullptr)
QPushButton * m_expandButton
MaterialModel * m_materialModel
ComponentEditor * m_componentFlat
SampleModel * m_sampleModel
QPushButton * m_addItemButton
SessionItem * populateSampleModel(SampleModel *sampleModel, MaterialModel *materialModel, const MultiLayer &sample, const QString &sample_name="")
void setPropertyStyle(QTreeView *tree)
Sets style for the tree to use in property editors.