#include <QIcon>
#include <QBrush>
-
//ObjectPtr featureObj(const ObjectPtr& theFeature)
//{
// ObjectPtr aObject = boost::dynamic_pointer_cast<ModelAPI_Object>(theFeature);
// return theFeature;
//}
-
XGUI_TopDataModel::XGUI_TopDataModel(QObject* theParent)
- : XGUI_FeaturesModel(theParent)
+ : XGUI_FeaturesModel(theParent)
{
}
-
+
XGUI_TopDataModel::~XGUI_TopDataModel()
{
}
-
QVariant XGUI_TopDataModel::data(const QModelIndex& theIndex, int theRole) const
{
switch (theRole) {
- case Qt::DisplayRole:
- // return a name
- switch (theIndex.internalId()) {
- case ParamsFolder:
- return tr("Parameters") + QString(" (%1)").arg(rowCount(theIndex));
- case ParamObject:
- {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultParameters::group(), theIndex.row());
- if (aObject)
- return aObject->data()->name().c_str();
- }
- break;
- case ConstructFolder:
- return tr("Constructions") + QString(" (%1)").arg(rowCount(theIndex));
- case ConstructObject:
- {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultConstruction::group(), theIndex.row());
- if (aObject)
- return aObject->data()->name().c_str();
+ case Qt::DisplayRole:
+ // return a name
+ switch (theIndex.internalId()) {
+ case ParamsFolder:
+ return tr("Parameters") + QString(" (%1)").arg(rowCount(theIndex));
+ case ParamObject: {
+ DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultParameters::group(), theIndex.row());
+ if (aObject)
+ return aObject->data()->name().c_str();
+ }
+ break;
+ case ConstructFolder:
+ return tr("Constructions") + QString(" (%1)").arg(rowCount(theIndex));
+ case ConstructObject: {
+ DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ 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 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();
+
+ 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;
+ 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;
-
- case Qt::ToolTipRole:
- // return Tooltip
- break;
- case Qt::ForegroundRole:
- return QBrush(myItemsColor);
- break;
+ case Qt::ToolTipRole:
+ // return Tooltip
+ break;
+ case Qt::ForegroundRole:
+ return QBrush(myItemsColor);
+ break;
}
return QVariant();
}
int XGUI_TopDataModel::rowCount(const QModelIndex& theParent) const
{
- if (!theParent.isValid())
+ if (!theParent.isValid())
return 3;
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
{
if (!theParent.isValid()) {
switch (theRow) {
- case 0:
- return createIndex(theRow, theColumn, (qint32) ParamsFolder);
- case 1:
- return createIndex(theRow, theColumn, (qint32) ConstructFolder);
- case 2:
- return createIndex(theRow, theColumn, (qint32) BodiesFolder);
+ case 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)
QModelIndex XGUI_TopDataModel::parent(const QModelIndex& theIndex) const
{
- int aId = (int)theIndex.internalId();
+ int aId = (int) theIndex.internalId();
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);
+ 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();
}
ObjectPtr XGUI_TopDataModel::object(const QModelIndex& theIndex) const
{
switch (theIndex.internalId()) {
- case ParamsFolder:
- case ConstructFolder:
- case BodiesFolder:
- return ObjectPtr();
- case ParamObject:
- {
+ case ParamsFolder:
+ case ConstructFolder:
+ case BodiesFolder:
+ return ObjectPtr();
+ case ParamObject: {
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
return aRootDoc->object(ModelAPI_ResultParameters::group(), theIndex.row());
}
- case ConstructObject:
- {
+ case ConstructObject: {
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
return aRootDoc->object(ModelAPI_ResultConstruction::group(), theIndex.row());
}
- case BodiesObject:
- {
+ case BodiesObject: {
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
return aRootDoc->object(ModelAPI_ResultBody::group(), theIndex.row());
}
return ObjectPtr();
}
-
QModelIndex XGUI_TopDataModel::findParent(const ObjectPtr& theObject) const
{
return findGroup(theObject->groupName().c_str());
return aIndex;
}
-
-
//******************************************************************
//******************************************************************
//******************************************************************
XGUI_PartDataModel::XGUI_PartDataModel(QObject* theParent)
- : XGUI_PartModel(theParent)
+ : XGUI_PartModel(theParent)
{
}
-
XGUI_PartDataModel::~XGUI_PartDataModel()
{
}
QVariant XGUI_PartDataModel::data(const QModelIndex& theIndex, int theRole) const
{
switch (theRole) {
- case Qt::DisplayRole:
- // return a name
- switch (theIndex.internalId()) {
- case MyRoot:
- {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
- if (aObject)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
+ case Qt::DisplayRole:
+ // return a name
+ switch (theIndex.internalId()) {
+ case MyRoot: {
+ DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
+ }
+ case ParamsFolder:
+ return tr("Parameters") + QString(" (%1)").arg(rowCount(theIndex));
+ case ConstructFolder:
+ return tr("Constructions") + QString(" (%1)").arg(rowCount(theIndex));
+ case BodiesFolder:
+ return tr("Bodies") + QString(" (%1)").arg(rowCount(theIndex));
+ case ParamObject: {
+ ObjectPtr aObject = partDocument()->object(ModelAPI_ResultParameters::group(),
+ theIndex.row());
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
+ }
+ case ConstructObject: {
+ ObjectPtr aObject = partDocument()->object(ModelAPI_ResultConstruction::group(),
+ theIndex.row());
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
+ }
+ case BodiesObject: {
+ ObjectPtr aObject = partDocument()->object(ModelAPI_ResultBody::group(), theIndex.row());
+ if (aObject)
+ return aObject->data()->name().c_str();
+ }
+ case HistoryObject: {
+ ObjectPtr aObject = partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
+ if (aObject)
+ return aObject->data()->name().c_str();
+ }
}
- case ParamsFolder:
- return tr("Parameters") + QString(" (%1)").arg(rowCount(theIndex));
- case ConstructFolder:
- return tr("Constructions") + QString(" (%1)").arg(rowCount(theIndex));
- case BodiesFolder:
- return tr("Bodies") + QString(" (%1)").arg(rowCount(theIndex));
- case ParamObject:
- {
- ObjectPtr aObject = partDocument()->object(ModelAPI_ResultParameters::group(), theIndex.row());
- if (aObject)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
- }
- case ConstructObject:
- {
- ObjectPtr aObject = partDocument()->object(ModelAPI_ResultConstruction::group(), theIndex.row());
- if (aObject)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
- }
- case BodiesObject:
- {
- ObjectPtr aObject = partDocument()->object(ModelAPI_ResultBody::group(), theIndex.row());
- if (aObject)
- return aObject->data()->name().c_str();
- }
- case HistoryObject:
- {
- ObjectPtr aObject = partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
- if (aObject)
- return aObject->data()->name().c_str();
- }
- }
- break;
- case Qt::DecorationRole:
- // return an Icon
- switch (theIndex.internalId()) {
- case MyRoot:
- return QIcon(":pictures/part_ico.png");
- case ParamsFolder:
- return QIcon(":pictures/params_folder.png");
- case ConstructFolder:
- case BodiesFolder:
- return QIcon(":pictures/constr_folder.png");
- case ConstructObject:
- case BodiesObject:
- 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);
- if (aFeature)
- return QIcon(XGUI_Workshop::featureIcon(aFeature->getKind()));
+ break;
+ case Qt::DecorationRole:
+ // return an Icon
+ switch (theIndex.internalId()) {
+ case MyRoot:
+ return QIcon(":pictures/part_ico.png");
+ case ParamsFolder:
+ return QIcon(":pictures/params_folder.png");
+ case ConstructFolder:
+ case BodiesFolder:
+ return QIcon(":pictures/constr_folder.png");
+ case ConstructObject:
+ case BodiesObject:
+ 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);
+ if (aFeature)
+ return QIcon(XGUI_Workshop::featureIcon(aFeature->getKind()));
+ }
}
- }
- break;
- case Qt::ToolTipRole:
- // return Tooltip
- break;
- case Qt::ForegroundRole:
- return QBrush(myItemsColor);
- break;
+ break;
+ case Qt::ToolTipRole:
+ // return Tooltip
+ break;
+ case Qt::ForegroundRole:
+ return QBrush(myItemsColor);
+ break;
}
return QVariant();
}
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
if (aRootDoc->object(ModelAPI_ResultPart::group(), myId))
return 1;
- else
+ else
return 0;
}
switch (parent.internalId()) {
- case MyRoot:
- return 3 + partDocument()->size(ModelAPI_Feature::group());
- case ParamsFolder:
- return partDocument()->size(ModelAPI_ResultParameters::group());
- case ConstructFolder:
- return partDocument()->size(ModelAPI_ResultConstruction::group());
- case BodiesFolder:
- return partDocument()->size(ModelAPI_ResultBody::group());
+ case MyRoot:
+ return 3 + partDocument()->size(ModelAPI_Feature::group());
+ case ParamsFolder:
+ return partDocument()->size(ModelAPI_ResultParameters::group());
+ case ConstructFolder:
+ return partDocument()->size(ModelAPI_ResultConstruction::group());
+ case BodiesFolder:
+ return partDocument()->size(ModelAPI_ResultBody::group());
}
return 0;
}
if (!theParent.isValid())
return createIndex(theRow, 0, (qint32) MyRoot);
- int aId = (int)theParent.internalId();
+ int aId = (int) theParent.internalId();
switch (aId) {
- case MyRoot:
- switch (theRow) {
- case 0:
- return createIndex(0, 0, (qint32) ParamsFolder);
- case 1:
- return createIndex(1, 0, (qint32) ConstructFolder);
- case 2:
- return createIndex(2, 0, (qint32) BodiesFolder);
- default:
- return createIndex(theRow, theColumn, (qint32) HistoryObject);
- }
- case ParamsFolder:
- return createIndex(theRow, 0, (qint32) ParamObject);
- case ConstructFolder:
- return createIndex(theRow, 0, (qint32) ConstructObject);
- case BodiesFolder:
- return createIndex(theRow, 0, (qint32) BodiesObject);
+ case MyRoot:
+ switch (theRow) {
+ case 0:
+ return createIndex(0, 0, (qint32) ParamsFolder);
+ case 1:
+ return createIndex(1, 0, (qint32) ConstructFolder);
+ case 2:
+ return createIndex(2, 0, (qint32) BodiesFolder);
+ default:
+ return createIndex(theRow, theColumn, (qint32) HistoryObject);
+ }
+ case ParamsFolder:
+ return createIndex(theRow, 0, (qint32) ParamObject);
+ case ConstructFolder:
+ return createIndex(theRow, 0, (qint32) ConstructObject);
+ case BodiesFolder:
+ return createIndex(theRow, 0, (qint32) BodiesObject);
}
return QModelIndex();
}
QModelIndex XGUI_PartDataModel::parent(const QModelIndex& theIndex) const
{
switch (theIndex.internalId()) {
- case MyRoot:
- return QModelIndex();
- case ParamsFolder:
- case ConstructFolder:
- case BodiesFolder:
- case HistoryObject:
- return createIndex(0, 0, (qint32) MyRoot);
- case ParamObject:
- return createIndex(0, 0, (qint32) ParamsFolder);
- case ConstructObject:
- return createIndex(1, 0, (qint32) ConstructFolder);
- case BodiesObject:
- return createIndex(2, 0, (qint32) BodiesFolder);
+ case MyRoot:
+ return QModelIndex();
+ case ParamsFolder:
+ case ConstructFolder:
+ case BodiesFolder:
+ case HistoryObject:
+ return createIndex(0, 0, (qint32) MyRoot);
+ 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();
}
return rowCount(theParent) > 0;
}
-
DocumentPtr XGUI_PartDataModel::partDocument() const
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
ResultPartPtr aPart = boost::dynamic_pointer_cast<ModelAPI_ResultPart>(aObject);
return aPart->partDoc();
}
-
+
ObjectPtr XGUI_PartDataModel::object(const QModelIndex& theIndex) const
{
switch (theIndex.internalId()) {
- case MyRoot:
- {
+ case MyRoot: {
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
return aRootDoc->object(ModelAPI_ResultPart::group(), myId);
}
- case ParamsFolder:
- case ConstructFolder:
- case BodiesFolder:
- return ObjectPtr();
- case ParamObject:
- return partDocument()->object(ModelAPI_ResultParameters::group(), theIndex.row());
- case ConstructObject:
- return partDocument()->object(ModelAPI_ResultConstruction::group(), theIndex.row());
- case BodiesObject:
- return partDocument()->object(ModelAPI_ResultBody::group(), theIndex.row());
- case HistoryObject:
- return partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
+ case ParamsFolder:
+ case ConstructFolder:
+ case BodiesFolder:
+ return ObjectPtr();
+ case ParamObject:
+ return partDocument()->object(ModelAPI_ResultParameters::group(), theIndex.row());
+ case ConstructObject:
+ return partDocument()->object(ModelAPI_ResultConstruction::group(), theIndex.row());
+ case BodiesObject:
+ return partDocument()->object(ModelAPI_ResultBody::group(), theIndex.row());
+ case HistoryObject:
+ return partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
}
return ObjectPtr();
}
return (partDocument() == theDoc);
}
-
QModelIndex XGUI_PartDataModel::findParent(const ObjectPtr& theObject) const
{
return findGroup(theObject->groupName().c_str());
{
QModelIndex aIndex;
if (theObject) {
- if (part() == theObject)
+ if (part() == theObject)
return aIndex;
std::string aGroup = theObject->groupName();
if (aRow == -1)
return aIndex;
if (aGroup == ModelAPI_ResultParameters::group())
- return createIndex(aRow, 0, (qint32) ParamObject);
+ return createIndex(aRow, 0, (qint32) ParamObject);
else if (aGroup == ModelAPI_ResultConstruction::group())
- return createIndex(aRow, 0, (qint32) ConstructObject);
+ return createIndex(aRow, 0, (qint32) ConstructObject);
else if (aGroup == ModelAPI_ResultBody::group())
- return createIndex(aRow, 0, (qint32) BodiesObject);
+ return createIndex(aRow, 0, (qint32) BodiesObject);
else
return createIndex(aRow + 3, 0, (qint32) HistoryObject);
}