Sketcher: Fix OVP accepting input prematurely in Position and Dimensions

Fixes the problem where if user has selected `Position and dimensions`
mode in Preferences, then after first keystroke on 2nd label after
typing something in 1st label before, the input is being accepted
without allowing them to enter a number with more than 2 digits.
This commit is contained in:
tetektoza
2025-06-12 23:48:43 +02:00
committed by Kacper Donat
parent 60a86b05c4
commit 2c532ed924
11 changed files with 13 additions and 13 deletions

View File

@@ -721,7 +721,7 @@ void DSHArcController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;

View File

@@ -784,7 +784,7 @@ void DSHArcSlotController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;

View File

@@ -1086,7 +1086,7 @@ void DSHBSplineController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
double x = firstParam->getValue();
double y = secondParam->getValue();
handler->onButtonPressed(Base::Vector2d(x, y));

View File

@@ -603,7 +603,7 @@ void DSHCircleController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;
@@ -618,7 +618,7 @@ void DSHCircleController::doChangeDrawSketchHandlerMode()
}
else if (onViewParameters.size() > 3) {
auto& fourthParam = onViewParameters[OnViewParameter::Fourth];
if (thirdParam->isSet && fourthParam->isSet
if ((thirdParam->hasFinishedEditing || fourthParam->hasFinishedEditing)
&& handler->constructionMethod()
== DrawSketchHandlerCircle::ConstructionMethod::ThreeRim) {

View File

@@ -697,7 +697,7 @@ void DSHEllipseController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;

View File

@@ -563,7 +563,7 @@ void DSHLineController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;

View File

@@ -455,7 +455,7 @@ void DSHPolygonController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;

View File

@@ -2345,8 +2345,8 @@ void DSHRectangleController::doChangeDrawSketchHandlerMode()
{
switch (handler->state()) {
case SelectMode::SeekFirst: {
if (onViewParameters[OnViewParameter::First]->isSet
&& onViewParameters[OnViewParameter::Second]->isSet) {
if (onViewParameters[OnViewParameter::First]->hasFinishedEditing
|| onViewParameters[OnViewParameter::Second]->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}

View File

@@ -661,7 +661,7 @@ void DSHRotateController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;

View File

@@ -542,7 +542,7 @@ void DSHSlotController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;

View File

@@ -713,7 +713,7 @@ void DSHTranslateController::doChangeDrawSketchHandlerMode()
auto& firstParam = onViewParameters[OnViewParameter::First];
auto& secondParam = onViewParameters[OnViewParameter::Second];
if (firstParam->isSet && secondParam->isSet) {
if (firstParam->hasFinishedEditing || secondParam->hasFinishedEditing) {
handler->setState(SelectMode::SeekSecond);
}
} break;