X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_DocumentDataModel.h;h=0b3f35fd1797b3b09b47ac25a1f612fd3ffdcbf2;hb=b742df475446566e44a011eecd82d4507c04ad44;hp=a5257a981c7d1041f9a991d97447bcbf08f54269;hpb=6a20927e015a5c9ac96e44f7ceef403cd5b12a26;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_DocumentDataModel.h b/src/XGUI/XGUI_DocumentDataModel.h index a5257a981..0b3f35fd1 100644 --- a/src/XGUI/XGUI_DocumentDataModel.h +++ b/src/XGUI/XGUI_DocumentDataModel.h @@ -1,13 +1,15 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> #ifndef XGUI_DocumentDataModel_H #define XGUI_DocumentDataModel_H #include "XGUI.h" -#include "XGUI_Constants.h" +#include +#include -#include #include +#include #include class ModelAPI_Document; @@ -21,26 +23,24 @@ class XGUI_TopDataModel; */ class XGUI_EXPORT XGUI_DocumentDataModel : public QAbstractItemModel, public Events_Listener { - Q_OBJECT -public: - +Q_OBJECT + public: XGUI_DocumentDataModel(QObject* theParent); virtual ~XGUI_DocumentDataModel(); // Event Listener method - virtual void processEvent(const Events_Message* theMessage); - + virtual void processEvent(const std::shared_ptr& theMessage); virtual QVariant data(const QModelIndex& theIndex, int theRole) const; - virtual QVariant headerData(int theSection, Qt::Orientation theOrient, - int theRole = Qt::DisplayRole) const; + virtual QVariant headerData(int theSection, Qt::Orientation theOrient, int theRole = + Qt::DisplayRole) const; virtual int rowCount(const QModelIndex& theParent = QModelIndex()) const; virtual int columnCount(const QModelIndex& theParent = QModelIndex()) const; - virtual QModelIndex index(int theRow, int theColumn, - const QModelIndex &parent = QModelIndex()) const; + virtual QModelIndex index(int theRow, int theColumn, const QModelIndex &parent = + QModelIndex()) const; virtual QModelIndex parent(const QModelIndex& theIndex) const; @@ -52,35 +52,45 @@ public: Qt::ItemFlags flags(const QModelIndex& theIndex) const; - //! 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; + //! 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 featureIndex(const FeaturePtr theFeature) const; + QModelIndex objectIndex(const ObjectPtr theObject) const; - //! Returns QModelIndex which corresponds to the given feature if this is a part - //! If the feature is not found then index is not valid - QModelIndex partIndex(const FeaturePtr& theFeature) 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); - //! Retrurns Feature which corresponds to active part - FeaturePtr activePart() const; + //! Retrurns active part + ResultPartPtr activePart() const; //! Retrurns QModelIndex of active part - QModelIndex activePartIndex() const { return myActivePartIndex; } + QModelIndex activePartIndex() const + { + return myActivePartIndex; + } //! Deactivates a Part void deactivatePart(); void rebuildDataTree(); -private: + //! Clear internal data + void clear(); - enum {PartsFolder, HistoryNode}; + private: + + enum + { + PartsFolder, + HistoryNode + }; //! Converts QModelIndex of this model to QModelIndex of a one of sub-models. QModelIndex* toSourceModelIndex(const QModelIndex& theProxy) const; @@ -94,6 +104,9 @@ private: //! Deletes all saved pointers on QModelIndex objects. void clearModelIndexes(); + //! Deletes all saved pointers on QModelIndex objects. + void clearSubModels(); + //! Removes sub-model on removing a part object. Also it removes QModelIndex-es which refer to this model void removeSubModel(int theModelId); @@ -108,7 +121,6 @@ private: int historyOffset() const; - //! Data model of top part of data tree (not parts object) XGUI_TopDataModel* myModel; @@ -125,4 +137,4 @@ private: }; -#endif \ No newline at end of file +#endif