|
1 /**************************************************************************** |
|
2 ** |
|
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4 ** All rights reserved. |
|
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
|
6 ** |
|
7 ** This file is part of the QtXmlPatterns module of the Qt Toolkit. |
|
8 ** |
|
9 ** $QT_BEGIN_LICENSE:LGPL$ |
|
10 ** No Commercial Usage |
|
11 ** This file contains pre-release code and may not be distributed. |
|
12 ** You may use this file in accordance with the terms and conditions |
|
13 ** contained in the Technology Preview License Agreement accompanying |
|
14 ** this package. |
|
15 ** |
|
16 ** GNU Lesser General Public License Usage |
|
17 ** Alternatively, this file may be used under the terms of the GNU Lesser |
|
18 ** General Public License version 2.1 as published by the Free Software |
|
19 ** Foundation and appearing in the file LICENSE.LGPL included in the |
|
20 ** packaging of this file. Please review the following information to |
|
21 ** ensure the GNU Lesser General Public License version 2.1 requirements |
|
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
|
23 ** |
|
24 ** In addition, as a special exception, Nokia gives you certain additional |
|
25 ** rights. These rights are described in the Nokia Qt LGPL Exception |
|
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
|
27 ** |
|
28 ** If you have questions regarding the use of this file, please contact |
|
29 ** Nokia at qt-info@nokia.com. |
|
30 ** |
|
31 ** |
|
32 ** |
|
33 ** |
|
34 ** |
|
35 ** |
|
36 ** |
|
37 ** |
|
38 ** $QT_END_LICENSE$ |
|
39 ** |
|
40 ****************************************************************************/ |
|
41 |
|
42 #include <QUrl> |
|
43 |
|
44 #include "qabstractmessagehandler.h" |
|
45 |
|
46 #include "qcommonnamespaces_p.h" |
|
47 #include "qexpression_p.h" |
|
48 |
|
49 #include "qreportcontext_p.h" |
|
50 |
|
51 QT_BEGIN_NAMESPACE |
|
52 |
|
53 using namespace QPatternist; |
|
54 |
|
55 ReportContext::~ReportContext() |
|
56 { |
|
57 } |
|
58 |
|
59 QString ReportContext::finalizeDescription(const QString &desc) |
|
60 { |
|
61 return QLatin1String("<html xmlns='http://www.w3.org/1999/xhtml/'><body><p>") |
|
62 + desc |
|
63 + QLatin1String("</p></body></html>"); |
|
64 } |
|
65 |
|
66 void ReportContext::warning(const QString &description, |
|
67 const QSourceLocation &sourceLocation) |
|
68 { |
|
69 messageHandler()->message(QtWarningMsg, finalizeDescription(description), QUrl(), sourceLocation); |
|
70 } |
|
71 |
|
72 void ReportContext::createError(const QString &description, |
|
73 const QtMsgType type, |
|
74 const QUrl &id, |
|
75 const QSourceLocation &sourceLocation) const |
|
76 { |
|
77 messageHandler()->message(type, finalizeDescription(description), id, sourceLocation); |
|
78 throw Exception(true); |
|
79 } |
|
80 |
|
81 void ReportContext::error(const QString &msg, |
|
82 const ErrorCode code, |
|
83 const QSourceLocation &sourceLocation) |
|
84 { |
|
85 createError(msg, QtFatalMsg, |
|
86 QUrl(CommonNamespaces::XPERR + QLatin1Char('#') + codeToString(code)), |
|
87 sourceLocation); |
|
88 } |
|
89 |
|
90 QSourceLocation ReportContext::lookupSourceLocation(const SourceLocationReflection *const r) const |
|
91 { |
|
92 Q_ASSERT(r); |
|
93 const SourceLocationReflection *const actual = r->actualReflection(); |
|
94 Q_ASSERT(actual); |
|
95 |
|
96 const QSourceLocation &sl = actual->sourceLocation(); |
|
97 |
|
98 if(sl.isNull()) |
|
99 { |
|
100 Q_ASSERT_X(!locationFor(actual).isNull(), Q_FUNC_INFO, |
|
101 qPrintable(QString::fromLatin1("No location is available for: %1").arg(actual->description()))); |
|
102 return locationFor(actual); |
|
103 } |
|
104 else |
|
105 return sl; |
|
106 } |
|
107 |
|
108 void ReportContext::error(const QString &message, |
|
109 const ReportContext::ErrorCode errorCode, |
|
110 const SourceLocationReflection *const reflection) |
|
111 { |
|
112 Q_ASSERT(reflection); |
|
113 error(message, errorCode, lookupSourceLocation(reflection)); |
|
114 } |
|
115 |
|
116 void ReportContext::error(const QString &msg, |
|
117 const QXmlName qname, |
|
118 const SourceLocationReflection *const reflection) |
|
119 { |
|
120 Q_ASSERT(!qname.isNull()); |
|
121 createError(msg, QtFatalMsg, |
|
122 QUrl(namePool()->stringForNamespace(qname.namespaceURI()) + QLatin1Char('#') + namePool()->stringForLocalName(qname.localName())), |
|
123 lookupSourceLocation(reflection)); |
|
124 } |
|
125 |
|
126 QString ReportContext::codeFromURI(const QString &typeURI, |
|
127 QString &uri) |
|
128 { |
|
129 /* Wouldn't surprise me if this can be done more efficiently. */ |
|
130 QUrl source(typeURI); |
|
131 |
|
132 const QString code(source.fragment()); |
|
133 source.setFragment(QString()); |
|
134 uri = source.toString(); |
|
135 return code; |
|
136 } |
|
137 |
|
138 QString ReportContext::codeToString(const ReportContext::ErrorCode code) |
|
139 { |
|
140 const char *result = 0; |
|
141 |
|
142 switch(code) |
|
143 { |
|
144 /* Alphabetically. */ |
|
145 case FOAR0001: result = "FOAR0001"; break; |
|
146 case FOAR0002: result = "FOAR0002"; break; |
|
147 case FOCA0001: result = "FOCA0001"; break; |
|
148 case FOCA0002: result = "FOCA0002"; break; |
|
149 case FOCA0003: result = "FOCA0003"; break; |
|
150 case FOCA0005: result = "FOCA0005"; break; |
|
151 case FOCA0006: result = "FOCA0006"; break; |
|
152 case FOCH0001: result = "FOCH0001"; break; |
|
153 case FOCH0002: result = "FOCH0002"; break; |
|
154 case FOCH0003: result = "FOCH0003"; break; |
|
155 case FOCH0004: result = "FOCH0004"; break; |
|
156 case FODC0001: result = "FODC0001"; break; |
|
157 case FODC0002: result = "FODC0002"; break; |
|
158 case FODC0003: result = "FODC0003"; break; |
|
159 case FODC0004: result = "FODC0004"; break; |
|
160 case FODC0005: result = "FODC0005"; break; |
|
161 case FODT0001: result = "FODT0001"; break; |
|
162 case FODT0002: result = "FODT0002"; break; |
|
163 case FODT0003: result = "FODT0003"; break; |
|
164 case FOER0000: result = "FOER0000"; break; |
|
165 case FONS0004: result = "FONS0004"; break; |
|
166 case FONS0005: result = "FONS0005"; break; |
|
167 case FORG0001: result = "FORG0001"; break; |
|
168 case FORG0002: result = "FORG0002"; break; |
|
169 case FORG0003: result = "FORG0003"; break; |
|
170 case FORG0004: result = "FORG0004"; break; |
|
171 case FORG0005: result = "FORG0005"; break; |
|
172 case FORG0006: result = "FORG0006"; break; |
|
173 case FORG0008: result = "FORG0008"; break; |
|
174 case FORG0009: result = "FORG0009"; break; |
|
175 case FORX0001: result = "FORX0001"; break; |
|
176 case FORX0002: result = "FORX0002"; break; |
|
177 case FORX0003: result = "FORX0003"; break; |
|
178 case FORX0004: result = "FORX0004"; break; |
|
179 case FOTY0012: result = "FOTY0012"; break; |
|
180 case SENR0001: result = "SENR0001"; break; |
|
181 case SEPM0004: result = "SEPM0004"; break; |
|
182 case SEPM0009: result = "SEPM0009"; break; |
|
183 case SEPM0010: result = "SEPM0010"; break; |
|
184 case SEPM0016: result = "SEPM0016"; break; |
|
185 case SERE0003: result = "SERE0003"; break; |
|
186 case SERE0005: result = "SERE0005"; break; |
|
187 case SERE0006: result = "SERE0006"; break; |
|
188 case SERE0008: result = "SERE0008"; break; |
|
189 case SERE0012: result = "SERE0012"; break; |
|
190 case SERE0014: result = "SERE0014"; break; |
|
191 case SERE0015: result = "SERE0015"; break; |
|
192 case SESU0007: result = "SESU0007"; break; |
|
193 case SESU0011: result = "SESU0011"; break; |
|
194 case SESU0013: result = "SESU0013"; break; |
|
195 case XPDY0002: result = "XPDY0002"; break; |
|
196 case XPDY0021: result = "XPDY0021"; break; |
|
197 case XPDY0050: result = "XPDY0050"; break; |
|
198 case XPST0001: result = "XPST0001"; break; |
|
199 case XPST0003: result = "XPST0003"; break; |
|
200 case XPST0005: result = "XPST0005"; break; |
|
201 case XPST0008: result = "XPST0008"; break; |
|
202 case XPST0010: result = "XPST0010"; break; |
|
203 case XPST0017: result = "XPST0017"; break; |
|
204 case XPST0051: result = "XPST0051"; break; |
|
205 case XPST0080: result = "XPST0080"; break; |
|
206 case XPST0081: result = "XPST0081"; break; |
|
207 case XPST0083: result = "XPST0083"; break; |
|
208 case XPTY0004: result = "XPTY0004"; break; |
|
209 case XPTY0006: result = "XPTY0006"; break; |
|
210 case XPTY0007: result = "XPTY0007"; break; |
|
211 case XPTY0018: result = "XPTY0018"; break; |
|
212 case XPTY0019: result = "XPTY0019"; break; |
|
213 case XPTY0020: result = "XPTY0020"; break; |
|
214 case XQDY0025: result = "XQDY0025"; break; |
|
215 case XQDY0026: result = "XQDY0026"; break; |
|
216 case XQDY0027: result = "XQDY0027"; break; |
|
217 case XQDY0029: result = "XQDY0029"; break; |
|
218 case XQDY0041: result = "XQDY0041"; break; |
|
219 case XQDY0044: result = "XQDY0044"; break; |
|
220 case XQDY0052: result = "XQDY0052"; break; |
|
221 case XQDY0061: result = "XQDY0061"; break; |
|
222 case XQDY0062: result = "XQDY0062"; break; |
|
223 case XQDY0064: result = "XQDY0064"; break; |
|
224 case XQDY0072: result = "XQDY0072"; break; |
|
225 case XQDY0074: result = "XQDY0074"; break; |
|
226 case XQDY0084: result = "XQDY0084"; break; |
|
227 case XQDY0091: result = "XQDY0091"; break; |
|
228 case XQDY0092: result = "XQDY0092"; break; |
|
229 case XQST0009: result = "XQST0009"; break; |
|
230 case XQST0012: result = "XQST0012"; break; |
|
231 case XQST0013: result = "XQST0013"; break; |
|
232 case XQST0014: result = "XQST0014"; break; |
|
233 case XQST0015: result = "XQST0015"; break; |
|
234 case XQST0016: result = "XQST0016"; break; |
|
235 case XQST0022: result = "XQST0022"; break; |
|
236 case XQST0031: result = "XQST0031"; break; |
|
237 case XQST0032: result = "XQST0032"; break; |
|
238 case XQST0033: result = "XQST0033"; break; |
|
239 case XQST0034: result = "XQST0034"; break; |
|
240 case XQST0035: result = "XQST0035"; break; |
|
241 case XQST0036: result = "XQST0036"; break; |
|
242 case XQST0037: result = "XQST0037"; break; |
|
243 case XQST0038: result = "XQST0038"; break; |
|
244 case XQST0039: result = "XQST0039"; break; |
|
245 case XQST0040: result = "XQST0040"; break; |
|
246 case XQST0042: result = "XQST0042"; break; |
|
247 case XQST0043: result = "XQST0043"; break; |
|
248 case XQST0045: result = "XQST0045"; break; |
|
249 case XQST0046: result = "XQST0046"; break; |
|
250 case XQST0047: result = "XQST0047"; break; |
|
251 case XQST0048: result = "XQST0048"; break; |
|
252 case XQST0049: result = "XQST0049"; break; |
|
253 case XQST0053: result = "XQST0053"; break; |
|
254 case XQST0054: result = "XQST0054"; break; |
|
255 case XQST0055: result = "XQST0055"; break; |
|
256 case XQST0056: result = "XQST0056"; break; |
|
257 case XQST0057: result = "XQST0057"; break; |
|
258 case XQST0058: result = "XQST0058"; break; |
|
259 case XQST0059: result = "XQST0059"; break; |
|
260 case XQST0060: result = "XQST0060"; break; |
|
261 case XQST0063: result = "XQST0063"; break; |
|
262 case XQST0065: result = "XQST0065"; break; |
|
263 case XQST0066: result = "XQST0066"; break; |
|
264 case XQST0067: result = "XQST0067"; break; |
|
265 case XQST0068: result = "XQST0068"; break; |
|
266 case XQST0069: result = "XQST0069"; break; |
|
267 case XQST0070: result = "XQST0070"; break; |
|
268 case XQST0071: result = "XQST0071"; break; |
|
269 case XQST0073: result = "XQST0073"; break; |
|
270 case XQST0075: result = "XQST0075"; break; |
|
271 case XQST0076: result = "XQST0076"; break; |
|
272 case XQST0077: result = "XQST0077"; break; |
|
273 case XQST0078: result = "XQST0078"; break; |
|
274 case XQST0079: result = "XQST0079"; break; |
|
275 case XQST0082: result = "XQST0082"; break; |
|
276 case XQST0085: result = "XQST0085"; break; |
|
277 case XQST0087: result = "XQST0087"; break; |
|
278 case XQST0088: result = "XQST0088"; break; |
|
279 case XQST0089: result = "XQST0089"; break; |
|
280 case XQST0090: result = "XQST0090"; break; |
|
281 case XQST0093: result = "XQST0093"; break; |
|
282 case XQTY0023: result = "XQTY0023"; break; |
|
283 case XQTY0024: result = "XQTY0024"; break; |
|
284 case XQTY0028: result = "XQTY0028"; break; |
|
285 case XQTY0030: result = "XQTY0030"; break; |
|
286 case XQTY0086: result = "XQTY0086"; break; |
|
287 case XTDE0030: result = "XTDE0030"; break; |
|
288 case XTDE0040: result = "XTDE0040"; break; |
|
289 case XTDE0045: result = "XTDE0045"; break; |
|
290 case XTDE0047: result = "XTDE0047"; break; |
|
291 case XTDE0050: result = "XTDE0050"; break; |
|
292 case XTDE0060: result = "XTDE0060"; break; |
|
293 case XTDE0160: result = "XTDE0160"; break; |
|
294 case XTDE0290: result = "XTDE0290"; break; |
|
295 case XTDE0410: result = "XTDE0410"; break; |
|
296 case XTDE0420: result = "XTDE0420"; break; |
|
297 case XTDE0430: result = "XTDE0430"; break; |
|
298 case XTDE0440: result = "XTDE0440"; break; |
|
299 case XTDE0485: result = "XTDE0485"; break; |
|
300 case XTDE0560: result = "XTDE0560"; break; |
|
301 case XTDE0610: result = "XTDE0610"; break; |
|
302 case XTDE0640: result = "XTDE0640"; break; |
|
303 case XTDE0700: result = "XTDE0700"; break; |
|
304 case XTDE0820: result = "XTDE0820"; break; |
|
305 case XTDE0830: result = "XTDE0830"; break; |
|
306 case XTDE0835: result = "XTDE0835"; break; |
|
307 case XTDE0850: result = "XTDE0850"; break; |
|
308 case XTDE0855: result = "XTDE0855"; break; |
|
309 case XTDE0860: result = "XTDE0860"; break; |
|
310 case XTDE0865: result = "XTDE0865"; break; |
|
311 case XTDE0890: result = "XTDE0890"; break; |
|
312 case XTDE0905: result = "XTDE0905"; break; |
|
313 case XTDE0920: result = "XTDE0920"; break; |
|
314 case XTDE0925: result = "XTDE0925"; break; |
|
315 case XTDE0930: result = "XTDE0930"; break; |
|
316 case XTDE0980: result = "XTDE0980"; break; |
|
317 case XTDE1030: result = "XTDE1030"; break; |
|
318 case XTDE1035: result = "XTDE1035"; break; |
|
319 case XTDE1110: result = "XTDE1110"; break; |
|
320 case XTDE1140: result = "XTDE1140"; break; |
|
321 case XTDE1145: result = "XTDE1145"; break; |
|
322 case XTDE1150: result = "XTDE1150"; break; |
|
323 case XTDE1170: result = "XTDE1170"; break; |
|
324 case XTDE1190: result = "XTDE1190"; break; |
|
325 case XTDE1200: result = "XTDE1200"; break; |
|
326 case XTDE1260: result = "XTDE1260"; break; |
|
327 case XTDE1270: result = "XTDE1270"; break; |
|
328 case XTDE1280: result = "XTDE1280"; break; |
|
329 case XTDE1310: result = "XTDE1310"; break; |
|
330 case XTDE1340: result = "XTDE1340"; break; |
|
331 case XTDE1350: result = "XTDE1350"; break; |
|
332 case XTDE1360: result = "XTDE1360"; break; |
|
333 case XTDE1370: result = "XTDE1370"; break; |
|
334 case XTDE1380: result = "XTDE1380"; break; |
|
335 case XTDE1390: result = "XTDE1390"; break; |
|
336 case XTDE1400: result = "XTDE1400"; break; |
|
337 case XTDE1420: result = "XTDE1420"; break; |
|
338 case XTDE1425: result = "XTDE1425"; break; |
|
339 case XTDE1428: result = "XTDE1428"; break; |
|
340 case XTDE1440: result = "XTDE1440"; break; |
|
341 case XTDE1450: result = "XTDE1450"; break; |
|
342 case XTDE1460: result = "XTDE1460"; break; |
|
343 case XTDE1480: result = "XTDE1480"; break; |
|
344 case XTDE1490: result = "XTDE1490"; break; |
|
345 case XTDE1665: result = "XTDE1665"; break; |
|
346 case XTMM9000: result = "XTMM9000"; break; |
|
347 case XTRE0270: result = "XTRE0270"; break; |
|
348 case XTRE0540: result = "XTRE0540"; break; |
|
349 case XTRE0795: result = "XTRE0795"; break; |
|
350 case XTRE1160: result = "XTRE1160"; break; |
|
351 case XTRE1495: result = "XTRE1495"; break; |
|
352 case XTRE1500: result = "XTRE1500"; break; |
|
353 case XTRE1620: result = "XTRE1620"; break; |
|
354 case XTRE1630: result = "XTRE1630"; break; |
|
355 case XTSE0010: result = "XTSE0010"; break; |
|
356 case XTSE0020: result = "XTSE0020"; break; |
|
357 case XTSE0080: result = "XTSE0080"; break; |
|
358 case XTSE0090: result = "XTSE0090"; break; |
|
359 case XTSE0110: result = "XTSE0110"; break; |
|
360 case XTSE0120: result = "XTSE0120"; break; |
|
361 case XTSE0125: result = "XTSE0125"; break; |
|
362 case XTSE0130: result = "XTSE0130"; break; |
|
363 case XTSE0150: result = "XTSE0150"; break; |
|
364 case XTSE0165: result = "XTSE0165"; break; |
|
365 case XTSE0170: result = "XTSE0170"; break; |
|
366 case XTSE0180: result = "XTSE0180"; break; |
|
367 case XTSE0190: result = "XTSE0190"; break; |
|
368 case XTSE0200: result = "XTSE0200"; break; |
|
369 case XTSE0210: result = "XTSE0210"; break; |
|
370 case XTSE0215: result = "XTSE0215"; break; |
|
371 case XTSE0220: result = "XTSE0220"; break; |
|
372 case XTSE0260: result = "XTSE0260"; break; |
|
373 case XTSE0265: result = "XTSE0265"; break; |
|
374 case XTSE0280: result = "XTSE0280"; break; |
|
375 case XTSE0340: result = "XTSE0340"; break; |
|
376 case XTSE0350: result = "XTSE0350"; break; |
|
377 case XTSE0370: result = "XTSE0370"; break; |
|
378 case XTSE0500: result = "XTSE0500"; break; |
|
379 case XTSE0530: result = "XTSE0530"; break; |
|
380 case XTSE0550: result = "XTSE0550"; break; |
|
381 case XTSE0580: result = "XTSE0580"; break; |
|
382 case XTSE0620: result = "XTSE0620"; break; |
|
383 case XTSE0630: result = "XTSE0630"; break; |
|
384 case XTSE0650: result = "XTSE0650"; break; |
|
385 case XTSE0660: result = "XTSE0660"; break; |
|
386 case XTSE0670: result = "XTSE0670"; break; |
|
387 case XTSE0680: result = "XTSE0680"; break; |
|
388 case XTSE0690: result = "XTSE0690"; break; |
|
389 case XTSE0710: result = "XTSE0710"; break; |
|
390 case XTSE0720: result = "XTSE0720"; break; |
|
391 case XTSE0740: result = "XTSE0740"; break; |
|
392 case XTSE0760: result = "XTSE0760"; break; |
|
393 case XTSE0770: result = "XTSE0770"; break; |
|
394 case XTSE0805: result = "XTSE0805"; break; |
|
395 case XTSE0808: result = "XTSE0808"; break; |
|
396 case XTSE0809: result = "XTSE0809"; break; |
|
397 case XTSE0810: result = "XTSE0810"; break; |
|
398 case XTSE0812: result = "XTSE0812"; break; |
|
399 case XTSE0840: result = "XTSE0840"; break; |
|
400 case XTSE0870: result = "XTSE0870"; break; |
|
401 case XTSE0880: result = "XTSE0880"; break; |
|
402 case XTSE0910: result = "XTSE0910"; break; |
|
403 case XTSE0940: result = "XTSE0940"; break; |
|
404 case XTSE0975: result = "XTSE0975"; break; |
|
405 case XTSE1015: result = "XTSE1015"; break; |
|
406 case XTSE1017: result = "XTSE1017"; break; |
|
407 case XTSE1040: result = "XTSE1040"; break; |
|
408 case XTSE1060: result = "XTSE1060"; break; |
|
409 case XTSE1070: result = "XTSE1070"; break; |
|
410 case XTSE1080: result = "XTSE1080"; break; |
|
411 case XTSE1090: result = "XTSE1090"; break; |
|
412 case XTSE1130: result = "XTSE1130"; break; |
|
413 case XTSE1205: result = "XTSE1205"; break; |
|
414 case XTSE1210: result = "XTSE1210"; break; |
|
415 case XTSE1220: result = "XTSE1220"; break; |
|
416 case XTSE1290: result = "XTSE1290"; break; |
|
417 case XTSE1295: result = "XTSE1295"; break; |
|
418 case XTSE1300: result = "XTSE1300"; break; |
|
419 case XTSE1430: result = "XTSE1430"; break; |
|
420 case XTSE1505: result = "XTSE1505"; break; |
|
421 case XTSE1520: result = "XTSE1520"; break; |
|
422 case XTSE1530: result = "XTSE1530"; break; |
|
423 case XTSE1560: result = "XTSE1560"; break; |
|
424 case XTSE1570: result = "XTSE1570"; break; |
|
425 case XTSE1580: result = "XTSE1580"; break; |
|
426 case XTSE1590: result = "XTSE1590"; break; |
|
427 case XTSE1600: result = "XTSE1600"; break; |
|
428 case XTSE1650: result = "XTSE1650"; break; |
|
429 case XTSE1660: result = "XTSE1660"; break; |
|
430 case XTTE0505: result = "XTTE0505"; break; |
|
431 case XTTE0510: result = "XTTE0510"; break; |
|
432 case XTTE0520: result = "XTTE0520"; break; |
|
433 case XTTE0570: result = "XTTE0570"; break; |
|
434 case XTTE0590: result = "XTTE0590"; break; |
|
435 case XTTE0600: result = "XTTE0600"; break; |
|
436 case XTTE0780: result = "XTTE0780"; break; |
|
437 case XTTE0790: result = "XTTE0790"; break; |
|
438 case XTTE0950: result = "XTTE0950"; break; |
|
439 case XTTE0990: result = "XTTE0990"; break; |
|
440 case XTTE1000: result = "XTTE1000"; break; |
|
441 case XTTE1020: result = "XTTE1020"; break; |
|
442 case XTTE1100: result = "XTTE1100"; break; |
|
443 case XTTE1120: result = "XTTE1120"; break; |
|
444 case XTTE1510: result = "XTTE1510"; break; |
|
445 case XTTE1512: result = "XTTE1512"; break; |
|
446 case XTTE1515: result = "XTTE1515"; break; |
|
447 case XTTE1540: result = "XTTE1540"; break; |
|
448 case XTTE1545: result = "XTTE1545"; break; |
|
449 case XTTE1550: result = "XTTE1550"; break; |
|
450 case XTTE1555: result = "XTTE1555"; break; |
|
451 case XSDError: result = "XSDError"; break; |
|
452 } |
|
453 |
|
454 Q_ASSERT_X(result, Q_FUNC_INFO, "Unknown enum value."); |
|
455 return QLatin1String(result); |
|
456 } |
|
457 |
|
458 QUrl ReportContext::resolveURI(const QUrl &relative, |
|
459 const QUrl &baseURI) const |
|
460 { |
|
461 Q_ASSERT_X(!baseURI.isRelative(), Q_FUNC_INFO, |
|
462 "The base URI passed from the engine wasn't absolute."); |
|
463 |
|
464 const QAbstractUriResolver *const resolver(uriResolver()); |
|
465 |
|
466 if(resolver) |
|
467 { |
|
468 const QUrl final(resolver->resolve(relative, baseURI)); |
|
469 Q_ASSERT_X(final.isValid() || final.isEmpty(), Q_FUNC_INFO, |
|
470 "The QAbstractUriResolver must return a valid URI."); |
|
471 Q_ASSERT_X(!final.isRelative(), Q_FUNC_INFO, |
|
472 "The QAbstractUriResolver must return an absolute URI."); |
|
473 return final; |
|
474 } |
|
475 else |
|
476 return baseURI.resolved(relative); |
|
477 } |
|
478 |
|
479 QT_END_NAMESPACE |