X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_Tools.cpp;h=6cbbe1c80c3361ba65c7009a2b57c7ac62f63f77;hb=450d1bd65c11870d3942a30164518037b9a7503e;hp=5d3643ab79a3b882a54a400c0a2f00b11c53dade;hpb=1b93f1881c5fec599aa79707f93c84dd9c287bc0;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_Tools.cpp b/src/ModuleBase/ModuleBase_Tools.cpp index 5d3643ab7..6cbbe1c80 100755 --- a/src/ModuleBase/ModuleBase_Tools.cpp +++ b/src/ModuleBase/ModuleBase_Tools.cpp @@ -5,6 +5,8 @@ // Author: Vitaly Smetannikov #include "ModuleBase_Tools.h" + +#include #include #include @@ -29,11 +31,15 @@ #include #include #include +#include +#include #include const double tolerance = 1e-7; +//#define DEBUG_ACTIVATE_WINDOW +//#define DEBUG_SET_FOCUS namespace ModuleBase_Tools { @@ -71,6 +77,41 @@ void zeroMargins(QLayout* theLayout) theLayout->setSpacing(5); } +void activateWindow(QWidget* theWidget, const QString& theInfo) +{ + theWidget->activateWindow(); + +#ifdef DEBUG_ACTIVATE_WINDOW + qDebug(QString("activateWindow: %1").arg(theInfo).toStdString().c_str()); +#endif +} + +void setFocus(QWidget* theWidget, const QString& theInfo) +{ + theWidget->setFocus(); + +#ifdef DEBUG_SET_FOCUS + qDebug(QString("setFocus: %1").arg(theInfo).toStdString().c_str()); +#endif +} + +void setShadowEffect(QWidget* theWidget, const bool isSetEffect) +{ + if (isSetEffect) { + QGraphicsDropShadowEffect* aGlowEffect = new QGraphicsDropShadowEffect(); + aGlowEffect->setOffset(.0); + aGlowEffect->setBlurRadius(10.0); + aGlowEffect->setColor(QColor(0, 170, 255)); // Light-blue color, #00AAFF + theWidget->setGraphicsEffect(aGlowEffect); + } + else { + QGraphicsEffect* anEffect = theWidget->graphicsEffect(); + if(anEffect) + anEffect->deleteLater(); + theWidget->setGraphicsEffect(NULL); + } +} + QPixmap composite(const QString& theAdditionalIcon, const QString& theIcon) { QImage anIcon(theIcon); @@ -151,6 +192,26 @@ void setSpinValue(ModuleBase_ParamSpinBox* theSpin, double theValue) theSpin->blockSignals(isBlocked); } +void setSpinText(ModuleBase_ParamIntSpinBox* theSpin, const QString& theText) +{ + // In order to avoid extra text setting because it will + // reset cursor position in control + if (theSpin->text() == theText) + return; + bool isBlocked = theSpin->blockSignals(true); + theSpin->setText(theText); + theSpin->blockSignals(isBlocked); +} + +void setSpinValue(ModuleBase_ParamIntSpinBox* theSpin, int theValue) +{ + if (theSpin->value() == theValue) + return; + bool isBlocked = theSpin->blockSignals(true); + theSpin->setValue(theValue); + theSpin->blockSignals(isBlocked); +} + QString objectInfo(const ObjectPtr& theObj, const bool isUseAttributesInfo) { QString aFeatureStr = "feature"; @@ -245,11 +306,11 @@ void checkObjects(const QObjectPtrList& theObjects, bool& hasResult, bool& hasFe ResultPtr aResult = std::dynamic_pointer_cast(aObj); ResultParameterPtr aConstruction = std::dynamic_pointer_cast(aResult); - hasResult = (aResult.get() != NULL); - hasFeature = (aFeature.get() != NULL); - hasParameter = (aConstruction.get() != NULL); + hasResult |= (aResult.get() != NULL); + hasFeature |= (aFeature.get() != NULL); + hasParameter |= (aConstruction.get() != NULL); if (hasFeature) - hasSubFeature = (ModelAPI_Tools::compositeOwner(aFeature) != NULL); + hasSubFeature |= (ModelAPI_Tools::compositeOwner(aFeature) != NULL); if (hasFeature && hasResult && hasParameter && hasSubFeature) break; } @@ -258,7 +319,10 @@ void checkObjects(const QObjectPtrList& theObjects, bool& hasResult, bool& hasFe void setDefaultDeviationCoefficient(const TopoDS_Shape& theShape, const Handle(Prs3d_Drawer)& theDrawer) { - if (!theShape.IsNull() && theShape.ShapeType() == TopAbs_EDGE) + if (theShape.IsNull()) + return; + TopAbs_ShapeEnum aType = theShape.ShapeType(); + if ((aType == TopAbs_EDGE) || (aType == TopAbs_WIRE)) theDrawer->SetDeviationCoefficient(1.e-4); }