Engauge Digitizer  2
QtToString.cpp
1 #include "Logger.h"
2 #include <QHash>
3 #include <QTransform>
4 #include "QtToString.h"
5 
6 static QHash<int, QString> rolesAsStringsLookupTable; // For logging
7 
8 QString QPointFToString (const QPointF &pos)
9 {
10  QString str = QString ("(%1, %2)")
11  .arg (pos.x ())
12  .arg (pos.y ());
13 
14  return str;
15 }
16 
17 QString QtCursorToString (Qt::CursorShape cursorShape)
18 {
19  switch (cursorShape) {
20  case Qt::ArrowCursor:
21  return "Qt::ArrowCursor";
22  break;
23 
24  case Qt::BitmapCursor:
25  return "Qt::BitmapCursor";
26  break;
27 
28  case Qt::CrossCursor:
29  return "Qt::CrossCursor";
30  break;
31 
32  case Qt::WaitCursor:
33  return "Qt::WaitCursor";
34  break;
35 
36  default:
37  return "Qt::<unknown>";
38  break;
39  }
40 }
41 
42 QString QTransformToString (const QTransform &transform)
43 {
44  const int FIELD_WIDTH = 12;
45 
46  QString str = QString ("%1 %2 %3 %4\n"
47  "%5 %6 %7 %8\n"
48  "%9 %10 %11 %12")
49  .arg (INDENTATION_PAST_TIMESTAMP)
50  .arg (transform.m11 (), FIELD_WIDTH)
51  .arg (transform.m12 (), FIELD_WIDTH)
52  .arg (transform.m13 (), FIELD_WIDTH)
53  .arg (INDENTATION_PAST_TIMESTAMP)
54  .arg (transform.m21 (), FIELD_WIDTH)
55  .arg (transform.m22 (), FIELD_WIDTH)
56  .arg (transform.m23 (), FIELD_WIDTH)
57  .arg (INDENTATION_PAST_TIMESTAMP)
58  .arg (transform.m31 (), FIELD_WIDTH)
59  .arg (transform.m32 (), FIELD_WIDTH)
60  .arg (transform.m33 (), FIELD_WIDTH);
61 
62  return str;
63 }
64 
65 QString QXmlStreamReaderTokenTypeToString (QXmlStreamReader::TokenType tokenType)
66 {
67  switch (tokenType) {
68  case QXmlStreamReader::Characters:
69  return "Characters";
70  case QXmlStreamReader::Comment:
71  return "Comment";
72  case QXmlStreamReader::DTD:
73  return "DTD";
74  case QXmlStreamReader::EndDocument:
75  return "EndDocument";
76  case QXmlStreamReader::EndElement:
77  return "EndElement";
78  case QXmlStreamReader::EntityReference:
79  return "EntityReference";
80  case QXmlStreamReader::Invalid:
81  return "Invalid";
82  case QXmlStreamReader::NoToken:
83  return "NoToken";
84  case QXmlStreamReader::ProcessingInstruction:
85  return "ProcessingInstruction";
86  case QXmlStreamReader::StartDocument:
87  return "StartDocument";
88  case QXmlStreamReader::StartElement:
89  return "StartElement";
90  }
91 
92  return "<Unknown>";
93 }
94 
95 QString roleAsString (int role)
96 {
97  if (rolesAsStringsLookupTable.count () == 0) {
98 
99  // List from qnamespace.h
100  rolesAsStringsLookupTable [Qt::AccessibleDescriptionRole] = "AccessibleDescriptionRole";
101  rolesAsStringsLookupTable [Qt::AccessibleTextRole] = "AccessibleTextRole";
102  rolesAsStringsLookupTable [Qt::BackgroundRole] = "BackgroundRole";
103  rolesAsStringsLookupTable [Qt::BackgroundColorRole] = "BackgroundColorRole";
104  rolesAsStringsLookupTable [Qt::CheckStateRole] = "CheckStateRole";
105  rolesAsStringsLookupTable [Qt::DecorationRole] = "DecorationRole";
106  rolesAsStringsLookupTable [Qt::DisplayRole] = "DisplayRole";
107  rolesAsStringsLookupTable [Qt::EditRole] = "EditRole";
108  rolesAsStringsLookupTable [Qt::FontRole] = "FontRole";
109  rolesAsStringsLookupTable [Qt::ForegroundRole] = "ForegroundRole";
110  rolesAsStringsLookupTable [Qt::InitialSortOrderRole] = "InitialSortOrderRole";
111  rolesAsStringsLookupTable [Qt::SizeHintRole] = "SizeHintRole";
112  rolesAsStringsLookupTable [Qt::StatusTipRole] = "StatusTipRole";
113  rolesAsStringsLookupTable [Qt::TextAlignmentRole] = "TextAlignmentRole";
114  rolesAsStringsLookupTable [Qt::TextColorRole] = "TextColorRole";
115  rolesAsStringsLookupTable [Qt::ToolTipRole] = "ToolTipRole";
116  rolesAsStringsLookupTable [Qt::UserRole] = "UserRole";
117  rolesAsStringsLookupTable [Qt::WhatsThisRole] = "WhatsThisRole";
118  }
119 
120  if (rolesAsStringsLookupTable.contains (role)) {
121 
122  return rolesAsStringsLookupTable [role];
123 
124  } else {
125 
126  return QString ("%1?").arg (role);
127 
128  }
129 }
130 
131 QString rolesAsString (const QVector<int> &roles)
132 {
133  QString str;
134 
135  for (int i = 0; i < roles.count (); i++) {
136  if (i > 0) {
137  str += ",";
138  }
139  str += roleAsString (roles [i]);
140  }
141 
142  return str;
143 }