+/*FeaturePtr realFeature(const FeaturePtr theFeature)
+ {
+ if (theFeature->data()) {
+ return theFeature;
+ } else {
+ ObjectPtr aObject = std::dynamic_pointer_cast<ModelAPI_Object>(theFeature);
+ return aObject->featureRef();
+ }
+ }*/
+
+
+//******************************************************************
+bool canRemoveOrRename(QWidget* theParent, const std::set<FeaturePtr>& theFeatures)
+{
+ bool aResult = true;
+ std::string aNotActivatedNames;
+ if (!ModelAPI_Tools::allDocumentsActivated(aNotActivatedNames)) {
+ bool aFoundPartSetObject = ModuleBase_Tools::hasModuleDocumentFeature(theFeatures);
+ if (aFoundPartSetObject) {
+ const char* aKeyStr = "Selected objects can be used in Part documents which are not loaded: "
+ "%1. Whould you like to continue?";
+ QMessageBox::StandardButton aRes = QMessageBox::warning(theParent, QObject::tr("Warning"),
+ QObject::tr(aKeyStr).arg(aNotActivatedNames.c_str()),
+ QMessageBox::No | QMessageBox::Yes, QMessageBox::No);
+ aResult = aRes == QMessageBox::Yes;
+ }
+ }
+ return aResult;
+}
+
+//******************************************************************
+bool canRename(const ObjectPtr& theObject, const QString& theName)