std::list<int> PartSet_OperationSketchBase::getSelectionModes(ObjectPtr theFeature) const
{
+ //TODO: Define position of selection modes definition
std::list<int> aModes;
- //FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(theFeature);
- //if (aFeature) {
- // if (PartSet_Tools::isConstraintFeature(aFeature->getKind())) {
- // aModes.clear();
- // aModes.push_back(AIS_DSM_Text);
- // aModes.push_back(AIS_DSM_Line);
- // return aModes;
- // }
- //}
- aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_VERTEX));
- aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_EDGE));
- aModes.push_back(AIS_DSM_Text);
- aModes.push_back(AIS_DSM_Line);
+ FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(theFeature);
+ if (aFeature && PartSet_Tools::isConstraintFeature(aFeature->getKind())) {
+ aModes.push_back(AIS_DSM_Text);
+ aModes.push_back(AIS_DSM_Line);
+ } else {
+ aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_VERTEX));
+ aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_EDGE));
+ }
return aModes;
}
FeaturePtr PartSet_OperationSketchBase::createFeature(const bool theFlushMessage)
{
}
-void PartSet_OperationSketchBase::keyReleased(const int theKey)
+void PartSet_OperationSketchBase::restartOperation(const std::string& theType, ObjectPtr theFeature)
{
- switch (theKey) {
- case Qt::Key_Escape: {
- bool toAbort = true;
- if (isModified()) {
- int anAnswer = QMessageBox::question(
- qApp->activeWindow(), tr("Cancel operation"),
- tr("Operation %1 will be cancelled. Continue?").arg(id()), QMessageBox::Yes,
- QMessageBox::No);
- toAbort = (anAnswer == QMessageBox::Yes);
- }
- if (toAbort)
- abort();
+ FeaturePtr aFeature = ModelAPI_Feature::feature(theFeature);
+ if (aFeature) {
+ QStringList aNested = this->nestedFeatures();
+ if (!aNested.isEmpty()) {
+ if (!aNested.contains(QString(aFeature->getKind().c_str())))
+ return;
}
- break;
- default:
- break;
}
-}
-
-void PartSet_OperationSketchBase::keyReleased(std::string theName, QKeyEvent* theEvent)
-{
- keyReleased(theEvent->key());
-}
-
-void PartSet_OperationSketchBase::restartOperation(const std::string& theType, ObjectPtr theFeature)
-{
- emit launchOperation(theType, theFeature);
+ emit restartRequired(theType, theFeature);
}