case ParamObject:
{
std::shared_ptr<ModelAPI_Feature> aFeature = myDocument->feature(PARAMETERS_GROUP, theIndex.row());
- return aFeature->data()->getName().c_str();
+ if (aFeature)
+ return aFeature->data()->getName().c_str();
}
case ConstructFolder:
return tr("Constructions");
case ConstructObject:
{
std::shared_ptr<ModelAPI_Feature> aFeature = myDocument->feature(CONSTRUCTIONS_GROUP, theIndex.row());
- return aFeature->data()->getName().c_str();
+ if (aFeature)
+ return aFeature->data()->getName().c_str();
}
}
break;
}
+QModelIndex XGUI_TopDataModel::findParent(const std::shared_ptr<ModelAPI_Feature>& theFeature) const
+{
+ QString aGroup(theFeature->getGroup().c_str());
+
+ if (theFeature->getGroup().compare(PARAMETERS_GROUP) == 0)
+ return createIndex(0, 0, (quintptr) ParamsFolder);
+ if (theFeature->getGroup().compare(CONSTRUCTIONS_GROUP) == 0)
+ return createIndex(1, 0, (quintptr) ConstructFolder);
+ return QModelIndex();
+}
+
+QModelIndex XGUI_TopDataModel::findGroup(const std::string& theGroup) const
+{
+ if (theGroup.compare(PARAMETERS_GROUP) == 0)
+ return createIndex(0, 0, (quintptr) ParamsFolder);
+ if (theGroup.compare(CONSTRUCTIONS_GROUP) == 0)
+ return createIndex(1, 0, (quintptr) ConstructFolder);
+ return QModelIndex();
+}
+
+
//******************************************************************
//******************************************************************
//******************************************************************
case MyRoot:
{
std::shared_ptr<ModelAPI_Feature> aFeature = myDocument->feature(PARTS_GROUP, myId);
- return aFeature->data()->getName().c_str();
+ if (aFeature)
+ return aFeature->data()->getName().c_str();
}
case ParamsFolder:
return tr("Parameters");
{
std::shared_ptr<ModelAPI_Feature> aFeature =
featureDocument()->feature(PARAMETERS_GROUP, theIndex.row());
- return aFeature->data()->getName().c_str();
+ if (aFeature)
+ return aFeature->data()->getName().c_str();
}
case ConstructObject:
{
std::shared_ptr<ModelAPI_Feature> aFeature =
featureDocument()->feature(CONSTRUCTIONS_GROUP, theIndex.row());
- return aFeature->data()->getName().c_str();
+ if (aFeature)
+ return aFeature->data()->getName().c_str();
}
}
break;
}
return FeaturePtr();
}
+
+bool XGUI_PartDataModel::hasDocument(const std::shared_ptr<ModelAPI_Document>& theDoc) const
+{
+ return (featureDocument() == theDoc);
+}
+
+
+QModelIndex XGUI_PartDataModel::findParent(const std::shared_ptr<ModelAPI_Feature>& theFeature) const
+{
+ QString aGroup(theFeature->getGroup().c_str());
+
+ if (theFeature->getGroup().compare(PARAMETERS_GROUP) == 0)
+ return createIndex(0, 0, (quintptr) ParamsFolder);
+ if (theFeature->getGroup().compare(CONSTRUCTIONS_GROUP) == 0)
+ return createIndex(1, 0, (quintptr) ConstructFolder);
+ return QModelIndex();
+}
+
+QModelIndex XGUI_PartDataModel::findGroup(const std::string& theGroup) const
+{
+ if (theGroup.compare(PARAMETERS_GROUP) == 0)
+ return createIndex(0, 0, (quintptr) ParamsFolder);
+ if (theGroup.compare(CONSTRUCTIONS_GROUP) == 0)
+ return createIndex(1, 0, (quintptr) ConstructFolder);
+ return QModelIndex();
+}