Skip to content
Snippets Groups Projects
Commit 54b9dfa4 authored by Matthias Puchner's avatar Matthias Puchner
Browse files

enhance VectorEditor to work with VectorDescriptor

parent 26f36eb4
No related branches found
No related tags found
1 merge request!624Remove SessionItem from Instrument items
......@@ -23,7 +23,6 @@
VectorEditor::VectorEditor(const QString& title, const QString& tooltip, QWidget* parent)
: QGroupBox(title, parent)
, m_item(nullptr)
{
auto* form = new QFormLayout(this);
......@@ -55,39 +54,38 @@ VectorEditor::VectorEditor(const QString& title, const QString& tooltip, QWidget
void VectorEditor::setItem(VectorItem* item)
{
m_item = item;
setEnabled(m_item);
if (m_item) {
m_xSpinBox->setValue(m_item->x());
m_ySpinBox->setValue(m_item->y());
m_zSpinBox->setValue(m_item->z());
} else {
m_xSpinBox->setValue(0);
m_ySpinBox->setValue(0);
m_zSpinBox->setValue(0);
}
ASSERT(item);
setVector(VectorDescriptor(item, Unit::unitless));
}
void VectorEditor::setVector(const VectorDescriptor& d)
{
m_descriptor = d;
m_xSpinBox->setValue(m_descriptor.x);
m_ySpinBox->setValue(m_descriptor.y);
m_zSpinBox->setValue(m_descriptor.z);
}
void VectorEditor::onXValueChanged(double x)
{
if (m_item) {
m_item->setX(x);
if (x != m_descriptor.x) {
m_descriptor.x.set(x);
emit vectorChanged();
}
}
void VectorEditor::onYValueChanged(double y)
{
if (m_item) {
m_item->setY(y);
if (y != m_descriptor.y) {
m_descriptor.y.set(y);
emit vectorChanged();
}
}
void VectorEditor::onZValueChanged(double z)
{
if (m_item) {
m_item->setZ(z);
if (z != m_descriptor.z) {
m_descriptor.z.set(z);
emit vectorChanged();
}
}
......@@ -15,6 +15,7 @@
#ifndef BORNAGAIN_GUI_VIEW_INSTRUMENT_VECTOREDITOR_H
#define BORNAGAIN_GUI_VIEW_INSTRUMENT_VECTOREDITOR_H
#include "GUI/Model/Types/VectorDescriptor.h"
#include <QGroupBox>
class QDoubleSpinBox;
......@@ -30,6 +31,7 @@ public:
/// \param tooltip the tooltip for the spinboxes with wildcard ("%1") for coordinate
VectorEditor(const QString& title, const QString& tooltip, QWidget* parent = nullptr);
void setItem(VectorItem* item);
void setVector(const VectorDescriptor& d);
signals:
void vectorChanged();
......@@ -43,7 +45,7 @@ private:
QDoubleSpinBox* m_xSpinBox;
QDoubleSpinBox* m_ySpinBox;
QDoubleSpinBox* m_zSpinBox;
VectorItem* m_item;
VectorDescriptor m_descriptor;
};
#endif // BORNAGAIN_GUI_VIEW_INSTRUMENT_VECTOREDITOR_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment