X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_DocumentDataModel.h;h=c49c6696535871e683459407e8214527a01de0a4;hb=6d20077610031fdaf7b61bb382da72e012df36ec;hp=68bfa406252f3c8e30a112fab1ca8ea98dee4cdc;hpb=be6e3770b8d97cc079f33efc8eaa571f645fbbdb;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_DocumentDataModel.h b/src/XGUI/XGUI_DocumentDataModel.h index 68bfa4062..c49c66965 100644 --- a/src/XGUI/XGUI_DocumentDataModel.h +++ b/src/XGUI/XGUI_DocumentDataModel.h @@ -3,11 +3,12 @@ #define XGUI_DocumentDataModel_H #include "XGUI.h" -#include "XGUI_Constants.h" +#include +#include -#include #include +#include #include class ModelAPI_Document; @@ -50,15 +51,32 @@ public: bool removeRows(int theRow, int theCount, const QModelIndex& theParent = QModelIndex()); - //! Returns Feature object by the given Model index. - //! Returns 0 if the given index is not index of a feature - FeaturePtr feature(const QModelIndex& theIndex) const; + Qt::ItemFlags flags(const QModelIndex& theIndex) const; + + //! Returns an object by the given Model index. + //! Returns 0 if the given index is not index of an object + ObjectPtr object(const QModelIndex& theIndex) const; + + QModelIndex objectIndex(const ObjectPtr theObject) const; + + //! Returns QModelIndex which corresponds to the given part + //! If the object is not found then index is not valid + QModelIndex partIndex(const ResultPartPtr& thePart) const; //! Activates a part data model if the index is a Part node index. //! Returns true if active part changed. bool activatedIndex(const QModelIndex& theIndex); - FeaturePtr activePart() const; + //! Retrurns active part + ResultPartPtr activePart() const; + + //! Retrurns QModelIndex of active part + QModelIndex activePartIndex() const { return myActivePartIndex; } + + //! Deactivates a Part + void deactivatePart(); + + void rebuildDataTree(); private: @@ -92,9 +110,6 @@ private: int historyOffset() const; - //! Document - boost::shared_ptr myDocument; - //! Data model of top part of data tree (not parts object) XGUI_TopDataModel* myModel; @@ -104,6 +119,8 @@ private: //! Active part in part editing mode XGUI_PartModel* myActivePart; + QModelIndex myActivePartIndex; + //! List of saved QModelIndexes created by sub-models QList myIndexes;