X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUPERVGUI%2FSUPERVGUI_Service.h;h=1d9a5576c6b5c9005006def9214220f409b70380;hb=ea7f29f75031ca13b9454f5e9ac73730f1f584eb;hp=c04a154cb506a377f5fdd781e28b11c001d4c0e5;hpb=c46f174ce52809de76f2a22795db89d229aedc7e;p=modules%2Fsuperv.git diff --git a/src/SUPERVGUI/SUPERVGUI_Service.h b/src/SUPERVGUI/SUPERVGUI_Service.h index c04a154..1d9a557 100644 --- a/src/SUPERVGUI/SUPERVGUI_Service.h +++ b/src/SUPERVGUI/SUPERVGUI_Service.h @@ -34,15 +34,17 @@ using namespace std; #include #include +class QListBox; -//***************************************************** -// Pane for Python script editing -//***************************************************** +/*! + * Pane for Python script editing + */ class SUPERVGUI_PythonEditPane: public QFrame { + Q_OBJECT - public: - SUPERVGUI_PythonEditPane(QWidget* theParent); +public: + SUPERVGUI_PythonEditPane( QWidget* theParent, const bool isNodeCreation, int& theX, int& theY ); ~SUPERVGUI_PythonEditPane() {}; QString getFuncName(); @@ -53,51 +55,75 @@ class SUPERVGUI_PythonEditPane: public QFrame { SUPERV_Strings getFunction(); void setFunction(SUPERV_Strings theStr); - public slots: +public slots: + // load all functions from an XML file into internal structures void loadFile(); - void readFunction(); - private: + // when user presses "Enter" - automatically set indentation of next line + void autoIndentLine(); - //QLineEdit* myNameEdt; - //QLineEdit* myParamEdt; - QTextEdit* myText; - //QLineEdit* myOutParamEdt; - QPushButton* myNextBtn; + // when user select another function name in combo box - fill myText with its body + void readFunction( int i ); - QTextStream* myIStream; - QFile* myFile; -}; + // when user presses "Library" button - open a "Create node from Library" dialog + void library(); + +private: + bool myIsWithLibrary; + QTextEdit* myText; + QComboBox* myFunctionsCombo; + + // fills myPyFunctions list. called from loadFile() after user selects a file. + void initPyFunctions( QTextStream& ); + + // list of Python functions. filled in loadFile(), strings (functions) retrieved + // in readFunction() + QStringList myPyFunctions; + int& myX; // comes from SUPERVGUI_Service + int& myY; // comes from SUPERVGUI_Service -//***************************************************** -// Dialog box for node creation -//***************************************************** +}; +/*! + * Dialog box for node creation + */ class SUPERVGUI_Service: public QDialog { + Q_OBJECT - public: +public: SUPERVGUI_Service(SALOME_NamingService* ns); ~SUPERVGUI_Service(); void choose(); - protected: + /*! + * Do the following actions for newly created Engine's CNode: + * 1. Create a presentation for it (CanvasNode) + * 2. Place the CanvasNode to the current top-left corner or the current viewport + * 3. Increment the coordinates of the next CanvasNode (new nodes are "cascaded" when several of them are created at once) + * PS theEndNode is passed only for Loop and Switch nodes (EndLoop and EndSwitch) + */ + static void addNode( SUPERV::CNode_var theNode, SUPERV::INode_var theEndNode, int& theX, int& theY ); + +protected: void showEvent(QShowEvent* theEvent); - private: +private: void initialise(); - private slots: +private slots: void tabChanged(QWidget *); void addComputeNode(); void addFactoryNode(); void addInlineNode(); + void addMacroNode(); void typeNodeSelected(int theRow); + void loadGraph(); - private: - QListView* components; +private: + QListView* components; SALOME_NamingService* naming; int myX, myY; QWidgetStack* myStackWidget; @@ -110,6 +136,9 @@ class SUPERVGUI_Service: public QDialog { SUPERVGUI_PythonEditPane* myMorePane; SUPERVGUI_PythonEditPane* myNextPane; + QListView* myMacroPane; + QFile* myMFile; + QTabWidget* myTabPane; bool myIsInline; @@ -120,9 +149,10 @@ class SUPERVGUI_Service: public QDialog { * Edit Python dialog */ class SUPERVGUI_EditPythonDlg: public QDialog { + Q_OBJECT - public: +public: SUPERVGUI_EditPythonDlg(bool isLoop = false); ~SUPERVGUI_EditPythonDlg() {}; @@ -169,7 +199,7 @@ class SUPERVGUI_EditPythonDlg: public QDialog { void setNextFunction(SUPERV_Strings theStr) { myNextPane->setFunction(theStr); } - private: +private: SUPERVGUI_PythonEditPane* myEditPane; SUPERVGUI_PythonEditPane* myInitPane; SUPERVGUI_PythonEditPane* myMorePane;