Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pyconsole.h
Go to the documentation of this file.
1 
8 #ifndef PYCONSOLE_H_
9 #define PYCONSOLE_H_
10 
11 #include <QObject>
12 #include <QTextEdit>
13 #include <QMutex>
14 #include <QWaitCondition>
15 #include <QToolBar>
16 #include "core/document.h"
17 
18 class CAPyConsole : public QTextEdit {
19  Q_OBJECT
20 public:
21  enum TxtType {
25  };
26 
27  CAPyConsole ( CADocument *doc, QWidget *parent=0);
28 
29  QString asyncBufferedInput(QString prompt);
30  void asyncBufferedOutput(QString bufInp, bool bStdErr);
31  void asyncPluginInit();
33 
34 protected:
35  void keyPressEvent (QKeyEvent * e);
36 
37 private slots:
38  void txtAppend(const QString & text, TxtType txtType = txtNormal );
39  void on_txtChanged();
40  void on_posChanged();
41  void on_selChanged();
42  void on_fmtChanged();
43  void syncPluginInit();
44 
45 signals:
46  void sig_txtAppend(const QString & text, TxtType stdType);
47  void sig_syncPluginInit();
48 
49 private:
50  enum HistLay {
53  };
54 
55  struct TxtFragment {
56  QString text;
58  };
59 
60  // void txtAppend(...) -> is in signals
61  void txtRevert();
62  QString txtGetInput(bool bReadText = false);
63  void txtSetInput(QString input, bool bUpdateText = true);
64 
65  void histAdd();
66  void histGet(HistLay histLay);
67 
68  // text in the console
69  QTextCursor _curInput, _curNew;
72 
74  QList<TxtFragment*> _txtFixed;
75  QString _strInput;
76 
77  // history
79  QList<QString> _histList;
80  QString _histOldInput; // old _strInput
81 
82  QTextCharFormat _fmtNormal;
83  QTextCharFormat _fmtStdout;
84  QTextCharFormat _fmtStderr;
85 
86  // thread
87  QString _bufSend;
88  QMutex *_thrWaitMut;
89  QWaitCondition *_thrWait;
90  QMutex *_thrIntrWaitMut;
91  QWaitCondition *_thrIntrWait;
92 
93  // pyconsole '/' commands
94  bool cmdIntern(QString strCmd);
95  QString _strEntryFunc;
96 
97  // rarely used
100 };
101 
102 #endif /* PYCONSOLE_H_ */
Definition: pyconsole.h:51
void asyncBufferedOutput(QString bufInp, bool bStdErr)
void on_selChanged()
Definition: pyconsole.cpp:543
QMutex * _thrWaitMut
Definition: pyconsole.h:88
TxtFragment * _tf
Definition: pyconsole.h:73
QString text
Definition: pyconsole.h:56
QTextCharFormat _fmtStderr
Definition: pyconsole.h:84
Definition: pyconsole.h:52
CAPyConsole(CADocument *doc, QWidget *parent=0)
QTextCharFormat _fmtNormal
Definition: pyconsole.h:82
QString _strInput
Definition: pyconsole.h:75
void syncPluginInit()
Definition: pyconsole.cpp:545
Definition: pyconsole.h:22
QWaitCondition * _thrIntrWait
Definition: pyconsole.h:91
void txtRevert()
Class which represents the current document.
Definition: document.h:19
QString txtGetInput(bool bReadText=false)
bool _bIgnTxtChange
Definition: pyconsole.h:71
TxtType
Definition: pyconsole.h:21
QTextCursor _curInput
Definition: pyconsole.h:69
int _histIndex
Definition: pyconsole.h:78
QString _strEntryFunc
Definition: pyconsole.h:95
void on_txtChanged()
Definition: pyconsole.cpp:541
void on_posChanged()
Definition: pyconsole.cpp:542
QString asyncBufferedInput(QString prompt)
void txtAppend(const QString &text, TxtType txtType=txtNormal)
Definition: pyconsole.cpp:540
QList< TxtFragment * > _txtFixed
Definition: pyconsole.h:74
QTextCursor _curNew
Definition: pyconsole.h:69
CADocument * _canorusDoc
Definition: pyconsole.h:98
QWidget * _parent
Definition: pyconsole.h:99
QString _bufSend
Definition: pyconsole.h:87
Definition: pyconsole.h:24
void histAdd()
int _iCurNowOld
Definition: pyconsole.h:70
void txtSetInput(QString input, bool bUpdateText=true)
void on_fmtChanged()
Definition: pyconsole.cpp:544
int _iCurStart
Definition: pyconsole.h:70
QTextCharFormat _fmtStdout
Definition: pyconsole.h:83
bool cmdIntern(QString strCmd)
HistLay
Definition: pyconsole.h:50
QWaitCondition * _thrWait
Definition: pyconsole.h:89
Definition: pyconsole.h:18
int _iCurNow
Definition: pyconsole.h:70
void histGet(HistLay histLay)
QString _histOldInput
Definition: pyconsole.h:80
void sig_txtAppend(const QString &text, TxtType stdType)
void asyncPluginInit()
void sig_syncPluginInit()
void asyncKeyboardInterrupt()
Definition: pyconsole.h:55
QMutex * _thrIntrWaitMut
Definition: pyconsole.h:90
TxtType type
Definition: pyconsole.h:57
void keyPressEvent(QKeyEvent *e)
Definition: pyconsole.cpp:546
Definition: pyconsole.h:23
QList< QString > _histList
Definition: pyconsole.h:79