1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
3 #ifndef XGUI_SelectionMgr_H
4 #define XGUI_SelectionMgr_H
7 #include <ModuleBase_Definitions.h>
9 #include <QModelIndexList>
11 #include <AIS_ListOfInteractive.hxx>
12 #include <NCollection_List.hxx>
13 #include <TopoDS_Shape.hxx>
14 #include <SelectMgr_IndexedMapOfOwner.hxx>
17 class XGUI_ObjectsBrowser;
20 /**\class XGUI_SelectionMgr
22 * \brief Selection manager. Provides selection event on selection in
23 * Object Browser and Viewer
25 class XGUI_EXPORT XGUI_SelectionMgr : public QObject
30 /// \param theParent a parent workshop
31 XGUI_SelectionMgr(XGUI_Workshop* theParent);
32 virtual ~XGUI_SelectionMgr();
34 /// Returns current selection
35 XGUI_Selection* selection() const
40 //! Connects the manager to all viewers accessible by Workshop
41 void connectViewers();
43 //! Selects the owners in the context.
44 //! \param theSelectedOwners a container of owners
45 /// \param isUpdateViewer the parameter whether the viewer should be update immediatelly
46 void setSelectedOwners(const SelectMgr_IndexedMapOfOwner& theSelectedOwners,
49 //! Check that the selected owners are valid for the current filters
50 /// \param isUpdateViewer the parameter whether the viewer should be update immediatelly
51 void updateSelectedOwners(bool isUpdateViewer);
54 //! Emited when selection in a one of viewers was changed
55 void selectionChanged();
58 /// Reaction on selectio0n in Object browser
59 void onObjectBrowserSelection();
61 /// Reaction on selectio0n in Viewer
62 void onViewerSelection();
65 /// Reference to workshop
66 XGUI_Workshop* myWorkshop;
68 /// Current selection object
69 XGUI_Selection* mySelection;