Salome HOME
Added the hasRootDocument method for GUI NewDocument checking
[modules/shaper.git] / src / ModuleBase / ModuleBase_Operation.cpp
index c3a0bd6fec3cef5b19649dc6fc7ba1f7b22689a9..2c0e7d9d7e79514d353401e80d8e9e75f15a30dd 100644 (file)
@@ -10,7 +10,7 @@
 #include <ModelAPI_AttributeDouble.h>
 #include <ModelAPI_Document.h>
 #include <ModelAPI_Feature.h>
-#include <ModelAPI_Object.h>
+#include <ModelAPI_Data.h>
 #include <ModelAPI_PluginManager.h>
 #include <ModelAPI_Document.h>
 
@@ -263,7 +263,7 @@ void ModuleBase_Operation::storeReal(double theValue)
     return;
   }
   QString anId = sender()->objectName();
-  std::shared_ptr<ModelAPI_Object> aData = myFeature->data();
+  std::shared_ptr<ModelAPI_Data> aData = myFeature->data();
   std::shared_ptr<ModelAPI_AttributeDouble> aReal = aData->real(anId.toStdString());
   aReal->setValue(theValue);
 }
@@ -289,7 +289,8 @@ void ModuleBase_Operation::startOperation()
 {
   std::shared_ptr<ModelAPI_Document> aDoc = ModelAPI_PluginManager::get()->rootDocument();
   myFeature = aDoc->addFeature(myOperationId.toStdString());
-  myFeature->execute();
+  if (myFeature) // TODO: generate an error if feature was not created
+    myFeature->execute();
   //emit callSlot();
   //commit();
 }
@@ -319,7 +320,7 @@ void ModuleBase_Operation::abortOperation()
  */
 void ModuleBase_Operation::commitOperation()
 {
-  myFeature->execute();
+  if (myFeature) myFeature->execute();
 }
 
 /*!