From a6f77996c7c4e7bf848d4213d44d2eed478aed54 Mon Sep 17 00:00:00 2001 From: Meinhard Ritscher Date: Sat, 13 Feb 2016 18:03:44 +0100 Subject: [PATCH] switching to QPlainTextEdit and simply text formatting - we prefer QPlainTextEdit over QTextEdit because it is optimized for handling plain text (http://doc.qt.io/qt-5/qtwidgets-widgets-codeeditor-example.html) - simplify text formatting --- datadisplay.cpp | 28 ++++++++++++---------------- datadisplay.h | 4 ++-- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/datadisplay.cpp b/datadisplay.cpp index ca1261b..b97d7d5 100644 --- a/datadisplay.cpp +++ b/datadisplay.cpp @@ -28,7 +28,7 @@ #include DataDisplay::DataDisplay(QWidget *parent) - : QTextEdit(parent) + : QPlainTextEdit(parent) , m_hexBytes(0) , m_displayHex(false) , m_displayTime(false) @@ -42,7 +42,7 @@ DataDisplay::DataDisplay(QWidget *parent) void DataDisplay::clear() { m_hexBytes = 0; - QTextEdit::clear(); + QPlainTextEdit::clear(); } /** @@ -117,24 +117,20 @@ void DataDisplay::displayData(const QByteArray &data) if (m_displayHex) { moveCursor(QTextCursor::End); - mergeCurrentCharFormat(*m_format_prefix); - insertPlainText(line.prefix); + textCursor().insertText(line.prefix, *m_format_prefix); moveCursor(QTextCursor::End); - mergeCurrentCharFormat(*m_format_hex); - insertPlainText(line.data); + textCursor().insertText(line.data, *m_format_hex); + moveCursor(QTextCursor::End); - mergeCurrentCharFormat(*m_format_ascii); - insertPlainText(line.trailer); + textCursor().insertText(line.trailer, *m_format_ascii); } else { if (line.prefix.size() > 0) { moveCursor(QTextCursor::End); - mergeCurrentCharFormat(*m_format_prefix); - insertPlainText(line.prefix); + textCursor().insertText(line.prefix, *m_format_prefix); } moveCursor(QTextCursor::End); - mergeCurrentCharFormat(*m_format_data); - insertPlainText(line.data); + textCursor().insertText(line.data, *m_format_data); } } m_data.clear(); @@ -301,14 +297,14 @@ void DataDisplay::setDisplayTime(bool displayTime) void DataDisplay::setDisplayHex(bool displayHex) { if (displayHex) { - setLineWrapMode(QTextEdit::NoWrap); + setLineWrapMode(QPlainTextEdit::NoWrap); if (!m_previous_ended_with_nl) { displayData(QByteArray(1, '\n')); } m_hexBytes = 0; m_displayHex = displayHex; } else { - setLineWrapMode(QTextEdit::WidgetWidth); + setLineWrapMode(QPlainTextEdit::WidgetWidth); m_displayHex = displayHex; if (!m_previous_ended_with_nl) { displayData(QByteArray(1, '\n')); @@ -349,12 +345,12 @@ void DataDisplay::setupTextFormats() font.setPointSize(10); format.setFont(font); m_format_data = new QTextCharFormat(format); - qDebug() << m_format_data->foreground(); + // qDebug() << m_format_data->foreground(); col = QColor(120, 180, 200); format.setForeground(col); m_format_prefix = new QTextCharFormat(format); - qDebug() << m_format_prefix->foreground(); + // qDebug() << m_format_prefix->foreground(); col = QColor(Qt::black); format.setForeground(col); diff --git a/datadisplay.h b/datadisplay.h index 78b6103..79e4e07 100644 --- a/datadisplay.h +++ b/datadisplay.h @@ -22,9 +22,9 @@ #ifndef DATADISPLAY_H #define DATADISPLAY_H -#include +#include -class DataDisplay : public QTextEdit +class DataDisplay : public QPlainTextEdit { Q_OBJECT