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);
53 //! Clears selection in Viewer and object Browser
54 void clearSelection();
57 //! Emited when selection in a one of viewers was changed
58 void selectionChanged();
61 /// Reaction on selectio0n in Object browser
62 void onObjectBrowserSelection();
64 /// Reaction on selectio0n in Viewer
65 void onViewerSelection();
68 /// Reference to workshop
69 XGUI_Workshop* myWorkshop;
71 /// Current selection object
72 XGUI_Selection* mySelection;