File indexing completed on 2024-04-28 05:50:39
0001 /* 0002 SPDX-FileCopyrightText: 2006-2008 Robert Knight <robertknight@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef HTMLDECODER_H 0008 #define HTMLDECODER_H 0009 0010 // Konsole decoders 0011 #include "TerminalCharacterDecoder.h" 0012 0013 #include <QFont> 0014 class QString; 0015 0016 namespace Konsole 0017 { 0018 /** 0019 * A terminal character decoder which produces pretty HTML markup 0020 */ 0021 class HTMLDecoder : public TerminalCharacterDecoder 0022 { 0023 public: 0024 /** 0025 * Constructs an HTML decoder using a default black-on-white color scheme. 0026 */ 0027 explicit HTMLDecoder(const QColor *colorTable, const QFont &profileFont = QFont()); 0028 0029 void decodeLine(const Character *const characters, int count, LineProperty properties) override; 0030 0031 void begin(QTextStream *output) override; 0032 void end() override; 0033 0034 private: 0035 void openSpan(QString &text, const QString &style); 0036 void closeSpan(QString &text); 0037 0038 QTextStream *_output; 0039 QFont _profileFont; 0040 QColor _colorTable[TABLE_COLORS]; 0041 bool _innerSpanOpen; 0042 RenditionFlags _lastRendition; 0043 CharacterColor _lastForeColor; 0044 CharacterColor _lastBackColor; 0045 bool _validProfile; 0046 }; 0047 } 0048 0049 #endif