qt5.natvis 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. ****************************************************************************
  4. **
  5. ** Copyright (C) 2016 The Qt Company Ltd.
  6. ** Contact: https://www.qt.io/licensing/
  7. **
  8. ** This file is part of the Qt VS Tools.
  9. **
  10. ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
  11. ** Commercial License Usage
  12. ** Licensees holding valid commercial Qt licenses may use this file in
  13. ** accordance with the commercial license agreement provided with the
  14. ** Software or, alternatively, in accordance with the terms contained in
  15. ** a written agreement between you and The Qt Company. For licensing terms
  16. ** and conditions see https://www.qt.io/terms-conditions. For further
  17. ** information use the contact form at https://www.qt.io/contact-us.
  18. **
  19. ** GNU General Public License Usage
  20. ** Alternatively, this file may be used under the terms of the GNU
  21. ** General Public License version 3 as published by the Free Software
  22. ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
  23. ** included in the packaging of this file. Please review the following
  24. ** information to ensure the GNU General Public License requirements will
  25. ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
  26. **
  27. ** $QT_END_LICENSE$
  28. **
  29. ****************************************************************************
  30. -->
  31. <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  32. <Type Name="QPoint">
  33. <AlternativeType Name="QPointF"/>
  34. <DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
  35. <Expand>
  36. <Item Name="[x]">xp</Item>
  37. <Item Name="[y]">yp</Item>
  38. </Expand>
  39. </Type>
  40. <Type Name="QRect">
  41. <DisplayString>{{ x = {x1}, y = {y1}, width = {x2 - x1 + 1}, height = {y2 - y1 + 1} }}</DisplayString>
  42. <Expand>
  43. <Item Name="[x]">x1</Item>
  44. <Item Name="[y]">y1</Item>
  45. <Item Name="[width]">x2 - x1 + 1</Item>
  46. <Item Name="[height]">y2 - y1 + 1</Item>
  47. </Expand>
  48. </Type>
  49. <Type Name="QRectF">
  50. <DisplayString>{{ x = {xp}, y = {yp}, width = {w}, height = {h} }}</DisplayString>
  51. <Expand>
  52. <Item Name="[x]">xp</Item>
  53. <Item Name="[y]">yp</Item>
  54. <Item Name="[width]">w</Item>
  55. <Item Name="[height]">h</Item>
  56. </Expand>
  57. </Type>
  58. <Type Name="QSize">
  59. <AlternativeType Name="QSizeF"/>
  60. <DisplayString>{{ width = {wd}, height = {ht} }}</DisplayString>
  61. <Expand>
  62. <Item Name="[width]">wd</Item>
  63. <Item Name="[height]">ht</Item>
  64. </Expand>
  65. </Type>
  66. <Type Name="QLine">
  67. <AlternativeType Name="QLineF"/>
  68. <DisplayString>{{ start point = {pt1}, end point = {pt2} }}</DisplayString>
  69. <Expand>
  70. <Synthetic Name="[start point]">
  71. <DisplayString>{pt1}</DisplayString>
  72. <Expand>
  73. <ExpandedItem>pt1</ExpandedItem>
  74. </Expand>
  75. </Synthetic>
  76. <Synthetic Name="[end point]">
  77. <DisplayString>{pt2}</DisplayString>
  78. <Expand>
  79. <ExpandedItem>pt2</ExpandedItem>
  80. </Expand>
  81. </Synthetic>
  82. </Expand>
  83. </Type>
  84. <Type Name="QPolygon">
  85. <DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
  86. <Expand>
  87. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  88. <ArrayItems>
  89. <Size>d-&gt;size</Size>
  90. <ValuePointer>(QPoint*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
  91. </ArrayItems>
  92. </Expand>
  93. </Type>
  94. <Type Name="QPolygonF">
  95. <DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
  96. <Expand>
  97. <Item Name="[closed]">
  98. d-&gt;size &gt; 0
  99. &amp;&amp; ((((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[0]).xp
  100. == (((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[d-&gt;size - 1]).xp)
  101. &amp;&amp; ((((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[0]).yp
  102. == (((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[d-&gt;size - 1]).yp)
  103. </Item>
  104. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  105. <ArrayItems>
  106. <Size>d-&gt;size</Size>
  107. <ValuePointer>(QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
  108. </ArrayItems>
  109. </Expand>
  110. </Type>
  111. <Type Name ="QVector2D">
  112. <DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
  113. <Expand>
  114. <Item Name="[x]">xp</Item>
  115. <Item Name="[y]">yp</Item>
  116. </Expand>
  117. </Type>
  118. <Type Name ="QVector3D">
  119. <DisplayString>{{ x = {xp}, y = {yp}, z = {zp} }}</DisplayString>
  120. <Expand>
  121. <Item Name="[x]">xp</Item>
  122. <Item Name="[y]">yp</Item>
  123. <Item Name="[z]">zp</Item>
  124. </Expand>
  125. </Type>
  126. <Type Name ="QVector4D">
  127. <DisplayString>{{ x = {xp}, y = {yp}, z = {zp}, w = {wp} }}</DisplayString>
  128. <Expand>
  129. <Item Name="[x]">xp</Item>
  130. <Item Name="[y]">yp</Item>
  131. <Item Name="[z]">zp</Item>
  132. <Item Name="[w]">wp</Item>
  133. </Expand>
  134. </Type>
  135. <Type Name ="QMatrix">
  136. <DisplayString>
  137. {{ m11 = {_m11}, m12 = {_m12}, m21 = {_m21}, m22 = {_m22}, ... }}
  138. </DisplayString>
  139. <Expand>
  140. <Item Name="[m11]">_m11</Item>
  141. <Item Name="[m12]">_m12</Item>
  142. <Item Name="[m21]">_m21</Item>
  143. <Item Name="[m22]">_m22</Item>
  144. <Item Name="[dx]">_dx</Item>
  145. <Item Name="[dy]">_dy</Item>
  146. </Expand>
  147. </Type>
  148. <Type Name ="QMatrix4x4">
  149. <DisplayString>
  150. {{ m11 = {m[0][0]}, m12 = {m[1][0]}, m13 = {m[2][0]}, m14 = {m[3][0]}, ... }}
  151. </DisplayString>
  152. <Expand>
  153. <Item Name="[m11]">m[0][0]</Item>
  154. <Item Name="[m12]">m[1][0]</Item>
  155. <Item Name="[m13]">m[2][0]</Item>
  156. <Item Name="[m14]">m[3][0]</Item>
  157. <Item Name="[m21]">m[0][1]</Item>
  158. <Item Name="[m22]">m[1][1]</Item>
  159. <Item Name="[m23]">m[2][1]</Item>
  160. <Item Name="[m24]">m[3][1]</Item>
  161. <Item Name="[m31]">m[0][2]</Item>
  162. <Item Name="[m32]">m[1][2]</Item>
  163. <Item Name="[m33]">m[2][2]</Item>
  164. <Item Name="[m34]">m[3][2]</Item>
  165. <Item Name="[m41]">m[0][3]</Item>
  166. <Item Name="[m42]">m[1][3]</Item>
  167. <Item Name="[m43]">m[2][3]</Item>
  168. <Item Name="[m44]">m[3][3]</Item>
  169. </Expand>
  170. </Type>
  171. <Type Name="QSizePolicy">
  172. <DisplayString>
  173. {{ horizontal = {static_cast&lt;Policy&gt;(bits.horPolicy)}, vertical = {static_cast&lt;Policy&gt;(bits.verPolicy)}, type = {ControlType(1 &lt;&lt; bits.ctype)} }}
  174. </DisplayString>
  175. <Expand>
  176. <Synthetic Name="[vertical policy]">
  177. <DisplayString>QSizePolicy::Policy::{static_cast&lt;Policy&gt;(bits.verPolicy)}</DisplayString>
  178. </Synthetic>
  179. <Synthetic Name="[horizontal policy]">
  180. <DisplayString>QSizePolicy::Policy::{static_cast&lt;Policy&gt;(bits.horPolicy)}</DisplayString>
  181. </Synthetic>
  182. <Synthetic Name="[control type]">
  183. <DisplayString>QSizePolicy::ControlType::{ControlType(1 &lt;&lt; bits.ctype)}</DisplayString>
  184. </Synthetic>
  185. <Synthetic Name="[expanding directions]">
  186. <DisplayString
  187. Condition="(static_cast&lt;Policy&gt;(bits.verPolicy) &amp; ExpandFlag)">
  188. Qt::Vertical (2)
  189. </DisplayString>
  190. <DisplayString
  191. Condition="(static_cast&lt;Policy&gt;(bits.horPolicy) &amp; ExpandFlag)">
  192. Qt::Horizontal (1)
  193. </DisplayString>
  194. </Synthetic>
  195. <Item Name="[vertical stretch]">static_cast&lt;int&gt;(bits.verStretch)</Item>
  196. <Item Name="[horizontal stretch]">static_cast&lt;int&gt;(bits.horStretch)</Item>
  197. <Item Name="[has height for width]">bits.hfw == 1</Item>
  198. <Item Name="[has width for height]">bits.wfh == 1</Item>
  199. </Expand>
  200. </Type>
  201. <Type Name="QChar">
  202. <DisplayString>{ucs,c}</DisplayString>
  203. <StringView>ucs,c</StringView>
  204. <Expand>
  205. <Item Name="[latin 1]">ucs > 0xff ? '\0' : char(ucs),c</Item>
  206. <Item Name="[unicode]">ucs,c</Item>
  207. </Expand>
  208. </Type>
  209. <Type Name="QString">
  210. <DisplayString>{((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),sub}</DisplayString>
  211. <StringView>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),sub</StringView>
  212. <Expand>
  213. <Item Name="[size]">d-&gt;size</Item>
  214. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  215. <ArrayItems>
  216. <Size>d-&gt;size</Size>
  217. <ValuePointer>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),c</ValuePointer>
  218. </ArrayItems>
  219. </Expand>
  220. </Type>
  221. <Type Name="QByteArray">
  222. <DisplayString>{((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),sb}</DisplayString>
  223. <StringView>((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),sb</StringView>
  224. <Expand>
  225. <Item Name="[size]">d-&gt;size</Item>
  226. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  227. <ArrayItems>
  228. <Size>d-&gt;size</Size>
  229. <ValuePointer>((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),c</ValuePointer>
  230. </ArrayItems>
  231. </Expand>
  232. </Type>
  233. <Type Name="QBitArray">
  234. <DisplayString>{{ size = {(d.d-&gt;size &lt;&lt; 3) - *((reinterpret_cast&lt;char*&gt;(d.d)) + d.d-&gt;offset)} }}</DisplayString>
  235. <Expand>
  236. <Item Name="[referenced]">d.d-&gt;ref.atomic._q_value</Item>
  237. <IndexListItems>
  238. <Size>(d.d-&gt;size &lt;&lt; 3) - *((reinterpret_cast&lt;char*&gt;(d.d)) + d.d-&gt;offset)</Size>
  239. <ValueNode>
  240. (*(reinterpret_cast&lt;const unsigned char*&gt;((reinterpret_cast&lt;char*&gt;(d.d)) + d.d-&gt;offset) + 1
  241. + ($i &gt;&gt; 3)) &amp; (1 &lt;&lt; ($i &amp; 7))) != 0
  242. </ValueNode>
  243. </IndexListItems>
  244. </Expand>
  245. </Type>
  246. <Type Name="QVarLengthArray&lt;*&gt;">
  247. <AlternativeType Name="QVarLengthArray&lt;*, int&gt;"/>
  248. <DisplayString>{{ size = {s} }}</DisplayString>
  249. <Expand>
  250. <Item Name="[capacity]">a</Item>
  251. <ArrayItems>
  252. <Size>s</Size>
  253. <ValuePointer>ptr</ValuePointer>
  254. </ArrayItems>
  255. </Expand>
  256. </Type>
  257. <Type Name="QDate">
  258. <DisplayString>{{ julian day = {jd} }}</DisplayString>
  259. <Expand></Expand>
  260. </Type>
  261. <Type Name="QTime">
  262. <DisplayString
  263. Condition="mds == 1">{{ millisecond = {mds} }}</DisplayString>
  264. <DisplayString
  265. Condition="mds != 1">{{ milliseconds = {mds} }}</DisplayString>
  266. <Expand>
  267. <Item Name="[hour]"
  268. Condition="(mds / 3600000) == 1">mds / 3600000, d</Item>
  269. <Item Name="[hours]"
  270. Condition="(mds / 3600000) != 1">mds / 3600000, d</Item>
  271. <Item Name="[minute]"
  272. Condition="((mds % 3600000) / 60000) == 1">(mds % 3600000) / 60000, d</Item>
  273. <Item Name="[minutes]"
  274. Condition="((mds % 3600000) / 60000) != 1">(mds % 3600000) / 60000, d</Item>
  275. <Item Name="[second]"
  276. Condition="((mds / 1000) % 60) == 1">(mds / 1000) % 60, d</Item>
  277. <Item Name="[seconds]"
  278. Condition="((mds / 1000) % 60) != 1">(mds / 1000) % 60, d</Item>
  279. <Item Name="[millisecond]"
  280. Condition="(mds % 1000) == 1">mds % 1000, d</Item>
  281. <Item Name="[milliseconds]"
  282. Condition="(mds % 1000) != 1">mds % 1000, d</Item>
  283. </Expand>
  284. </Type>
  285. <Type Name="QRegularExpression">
  286. <DisplayString>{d.pattern}</DisplayString>
  287. </Type>
  288. <Type Name="QSharedData">
  289. <Expand>
  290. <Item Name="[referenced]">ref._q_value</Item>
  291. </Expand>
  292. </Type>
  293. <Type Name="QSharedPointer&lt;*&gt;">
  294. <DisplayString>strong reference to shared pointer of type {"$T1"}</DisplayString>
  295. <Expand>
  296. <Item Name="[is null]">value == 0</Item>
  297. <Item Name="[weak referenced]">d-&gt;weakref._q_value</Item>
  298. <Item Name="[strong referenced]">d-&gt;strongref._q_value</Item>
  299. </Expand>
  300. </Type>
  301. <Type Name="QSharedDataPointer&lt;*&gt;">
  302. <DisplayString>pointer to implicit shared object of type {"$T1"}</DisplayString>
  303. <Expand>
  304. <ExpandedItem>d</ExpandedItem>
  305. </Expand>
  306. </Type>
  307. <Type Name="QExplicitlySharedDataPointer&lt;*&gt;">
  308. <DisplayString>pointer to explicit shared object of type {"$T1"}</DisplayString>
  309. <Expand>
  310. <ExpandedItem>d</ExpandedItem>
  311. </Expand>
  312. </Type>
  313. <Type Name="QPointer&lt;*&gt;">
  314. <DisplayString>guarded pointer to subclass of QObject of type {"$T1"}</DisplayString>
  315. <Expand>
  316. <Item Name="[is null]">wp.d == 0 || wp.d-&gt;strongref._q_value == 0 || wp.value == 0</Item>
  317. </Expand>
  318. </Type>
  319. <Type Name="QWeakPointer&lt;*&gt;">
  320. <DisplayString>weak reference to shared pointer of type {"$T1"}</DisplayString>
  321. <Expand>
  322. <Item Name="[is null]">d == 0 || d-&gt;strongref._q_value == 0 || value == 0</Item>
  323. <Item Name="[weak referenced]">d-&gt;weakref._q_value</Item>
  324. <Item Name="[strong referenced]">d-&gt;strongref._q_value</Item>
  325. </Expand>
  326. </Type>
  327. <Type Name="QScopedPointer&lt;*&gt;">
  328. <DisplayString>scoped pointer to a dynamically allocated object of type {"$T1"}</DisplayString>
  329. <Expand>
  330. <Item Name="[is null]">!d</Item>
  331. </Expand>
  332. </Type>
  333. <Type Name="QScopedArrayPointer&lt;*&gt;">
  334. <DisplayString>scoped pointer to dynamically allocated array of objects of type {"$T1"}</DisplayString>
  335. <Expand>
  336. <Item Name="[is null]">!d</Item>
  337. </Expand>
  338. </Type>
  339. <Type Name="QPair&lt;*,*&gt;">
  340. <DisplayString>({first}, {second})</DisplayString>
  341. <Expand>
  342. <Item Name="[first]">first</Item>
  343. <Item Name="[second]">second</Item>
  344. </Expand>
  345. </Type>
  346. <Type Name="QVector&lt;*&gt;">
  347. <AlternativeType Name="QStack&lt;*&gt;"></AlternativeType>
  348. <DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
  349. <Expand>
  350. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  351. <ArrayItems>
  352. <Size>d-&gt;size</Size>
  353. <ValuePointer>($T1*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
  354. </ArrayItems>
  355. </Expand>
  356. </Type>
  357. <Type Name="QList&lt;*&gt;">
  358. <AlternativeType Name="QStringList"></AlternativeType>
  359. <AlternativeType Name="QQueue&lt;*&gt;"></AlternativeType>
  360. <DisplayString>{{ size = {d-&gt;end - d-&gt;begin} }}</DisplayString>
  361. <Expand>
  362. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  363. <IndexListItems>
  364. <Size>d-&gt;end - d-&gt;begin</Size>
  365. <ValueNode>*reinterpret_cast&lt;$T1*&gt;((sizeof($T1) &gt; sizeof(void*))
  366. ? reinterpret_cast&lt;Node*&gt;(d->array + d->begin + $i)->v
  367. : reinterpret_cast&lt;$T1*&gt;(d->array + d->begin + $i))
  368. </ValueNode>
  369. </IndexListItems>
  370. </Expand>
  371. </Type>
  372. <Type Name="QLinkedList&lt;*&gt;">
  373. <DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
  374. <Expand>
  375. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  376. <LinkedListItems>
  377. <Size>d-&gt;size</Size>
  378. <HeadPointer>d-&gt;n</HeadPointer>
  379. <NextPointer>n</NextPointer>
  380. <ValueNode>(*(QLinkedListNode&lt;$T1&gt;*)this).t</ValueNode>
  381. </LinkedListItems>
  382. </Expand>
  383. </Type>
  384. <Type Name="QMapNode&lt;*,*&gt;">
  385. <DisplayString>({key}, {value})</DisplayString>
  386. <Expand>
  387. <Item Name="[key]">key</Item>
  388. <Item Name="[value]">value</Item>
  389. </Expand>
  390. </Type>
  391. <Type Name="QMap&lt;*,*&gt;">
  392. <AlternativeType Name="QMultiMap&lt;*,*&gt;"/>
  393. <DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
  394. <Expand>
  395. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  396. <TreeItems>
  397. <Size>d-&gt;size</Size>
  398. <HeadPointer>d-&gt;header.left</HeadPointer>
  399. <LeftPointer>left</LeftPointer>
  400. <RightPointer>right</RightPointer>
  401. <ValueNode>*((QMapNode&lt;$T1,$T2&gt;*)this)</ValueNode>
  402. </TreeItems>
  403. </Expand>
  404. </Type>
  405. <Type Name="QHashNode&lt;*,*&gt;">
  406. <DisplayString Condition="next == 0">(empty)</DisplayString>
  407. <DisplayString Condition="next != 0">({key}, {value})</DisplayString>
  408. <Expand>
  409. <Item Name="[key]" Condition="next != 0">key</Item>
  410. <Item Name="[value]" Condition="next != 0">value</Item>
  411. </Expand>
  412. </Type>
  413. <Type Name="QHash&lt;*,*&gt;">
  414. <AlternativeType Name="QMultiHash&lt;*,*&gt;"/>
  415. <DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
  416. <Expand>
  417. <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
  418. <IndexListItems>
  419. <Size>d-&gt;numBuckets</Size>
  420. <ValueNode>*((QHashNode&lt;$T1,$T2&gt;*)d-&gt;buckets[$i])</ValueNode>
  421. </IndexListItems>
  422. </Expand>
  423. </Type>
  424. <Type Name="QHashNode&lt;*,QHashDummyValue&gt;">
  425. <DisplayString Condition="next == 0">(empty)</DisplayString>
  426. <DisplayString Condition="next != 0">({key})</DisplayString>
  427. <Expand>
  428. <Item Name="[key]" Condition="next != 0">key</Item>
  429. </Expand>
  430. </Type>
  431. <Type Name="QSet&lt;*&gt;">
  432. <DisplayString>{{ size = {q_hash.d-&gt;size} }}</DisplayString>
  433. <Expand>
  434. <ExpandedItem>q_hash</ExpandedItem>
  435. </Expand>
  436. </Type>
  437. <Type Name="QCache&lt;*,*&gt;::Node">
  438. <DisplayString>({*keyPtr}, {*t})</DisplayString>
  439. <Expand>
  440. <Item Name="[key]">*keyPtr</Item>
  441. <Item Name="[value]">*t</Item>
  442. </Expand>
  443. </Type>
  444. <Type Name="QCache&lt;*,*&gt;">
  445. <DisplayString>{{ size = {hash.d-&gt;size} }}</DisplayString>
  446. <Expand>
  447. <Item Name="[max coast]">mx</Item>
  448. <Item Name="[total coast]">total</Item>
  449. <Item Name="[referenced]">hash.d-&gt;ref.atomic._q_value</Item>
  450. <LinkedListItems>
  451. <Size>hash.d-&gt;size</Size>
  452. <HeadPointer>f</HeadPointer>
  453. <NextPointer>n</NextPointer>
  454. <ValueNode>*((Node*)this)</ValueNode>
  455. </LinkedListItems>
  456. </Expand>
  457. </Type>
  458. <Type Name="QVariant">
  459. <!--Region DisplayString QVariant-->
  460. <DisplayString Condition="d.type == QMetaType::UnknownType">Invalid</DisplayString>
  461. <DisplayString Condition="d.type == QMetaType::Bool">{d.data.b}</DisplayString>
  462. <DisplayString Condition="d.type == QMetaType::Int">{d.data.i}</DisplayString>
  463. <DisplayString Condition="d.type == QMetaType::UInt">{d.data.u}</DisplayString>
  464. <DisplayString Condition="d.type == QMetaType::LongLong">{d.data.ll}</DisplayString>
  465. <DisplayString Condition="d.type == QMetaType::ULongLong">{d.data.ull}</DisplayString>
  466. <DisplayString Condition="d.type == QMetaType::Double">{d.data.d}</DisplayString>
  467. <DisplayString Condition="d.type == QMetaType::QChar">{d.data.c}</DisplayString>
  468. <DisplayString Condition="d.type == QMetaType::QVariantMap">
  469. {*((QMap&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
  470. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  471. </DisplayString>
  472. <DisplayString Condition="d.type == QMetaType::QVariantList">
  473. {*((QList&lt;QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
  474. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  475. </DisplayString>
  476. <DisplayString Condition="d.type == QMetaType::QString">
  477. {*((QString*)(d.is_shared ? d.data.shared-&gt;ptr
  478. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  479. </DisplayString>
  480. <DisplayString Condition="d.type == QMetaType::QStringList">
  481. {*((QStringList*)(d.is_shared ? d.data.shared-&gt;ptr
  482. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  483. </DisplayString>
  484. <DisplayString Condition="d.type == QMetaType::QByteArray">
  485. {*((QByteArray*)(d.is_shared ? d.data.shared-&gt;ptr
  486. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  487. </DisplayString>
  488. <DisplayString Condition="d.type == QMetaType::QBitArray">
  489. {*((QBitArray*)(d.is_shared ? d.data.shared-&gt;ptr
  490. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  491. </DisplayString>
  492. <DisplayString Condition="d.type == QMetaType::QDate">
  493. {*((QDate*)(d.is_shared ? d.data.shared-&gt;ptr
  494. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  495. </DisplayString>
  496. <DisplayString Condition="d.type == QMetaType::QTime">
  497. {*((QTime*)(d.is_shared ? d.data.shared-&gt;ptr
  498. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  499. </DisplayString>
  500. <DisplayString Condition="d.type == QMetaType::QDateTime">DateTime</DisplayString>
  501. <DisplayString Condition="d.type == QMetaType::QUrl">Url</DisplayString>
  502. <DisplayString Condition="d.type == QMetaType::QLocale">Locale</DisplayString>
  503. <DisplayString Condition="d.type == QMetaType::QRect">
  504. {*((QRect*)(d.is_shared ? d.data.shared-&gt;ptr
  505. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  506. </DisplayString>
  507. <DisplayString Condition="d.type == QMetaType::QRectF">
  508. {*((QRectF*)(d.is_shared ? d.data.shared-&gt;ptr
  509. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  510. </DisplayString>
  511. <DisplayString Condition="d.type == QMetaType::QSize">
  512. {*((QSize*)(d.is_shared ? d.data.shared-&gt;ptr
  513. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  514. </DisplayString>
  515. <DisplayString Condition="d.type == QMetaType::QSizeF">
  516. {*((QSizeF*)(d.is_shared ? d.data.shared-&gt;ptr
  517. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  518. </DisplayString>
  519. <DisplayString Condition="d.type == QMetaType::QLine">
  520. {*((QLine*)(d.is_shared ? d.data.shared-&gt;ptr
  521. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  522. </DisplayString>
  523. <DisplayString Condition="d.type == QMetaType::QLineF">
  524. {*((QLineF*)(d.is_shared ? d.data.shared-&gt;ptr
  525. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  526. </DisplayString>
  527. <DisplayString Condition="d.type == QMetaType::QPoint">
  528. {*((QPoint*)(d.is_shared ? d.data.shared-&gt;ptr
  529. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  530. </DisplayString>
  531. <DisplayString Condition="d.type == QMetaType::QPointF">
  532. {*((QPointF*)(d.is_shared ? d.data.shared-&gt;ptr
  533. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  534. </DisplayString>
  535. <DisplayString Condition="d.type == QMetaType::QRegExp">RegExp</DisplayString>
  536. <DisplayString Condition="d.type == QMetaType::QRegularExpression">RegularExpression</DisplayString>
  537. <DisplayString Condition="d.type == QMetaType::QVariantHash">
  538. {*((QHash&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
  539. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
  540. </DisplayString>
  541. <DisplayString Condition="d.type == QMetaType::QEasingCurve">EasingCurve</DisplayString>
  542. <DisplayString Condition="d.type == QMetaType::QUuid">Uuid</DisplayString>
  543. <DisplayString Condition="d.type == QMetaType::QModelIndex">ModelIndex</DisplayString>
  544. <DisplayString Condition="d.type == QMetaType::LastCoreType">LastCoreType</DisplayString>
  545. <DisplayString Condition="d.type == QMetaType::QFont">Font</DisplayString>
  546. <DisplayString Condition="d.type == QMetaType::QPixmap">Pixmap</DisplayString>
  547. <DisplayString Condition="d.type == QMetaType::QBrush">Brush</DisplayString>
  548. <DisplayString Condition="d.type == QMetaType::QColor">Color</DisplayString>
  549. <DisplayString Condition="d.type == QMetaType::QPalette">Palette</DisplayString>
  550. <DisplayString Condition="d.type == QMetaType::QImage">Image</DisplayString>
  551. <DisplayString Condition="d.type == QMetaType::QPolygon">Polygon</DisplayString>
  552. <DisplayString Condition="d.type == QMetaType::QRegion">Region</DisplayString>
  553. <DisplayString Condition="d.type == QMetaType::QBitmap">Bitmap</DisplayString>
  554. <DisplayString Condition="d.type == QMetaType::QCursor">Cursor</DisplayString>
  555. <DisplayString Condition="d.type == QMetaType::QKeySequence">KeySequence</DisplayString>
  556. <DisplayString Condition="d.type == QMetaType::QPen">Pen</DisplayString>
  557. <DisplayString Condition="d.type == QMetaType::QTextLength">TextLength</DisplayString>
  558. <DisplayString Condition="d.type == QMetaType::QTextFormat">TextFormat</DisplayString>
  559. <DisplayString Condition="d.type == QMetaType::QMatrix">Matrix</DisplayString>
  560. <DisplayString Condition="d.type == QMetaType::QTransform">Transform</DisplayString>
  561. <DisplayString Condition="d.type == QMetaType::QMatrix4x4">Matrix4x4</DisplayString>
  562. <DisplayString Condition="d.type == QMetaType::QVector2D">Vector2D</DisplayString>
  563. <DisplayString Condition="d.type == QMetaType::QVector3D">Vector3D</DisplayString>
  564. <DisplayString Condition="d.type == QMetaType::QVector4D">Vector4D</DisplayString>
  565. <DisplayString Condition="d.type == QMetaType::QQuaternion">Quaternion</DisplayString>
  566. <DisplayString Condition="d.type == QMetaType::QPolygonF">PolygonF</DisplayString>
  567. <DisplayString Condition="d.type == QMetaType::QIcon">Icon</DisplayString>
  568. <DisplayString Condition="d.type == QMetaType::LastGuiType">LastGuiType</DisplayString>
  569. <DisplayString Condition="d.type == QMetaType::QSizePolicy">SizePolicy</DisplayString>
  570. <DisplayString Condition="d.type == QMetaType::User">UserType</DisplayString>
  571. <DisplayString Condition="d.type == 0xffffffff">LastType</DisplayString>
  572. <!--End region DisplayString QVariant-->
  573. <!--Region DisplayView QVariant-->
  574. <StringView Condition="d.type == QMetaType::QChar">d.data.c</StringView>
  575. <StringView Condition="d.type == QMetaType::QString">
  576. *((QString*)(d.is_shared ? d.data.shared-&gt;ptr
  577. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  578. </StringView>
  579. <StringView Condition="d.type == QMetaType::QByteArray">
  580. *((QByteArray*)(d.is_shared ? d.data.shared-&gt;ptr
  581. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  582. </StringView>
  583. <!--End region DisplayView QVariant-->
  584. <!--Region Expand QVariant-->
  585. <Expand>
  586. <ExpandedItem Condition="d.type == QMetaType::QVariantMap">
  587. *((QMap&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
  588. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  589. </ExpandedItem>
  590. <ExpandedItem Condition="d.type == QMetaType::QVariantList">
  591. *((QList&lt;QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
  592. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  593. </ExpandedItem>
  594. <ExpandedItem Condition="d.type == QMetaType::QString">
  595. *((QString*)(d.is_shared ? d.data.shared-&gt;ptr
  596. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  597. </ExpandedItem>
  598. <ExpandedItem Condition="d.type == QMetaType::QStringList">
  599. *((QStringList*)(d.is_shared ? d.data.shared-&gt;ptr
  600. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  601. </ExpandedItem>
  602. <ExpandedItem Condition="d.type == QMetaType::QByteArray">
  603. *((QByteArray*)(d.is_shared ? d.data.shared-&gt;ptr
  604. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  605. </ExpandedItem>
  606. <ExpandedItem Condition="d.type == QMetaType::QBitArray">
  607. *((QBitArray*)(d.is_shared ? d.data.shared-&gt;ptr
  608. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  609. </ExpandedItem>
  610. <ExpandedItem Condition="d.type == QMetaType::QDate">
  611. *((QDate*)(d.is_shared ? d.data.shared-&gt;ptr
  612. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  613. </ExpandedItem>
  614. <ExpandedItem Condition="d.type == QMetaType::QTime">
  615. *((QTime*)(d.is_shared ? d.data.shared-&gt;ptr
  616. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  617. </ExpandedItem>
  618. <ExpandedItem Condition="d.type == QMetaType::QRect">
  619. *((QRect*)(d.is_shared ? d.data.shared-&gt;ptr
  620. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  621. </ExpandedItem>
  622. <ExpandedItem Condition="d.type == QMetaType::QRectF">
  623. *((QRectF*)(d.is_shared ? d.data.shared-&gt;ptr
  624. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  625. </ExpandedItem>
  626. <ExpandedItem Condition="d.type == QMetaType::QSize">
  627. *((QSize*)(d.is_shared ? d.data.shared-&gt;ptr
  628. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  629. </ExpandedItem>
  630. <ExpandedItem Condition="d.type == QMetaType::QSizeF">
  631. *((QSizeF*)(d.is_shared ? d.data.shared-&gt;ptr
  632. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  633. </ExpandedItem>
  634. <ExpandedItem Condition="d.type == QMetaType::QLine">
  635. *((QLine*)(d.is_shared ? d.data.shared-&gt;ptr
  636. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  637. </ExpandedItem>
  638. <ExpandedItem Condition="d.type == QMetaType::QLineF">
  639. *((QLineF*)(d.is_shared ? d.data.shared-&gt;ptr
  640. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  641. </ExpandedItem>
  642. <ExpandedItem Condition="d.type == QMetaType::QPoint">
  643. *((QPoint*)(d.is_shared ? d.data.shared-&gt;ptr
  644. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  645. </ExpandedItem>
  646. <ExpandedItem Condition="d.type == QMetaType::QPointF">
  647. *((QPointF*)(d.is_shared ? d.data.shared-&gt;ptr
  648. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  649. </ExpandedItem>
  650. <ExpandedItem Condition="d.type == QMetaType::QVariantHash">
  651. *((QHash&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
  652. : reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
  653. </ExpandedItem>
  654. </Expand>
  655. <!--End region Expand QVariant-->
  656. </Type>
  657. </AutoVisualizer>