-
#ifndef XGUI_DocumentDataModel_H
#define XGUI_DocumentDataModel_H
#include "XGUI.h"
-#include "XGUI_Constants.h"
+#include <ModuleBase_Definitions.h>
+#include <ModelAPI_ResultPart.h>
-#include <QAbstractItemModel>
#include <Events_Listener.h>
+#include <QAbstractItemModel>
#include <QList>
class ModelAPI_Document;
*/
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 boost::shared_ptr<Events_Message>& 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;
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 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;
- QModelIndex activePartIndex() const { return myActivePartIndex; }
+ //! Retrurns QModelIndex of active part
+ QModelIndex activePartIndex() const
+ {
+ return myActivePartIndex;
+ }
//! Deactivates a Part
void deactivatePart();
-private:
+ void rebuildDataTree();
- 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;
int historyOffset() const;
-
- //! Document
- boost::shared_ptr<ModelAPI_Document> myDocument;
-
//! Data model of top part of data tree (not parts object)
XGUI_TopDataModel* myModel;
};
-#endif
\ No newline at end of file
+#endif