summaryrefslogtreecommitdiffstats
path: root/examples/terminal/console.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/terminal/console.cpp')
-rw-r--r--examples/terminal/console.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/examples/terminal/console.cpp b/examples/terminal/console.cpp
new file mode 100644
index 00000000..a813687b
--- /dev/null
+++ b/examples/terminal/console.cpp
@@ -0,0 +1,56 @@
+#include "console.h"
+
+#include <QtWidgets/QScrollBar>
+
+#include <QtCore/QDebug>
+
+Console::Console(QWidget *parent) :
+ QPlainTextEdit(parent)
+{
+ document()->setMaximumBlockCount(100);
+ QPalette p = palette();
+ p.setColor(QPalette::Base, Qt::black);
+ p.setColor(QPalette::Text, Qt::green);
+ setPalette(p);
+
+}
+
+void Console::putData(const QByteArray &data)
+{
+ insertPlainText(QString(data));
+
+ QScrollBar *bar = verticalScrollBar();
+ bar->setValue(bar->maximum());
+}
+
+void Console::keyPressEvent(QKeyEvent *e)
+{
+ switch (e->key()) {
+ case Qt::Key_Backspace:
+ case Qt::Key_Left:
+ case Qt::Key_Right:
+ case Qt::Key_Up:
+ case Qt::Key_Down:
+ // skip processing
+ break;
+ default:
+ QPlainTextEdit::keyPressEvent(e);
+ emit getData(e->text().toLocal8Bit());
+ }
+}
+
+void Console::mousePressEvent(QMouseEvent *e)
+{
+ Q_UNUSED(e)
+ setFocus();
+}
+
+void Console::mouseDoubleClickEvent(QMouseEvent *e)
+{
+ Q_UNUSED(e)
+}
+
+void Console::contextMenuEvent(QContextMenuEvent *e)
+{
+ Q_UNUSED(e)
+}