xref: /OK3568_Linux_fs/app/forlinx/forlinx_up4_qt/terminal/console.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Denis Shienkov <denis.shienkov@gmail.com>
4 ** Copyright (C) 2012 Laszlo Papp <lpapp@kde.org>
5 ** Contact: http://www.qt.io/licensing/
6 **
7 ** This file is part of the QtSerialPort module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL21$
10 ** Commercial License Usage
11 ** Licensees holding valid commercial Qt licenses may use this file in
12 ** accordance with the commercial license agreement provided with the
13 ** Software or, alternatively, in accordance with the terms contained in
14 ** a written agreement between you and The Qt Company. For licensing terms
15 ** and conditions see http://www.qt.io/terms-conditions. For further
16 ** information use the contact form at http://www.qt.io/contact-us.
17 **
18 ** GNU Lesser General Public License Usage
19 ** Alternatively, this file may be used under the terms of the GNU Lesser
20 ** General Public License version 2.1 or version 3 as published by the Free
21 ** Software Foundation and appearing in the file LICENSE.LGPLv21 and
22 ** LICENSE.LGPLv3 included in the packaging of this file. Please review the
23 ** following information to ensure the GNU Lesser General Public License
24 ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
25 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 **
27 ** As a special exception, The Qt Company gives you certain additional
28 ** rights. These rights are described in The Qt Company LGPL Exception
29 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 **
31 ** $QT_END_LICENSE$
32 **
33 ****************************************************************************/
34 
35 #include "console.h"
36 
37 #include <QScrollBar>
38 
39 #include <QtCore/QDebug>
40 
Console(QWidget * parent)41 Console::Console(QWidget *parent)
42     : QPlainTextEdit(parent)
43     , localEchoEnabled(false)
44 {
45     document()->setMaximumBlockCount(100);
46     QPalette p = palette();
47     p.setColor(QPalette::Base, Qt::black);
48     p.setColor(QPalette::Text, Qt::green);
49     setPalette(p);
50 
51 }
52 
putData(const QByteArray & data)53 void Console::putData(const QByteArray &data)
54 {
55     insertPlainText(QString(data));
56 
57     QScrollBar *bar = verticalScrollBar();
58     bar->setValue(bar->maximum());
59 }
60 
setLocalEchoEnabled(bool set)61 void Console::setLocalEchoEnabled(bool set)
62 {
63     localEchoEnabled = set;
64 }
65 
keyPressEvent(QKeyEvent * e)66 void Console::keyPressEvent(QKeyEvent *e)
67 {
68     switch (e->key()) {
69     case Qt::Key_Backspace:
70     case Qt::Key_Left:
71     case Qt::Key_Right:
72     case Qt::Key_Up:
73     case Qt::Key_Down:
74         break;
75     default:
76         if (localEchoEnabled)
77             QPlainTextEdit::keyPressEvent(e);
78         emit getData(e->text().toLocal8Bit());
79     }
80 }
81 
mousePressEvent(QMouseEvent * e)82 void Console::mousePressEvent(QMouseEvent *e)
83 {
84     Q_UNUSED(e)
85     setFocus();
86 }
87 
mouseDoubleClickEvent(QMouseEvent * e)88 void Console::mouseDoubleClickEvent(QMouseEvent *e)
89 {
90     Q_UNUSED(e)
91 }
92 
contextMenuEvent(QContextMenuEvent * e)93 void Console::contextMenuEvent(QContextMenuEvent *e)
94 {
95     Q_UNUSED(e)
96 }
97