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 }