X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetPoint2D.cpp;h=21cef047dc80351fff5b0ca7a32d1aaa36d132b8;hb=6920ebc7d04391d5a1de785c8bed0301c3fab205;hp=c13fb2d31803a99baa1830d497cc498d8bff0698;hpb=f30891542f6106a1a11c8a050180e852898d8b27;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetPoint2D.cpp b/src/ModuleBase/ModuleBase_WidgetPoint2D.cpp index c13fb2d31..21cef047d 100644 --- a/src/ModuleBase/ModuleBase_WidgetPoint2D.cpp +++ b/src/ModuleBase/ModuleBase_WidgetPoint2D.cpp @@ -3,12 +3,15 @@ // Author: Natalia ERMOLAEVA #include +#include +#include +#include #include #include #include -#include +#include #include #include @@ -18,23 +21,24 @@ #include #include -#include #include #include -#include #include #include ModuleBase_WidgetPoint2D::ModuleBase_WidgetPoint2D(QWidget* theParent, - const Config_WidgetAPI* theData) -: ModuleBase_ModelWidget(theParent, theData) + const Config_WidgetAPI* theData, + const std::string& theParentId) + : ModuleBase_ModelWidget(theParent, theData, theParentId) { myOptionParam = theData->getProperty(PREVIOUS_FEATURE_PARAM); - myGroupBox = new QGroupBox(QString::fromStdString(theData->getProperty(CONTAINER_PAGE_NAME)), - theParent); + QString aPageName = QString::fromStdString(theData->getProperty(CONTAINER_PAGE_NAME)); + myGroupBox = new QGroupBox(aPageName, theParent); + myGroupBox->setFlat(false); + QGridLayout* aGroupLay = new QGridLayout(myGroupBox); - aGroupLay->setContentsMargins(0, 0, 0, 0); + ModuleBase_Tools::adjustMargins(aGroupLay); aGroupLay->setColumnStretch(1, 1); { QLabel* aLabel = new QLabel(myGroupBox); @@ -42,12 +46,12 @@ ModuleBase_WidgetPoint2D::ModuleBase_WidgetPoint2D(QWidget* theParent, aLabel->setPixmap(QPixmap(":pictures/x_point.png")); aGroupLay->addWidget(aLabel, 0, 0); - myXSpin = new QDoubleSpinBox(myGroupBox); + myXSpin = new ModuleBase_DoubleSpinBox(myGroupBox); myXSpin->setMinimum(-DBL_MAX); myXSpin->setMaximum(DBL_MAX); myXSpin->setToolTip("X"); aGroupLay->addWidget(myXSpin, 0, 1); - + connect(myXSpin, SIGNAL(valueChanged(double)), this, SIGNAL(valuesChanged())); } { @@ -56,7 +60,7 @@ ModuleBase_WidgetPoint2D::ModuleBase_WidgetPoint2D(QWidget* theParent, aLabel->setPixmap(QPixmap(":pictures/y_point.png")); aGroupLay->addWidget(aLabel, 1, 0); - myYSpin = new QDoubleSpinBox(myGroupBox); + myYSpin = new ModuleBase_DoubleSpinBox(myGroupBox); myYSpin->setMinimum(-DBL_MAX); myYSpin->setMaximum(DBL_MAX); myYSpin->setToolTip("X"); @@ -64,14 +68,29 @@ ModuleBase_WidgetPoint2D::ModuleBase_WidgetPoint2D(QWidget* theParent, connect(myYSpin, SIGNAL(valueChanged(double)), this, SIGNAL(valuesChanged())); } - myXSpin->installEventFilter(this); - myYSpin->installEventFilter(this); } ModuleBase_WidgetPoint2D::~ModuleBase_WidgetPoint2D() { } +bool ModuleBase_WidgetPoint2D::setValue(ModuleBase_WidgetValue* theValue) +{ + bool isDone = false; + if (theValue) { + ModuleBase_WidgetValueFeature* aFeatureValue = + dynamic_cast(theValue); + if (aFeatureValue) { + boost::shared_ptr aPoint = aFeatureValue->point(); + if (aPoint) { + setPoint(aPoint); + isDone = true; + } + } + } + return isDone; +} + void ModuleBase_WidgetPoint2D::setPoint(const boost::shared_ptr& thePoint) { @@ -83,27 +102,39 @@ void ModuleBase_WidgetPoint2D::setPoint(const boost::shared_ptr& emit valuesChanged(); } -bool ModuleBase_WidgetPoint2D::storeValue(FeaturePtr theFeature) const +bool ModuleBase_WidgetPoint2D::storeValue() const { - boost::shared_ptr aData = theFeature->data(); - boost::shared_ptr aPoint = - boost::dynamic_pointer_cast(aData->attribute(attributeID())); - + boost::shared_ptr aData = myFeature->data(); + boost::shared_ptr aPoint = boost::dynamic_pointer_cast( + aData->attribute(attributeID())); + ModuleBase_WidgetPoint2D* that = (ModuleBase_WidgetPoint2D*) this; bool isBlocked = that->blockSignals(true); + bool isImmutable = aPoint->setImmutable(true); +#ifdef _DEBUG + std::string _attr_name = myAttributeID; + double _X = myXSpin->value(); + double _Y = myYSpin->value(); +#endif aPoint->setValue(myXSpin->value(), myYSpin->value()); - Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_FEATURE_UPDATED)); + updateObject(myFeature); + aPoint->setImmutable(isImmutable); that->blockSignals(isBlocked); return true; } -bool ModuleBase_WidgetPoint2D::restoreValue(FeaturePtr theFeature) +bool ModuleBase_WidgetPoint2D::restoreValue() { - boost::shared_ptr aData = theFeature->data(); - boost::shared_ptr aPoint = - boost::dynamic_pointer_cast(aData->attribute(attributeID())); - + boost::shared_ptr aData = myFeature->data(); + boost::shared_ptr aPoint = boost::dynamic_pointer_cast( + aData->attribute(attributeID())); + +#ifdef _DEBUG + std::string _attr_name = myAttributeID; + double _X = aPoint->x(); + double _Y = aPoint->y(); +#endif bool isBlocked = this->blockSignals(true); myXSpin->setValue(aPoint->x()); myYSpin->setValue(aPoint->y()); @@ -125,28 +156,22 @@ QList ModuleBase_WidgetPoint2D::getControls() const return aControls; } -bool ModuleBase_WidgetPoint2D::eventFilter(QObject *theObject, QEvent *theEvent) -{ - if (theObject == myXSpin || theObject == myYSpin) { - if (theEvent->type() == QEvent::KeyRelease) { - emit keyReleased(attributeID(), (QKeyEvent*) theEvent); - return true; - } - } - return ModuleBase_ModelWidget::eventFilter(theObject, theEvent); -} - -void ModuleBase_WidgetPoint2D::initFromPrevious(FeaturePtr theFeature) +bool ModuleBase_WidgetPoint2D::initFromPrevious(ObjectPtr theObject) { if (myOptionParam.length() == 0) - return; - boost::shared_ptr aData = theFeature->data(); - boost::shared_ptr aPoint = - boost::dynamic_pointer_cast(aData->attribute(myOptionParam)); + return false; + boost::shared_ptr aData = theObject->data(); + boost::shared_ptr aPoint = boost::dynamic_pointer_cast( + aData->attribute(myOptionParam)); if (aPoint) { bool isBlocked = this->blockSignals(true); myXSpin->setValue(aPoint->x()); - this->blockSignals(isBlocked); myYSpin->setValue(aPoint->y()); + this->blockSignals(isBlocked); + + emit valuesChanged(); + emit storedPoint2D(theObject, myOptionParam); + return true; } + return false; }