File indexing completed on 2024-04-28 05:50:42

0001 /*
0002     This source file is part of Konsole, a terminal emulator.
0003 
0004     SPDX-FileCopyrightText: 2007-2008 Robert Knight <robertknight@gmail.com>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 // Own
0010 #include "KeyboardTranslatorWriter.h"
0011 
0012 // Qt
0013 #include <QIODevice>
0014 #include <QTextStream>
0015 
0016 using namespace Konsole;
0017 
0018 KeyboardTranslatorWriter::KeyboardTranslatorWriter(QIODevice *destination)
0019     : _destination(destination)
0020     , _writer(nullptr)
0021 {
0022     Q_ASSERT(destination && destination->isWritable());
0023 
0024     _writer = new QTextStream(_destination);
0025 }
0026 
0027 KeyboardTranslatorWriter::~KeyboardTranslatorWriter()
0028 {
0029     delete _writer;
0030 }
0031 
0032 void KeyboardTranslatorWriter::writeHeader(const QString &description)
0033 {
0034     *_writer << "keyboard \"" << description << '\"' << '\n';
0035 }
0036 
0037 void KeyboardTranslatorWriter::writeEntry(const KeyboardTranslator::Entry &entry)
0038 {
0039     QString result;
0040     if (entry.command() != KeyboardTranslator::NoCommand) {
0041         result = entry.resultToString();
0042     } else {
0043         result = QLatin1Char('\"') + entry.resultToString() + QLatin1Char('\"');
0044     }
0045 
0046     *_writer << "key " << entry.conditionToString() << " : " << result << '\n';
0047 }