X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUPERVGUI%2FSUPERVGUI_Main.h;h=274a179848a2a189abcd66bd2562a18a3f6bcb8b;hb=ea7f29f75031ca13b9454f5e9ac73730f1f584eb;hp=08692040f8072f66d921cc84aba2bdc8f257d265;hpb=1cbaac50370d660382c7c00c94a1ec13741a4e3a;p=modules%2Fsuperv.git diff --git a/src/SUPERVGUI/SUPERVGUI_Main.h b/src/SUPERVGUI/SUPERVGUI_Main.h index 0869204..274a179 100644 --- a/src/SUPERVGUI/SUPERVGUI_Main.h +++ b/src/SUPERVGUI/SUPERVGUI_Main.h @@ -28,12 +28,11 @@ #ifndef SUPERVGUI_Main_H #define SUPERVGUI_Main_H -//#include "SUPERVGUI.h" #include "SUPERVGraph_ViewFrame.h" -#include "SUPERVGUI_Array.h" -#include "SUPERVGUI_Graph.h" #include "QAD_Desktop.h" -#include "SUPERVGUI_Port.h" +#include "SUPERVGUI_Canvas.h" +#include "SUPERVGUI_CanvasView.h" +#include "SUPERVGUI_ArrayView.h" #include #include @@ -42,30 +41,35 @@ class QAD_Study; class QAD_ObjectBrowser; class QAD_Message; +class QAD_SpinBoxDbl; +class QLineEdit; +class QComboBox; class NOTIFICATION_Consumer; class SUPERVGUI_Thread; class SUPERVGUI_Main: public SUPERVGraph_View { Q_OBJECT + // asv : 18.11.04 : making Thread class a friend in order to allow it to modify + // a private field myGUIEventLoopFinished + friend class SUPERVGUI_Thread; + public: - SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, bool fromIOR); - SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, bool isModify, const char* filename); SUPERVGUI_Main(SUPERVGraph_ViewFrame*, QAD_Desktop*, SUPERV_Graph); virtual ~SUPERVGUI_Main(); - void run(); - void startExecute(); + void run( const bool andSuspend ); void kill(); void suspendResume(); - void stopRestart(); - bool exportDataflow(QString theFile); + //void stopRestart(); + void openSubGraph(SUPERV_CNode theNode, bool correct = false); bool putDataStudy(SUPERV_Port port, const char* inout); - void setData(SUPERVGUI_PortIn* p); - SUPERVGUI_Graph* getGraph(); - SUPERVGUI_Array* getArray(); + SUPERVGUI_CanvasArray* getCanvasArray(); + SUPERVGUI_ArrayView* getArrayView(); + SUPERVGUI_Canvas* getCanvas(); + SUPERVGUI_CanvasView* getCanvasView(); SUPERV_Graph getDataflow(); QAD_Message* getMessage(); QAD_Study* getStudy(); @@ -80,19 +84,17 @@ class SUPERVGUI_Main: public SUPERVGraph_View { QString getHashCode() { return myHashCode; }; - + + bool isDataflowInStudy() const; bool isEditable() { if (SUPERV_isNull(dataflow)) return false; return !dataflow->IsReadOnly(); }; - bool isFromStudy() { return myIsFromStudy; } - void setAsFromStudy(bool theToStudy); - void checkIsInStudy(); - void addComputeNode(SUPERV_CNode theNode); void addControlNode(SUPERV_CNode theStartNode, SUPERV_CNode theEndNode, bool Update); void addGOTONode(SUPERV_CNode theNode); + void addMacroNode(SUPERV_CNode theNode); void setPaletteBackgroundColor(const QColor& color); @@ -118,19 +120,39 @@ class SUPERVGUI_Main: public SUPERVGraph_View { void startTimer(); void executionFinished(); + bool eventFilter( QObject* o, QEvent* e); + + void Editing(); // any Editing operation is to be performed -> + // activate Editors data model in Engine + bool ReadyToModify(); // must be called before any modification + // operation - asks to kill execution of dataflow. If returns false - + // modification (==Editing() ) is not allowed. + + void removeArrayChild(SUPERV::CNode_ptr theNode); + + GraphViewType getViewType() { return myCurrentView; } + + signals: + void KillMyThread(bool theValue); + public slots: void execute(char * theNodeNode, SUPERV::GraphState theNodeState); void sync(); void syncAsync(); - bool addStudy(); + void addDataflowToStudy(); void insertFile(); void addNode(); void changeInformation(); void copy(); - void showTable(); - void showFullGraph(); + + void showCanvasTable(); void showContolFlow(); + void showCanvas(); + void filterNotification(); + void changeDSGraphParameters(); + void onSubGraphClosed(QAD_StudyFrame* ); + void onSubGraphActivated(QAD_StudyFrame* ); private slots: void chooseData(QListViewItem* item); @@ -140,45 +162,51 @@ class SUPERVGUI_Main: public SUPERVGraph_View { void init(QAD_Desktop* parent); void syncNotification(); bool isFiltered(char* graph, char* node, char* type, char* message, char* sender, long counter, char* date, long stamp); + void closeEvent(QCloseEvent*); SUPERV_Graph dataflow; + + QMap mySubGraphs; + QMap mySubGraphMap; + QAD_StudyFrame* myLastGraph; + QAD_Study* study; QAD_ObjectBrowser* objectBrowser; QAD_Message* message; - SUPERVGUI_Graph* graph; - - GraphViewType myCurrentView; - SUPERVGUI_Array* array; - bool choosing; - SUPERVGUI_PortIn* portIn; + GraphViewType myCurrentView; + SUPERVGUI_CanvasArray* myArray; + SUPERVGUI_ArrayView* myArrayView; + SUPERVGUI_Canvas* myCanvas; + SUPERVGUI_CanvasView* myCanvasView; - QString myHashCode; + bool choosing; + + QString myHashCode; - bool myIsFromStudy; - int myCopyNum; + bool myIsFromStudy; + int myCopyNum; - SALOME_NamingService* myNService; - QDateTime myRunTime; // mpv 23.12.2002: we need time of running of dataflow - // for right Study document modification + SALOME_NamingService* myNService; + QDateTime myRunTime; // mpv 23.12.2002: we need time of running of dataflow + // for correct Study document modification /* notification data */ - NOTIFICATION_Consumer* notification; - bool myFiltered; - bool myLogged; - QString myLogFileName; - FILE* myLogFile; - bool myWarning; - bool myStep; - bool myTrace; - bool myVerbose; - bool myIsKilled; - bool myIsLocked; - - SUPERVGUI_Thread* myThread; + NOTIFICATION_Consumer* notification; + bool myFiltered; + bool myLogged; + QString myLogFileName; + FILE* myLogFile; + bool myWarning; + bool myStep; + bool myTrace; + bool myVerbose; + bool myIsLocked; + + SUPERVGUI_Thread* myThread; QPtrList< char * > myEventNodes ; QPtrList< SUPERV::GraphState > myStates ; - QTimer* myTimer; + QTimer* myTimer; }; class SUPERVGUI_Thread : public QObject, public QThread { @@ -188,16 +216,43 @@ class SUPERVGUI_Thread : public QObject, public QThread { ~SUPERVGUI_Thread(); void startThread(const char* m); - void stopThread(const char* m); void setMain(SUPERVGUI_Main* theMain); + public slots: + void KillThread(bool theValue); + protected: void run(); private: bool myIsActive; SUPERVGUI_Main* myMain; + QMutex myMutex; + +}; + +/** + * A dialog for setting Graph execution parameters + */ +class SUPERVGUI_DSGraphParameters: public QDialog { + Q_OBJECT + + public: + SUPERVGUI_DSGraphParameters(SUPERV_Graph theGraph, bool isReadOnly); + virtual ~SUPERVGUI_DSGraphParameters(); + + private slots: + void accept(); + + private: + + void setData(); + + QAD_SpinBoxDbl* myDeltaTime; + QLineEdit* myTimeOut; + QComboBox* myDataStreamTrace; + SUPERV_Graph myGraph; }; #endif