const std::string& theParentId)
: ModuleBase_ModelWidget(theParent, theData, theParentId)
{
+ // the control should accept the focus, so the boolen flag is corrected to be true
+ myIsObligatory = true;
//myOptionParam = theData->getProperty(PREVIOUS_FEATURE_PARAM);
QString aPageName = QString::fromStdString(theData->getProperty(CONTAINER_PAGE_NAME));
myGroupBox = new QGroupBox(aPageName, theParent);
connect(myYSpin, SIGNAL(valueChanged(double)), this, SLOT(onValuesChanged()));
}
+ QVBoxLayout* aLayout = new QVBoxLayout(this);
+ ModuleBase_Tools::zeroMargins(aLayout);
+ aLayout->addWidget(myGroupBox);
+ setLayout(aLayout);
}
void PartSet_WidgetPoint2D::reset()
{
- bool isOk;
- double aDefValue = QString::fromStdString(myDefaultValue).toDouble(&isOk);
- // it is important to block the spin box control in order to do not through out the
- // locking of the validating state.
- setSpinValue(myXSpin, isOk ? aDefValue : 0.0);
- setSpinValue(myYSpin, isOk ? aDefValue : 0.0);
+ if (isComputedDefault()) {
+ //return;
+ if (myFeature->compute(myAttributeID))
+ restoreValue();
+ }
+ else {
+ bool isOk;
+ double aDefValue = QString::fromStdString(getDefaultValue()).toDouble(&isOk);
+ // it is important to block the spin box control in order to do not through out the
+ // locking of the validating state.
+ ModuleBase_Tools::setSpinValue(myXSpin, isOk ? aDefValue : 0.0);
+ ModuleBase_Tools::setSpinValue(myYSpin, isOk ? aDefValue : 0.0);
+ storeValueCustom();
+ }
}
PartSet_WidgetPoint2D::~PartSet_WidgetPoint2D()
if (fabs(theY) >= MaxCoordinate)
return false;
- setSpinValue(myXSpin, theX);
- setSpinValue(myYSpin, theY);
+ ModuleBase_Tools::setSpinValue(myXSpin, theX);
+ ModuleBase_Tools::setSpinValue(myYSpin, theY);
storeValue();
return true;
}
-bool PartSet_WidgetPoint2D::storeValue() const
+bool PartSet_WidgetPoint2D::storeValueCustom() const
{
std::shared_ptr<ModelAPI_Data> aData = myFeature->data();
if (!aData) // can be on abort of sketcher element
double _Y = aPoint->y();
#endif
- setSpinValue(myXSpin, aPoint->x());
- setSpinValue(myYSpin, aPoint->y());
+ ModuleBase_Tools::setSpinValue(myXSpin, aPoint->x());
+ ModuleBase_Tools::setSpinValue(myYSpin, aPoint->y());
return true;
}
-QWidget* PartSet_WidgetPoint2D::getControl() const
-{
- return myGroupBox;
-}
-
QList<QWidget*> PartSet_WidgetPoint2D::getControls() const
{
QList<QWidget*> aControls;
QIntList aModes;
aModes << TopAbs_VERTEX;
+ if (isEditingMode())
+ aModes << TopAbs_EDGE;
myWorkshop->moduleConnector()->activateSubShapesSelection(aModes);
}
void PartSet_WidgetPoint2D::onMouseRelease(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent)
{
+ // the contex menu release by the right button should not be processed by this widget
+ if (theEvent->button() != Qt::LeftButton)
+ return;
+
XGUI_Selection* aSelection = myWorkshop->selector()->selection();
Handle(V3d_View) aView = theWnd->v3dView();
// TODO: This fragment doesn't work because bug in OCC Viewer. It can be used after fixing.
myWorkshop->operationMgr()->setLockValidating(false);
emit valuesChanged();
}
-
-void PartSet_WidgetPoint2D::setSpinValue(ModuleBase_DoubleSpinBox* theSpin, double theValue)
-{
- bool isBlocked = theSpin->blockSignals(true);
- theSpin->setValue(theValue);
- theSpin->blockSignals(isBlocked);
-}