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 createDocument();
37 virtual void closeDocument( bool = true );
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& );
69 virtual void operationStarted( SUIT_Operation* );
70 virtual void operationAborted( SUIT_Operation* );
71 virtual void operationStopped( SUIT_Operation* );
72 virtual void operationCommited( SUIT_Operation* );
74 virtual bool openTransaction();
75 virtual bool abortTransaction();
76 virtual bool hasTransaction() const;
77 virtual bool commitTransaction( const QString& = QString::null );
80 typedef QPtrList<SUIT_Operation> Operations;
81 void stop( SUIT_Operation* );
85 SUIT_Application* myApp;
86 SUIT_DataObject* myRoot;
90 Operations myOperations;
91 bool myBlockChangeState;
93 friend class SUIT_Operation;
97 #pragma warning( default:4251 )