From 0dd8beba6f0057d066e97687b041b03adf8644ad Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Tue, 31 Oct 2023 14:12:06 +0100 Subject: [PATCH] repair sample layer view --- GUI/View/SampleDesigner/SampleEditor.cpp | 2 +- GUI/View/SampleDesigner/SampleEditor.h | 1 - GUI/View/SampleDesigner/SampleForm.cpp | 33 +++++++++++++----------- GUI/View/SampleDesigner/SampleForm.h | 11 ++++---- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/GUI/View/SampleDesigner/SampleEditor.cpp b/GUI/View/SampleDesigner/SampleEditor.cpp index 2b1a323f2af..71c05935465 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 afc9dab54a4..f4b4e80eed8 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 84ac9537479..a0f4758853e 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 bcacb3de8d6..b9754c559e0 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; -- GitLab