octave_connection.h

Go to the documentation of this file.
00001 /* Copyright (C) 2006 P.L. Lucas
00002  *
00003  * This program is free software; you can redistribute it and/or modify
00004  * it under the terms of the GNU General Public License as published by
00005  * the Free Software Foundation; either version 2 of the License, or
00006  * (at your option) any later version.
00007  *
00008  * This program is distributed in the hope that it will be useful,
00009  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011  * GNU General Public License for more details.
00012  *
00013  * You should have received a copy of the GNU General Public License
00014  * along with this program; if not, write to the Free Software
00015  * Foundation, Inc., 59 Temple Place, Suite 330, 
00016  * Boston, MA 02111-1307, USA. 
00017  */
00018 
00019 #ifndef __OCTAVE_CONNECTION_H__
00020 #define __OCTAVE_CONNECTION_H__
00021 
00022 #include <QProcess>
00023 #include <QTextEdit>
00024 #include <QBuffer>
00025 #include "config.h"
00026 
00027 
00028 /** This class build QProcess and exec Octave. Octave input and output are controlled by this class.
00029 */
00030 class OctaveConnection : public QProcess
00031 {
00032         Q_OBJECT
00033         public:
00034         OctaveConnection(QObject * parent = 0);
00035         /** Sets octave path.
00036          * @param path path to Octave.
00037          */
00038         void setOctavePath(const QString path);
00039         void startOctave();
00040         //void setTextEdit(QTextEdit *text);
00041         /** Sends command to Octave.
00042          * @param text Command to send.
00043          * @param show Shows command in Terminal or not.
00044          */
00045         void command_enter(const QString &text, bool show=true);
00046         private:
00047         QString octave_path;
00048         //QTextEdit *text;
00049         QString line_buffer;
00050         QBuffer error_buffer;
00051         public slots:
00052         void octaveOutputSlot();
00053         void octaveErrorOutputSlot();
00054         signals:
00055         /**Emits this signal when line is available from stderr of Octave.*/
00056         void line_ready(QString line);
00057         void output_ready(QString output);
00058         void error_ready(QString error);
00059         void command_ready(QString command);
00060 };
00061 
00062 #endif
00063 

Generated on Wed Mar 21 10:32:50 2007 for QtOctave by  doxygen 1.4.7