X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_PartDataModel.h;h=b170ec1cd701b96f0890a193e0d41ab42874b59d;hb=880a5c5b031fe9bbd7833fa3918af3e216d98d34;hp=1b3b069bf1c1d152cf9a85c41f4d30d3a579a57d;hpb=10c74b99318f5265c9a60a178932b03f69adfee5;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_PartDataModel.h b/src/XGUI/XGUI_PartDataModel.h index 1b3b069bf..b170ec1cd 100644 --- a/src/XGUI/XGUI_PartDataModel.h +++ b/src/XGUI/XGUI_PartDataModel.h @@ -2,6 +2,7 @@ #ifndef XGUI_PartDataModel_H #define XGUI_PartDataModel_H +#include "XGUI.h" #include "XGUI_DataTreeModel.h" /**\class XGUI_TopDataModel @@ -9,14 +10,14 @@ * \brief This is a data model for Object Browser (QTreeView). * It represents only upper part of data tree (non-parts tree items) */ -class XGUI_TopDataModel : public XGUI_FeaturesModel +class XGUI_EXPORT XGUI_TopDataModel : public XGUI_FeaturesModel { Q_OBJECT public: - XGUI_TopDataModel(const std::shared_ptr& theDocument, QObject* theParent); + XGUI_TopDataModel(QObject* theParent); virtual ~XGUI_TopDataModel(); - // Reimplementation from QAbstractItemModel + // Reimpl from QAbstractItemModel virtual QVariant data(const QModelIndex& theIndex, int theRole) const; virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; @@ -31,11 +32,19 @@ public: virtual bool hasChildren(const QModelIndex& theParent = QModelIndex()) const; - //! Returns Feature object by the given Model index. - //! Returns 0 if the given index is not index of a feature - virtual FeaturePtr feature(const QModelIndex& theIndex) const; + //! Returns object by the given Model index. + //! Returns 0 if the given index is not index of a object + virtual ObjectPtr object(const QModelIndex& theIndex) const; - virtual QModelIndex findParent(const std::shared_ptr& theFeature) const; + //! Returns QModelIndex which corresponds to the given object + //! If the object is not found then index is not valid + virtual QModelIndex objectIndex(const ObjectPtr& theObject) const; + + //! Returns parent index of the given object + virtual QModelIndex findParent(const ObjectPtr& theObject) const; + + //! Returns index corresponded to the group + virtual QModelIndex findGroup(const std::string& theGroup) const; private: //! Types of QModelIndexes @@ -58,10 +67,10 @@ class XGUI_PartDataModel : public XGUI_PartModel { Q_OBJECT public: - XGUI_PartDataModel(const std::shared_ptr& theDocument, QObject* theParent); + XGUI_PartDataModel(QObject* theParent); virtual ~XGUI_PartDataModel(); - // Reimplementation from QAbstractItemModel + // Reimpl from QAbstractItemModel virtual QVariant data(const QModelIndex& theIndex, int theRole) const; virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; @@ -76,18 +85,30 @@ public: virtual bool hasChildren(const QModelIndex& theParent = QModelIndex()) const; - //! Returns Feature object by the given Model index. - //! Returns 0 if the given index is not index of a feature - virtual FeaturePtr feature(const QModelIndex& theIndex) const; + //! Returns object by the given Model index. + //! Returns 0 if the given index is not index of a object + virtual ObjectPtr object(const QModelIndex& theIndex) const; + + //! Returns QModelIndex which corresponds to the given object + //! If the object is not found then index is not valid + virtual QModelIndex objectIndex(const ObjectPtr& theObject) const; //! Returns true if the given document is a sub-document of this tree - virtual bool hasDocument(const std::shared_ptr& theDoc) const; + virtual bool hasDocument(const DocumentPtr& theDoc) const; + + //! Returns parent index of the given object + virtual QModelIndex findParent(const ObjectPtr& theObject) const; - //! Returns parent index of the given feature - virtual QModelIndex findParent(const std::shared_ptr& theFeature) const; + //! Returns index corresponded to the group + virtual QModelIndex findGroup(const std::string& theGroup) const; + + //! Return a Part object + virtual ResultPartPtr part() const; private: - std::shared_ptr featureDocument() const; + + //! Returns document of the current part + DocumentPtr partDocument() const; //! Types of QModelIndexes enum DataIds { @@ -95,7 +116,10 @@ private: ParamsFolder, ParamObject, ConstructFolder, - ConstructObject + ConstructObject, + BodiesFolder, + BodiesObject, + HistoryObject }; };