diff --git a/GUI/View/Common/SafeSpinBox.cpp b/GUI/View/Common/SafeSpinBox.cpp index 5693329d4e9728b2573a1a0cd8b6d6dbf2e9327d..44f74de457dd8d4747ac27b3ccd595ec3dcdda64 100644 --- a/GUI/View/Common/SafeSpinBox.cpp +++ b/GUI/View/Common/SafeSpinBox.cpp @@ -19,7 +19,7 @@ SafeSpinBox::SafeSpinBox(bool easyScrollable, QWidget* parent) : QSpinBox{parent} , easyScrollable(easyScrollable) { - + setFocusPolicy(Qt::StrongFocus); } void SafeSpinBox::wheelEvent(QWheelEvent *event) diff --git a/GUI/View/Instrument/AxisPropertyEditor.cpp b/GUI/View/Instrument/AxisPropertyEditor.cpp index b4019169c1bad4b9da71641812966414097aaed6..b40525db88c7d4200be6ba7f49a1c1a7519c20e8 100644 --- a/GUI/View/Instrument/AxisPropertyEditor.cpp +++ b/GUI/View/Instrument/AxisPropertyEditor.cpp @@ -31,7 +31,7 @@ AxisPropertyEditor::AxisPropertyEditor(QWidget* parent, const QString& groupTitl auto* formLayout = new QFormLayout(this); formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); - m_nbinsSpinBox = GUI::Util::createSpinBox(axisProperty->nbins()); + m_nbinsSpinBox = GUI::Util::createSpinBoxRow(formLayout, axisProperty->nbins()); m_minSpinBox = GUI::Util::createDoubleSpinBoxRow(formLayout, axisProperty->min()); m_maxSpinBox = GUI::Util::createDoubleSpinBoxRow(formLayout, axisProperty->max()); diff --git a/GUI/View/Instrument/RectangularDetectorEditor.cpp b/GUI/View/Instrument/RectangularDetectorEditor.cpp index 6475aba98bdb9c4b370648ad22b1e905525ded81..3aa2953dc912db36e4ee5ca769316779061a050e 100644 --- a/GUI/View/Instrument/RectangularDetectorEditor.cpp +++ b/GUI/View/Instrument/RectangularDetectorEditor.cpp @@ -16,6 +16,7 @@ #include "GUI/Model/Device/AxesItems.h" #include "GUI/Model/Device/RectangularDetectorItem.h" #include "GUI/View/Common/DoubleSpinBox.h" +#include "GUI/View/Common/SafeSpinBox.h" #include "GUI/View/Instrument/DetectorAlignmentEditor.h" #include "GUI/View/Instrument/ResolutionFunctionEditor.h" #include "GUI/View/Tool/GroupBoxCollapser.h" @@ -41,7 +42,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent, xAxisGroupBox->setProperty("subgroup", true); // for stylesheet addressing auto* xAxisFormLayout = new QFormLayout(xAxisGroupBox); - auto* xAxisNbinsSpinBox = new QSpinBox(xAxisGroupBox); + auto* xAxisNbinsSpinBox = new SafeSpinBox; xAxisNbinsSpinBox->setRange(1, 65536); xAxisNbinsSpinBox->setValue(detector->xSize()); xAxisFormLayout->addRow("Nbins:", xAxisNbinsSpinBox); @@ -68,7 +69,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent, yAxisGroupBox->setProperty("subgroup", true); // for stylesheet addressing auto* yAxisFormLayout = new QFormLayout(yAxisGroupBox); - auto* yAxisNbinsSpinBox = new QSpinBox(yAxisGroupBox); + auto* yAxisNbinsSpinBox = new SafeSpinBox; yAxisNbinsSpinBox->setRange(1, 65536); yAxisNbinsSpinBox->setValue(detector->ySize()); yAxisFormLayout->addRow("Nbins:", yAxisNbinsSpinBox); diff --git a/GUI/View/Tool/WidgetUtils.cpp b/GUI/View/Tool/WidgetUtils.cpp index 61cdfac908de84336f5dfcc6b7c2b4f1d44ab1f3..f929b0827b21d7fcb86b197118787bdb549f116b 100644 --- a/GUI/View/Tool/WidgetUtils.cpp +++ b/GUI/View/Tool/WidgetUtils.cpp @@ -24,12 +24,36 @@ #include <QCheckBox> #include <QLineEdit> +//QWidget* MinimizerSettingsWidget::createSpinbox(UIntDescriptor d) +//{ +// auto* spinBox = new QSpinBox(this); +// spinBox->setToolTip(d.tooltip); +// spinBox->setMaximum(std::numeric_limits<int>::max()); +// spinBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); + +// if (d.limits.hasLowerLimit()) +// spinBox->setMinimum(static_cast<int>(d.limits.lowerLimit())); +// if (d.limits.hasUpperLimit()) +// spinBox->setMaximum(static_cast<int>(d.limits.upperLimit())); + +// spinBox->setValue(d.get()); + +// QObject::connect(spinBox, QOverload<int>::of(&QSpinBox::valueChanged), +// [=](int newValue) { d.set(newValue); }); + +// m_updaters << [=]() { +// QSignalBlocker b(spinBox); +// spinBox->setValue(d.get()); +// }; + +// return spinBox; +//} + SafeSpinBox* GUI::Util::createSpinBox(const UIntDescriptor& d, std::function<void(uint)> slot, bool easyScrollable) { auto* spinBox = new SafeSpinBox(easyScrollable); - spinBox->setFocusPolicy(Qt::StrongFocus); spinBox->setToolTip(d.tooltip); spinBox->setMaximum(std::numeric_limits<int>::max()); spinBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); @@ -74,7 +98,6 @@ QString GUI::Util::labelWithUnit(const QString& label, variant<QString, Unit> un { const QString s = std::holds_alternative<QString>(unit) ? std::get<QString>(unit) : unitAsString(std::get<Unit>(unit)); - if (!s.isEmpty()) return label + " [" + s + "]";