+//#define ModuleDataModel
+
+/**
+* \ingroup GUI
+* Implementation of Data Tree object for Object Browser
+*/
+class XGUI_DataTree : public QTreeView
+{
+Q_OBJECT
+ public:
+ /// Constructor
+ /// \param theParent a parent widget
+ XGUI_DataTree(QWidget* theParent);
+
+ virtual ~XGUI_DataTree();
+
+ /// Returns current data model
+ ModuleBase_IDocumentDataModel* dataModel() const;
+
+signals:
+ //! Emited on context menu request
+ void contextMenuRequested(QContextMenuEvent* theEvent);
+
+public slots:
+ /// Clear content of data tree
+ virtual void clear();
+
+ protected slots:
+ /// Commit modified data (used for renaming of objects)
+ virtual void commitData(QWidget* theEditor);
+
+ void onDoubleClick(const QModelIndex&);
+
+ protected:
+ /// Redefinition of virtual method
+ virtual void contextMenuEvent(QContextMenuEvent* theEvent);
+
+ /// Redefinition of virtual method
+ virtual void resizeEvent(QResizeEvent* theEvent);
+
+};
+
+/**\class XGUI_ObjectsBrowser
+ * \ingroup GUI
+ * \brief Object browser window object. Represents data tree of current data structure
+ */
+class XGUI_EXPORT XGUI_ObjectsBrowser : public QWidget