X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_WidgetPoint2d.cpp;h=10f6de95fd65dc663d5e28d6d00fcbcab2f4ebed;hb=5508d58bfb48c67d0d7f398d00ff4e6bf0d340a7;hp=a6178e8760206af6a949f744efd01697a02ab794;hpb=47aefba9ed96153cab39ebfc4aa7fecc51942f21;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_WidgetPoint2d.cpp b/src/PartSet/PartSet_WidgetPoint2d.cpp index a6178e876..10f6de95f 100644 --- a/src/PartSet/PartSet_WidgetPoint2d.cpp +++ b/src/PartSet/PartSet_WidgetPoint2d.cpp @@ -54,6 +54,8 @@ PartSet_WidgetPoint2D::PartSet_WidgetPoint2D(QWidget* theParent, 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); @@ -90,6 +92,10 @@ PartSet_WidgetPoint2D::PartSet_WidgetPoint2D(QWidget* 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() @@ -106,6 +112,7 @@ void PartSet_WidgetPoint2D::reset() // locking of the validating state. ModuleBase_Tools::setSpinValue(myXSpin, isOk ? aDefValue : 0.0); ModuleBase_Tools::setSpinValue(myYSpin, isOk ? aDefValue : 0.0); + storeValueCustom(); } } @@ -181,11 +188,6 @@ bool PartSet_WidgetPoint2D::restoreValue() return true; } -QWidget* PartSet_WidgetPoint2D::getControl() const -{ - return myGroupBox; -} - QList PartSet_WidgetPoint2D::getControls() const { QList aControls; @@ -242,6 +244,10 @@ bool PartSet_WidgetPoint2D::getPoint2d(const Handle(V3d_View)& theView, 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. @@ -256,8 +262,11 @@ void PartSet_WidgetPoint2D::onMouseRelease(ModuleBase_IViewWindow* theWnd, QMous if (aSelectedFeature.get() != NULL) { std::shared_ptr aSPFeature = std::dynamic_pointer_cast(aSelectedFeature); - if ((!aSPFeature) && (!aShape.IsNull())) - PartSet_Tools::createFixedObjectByExternal(aShape, aObject, mySketch); + if ((!aSPFeature) && (!aShape.IsNull())) { + ResultPtr aFixedObject = PartSet_Tools::findFixedObjectByExternal(aShape, aObject, mySketch); + if (!aFixedObject.get()) + aFixedObject = PartSet_Tools::createFixedObjectByExternal(aShape, aObject, mySketch); + } } double aX, aY; if (getPoint2d(aView, aShape, aX, aY)) {