#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 <qobject.h>
#include <qapplication.h>
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 kill();
void suspendResume();
void stopRestart();
- bool exportDataflow(QString theFile);
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();
bool eventFilter( QObject* o, QEvent* e);
+ bool IsGUIEventLoopFinished() const { return myGUIEventLoopFinished; }
+
+ void Editing(); // any Editing operation is to be performed ->
+ // activate Editors data model in Engine
+
signals:
void KillMyThread(bool theValue);
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 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;
QAD_Study* study;
QAD_ObjectBrowser* objectBrowser;
QAD_Message* message;
- SUPERVGUI_Graph* graph;
GraphViewType myCurrentView;
- SUPERVGUI_Array* array;
+ SUPERVGUI_CanvasArray* myArray;
+ SUPERVGUI_ArrayView* myArrayView;
SUPERVGUI_Canvas* myCanvas;
SUPERVGUI_CanvasView* myCanvasView;
bool choosing;
- SUPERVGUI_PortIn* portIn;
QString myHashCode;
QPtrList< char * > myEventNodes ;
QPtrList< SUPERV::GraphState > myStates ;
QTimer* myTimer;
+
+ // asv : 18.11.04 : fix for bug 6170 : this field is FALSE when SUPERVGUI_Thread
+ // is inside event loop during graph execution. dataflow->IsDone() returns true
+ // BEFORE all events are handled (a few of them are still being processed in GUI thread),
+ // and for bug 6170 it is neccessary to know exactly when GUI events processing stops..
+ bool myGUIEventLoopFinished;
};
class SUPERVGUI_Thread : public QObject, public QThread {
};
-//**************************************************************
+/**
+ * A dialog for setting Graph execution parameters
+ */
class SUPERVGUI_DSGraphParameters: public QDialog {
Q_OBJECT
void accept();
private:
-
+
void setData();
-
+
QAD_SpinBoxDbl* myDeltaTime;
QLineEdit* myTimeOut;
QComboBox* myDataStreamTrace;