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>
12 class XGUI_DocumentDataModel;
15 class XGUI_DataTree : public QTreeView
19 XGUI_DataTree(QWidget* theParent);
20 virtual ~XGUI_DataTree();
22 //! Returns list of currently selected objects
23 QList<ObjectPtr> selectedObjects() const
25 return mySelectedData;
28 XGUI_DocumentDataModel* dataModel() const;
31 //! Emited when selection is changed
32 void selectionChanged();
33 void activePartChanged(ObjectPtr thePart);
35 //! Emited on context menu request
36 void contextMenuRequested(QContextMenuEvent* theEvent);
39 virtual void commitData(QWidget* theEditor);
42 virtual void mouseDoubleClickEvent(QMouseEvent* theEvent);
43 virtual void contextMenuEvent(QContextMenuEvent* theEvent);
46 //! Called when selection in Data Tree is changed
47 void onSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected);
50 //! List of currently selected data
51 QList<ObjectPtr> mySelectedData;
54 /**\class XGUI_ObjectsBrowser
56 * \brief Object browser window object. Represents data tree of current data structure
58 class XGUI_EXPORT XGUI_ObjectsBrowser : public QWidget
62 XGUI_ObjectsBrowser(QWidget* theParent);
63 virtual ~XGUI_ObjectsBrowser();
65 //! Returns Model which provides access to data objects
66 XGUI_DocumentDataModel* dataModel() const
71 //! Returns list of currently selected objects
72 QList<ObjectPtr> selectedObjects() const
77 void setObjectsSelected(const QList<ObjectPtr>& theObjects);
79 //! Returns currently selected indexes
80 QModelIndexList selectedIndexes() const
82 return myTreeView->selectionModel()->selectedIndexes();
85 //! Returns TreeView widget
86 XGUI_DataTree* treeView() const
91 //! Activates currently selected part. Signal activePartChanged will not be sent
92 void activatePart(const ResultPartPtr& thePart);
94 void rebuildDataTree();
97 //! Emited when selection is changed
98 void selectionChanged();
100 //! Emited when current active document is changed
101 void activePartChanged(ObjectPtr thePart);
103 //! Emited on context menu request
104 void contextMenuRequested(QContextMenuEvent* theEvent);
107 virtual bool eventFilter(QObject* obj, QEvent* theEvent);
110 void onActivePartChanged(ObjectPtr thePart);
111 void onContextMenuRequested(QContextMenuEvent* theEvent);
112 void onLabelContextMenuRequested(const QPoint& thePnt);
114 //! Called on Edit command request
117 void onSelectionChanged();
120 void closeDocNameEditing(bool toSave);
123 XGUI_DocumentDataModel* myDocModel;
125 QLineEdit* myActiveDocLbl;
126 XGUI_DataTree* myTreeView;
128 QList<ObjectPtr> myObjectsList;