00001
00002
00003
00004
00005
00006
00007 #include "Logger.h"
00008 #include <QHash>
00009 #include <QLocale>
00010 #include <QTransform>
00011 #include "QtToString.h"
00012
00013 static QHash<Qt::CursorShape, QString> cursorShapesLookupTable;
00014 static QHash<int, QString> rolesAsStringsLookupTable;
00015 static QHash<QXmlStreamReader::TokenType, QString> xmlTokenTypeLookupTable;
00016
00017 QString QPointFToString (const QPointF &pos)
00018 {
00019 QString str = QString ("(%1, %2)")
00020 .arg (pos.x ())
00021 .arg (pos.y ());
00022
00023 return str;
00024 }
00025
00026 QString QtCursorToString (Qt::CursorShape cursorShape)
00027 {
00028 if (cursorShapesLookupTable.count () == 0) {
00029
00030
00031 cursorShapesLookupTable [Qt::ArrowCursor] = "Qt::ArrowCursor";
00032 cursorShapesLookupTable [Qt::BitmapCursor] = "Qt::BitmapCursor";
00033 cursorShapesLookupTable [Qt::CrossCursor] = "Qt::CrossCursor";
00034 cursorShapesLookupTable [Qt::WaitCursor] = "Qt::WaitCursor";
00035 }
00036
00037 if (cursorShapesLookupTable.contains (cursorShape)) {
00038
00039 return cursorShapesLookupTable [cursorShape];
00040
00041 } else {
00042
00043 return "Qt::<unknown>";
00044
00045 }
00046 }
00047
00048 QString QLocaleToString (const QLocale &locale)
00049 {
00050 return QString ("%1/%2")
00051 .arg (QLocale::languageToString (locale.language()))
00052 .arg (QLocale::countryToString(locale.country()));
00053 }
00054
00055 QString QTransformToString (const QTransform &transform)
00056 {
00057 const int FIELD_WIDTH = 12;
00058
00059 QString str = QString ("%1 %2 %3 %4\n"
00060 "%5 %6 %7 %8\n"
00061 "%9 %10 %11 %12")
00062 .arg (INDENTATION_PAST_TIMESTAMP)
00063 .arg (transform.m11 (), FIELD_WIDTH)
00064 .arg (transform.m12 (), FIELD_WIDTH)
00065 .arg (transform.m13 (), FIELD_WIDTH)
00066 .arg (INDENTATION_PAST_TIMESTAMP)
00067 .arg (transform.m21 (), FIELD_WIDTH)
00068 .arg (transform.m22 (), FIELD_WIDTH)
00069 .arg (transform.m23 (), FIELD_WIDTH)
00070 .arg (INDENTATION_PAST_TIMESTAMP)
00071 .arg (transform.m31 (), FIELD_WIDTH)
00072 .arg (transform.m32 (), FIELD_WIDTH)
00073 .arg (transform.m33 (), FIELD_WIDTH);
00074
00075 return str;
00076 }
00077
00078 QString QXmlStreamReaderTokenTypeToString (QXmlStreamReader::TokenType tokenType)
00079 {
00080 if (xmlTokenTypeLookupTable.count () == 0) {
00081
00082
00083 xmlTokenTypeLookupTable [QXmlStreamReader::Characters] = "Characters";
00084 xmlTokenTypeLookupTable [QXmlStreamReader::Comment] = "Comment";
00085 xmlTokenTypeLookupTable [QXmlStreamReader::DTD] = "DTD";
00086 xmlTokenTypeLookupTable [QXmlStreamReader::EndDocument] = "EndDocument";
00087 xmlTokenTypeLookupTable [QXmlStreamReader::EndElement] = "EndElement";
00088 xmlTokenTypeLookupTable [QXmlStreamReader::EntityReference] = "EntityReference";
00089 xmlTokenTypeLookupTable [QXmlStreamReader::Invalid] = "Invalid";
00090 xmlTokenTypeLookupTable [QXmlStreamReader::NoToken] = "NoToken";
00091 xmlTokenTypeLookupTable [QXmlStreamReader::ProcessingInstruction] = "ProcessingInstruction";
00092 xmlTokenTypeLookupTable [QXmlStreamReader::StartDocument] = "StartDocument";
00093 xmlTokenTypeLookupTable [QXmlStreamReader::StartElement] = "StartElement";
00094 }
00095
00096 if (xmlTokenTypeLookupTable.contains (tokenType)) {
00097
00098 return xmlTokenTypeLookupTable [tokenType];
00099
00100 } else {
00101
00102 return "<Unknown>";
00103
00104 }
00105 }
00106
00107 QString roleAsString (int role)
00108 {
00109 if (rolesAsStringsLookupTable.count () == 0) {
00110
00111
00112 rolesAsStringsLookupTable [Qt::AccessibleDescriptionRole] = "AccessibleDescriptionRole";
00113 rolesAsStringsLookupTable [Qt::AccessibleTextRole] = "AccessibleTextRole";
00114 rolesAsStringsLookupTable [Qt::BackgroundRole] = "BackgroundRole";
00115 rolesAsStringsLookupTable [Qt::BackgroundColorRole] = "BackgroundColorRole";
00116 rolesAsStringsLookupTable [Qt::CheckStateRole] = "CheckStateRole";
00117 rolesAsStringsLookupTable [Qt::DecorationRole] = "DecorationRole";
00118 rolesAsStringsLookupTable [Qt::DisplayRole] = "DisplayRole";
00119 rolesAsStringsLookupTable [Qt::EditRole] = "EditRole";
00120 rolesAsStringsLookupTable [Qt::FontRole] = "FontRole";
00121 rolesAsStringsLookupTable [Qt::ForegroundRole] = "ForegroundRole";
00122 rolesAsStringsLookupTable [Qt::InitialSortOrderRole] = "InitialSortOrderRole";
00123 rolesAsStringsLookupTable [Qt::SizeHintRole] = "SizeHintRole";
00124 rolesAsStringsLookupTable [Qt::StatusTipRole] = "StatusTipRole";
00125 rolesAsStringsLookupTable [Qt::TextAlignmentRole] = "TextAlignmentRole";
00126 rolesAsStringsLookupTable [Qt::TextColorRole] = "TextColorRole";
00127 rolesAsStringsLookupTable [Qt::ToolTipRole] = "ToolTipRole";
00128 rolesAsStringsLookupTable [Qt::UserRole] = "UserRole";
00129 rolesAsStringsLookupTable [Qt::WhatsThisRole] = "WhatsThisRole";
00130 }
00131
00132 if (rolesAsStringsLookupTable.contains (role)) {
00133
00134 return rolesAsStringsLookupTable [role];
00135
00136 } else {
00137
00138 return QString ("%1?").arg (role);
00139
00140 }
00141 }
00142
00143 QString rolesAsString (const QVector<int> &roles)
00144 {
00145 QString str;
00146
00147 for (int i = 0; i < roles.count (); i++) {
00148 if (i > 0) {
00149 str += ",";
00150 }
00151 str += roleAsString (roles [i]);
00152 }
00153
00154 return str;
00155 }