Sketcher : Tool parameter : Fix U / J keys when widget spinboxes has focus.

This commit is contained in:
Paddle
2023-11-15 09:47:54 +01:00
committed by abdullahtahiriyo
parent 6b2d6fc8eb
commit c1fa4c705f
4 changed files with 22 additions and 4 deletions

View File

@@ -122,6 +122,8 @@ protected:
bool init = false; // true if the controls have been initialised.
bool firstMoveInit = false; // true if first mouse movement not yet performed (resets)
std::unique_ptr<DrawSketchKeyboardManager> keymanager;
Base::Vector2d prevCursorPosition;
Base::Vector2d lastControlEnforcedPosition;
@@ -742,7 +744,6 @@ private:
private:
OnViewParameterVisibilityManager ovpVisibilityManager;
ColorManager colorManager;
std::unique_ptr<DrawSketchKeyboardManager> keymanager;
};

View File

@@ -28,6 +28,8 @@
#include "DrawSketchController.h"
#include "DrawSketchKeyboardManager.h"
namespace SketcherGui
{
@@ -292,7 +294,7 @@ private:
nCheckbox = WidgetCheckboxesT::size(handler->constructionMethod());
nCombobox = WidgetComboboxesT::size(handler->constructionMethod());
toolWidget->initNParameters(nParameter);
toolWidget->initNParameters(nParameter, keymanager.get());
toolWidget->initNCheckboxes(nCheckbox);
toolWidget->initNComboboxes(nCombobox);

View File

@@ -304,7 +304,7 @@ void SketcherToolDefaultWidget::parameterTen_valueChanged(double val)
}
}
void SketcherToolDefaultWidget::initNParameters(int nparameters)
void SketcherToolDefaultWidget::initNParameters(int nparameters, QObject* filteringObject)
{
Base::StateLocker lock(blockParameterSlots, true);
@@ -315,6 +315,7 @@ void SketcherToolDefaultWidget::initNParameters(int nparameters)
for (int i = 0; i < nParameters; i++) {
setParameterVisible(i, (i < nparameters));
setParameter(i, 0.F);
setParameterFilteringObject(i, filteringObject);
setParameterFontStyle(i, FontStyle::Italic);
}
@@ -329,6 +330,19 @@ void SketcherToolDefaultWidget::setParameterVisible(int parameterindex, bool vis
}
}
void SketcherToolDefaultWidget::setParameterFilteringObject(int parameterindex,
QObject* filteringObject)
{
if (parameterindex < nParameters) {
getParameterSpinBox(parameterindex)->installEventFilter(filteringObject);
return;
}
THROWM(Base::IndexError,
QT_TRANSLATE_NOOP("Exceptions", "ToolWidget parameter index out of range"));
}
void SketcherToolDefaultWidget::setParameterLabel(int parameterindex, const QString& string)
{
if (parameterindex < nParameters) {

View File

@@ -126,9 +126,10 @@ public:
void reset();
void initNParameters(int nparameters);
void initNParameters(int nparameters, QObject* filteringObject = nullptr);
void setParameterLabel(int parameterindex, const QString& string);
void setParameterFilteringObject(int parameterindex, QObject* filteringObject);
void setNoticeText(const QString& string);
void setNoticeVisible(bool visible);