2 #ifndef XGUI_ObjectsBrowser_H
3 #define XGUI_ObjectsBrowser_H
6 #include <ModuleBase_Definitions.h>
7 #include <ModelAPI_Object.h>
8 #include <ModelAPI_ResultPart.h>
13 class XGUI_DocumentDataModel;
17 class XGUI_DataTree: public QTreeView
21 XGUI_DataTree(QWidget* theParent);
22 virtual ~XGUI_DataTree();
24 //! Returns list of currently selected objects
25 QList<ObjectPtr> selectedObjects() const { return mySelectedData; }
27 XGUI_DocumentDataModel* dataModel() const;
30 //! Emited when selection is changed
31 void selectionChanged();
32 void activePartChanged(ObjectPtr thePart);
34 //! Emited on context menu request
35 void contextMenuRequested(QContextMenuEvent* theEvent);
38 virtual void commitData(QWidget* theEditor);
41 virtual void mouseDoubleClickEvent(QMouseEvent* theEvent);
42 virtual void contextMenuEvent(QContextMenuEvent* theEvent);
45 //! Called when selection in Data Tree is changed
46 void onSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected);
49 //! List of currently selected data
50 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 { return myDocModel; }
68 //! Returns list of currently selected objects
69 QList<ObjectPtr> selectedObjects() const { return myObjectsList; }
71 void setObjectsSelected(const QList<ObjectPtr>& theObjects);
73 //! Returns currently selected indexes
74 QModelIndexList selectedIndexes() const { return myTreeView->selectionModel()->selectedIndexes(); }
76 //! Returns TreeView widget
77 XGUI_DataTree* treeView() const { return myTreeView; }
79 //! Activates currently selected part. Signal activePartChanged will not be sent
80 void activatePart(const ResultPartPtr& thePart);
82 void rebuildDataTree();
85 //! Emited when selection is changed
86 void selectionChanged();
88 //! Emited when current active document is changed
89 void activePartChanged(ObjectPtr thePart);
91 //! Emited on context menu request
92 void contextMenuRequested(QContextMenuEvent* theEvent);
95 virtual bool eventFilter(QObject* obj, QEvent* theEvent);
98 void onActivePartChanged(ObjectPtr thePart);
99 void onContextMenuRequested(QContextMenuEvent* theEvent);
100 void onLabelContextMenuRequested(const QPoint& thePnt);
102 //! Called on Edit command request
105 void onSelectionChanged();
108 void closeDocNameEditing(bool toSave);
111 XGUI_DocumentDataModel* myDocModel;
113 QLineEdit* myActiveDocLbl;
114 XGUI_DataTree* myTreeView;
116 QList<ObjectPtr> myObjectsList;