6 #include "SUIT_Operation.h"
11 class SUIT_DataObject;
12 class SUIT_Application;
16 #pragma warning( disable:4251 )
19 class SUIT_EXPORT SUIT_Study : public QObject
24 SUIT_Study( SUIT_Application* );
25 virtual ~SUIT_Study();
27 virtual int id() const;
29 SUIT_DataObject* root() const;
30 QString studyName() const;
31 SUIT_Application* application() const;
33 virtual bool isSaved() const;
34 virtual bool isModified() const;
36 virtual void closeDocument(bool permanently = true);
37 virtual void createDocument();
38 virtual bool openDocument( const QString& );
41 virtual bool saveDocumentAs( const QString& );
43 virtual void update();
45 virtual void sendChangesNotification();
47 // Operation management
48 SUIT_Operation* activeOperation() const;
49 virtual void abortAllOperations();
50 const QPtrList<SUIT_Operation>& operations() const;
52 virtual SUIT_Operation* blockingOperation( SUIT_Operation* ) const;
54 bool start( SUIT_Operation*, const bool check = true );
55 bool abort( SUIT_Operation* );
56 bool commit( SUIT_Operation* );
57 bool suspend( SUIT_Operation* );
58 bool resume( SUIT_Operation* );
61 void studyModified( SUIT_Study* );
64 virtual void setIsSaved( const bool );
65 virtual void setIsModified( const bool );
66 virtual void setRoot( SUIT_DataObject* );
67 virtual void setStudyName( const QString& );
70 typedef QPtrList<SUIT_Operation> Operations;
71 void stop( SUIT_Operation* );
75 SUIT_Application* myApp;
76 SUIT_DataObject* myRoot;
80 Operations myOperations;
81 bool myBlockChangeState;
85 #pragma warning( default:4251 )