TechDraw: Section task: Fix spinbox (#20413)

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
This commit is contained in:
PaddleStroke
2025-03-26 21:41:17 +01:00
committed by GitHub
parent caa6606810
commit fc9c5a7521

View File

@@ -68,17 +68,11 @@ bool CompassWidget::eventFilter(QObject* target, QEvent* event)
if (target == dsbAngle) {
if (event->type() == QEvent::KeyPress) {
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
if (keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter) {
dsbAngle->interpretText();
slotSpinBoxEnter(dsbAngle->rawValue());
const auto isEnter = keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter;
if (isEnter && dsbAngle->isNormalized()) {
return true;
}
}
else if (event->type() == QEvent::FocusOut) {
dsbAngle->interpretText();
slotSpinBoxEnter(dsbAngle->rawValue());
return true;
}
}
return QWidget::eventFilter(target, event);
}
@@ -133,15 +127,8 @@ void CompassWidget::buildWidget()
dsbAngle = new Gui::QuantitySpinBox(this);
dsbAngle->setObjectName(QStringLiteral("dsbAngle"));
dsbAngle->setUnit(Base::Unit::Angle);
sizePolicy2.setHeightForWidth(dsbAngle->sizePolicy().hasHeightForWidth());
dsbAngle->setSizePolicy(sizePolicy2);
dsbAngle->setMinimumSize(QSize(75, 26));
dsbAngle->setMouseTracking(true);
dsbAngle->setFocusPolicy(Qt::ClickFocus);
dsbAngle->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
dsbAngle->setKeyboardTracking(false);
dsbAngle->setMaximum(360.000000000000000);
dsbAngle->setMinimum(-360.000000000000000);
connect(dsbAngle, QOverload<double>::of(&Gui::QuantitySpinBox::valueChanged),
this, &CompassWidget::slotSpinBoxEnter);
compassControlLayout->addWidget(dsbAngle);