diff --git a/GUI/View/Device/DetectorForm.cpp b/GUI/View/Device/DetectorForm.cpp
deleted file mode 100644
index 39f9804628f8be4836b463c5339b1310bd58a554..0000000000000000000000000000000000000000
--- a/GUI/View/Device/DetectorForm.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      GUI/View/Device/DetectorForm.cpp
-//! @brief     Implements class DetectorForm
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2018
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#include "GUI/View/Device/DetectorForm.h"
-#include "GUI/Model/Detector/DetectorItem.h"
-#include "GUI/Support/Style/GroupBoxCollapser.h"
-#include "GUI/View/Device/DetectorAlignmentForm.h"
-#include "GUI/View/Device/ResolutionForm.h"
-#include "GUI/View/Numeric/DoubleSpinBox.h"
-#include "GUI/View/Numeric/SafeSpinBox.h"
-#include <QFormLayout>
-
-DetectorForm::DetectorForm(QWidget* parent, DetectorItem* detectorItem)
-    : QWidget(parent)
-{
-    ASSERT(detectorItem);
-
-    auto* grid = new QGridLayout(this);
-    grid->setColumnStretch(0, 1);
-    grid->setColumnStretch(1, 1);
-    grid->setColumnStretch(2, 1);
-
-    // -- x-axis controls
-    auto* xAxisGroupBox = new QGroupBox("X axis", this);
-    auto* xAxisFormLayout = new QFormLayout(xAxisGroupBox);
-
-    auto* xAxisNbinsSpinBox = new SafeSpinBox;
-    xAxisNbinsSpinBox->setRange(1, 65536);
-    xAxisNbinsSpinBox->setValue(detectorItem->xSize());
-    xAxisFormLayout->addRow("# bins:", xAxisNbinsSpinBox);
-
-    auto* widthSpinBox = new DoubleSpinBox(detectorItem->width());
-    xAxisFormLayout->addRow("Width [mm]:", widthSpinBox);
-
-    connect(xAxisNbinsSpinBox, qOverload<int>(&QSpinBox::valueChanged),
-            [this, detectorItem](int newValue) {
-                detectorItem->setXSize(newValue);
-                emit dataChanged();
-            });
-
-    connect(widthSpinBox, qOverload<double>(&DoubleSpinBox::baseValueChanged),
-            [this, detectorItem](double newValue) {
-                detectorItem->setWidth(newValue);
-                emit dataChanged();
-            });
-    grid->addWidget(xAxisGroupBox, 1, 0);
-    auto* collapserX = GroupBoxCollapser::installIntoGroupBox(xAxisGroupBox);
-    collapserX->setExpanded(detectorItem->isExpandXaxis());
-    connect(collapserX, &GroupBoxCollapser::toggled, this,
-            [detectorItem](bool b) { detectorItem->setExpandXaxis(b); });
-
-
-    // -- y-axis controls
-    auto* yAxisGroupBox = new QGroupBox("Y axis", this);
-    auto* yAxisFormLayout = new QFormLayout(yAxisGroupBox);
-
-    auto* yAxisNbinsSpinBox = new SafeSpinBox;
-    yAxisNbinsSpinBox->setRange(1, 65536);
-    yAxisNbinsSpinBox->setValue(detectorItem->ySize());
-    yAxisFormLayout->addRow("# bins:", yAxisNbinsSpinBox);
-
-    auto* heightSpinBox = new DoubleSpinBox(detectorItem->height());
-    yAxisFormLayout->addRow("Height [mm]:", heightSpinBox);
-
-    connect(yAxisNbinsSpinBox, qOverload<int>(&QSpinBox::valueChanged),
-            [this, detectorItem](int newValue) {
-                detectorItem->setYSize(newValue);
-                emit dataChanged();
-            });
-
-    connect(heightSpinBox, qOverload<double>(&DoubleSpinBox::baseValueChanged),
-            [this, detectorItem](double newValue) {
-                detectorItem->setHeight(newValue);
-                emit dataChanged();
-            });
-    grid->addWidget(yAxisGroupBox, 1, 1);
-
-    auto* collapserY = GroupBoxCollapser::installIntoGroupBox(yAxisGroupBox);
-    collapserY->setExpanded(detectorItem->isExpandYaxis());
-    connect(collapserY, &GroupBoxCollapser::toggled, this,
-            [detectorItem](bool b) { detectorItem->setExpandYaxis(b); });
-
-    // -- resolution function
-    auto* resolutionForm = new ResolutionForm(ResolutionForm::Millimeter, this, detectorItem);
-    grid->addWidget(resolutionForm, 1, 2);
-
-    connect(resolutionForm, &ResolutionForm::dataChanged, this, &DetectorForm::dataChanged);
-
-    // alignment selector editors
-    auto* alignmentForm = new DetectorAlignmentForm(this, detectorItem);
-    grid->addWidget(alignmentForm, 2, 0, 1, 3);
-
-    connect(alignmentForm, &DetectorAlignmentForm::dataChanged, this, &DetectorForm::dataChanged);
-}
diff --git a/GUI/View/Device/DetectorForm.h b/GUI/View/Device/DetectorForm.h
deleted file mode 100644
index a27be0b433148a2e4bb322ad74e4fcc6c310b087..0000000000000000000000000000000000000000
--- a/GUI/View/Device/DetectorForm.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      GUI/View/Device/DetectorForm.h
-//! @brief     Defines class DetectorForm
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2018
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#ifndef BORNAGAIN_GUI_VIEW_DEVICE_DETECTORFORM_H
-#define BORNAGAIN_GUI_VIEW_DEVICE_DETECTORFORM_H
-
-#include <QWidget>
-
-class DetectorItem;
-
-class DetectorForm : public QWidget {
-    Q_OBJECT
-public:
-    DetectorForm(QWidget* parent, DetectorItem* item);
-
-signals:
-    void dataChanged();
-};
-
-#endif // BORNAGAIN_GUI_VIEW_DEVICE_DETECTORFORM_H
diff --git a/GUI/View/Instrument/DetectorEditor.cpp b/GUI/View/Instrument/DetectorEditor.cpp
index 04efb853fa3c585509ead18793215f54e36a2dc4..14ae7f4c2bca49126718dc9a5ca1db69ebdc9c31 100644
--- a/GUI/View/Instrument/DetectorEditor.cpp
+++ b/GUI/View/Instrument/DetectorEditor.cpp
@@ -16,9 +16,12 @@
 #include "GUI/Model/Detector/DetectorItem.h"
 #include "GUI/Model/Device/InstrumentItems.h"
 #include "GUI/Support/Style/GroupBoxCollapser.h"
