#include "XGUI_PartDataModel.h"
#include "XGUI_Workshop.h"
-#include <ModelAPI_PluginManager.h>
+#include <ModelAPI_Session.h>
#include <ModelAPI_Document.h>
#include <ModelAPI_Feature.h>
#include <ModelAPI_Result.h>
case ParamsFolder:
return tr("Parameters") + QString(" (%1)").arg(rowCount(theIndex));
case ParamObject: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultParameters::group(), theIndex.row());
if (aObject)
return aObject->data()->name().c_str();
case ConstructFolder:
return tr("Constructions") + QString(" (%1)").arg(rowCount(theIndex));
case ConstructObject: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultConstruction::group(),
theIndex.row());
if (aObject)
return aObject->data()->name().c_str();
}
break;
- case BodiesFolder:
- return tr("Bodies") + QString(" (%1)").arg(rowCount(theIndex));
- case BodiesObject: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultBody::group(), theIndex.row());
- if (aObject)
- return aObject->data()->name().c_str();
- }
}
break;
case Qt::DecorationRole:
+ {
// return an Icon
switch (theIndex.internalId()) {
case ParamsFolder:
return QIcon(":pictures/params_folder.png");
- case BodiesFolder:
case ConstructFolder:
return QIcon(":pictures/constr_folder.png");
case ConstructObject:
- case BodiesObject:
return QIcon(":pictures/constr_object.png");
+ }
}
break;
int XGUI_TopDataModel::rowCount(const QModelIndex& theParent) const
{
if (!theParent.isValid())
- return 3;
+ return 2;
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
if (theParent.internalId() == ParamsFolder)
return aRootDoc->size(ModelAPI_ResultParameters::group());
if (theParent.internalId() == ConstructFolder)
return aRootDoc->size(ModelAPI_ResultConstruction::group());
- if (theParent.internalId() == BodiesFolder)
- return aRootDoc->size(ModelAPI_ResultBody::group());
return 0;
}
return createIndex(theRow, theColumn, (qint32) ParamsFolder);
case 1:
return createIndex(theRow, theColumn, (qint32) ConstructFolder);
- case 2:
- return createIndex(theRow, theColumn, (qint32) BodiesFolder);
}
} else {
if (theParent.internalId() == ParamsFolder)
if (theParent.internalId() == ConstructFolder)
return createIndex(theRow, theColumn, (qint32) ConstructObject);
-
- if (theParent.internalId() == BodiesFolder)
- return createIndex(theRow, theColumn, (qint32) BodiesObject);
}
return QModelIndex();
}
switch (aId) {
case ParamsFolder:
case ConstructFolder:
- case BodiesFolder:
return QModelIndex();
case ParamObject:
return createIndex(0, 0, (qint32) ParamsFolder);
case ConstructObject:
return createIndex(1, 0, (qint32) ConstructFolder);
- case BodiesObject:
- return createIndex(2, 0, (qint32) BodiesFolder);
}
return QModelIndex();
}
switch (theIndex.internalId()) {
case ParamsFolder:
case ConstructFolder:
- case BodiesFolder:
return ObjectPtr();
case ParamObject: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
return aRootDoc->object(ModelAPI_ResultParameters::group(), theIndex.row());
}
case ConstructObject: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
return aRootDoc->object(ModelAPI_ResultConstruction::group(), theIndex.row());
}
- case BodiesObject: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- return aRootDoc->object(ModelAPI_ResultBody::group(), theIndex.row());
- }
}
return ObjectPtr();
}
return createIndex(0, 0, (qint32) ParamsFolder);
if (theGroup == ModelAPI_ResultConstruction::group())
return createIndex(1, 0, (qint32) ConstructFolder);
- if (theGroup == ModelAPI_ResultBody::group())
- return createIndex(2, 0, (qint32) BodiesFolder);
return QModelIndex();
}
{
QModelIndex aIndex;
if (theObject) {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
std::string aGroup = theObject->groupName();
int aNb = aRootDoc->size(aGroup);
int aRow = -1;
return createIndex(aRow, 0, (qint32) ParamObject);
if (aGroup == ModelAPI_ResultConstruction::group())
return createIndex(aRow, 0, (qint32) ConstructObject);
- if (aGroup == ModelAPI_ResultBody::group())
- return createIndex(aRow, 0, (qint32) BodiesObject);
}
}
return aIndex;
// return a name
switch (theIndex.internalId()) {
case MyRoot: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
if (aObject)
return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
case BodiesFolder:
return QIcon(":pictures/constr_folder.png");
case ConstructObject:
- case BodiesObject:
+ case BodiesObject: {
+ std::string aGroup = theIndex.internalId() == ConstructObject ?
+ ModelAPI_ResultConstruction::group() : ModelAPI_ResultBody::group();
+ ObjectPtr anObject = partDocument()->object(aGroup, theIndex.row());
+ if (anObject && anObject->data() && anObject->data()->mustBeUpdated()) {
+ return QIcon(":pictures/constr_object_modified.png");
+ }
return QIcon(":pictures/constr_object.png");
+ }
case HistoryObject: {
ObjectPtr aObject = partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(aObject);
int XGUI_PartDataModel::rowCount(const QModelIndex& parent) const
{
if (!parent.isValid()) {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
if (aRootDoc->object(ModelAPI_ResultPart::group(), myId))
return 1;
else
DocumentPtr XGUI_PartDataModel::partDocument() const
{
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
ResultPartPtr aPart = boost::dynamic_pointer_cast<ModelAPI_ResultPart>(aObject);
return aPart->partDoc();
{
switch (theIndex.internalId()) {
case MyRoot: {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
return aRootDoc->object(ModelAPI_ResultPart::group(), myId);
}
case ParamsFolder:
ResultPartPtr XGUI_PartDataModel::part() const
{
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
ObjectPtr aObj = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
return boost::dynamic_pointer_cast<ModelAPI_ResultPart>(aObj);
}