Simplify QTableGenerator::printComposeTable()

Instead of filling a QString with lots of temporaries in-between,
simply stream everything into QDebug directly.

Requires the use of #ifndef QT_NO_DEBUG_STREAM because of the
explicit mentioning of QDebug.

Further simplified it by removing the complicated trailing-comma
handling. The struct-like output can tolerate a trailing comma
which has been allowed in C/C++ since its inception.

Change-Id: I0393a37cd21a50e902c8cb9f8b752ebb946d1669
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This commit is contained in:
Marc Mutz 2014-10-09 23:23:14 +02:00
parent fc8323fec6
commit 1c0f247671

View File

@ -442,28 +442,22 @@ void TableGenerator::parseKeySequence(char *line)
void TableGenerator::printComposeTable() const
{
#ifdef DEBUG_GENERATOR
# ifndef QT_NO_DEBUG_STREAM
if (m_composeTable.isEmpty())
return;
QString output;
QComposeTableElement elem;
QString comma = QStringLiteral(",");
int tableSize = m_composeTable.size();
QDebug ds = qDebug() << "output:\n";
ds.nospace();
const int tableSize = m_composeTable.size();
for (int i = 0; i < tableSize; ++i) {
elem = m_composeTable.at(i);
output.append(QLatin1String("{ {"));
const QComposeTableElement &elem = m_composeTable.at(i);
ds << "{ {";
for (int j = 0; j < QT_KEYSEQUENCE_MAX_LEN; j++) {
output.append(QString(QLatin1String("0x%1, ")).arg(QString::number(elem.keys[j],16)));
ds << hex << showbase << elem.keys[j] << ", ";
}
// take care of the trailing comma
if (i == tableSize - 1)
comma = QStringLiteral("");
output.append(QString(QLatin1String("}, 0x%1, \"\" }%2 // %3 \n"))
.arg(QString::number(elem.value,16))
.arg(comma)
.arg(elem.comment));
ds << "}, " << hex << showbase << elem.value << ", \"\" }, // " << elem.comment << " \n";
}
qDebug() << "output: \n" << output;
# endif
#endif
}