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