Salome HOME
Update comments
[modules/gui.git] / src / CAM / CAM_Study.h
1 #ifndef CAM_STUDY_H
2 #define CAM_STUDY_H
3
4 #include "CAM.h"
5
6 #include "CAM_DataModel.h"
7
8 #include <SUIT_Study.h>
9
10 #include <qptrlist.h>
11
12 #ifdef WIN32
13 #pragma warning( disable:4251 )
14 #endif
15
16 class CAM_EXPORT CAM_Study : public SUIT_Study
17 {
18   Q_OBJECT
19
20 public:
21   typedef QPtrList<CAM_DataModel>         ModelList;
22   typedef QPtrListIterator<CAM_DataModel> ModelListIterator;
23
24 public:
25   CAM_Study( SUIT_Application* );
26   virtual ~CAM_Study();
27
28   virtual void closeDocument(bool permanently = true);
29
30   /** @name Insert data model methods.*/
31   //@{
32   bool         appendDataModel( const CAM_DataModel* );
33   virtual bool insertDataModel( const CAM_DataModel*, const int = -1 );
34   bool         insertDataModel( const CAM_DataModel*, const CAM_DataModel* );
35   //@}
36
37   virtual bool removeDataModel( const CAM_DataModel* );
38
39   bool         containsDataModel( const CAM_DataModel* ) const;
40
41   void         dataModels( ModelList& ) const;
42
43 protected:
44   virtual void dataModelInserted( const CAM_DataModel* );
45   virtual bool openDataModel( const QString&, CAM_DataModel* );
46   virtual bool saveDataModel( const QString&, CAM_DataModel* );
47
48 protected slots:
49   virtual void updateModelRoot( const CAM_DataModel* );
50
51 private:
52   //! Data model list
53   ModelList    myDataModels;
54 };
55
56 #ifdef WIN32
57 #pragma warning( default:4251 )
58 #endif
59
60 #endif