1 #ifndef XGUI_ObjectsBrowser_H
2 #define XGUI_ObjectsBrowser_H
5 #include <ModuleBase_Definitions.h>
6 #include <ModelAPI_Object.h>
7 #include <ModelAPI_ResultPart.h>
8 #include <ModelAPI_Events.h>
13 class XGUI_DocumentDataModel;
16 class XGUI_DataTree : public QTreeView
20 XGUI_DataTree(QWidget* theParent);
21 virtual ~XGUI_DataTree();
23 //! Returns list of currently selected objects
24 QList<ObjectPtr> selectedObjects() const
26 return mySelectedData;
29 XGUI_DocumentDataModel* dataModel() const;
32 //! Emited when selection is changed
33 void selectionChanged();
34 void activePartChanged(ObjectPtr thePart);
36 //! Emited on context menu request
37 void contextMenuRequested(QContextMenuEvent* theEvent);
40 virtual void commitData(QWidget* theEditor);
43 virtual void mouseDoubleClickEvent(QMouseEvent* theEvent);
44 virtual void contextMenuEvent(QContextMenuEvent* theEvent);
47 //! Called when selection in Data Tree is changed
48 void onSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected);
51 //! List of currently selected data
52 QList<ObjectPtr> mySelectedData;
55 /**\class XGUI_ObjectsBrowser
57 * \brief Object browser window object. Represents data tree of current data structure
59 class XGUI_EXPORT XGUI_ObjectsBrowser : public QWidget
63 XGUI_ObjectsBrowser(QWidget* theParent);
64 virtual ~XGUI_ObjectsBrowser();
66 //! Returns Model which provides access to data objects
67 XGUI_DocumentDataModel* dataModel() const
72 //! Returns list of currently selected objects
73 QList<ObjectPtr> selectedObjects() const
78 void setObjectsSelected(const QList<ObjectPtr>& theObjects);
80 //! Returns currently selected indexes
81 QModelIndexList selectedIndexes() const
83 return myTreeView->selectionModel()->selectedIndexes();
86 //! Returns TreeView widget
87 XGUI_DataTree* treeView() const
92 //! Activates currently selected part. Signal activePartChanged will not be sent
93 void activatePart(const ResultPartPtr& thePart);
95 void rebuildDataTree();
97 void processEvent(const Events_Message* theMessage);
100 //! Emited when selection is changed
101 void selectionChanged();
103 //! Emited when current active document is changed
104 void activePartChanged(ObjectPtr thePart);
106 //! Emited on context menu request
107 void contextMenuRequested(QContextMenuEvent* theEvent);
110 virtual bool eventFilter(QObject* obj, QEvent* theEvent);
113 void onActivePartChanged(ObjectPtr thePart);
114 void onContextMenuRequested(QContextMenuEvent* theEvent);
115 void onLabelContextMenuRequested(const QPoint& thePnt);
117 //! Called on Edit command request
120 void onSelectionChanged();
123 void closeDocNameEditing(bool toSave);
126 XGUI_DocumentDataModel* myDocModel;
128 QLineEdit* myActiveDocLbl;
129 XGUI_DataTree* myTreeView;
131 QList<ObjectPtr> myObjectsList;