Skip to content
Snippets Groups Projects
Commit 3febb81e authored by Mikhail Svechnikov's avatar Mikhail Svechnikov Committed by Mikhail Svechnikov
Browse files

doing common spinbox

parent 96265dda
No related branches found
No related tags found
1 merge request!964GUI refactoring: move spinbox/combobox/textbox/checkbox creating functions to WidgetUtils
...@@ -19,7 +19,7 @@ SafeSpinBox::SafeSpinBox(bool easyScrollable, QWidget* parent) ...@@ -19,7 +19,7 @@ SafeSpinBox::SafeSpinBox(bool easyScrollable, QWidget* parent)
: QSpinBox{parent} : QSpinBox{parent}
, easyScrollable(easyScrollable) , easyScrollable(easyScrollable)
{ {
setFocusPolicy(Qt::StrongFocus);
} }
void SafeSpinBox::wheelEvent(QWheelEvent *event) void SafeSpinBox::wheelEvent(QWheelEvent *event)
......
...@@ -31,7 +31,7 @@ AxisPropertyEditor::AxisPropertyEditor(QWidget* parent, const QString& groupTitl ...@@ -31,7 +31,7 @@ AxisPropertyEditor::AxisPropertyEditor(QWidget* parent, const QString& groupTitl
auto* formLayout = new QFormLayout(this); auto* formLayout = new QFormLayout(this);
formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); 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_minSpinBox = GUI::Util::createDoubleSpinBoxRow(formLayout, axisProperty->min());
m_maxSpinBox = GUI::Util::createDoubleSpinBoxRow(formLayout, axisProperty->max()); m_maxSpinBox = GUI::Util::createDoubleSpinBoxRow(formLayout, axisProperty->max());
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "GUI/Model/Device/AxesItems.h" #include "GUI/Model/Device/AxesItems.h"
#include "GUI/Model/Device/RectangularDetectorItem.h" #include "GUI/Model/Device/RectangularDetectorItem.h"
#include "GUI/View/Common/DoubleSpinBox.h" #include "GUI/View/Common/DoubleSpinBox.h"
#include "GUI/View/Common/SafeSpinBox.h"
#include "GUI/View/Instrument/DetectorAlignmentEditor.h" #include "GUI/View/Instrument/DetectorAlignmentEditor.h"
#include "GUI/View/Instrument/ResolutionFunctionEditor.h" #include "GUI/View/Instrument/ResolutionFunctionEditor.h"
#include "GUI/View/Tool/GroupBoxCollapser.h" #include "GUI/View/Tool/GroupBoxCollapser.h"
...@@ -41,7 +42,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent, ...@@ -41,7 +42,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent,
xAxisGroupBox->setProperty("subgroup", true); // for stylesheet addressing xAxisGroupBox->setProperty("subgroup", true); // for stylesheet addressing
auto* xAxisFormLayout = new QFormLayout(xAxisGroupBox); auto* xAxisFormLayout = new QFormLayout(xAxisGroupBox);
auto* xAxisNbinsSpinBox = new QSpinBox(xAxisGroupBox); auto* xAxisNbinsSpinBox = new SafeSpinBox;
xAxisNbinsSpinBox->setRange(1, 65536); xAxisNbinsSpinBox->setRange(1, 65536);
xAxisNbinsSpinBox->setValue(detector->xSize()); xAxisNbinsSpinBox->setValue(detector->xSize());
xAxisFormLayout->addRow("Nbins:", xAxisNbinsSpinBox); xAxisFormLayout->addRow("Nbins:", xAxisNbinsSpinBox);
...@@ -68,7 +69,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent, ...@@ -68,7 +69,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent,
yAxisGroupBox->setProperty("subgroup", true); // for stylesheet addressing yAxisGroupBox->setProperty("subgroup", true); // for stylesheet addressing
auto* yAxisFormLayout = new QFormLayout(yAxisGroupBox); auto* yAxisFormLayout = new QFormLayout(yAxisGroupBox);
auto* yAxisNbinsSpinBox = new QSpinBox(yAxisGroupBox); auto* yAxisNbinsSpinBox = new SafeSpinBox;
yAxisNbinsSpinBox->setRange(1, 65536); yAxisNbinsSpinBox->setRange(1, 65536);
yAxisNbinsSpinBox->setValue(detector->ySize()); yAxisNbinsSpinBox->setValue(detector->ySize());
yAxisFormLayout->addRow("Nbins:", yAxisNbinsSpinBox); yAxisFormLayout->addRow("Nbins:", yAxisNbinsSpinBox);
......
...@@ -24,12 +24,36 @@ ...@@ -24,12 +24,36 @@
#include <QCheckBox> #include <QCheckBox>
#include <QLineEdit> #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, SafeSpinBox* GUI::Util::createSpinBox(const UIntDescriptor& d,
std::function<void(uint)> slot, std::function<void(uint)> slot,
bool easyScrollable) bool easyScrollable)
{ {
auto* spinBox = new SafeSpinBox(easyScrollable); auto* spinBox = new SafeSpinBox(easyScrollable);
spinBox->setFocusPolicy(Qt::StrongFocus);
spinBox->setToolTip(d.tooltip); spinBox->setToolTip(d.tooltip);
spinBox->setMaximum(std::numeric_limits<int>::max()); spinBox->setMaximum(std::numeric_limits<int>::max());
spinBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); spinBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
...@@ -74,7 +98,6 @@ QString GUI::Util::labelWithUnit(const QString& label, variant<QString, Unit> un ...@@ -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) const QString s = std::holds_alternative<QString>(unit) ? std::get<QString>(unit)
: unitAsString(std::get<Unit>(unit)); : unitAsString(std::get<Unit>(unit));
if (!s.isEmpty()) if (!s.isEmpty())
return label + " [" + s + "]"; return label + " [" + s + "]";
......
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