1 #ifndef SUIT_OPERATION_H
2 #define SUIT_OPERATION_H
7 #include <qkeysequence.h>
12 class SUIT_Application;
14 class SUIT_EXPORT SUIT_Operation : public QObject
19 enum OperationState { Waiting, Running, Suspended };
22 SUIT_Operation( SUIT_Application* );
23 virtual ~SUIT_Operation();
25 OperationState state() const;
26 SUIT_Study* study() const;
27 SUIT_Application* application() const;
29 bool setSlot( const QObject* theReceiver, const char* theSlot );
39 void started( SUIT_Operation* );
40 void aborted( SUIT_Operation* );
41 void resumed( SUIT_Operation* );
42 void commited( SUIT_Operation* );
43 void suspended( SUIT_Operation* );
47 virtual bool isReadyToStart();
48 virtual void startOperation();
49 virtual void abortOperation();
50 virtual void commitOperation();
51 virtual void resumeOperation();
52 virtual void suspendOperation();
54 /*! Returns TRUE if the given operator is valid for (can be started "above") the current operator*/
55 virtual bool isValid( SUIT_Operation* ) const;
58 Returns TRUE if current operation must not be checked for
59 ActiveOperation->IsValid(this). Default implementation returns FALSE,
60 so it is being checked for IsValid, but some operations may overload IsGranted()
61 In this case they will always start, no matter what operation is running.
63 virtual bool isGranted() const;
65 virtual void setStudy( SUIT_Study* );
66 virtual void setApplication( SUIT_Application* );
69 SUIT_Application* myApp;
71 OperationState myState;
73 friend class SUIT_Study;