-#include "GUI/View/Device/DetectorForm.h"
+#include "GUI/View/Device/DetectorAlignmentForm.h"
+#include "GUI/View/Device/ResolutionForm.h"
+#include "GUI/View/Numeric/DoubleSpinBox.h"
 #include "GUI/View/Numeric/NumWidgetUtil.h"
-
+#include "GUI/View/Numeric/SafeSpinBox.h"
+#include <QFormLayout>
 
 DetectorEditor::DetectorEditor(QWidget* parent, GISASInstrumentItem* instrument)
     : QGroupBox("Detector parameters", parent)
@@ -36,7 +39,84 @@ DetectorEditor::DetectorEditor(QWidget* parent, GISASInstrumentItem* instrument)
         m_formLayout->removeRow(1);
 
     DetectorItem* detectorItem = m_instrument->detectorItem();
-    auto* editor = new DetectorForm(this, detectorItem);
-    m_formLayout->addRow(editor);
-    connect(editor, &DetectorForm::dataChanged, this, &DetectorEditor::dataChanged);
+    ASSERT(detectorItem);
+
+    auto* grid = new QGridLayout(this);
+    grid->setColumnStretch(0, 1);
+    grid->setColumnStretch(1, 1);
+    grid->setColumnStretch(2, 1);
+
+    // -- x-axis controls
+    auto* xAxisGroupBox = new QGroupBox("X axis", this);
+    auto* xAxisFormLayout = new QFormLayout(xAxisGroupBox);
+
+    auto* xAxisNbinsSpinBox = new SafeSpinBox;
+    xAxisNbinsSpinBox->setRange(1, 65536);
+    xAxisNbinsSpinBox->setValue(detectorItem->xSize());
+    xAxisFormLayout->addRow("# bins:", xAxisNbinsSpinBox);
+
+    auto* widthSpinBox = new DoubleSpinBox(detectorItem->width());
+    xAxisFormLayout->addRow("Width [mm]:", widthSpinBox);
+
+    connect(xAxisNbinsSpinBox, qOverload<int>(&QSpinBox::valueChanged),
+            [this, detectorItem](int newValue) {
+                detectorItem->setXSize(newValue);
+                emit dataChanged();
+            });
+
+    connect(widthSpinBox, qOverload<double>(&DoubleSpinBox::baseValueChanged),
+            [this, detectorItem](double newValue) {
+                detectorItem->setWidth(newValue);
+                emit dataChanged();
+            });
+    grid->addWidget(xAxisGroupBox, 1, 0);
+    auto* collapserX = GroupBoxCollapser::installIntoGroupBox(xAxisGroupBox);
+    collapserX->setExpanded(detectorItem->isExpandXaxis());
+    connect(collapserX, &GroupBoxCollapser::toggled, this,
+            [detectorItem](bool b) { detectorItem->setExpandXaxis(b); });
+
+
+    // -- y-axis controls
+    auto* yAxisGroupBox = new QGroupBox("Y axis", this);
+    auto* yAxisFormLayout = new QFormLayout(yAxisGroupBox);
+
+    auto* yAxisNbinsSpinBox = new SafeSpinBox;
+    yAxisNbinsSpinBox->setRange(1, 65536);
+    yAxisNbinsSpinBox->setValue(detectorItem->ySize());
+    yAxisFormLayout->addRow("# bins:", yAxisNbinsSpinBox);
+
+    auto* heightSpinBox = new DoubleSpinBox(detectorItem->height());
+    yAxisFormLayout->addRow("Height [mm]:", heightSpinBox);
+
+    connect(yAxisNbinsSpinBox, qOverload<int>(&QSpinBox::valueChanged),
+            [this, detectorItem](int newValue) {
+                detectorItem->setYSize(newValue);
+                emit dataChanged();
+            });
+
+    connect(heightSpinBox, qOverload<double>(&DoubleSpinBox::baseValueChanged),
+            [this, detectorItem](double newValue) {
+                detectorItem->setHeight(newValue);
+                emit dataChanged();
+            });
+    grid->addWidget(yAxisGroupBox, 1, 1);
+
+    auto* collapserY = GroupBoxCollapser::installIntoGroupBox(yAxisGroupBox);
+    collapserY->setExpanded(detectorItem->isExpandYaxis());
+    connect(collapserY, &GroupBoxCollapser::toggled, this,
+            [detectorItem](bool b) { detectorItem->setExpandYaxis(b); });
+
+    // -- resolution function
+    auto* resolutionForm = new ResolutionForm(ResolutionForm::Millimeter, this, detectorItem);
+    grid->addWidget(resolutionForm, 1, 2);
+
+    connect(resolutionForm, &ResolutionForm::dataChanged, this, &DetectorEditor::dataChanged);
+
+    // alignment selector editors
+    auto* alignmentForm = new DetectorAlignmentForm(this, detectorItem);
+    grid->addWidget(alignmentForm, 2, 0, 1, 3);
+
+    connect(alignmentForm, &DetectorAlignmentForm::dataChanged, this, &DetectorEditor::dataChanged);
+
+    m_formLayout->addRow(grid);
 }
diff --git a/GUI/View/Instrument/DetectorEditor.h b/GUI/View/Instrument/DetectorEditor.h
index 241592d1ac1700182dfdf5aaa8263592279b6965..1a33e529b9b745c6ba4d634eeee4e710644cff3b 100644
--- a/GUI/View/Instrument/DetectorEditor.h
+++ b/GUI/View/Instrument/DetectorEditor.h
@@ -20,7 +20,7 @@
 class GISASInstrumentItem;
 class QFormLayout;
 
-//! Wraps DetectorForm.
+//! Detector section in GISAS instrument form.
 
 class DetectorEditor : public QGroupBox {
     Q_OBJECT