diff --git a/GUI/View/SampleDesigner/SampleEditor.cpp b/GUI/View/SampleDesigner/SampleEditor.cpp index 2b1a323f2afb08d1a3fc7943b402535dc90de950..71c0593546569540e235ee4b41eb6056b7474555 100644 --- a/GUI/View/SampleDesigner/SampleEditor.cpp +++ b/GUI/View/SampleDesigner/SampleEditor.cpp @@ -65,7 +65,7 @@ void SampleEditor::setCurrentSample(SampleItem* sampleItem) createLayerColors(); - m_currentSampleWidget = new SampleForm(this, m_currentSample, ec); + m_currentSampleWidget = new SampleForm(m_currentSample, ec); ec->setSampleForm(m_currentSampleWidget); m_currentSampleWidget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); QScrollArea::setWidget(m_currentSampleWidget); diff --git a/GUI/View/SampleDesigner/SampleEditor.h b/GUI/View/SampleDesigner/SampleEditor.h index afc9dab54a4d1ab38342dad8b464fb59fe6c80a0..f4b4e80eed82279e5d12d1e3426d1dd56e79f1c4 100644 --- a/GUI/View/SampleDesigner/SampleEditor.h +++ b/GUI/View/SampleDesigner/SampleEditor.h @@ -20,7 +20,6 @@ class Item3D; class ProjectDocument; -class QScrollArea; class SampleEditorController; class SampleForm; class SampleItem; diff --git a/GUI/View/SampleDesigner/SampleForm.cpp b/GUI/View/SampleDesigner/SampleForm.cpp index 84ac95374796b7d5f7a4e61b726b4eb0b311570c..a0f4758853ee297fdf508102b76191ceffee11bf 100644 --- a/GUI/View/SampleDesigner/SampleForm.cpp +++ b/GUI/View/SampleDesigner/SampleForm.cpp @@ -56,26 +56,29 @@ public: } // namespace -SampleForm::SampleForm(QWidget* parent, SampleItem* sampleItem, SampleEditorController* ec) - : CollapsibleGroupBox("Summary and layer-independent parameters", parent, - sampleItem->expandInfo) - , m_sampleItem(sampleItem) +SampleForm::SampleForm(SampleItem* sampleItem, SampleEditorController* ec) + : m_sampleItem(sampleItem) , m_ec(ec) { - setObjectName("MultiLayerForm"); // important for style sheet addressing setAttribute(Qt::WA_StyledBackground, true); - m_layout = new HeinzFormLayout(ec); - body()->setLayout(m_layout); + m_layout = new QVBoxLayout(this); + + auto* summary = new CollapsibleGroupBox("Summary and layer-independent parameters", this, + sampleItem->expandInfo); + m_layout->addWidget(summary); + + auto* gLayout = new HeinzFormLayout(ec); + summary->body()->setLayout(gLayout); auto* nameEdit = new QLineEdit; - m_layout->addRow("Name:", nameEdit); + gLayout->addRow("Name:", nameEdit); nameEdit->setText(sampleItem->sampleName()); nameEdit->setFixedWidth(585); connect(nameEdit, &QLineEdit::textEdited, ec, &SampleEditorController::setSampleName); auto* descriptionEdit = new QTextEdit; - m_layout->addRow("Description:", descriptionEdit); + gLayout->addRow("Description:", descriptionEdit); descriptionEdit->setFixedWidth(585); descriptionEdit->setFixedHeight(60); descriptionEdit->setAcceptRichText(false); @@ -85,7 +88,7 @@ SampleForm::SampleForm(QWidget* parent, SampleItem* sampleItem, SampleEditorCont m_ec->setSampleDescription(descriptionEdit->toPlainText()); }); - m_layout->addValue(sampleItem->crossCorrLength()); + gLayout->addValue(sampleItem->crossCorrLength()); // Processing external field is not implemented yet, so temporary disable it (see issue #654) // m_layout->addVector(sampleItem->externalField(), false); @@ -93,7 +96,7 @@ SampleForm::SampleForm(QWidget* parent, SampleItem* sampleItem, SampleEditorCont auto* showInRealspaceAction = ActionFactory::createShowInRealspaceAction( this, "sample", [this] { m_ec->requestViewInRealspace(m_sampleItem); }); - addTitleAction(showInRealspaceAction); + summary->addTitleAction(showInRealspaceAction); for (auto* layer : sampleItem->layerItems()) { m_layout->addWidget(new AddLayerWidget(this, layer, m_ec)); @@ -109,10 +112,10 @@ void SampleForm::onLayerAdded(LayerItem* layerItem) const int rowInLayout = rowInMultiLayer * 2 + 1; - m_layout->insertRow(rowInLayout, new LayerForm(this, layerItem, m_ec)); + m_layout->insertWidget(rowInLayout, new LayerForm(this, layerItem, m_ec)); // same row => button is above! - m_layout->insertRow(rowInLayout, new AddLayerWidget(this, layerItem, m_ec)); + m_layout->insertWidget(rowInLayout, new AddLayerWidget(this, layerItem, m_ec)); } void SampleForm::onLayerMoved(LayerItem* layerItem) @@ -140,10 +143,10 @@ void SampleForm::onLayerMoved(LayerItem* layerItem) const int rowInMultiLayer = m_sampleItem->layerItems().indexOf(layerItem); const int rowInLayout = rowInMultiLayer * 2 + 1; - m_layout->insertRow(rowInLayout, wl); + m_layout->insertWidget(rowInLayout, wl); // same row => button is above! - m_layout->insertRow(rowInLayout, al); + m_layout->insertWidget(rowInLayout, al); } void SampleForm::onAboutToRemoveLayer(LayerItem* layerItem) diff --git a/GUI/View/SampleDesigner/SampleForm.h b/GUI/View/SampleDesigner/SampleForm.h index bcacb3de8d6253535337fb7404f0c6442e3e49d1..b9754c559e0331260d63e3c03f0e4d842d247717 100644 --- a/GUI/View/SampleDesigner/SampleForm.h +++ b/GUI/View/SampleDesigner/SampleForm.h @@ -15,20 +15,21 @@ #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEFORM_H #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEFORM_H -#include "GUI/View/Widget/GroupBoxes.h" -#include <QPushButton> +#include <QWidget> class HeinzFormLayout; class LayerForm; class LayerItem; +class QPushButton; +class QVBoxLayout; class SampleEditorController; class SampleItem; //! Form to present/edit a sample -class SampleForm : public CollapsibleGroupBox { +class SampleForm : public QWidget { Q_OBJECT public: - SampleForm(QWidget* parent, SampleItem* sampleItem, SampleEditorController* ec); + SampleForm(SampleItem* sampleItem, SampleEditorController* ec); //! Create widgets for the new layer. void onLayerAdded(LayerItem* layerItem); @@ -50,7 +51,7 @@ public: LayerForm* findNextLayerForm(QWidget* w); private: - HeinzFormLayout* m_layout; + QVBoxLayout* m_layout; SampleItem* m_sampleItem; //!< Ptr is borrowed, don't delete SampleEditorController* m_ec; //!< Ptr is borrowed, don't delete QList<QPushButton*> m_addLayerButtons; diff --git a/GUI/View/SampleDesigner/SampleView.cpp b/GUI/View/SampleDesigner/SampleView.cpp index f265cebb84bb052306bf91cce4ac9509d3a1585d..c42e0c10ba4c6a730b11139cd45e6440393964d5 100644 --- a/GUI/View/SampleDesigner/SampleView.cpp +++ b/GUI/View/SampleDesigner/SampleView.cpp @@ -31,7 +31,6 @@ #include <QDockWidget> #include <QMenu> #include <QMessageBox> -#include <QTabWidget> #include <QToolButton> #include <QWidgetAction> @@ -66,14 +65,14 @@ SampleView::SampleView(QWidget* parent, ProjectDocument* document) //... Below central widget: realspace and script panels - auto* tabs = new QTabWidget; - vLayout->addWidget(tabs); + auto* hLayout2 = new QHBoxLayout; + vLayout->addLayout(hLayout2); m_realspacePanel = new RealspacePanel(this); - tabs->addTab(m_realspacePanel, "3D view"); + hLayout2->addWidget(m_realspacePanel); auto* scriptPanel = new ScriptPanel(this); - tabs->addTab(scriptPanel, "Python"); + hLayout2->addWidget(scriptPanel); //... Finish