Canorus  0.0
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 "score/document.h"
17 
18 class CAPyConsole : public QTextEdit {
19  Q_OBJECT
20 public:
21  enum TxtType {
24  txtStderr
25  };
26 
27  CAPyConsole ( CADocument *doc, QWidget *parent=0);
28 
29  QString asyncBufferedInput(QString prompt);
30  void asyncBufferedOutput(QString bufInp, bool bStdErr);
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);
48 
49 private:
50  enum HistLay {
52  histNext
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
99  QWidget* _parent;
100 };
101 
102 #endif /* PYCONSOLE_H_ */
CAPyConsole::asyncPluginInit
void asyncPluginInit()
CAPyConsole::_histList
QList< QString > _histList
Definition: pyconsole.h:79
QObject
CAPyConsole::_strInput
QString _strInput
Definition: pyconsole.h:75
CAPyConsole
Definition: pyconsole.h:18
pluginmanager.h
pyconsole.h
CAPyConsole::histPrev
@ histPrev
Definition: pyconsole.h:51
QTextEdit
CADocument
Class which represents the current document.
Definition: document.h:19
CAPyConsole::txtRevert
void txtRevert()
document.h
CAPyConsole::_fmtStderr
QTextCharFormat _fmtStderr
Definition: pyconsole.h:84
CAPyConsole::CAPyConsole
CAPyConsole(CADocument *doc, QWidget *parent=0)
CAPyConsole::txtGetInput
QString txtGetInput(bool bReadText=false)
plugin.h
CAPyConsole::_strEntryFunc
QString _strEntryFunc
Definition: pyconsole.h:95
CAPyConsole::txtStderr
@ txtStderr
Definition: pyconsole.h:24
CAPyConsole::_tf
TxtFragment * _tf
Definition: pyconsole.h:73
CAPyConsole::_fmtNormal
QTextCharFormat _fmtNormal
Definition: pyconsole.h:82
CAPyConsole::TxtFragment::text
QString text
Definition: pyconsole.h:56
CAPyConsole::syncPluginInit
void syncPluginInit()
Definition: pyconsole.cpp:565
CAPyConsole::_histIndex
int _histIndex
Definition: pyconsole.h:78
CAPyConsole::_thrIntrWait
QWaitCondition * _thrIntrWait
Definition: pyconsole.h:91
CAPyConsole::_bufSend
QString _bufSend
Definition: pyconsole.h:87
CAPyConsole::txtAppend
void txtAppend(const QString &text, TxtType txtType=txtNormal)
Definition: pyconsole.cpp:560
CAPyConsole::_txtFixed
QList< TxtFragment * > _txtFixed
Definition: pyconsole.h:74
CAPyConsole::histAdd
void histAdd()
CAPyConsole::_canorusDoc
CADocument * _canorusDoc
Definition: pyconsole.h:98
CAPyConsole::histNext
@ histNext
Definition: pyconsole.h:52
CAPyConsole::_curNew
QTextCursor _curNew
Definition: pyconsole.h:69
CAPyConsole::_parent
QWidget * _parent
Definition: pyconsole.h:99
CAPyConsole::_bIgnTxtChange
bool _bIgnTxtChange
Definition: pyconsole.h:71
CAPyConsole::_curInput
QTextCursor _curInput
Definition: pyconsole.h:69
CAPyConsole::txtNormal
@ txtNormal
Definition: pyconsole.h:22
CAPyConsole::asyncBufferedInput
QString asyncBufferedInput(QString prompt)
NULL
#define NULL
Definition: glib.h:121
CAPyConsole::_iCurNowOld
int _iCurNowOld
Definition: pyconsole.h:70
CAPyConsole::_iCurStart
int _iCurStart
Definition: pyconsole.h:70
CAPyConsole::TxtType
TxtType
Definition: pyconsole.h:21
CAPyConsole::TxtFragment::type
TxtType type
Definition: pyconsole.h:57
CAPyConsole::on_txtChanged
void on_txtChanged()
Definition: pyconsole.cpp:561
CAPyConsole::on_posChanged
void on_posChanged()
Definition: pyconsole.cpp:562
swigpython.h
CAPyConsole::on_fmtChanged
void on_fmtChanged()
Definition: pyconsole.cpp:564
CAPyConsole::histGet
void histGet(HistLay histLay)
CAPyConsole::_thrWait
QWaitCondition * _thrWait
Definition: pyconsole.h:89
CAPyConsole::sig_syncPluginInit
void sig_syncPluginInit()
CAPyConsole::_fmtStdout
QTextCharFormat _fmtStdout
Definition: pyconsole.h:83
CAPyConsole::txtSetInput
void txtSetInput(QString input, bool bUpdateText=true)
CAPyConsole::sig_txtAppend
void sig_txtAppend(const QString &text, TxtType stdType)
CAMainWin
Canorus main window Class CAMainWin represents Canorus main window. The core layout is generated usin...
Definition: plugins_swig.h:6
canorus.h
CAPyConsole::txtStdout
@ txtStdout
Definition: pyconsole.h:23
CAPyConsole::asyncKeyboardInterrupt
void asyncKeyboardInterrupt()
CAPyConsole::cmdIntern
bool cmdIntern(QString strCmd)
CAPyConsole::_histOldInput
QString _histOldInput
Definition: pyconsole.h:80
CAPyConsole::HistLay
HistLay
Definition: pyconsole.h:50
CAPyConsole::_thrIntrWaitMut
QMutex * _thrIntrWaitMut
Definition: pyconsole.h:90
CAPyConsole::keyPressEvent
void keyPressEvent(QKeyEvent *e)
Definition: pyconsole.cpp:566
CAPyConsole::asyncBufferedOutput
void asyncBufferedOutput(QString bufInp, bool bStdErr)
CAPyConsole::_iCurNow
int _iCurNow
Definition: pyconsole.h:70
CAPyConsole::on_selChanged
void on_selChanged()
Definition: pyconsole.cpp:563
CAPyConsole::_thrWaitMut
QMutex * _thrWaitMut
Definition: pyconsole.h:88
CAPyConsole::TxtFragment
Definition: pyconsole.h:55