qtbindings 4.8.6.2 → 4.8.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (666) hide show
  1. checksums.yaml +4 -4
  2. data/COPYING.LIB.txt +510 -510
  3. data/COPYING.txt +286 -286
  4. data/KNOWN_ISSUES.txt +17 -17
  5. data/Rakefile +5 -5
  6. data/bin/rbqtapi +0 -0
  7. data/bin/rbrcc +0 -0
  8. data/bin/rbuic4 +0 -0
  9. data/bin/smokeapi +0 -0
  10. data/bin/smokedeptool +0 -0
  11. data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -5
  12. data/examples/designer/calculatorbuilder/calculatorform.rb +60 -60
  13. data/examples/designer/calculatorbuilder/calculatorform.ui +299 -299
  14. data/examples/designer/calculatorbuilder/main.rb +34 -34
  15. data/examples/designer/calculatorbuilder/makefile +2 -2
  16. data/examples/designer/calculatorform/calculatorform.rb +46 -46
  17. data/examples/designer/calculatorform/calculatorform.ui +277 -277
  18. data/examples/designer/calculatorform/main.rb +32 -32
  19. data/examples/designer/calculatorform/makefile +3 -3
  20. data/examples/desktop/screenshot/main.rb +32 -32
  21. data/examples/desktop/screenshot/screenshot.rb +157 -157
  22. data/examples/desktop/systray/images/bad.svg +64 -64
  23. data/examples/desktop/systray/images/heart.svg +55 -55
  24. data/examples/desktop/systray/images/trash.svg +58 -58
  25. data/examples/desktop/systray/main.rb +41 -41
  26. data/examples/desktop/systray/makefile +2 -2
  27. data/examples/desktop/systray/systray.qrc +7 -7
  28. data/examples/desktop/systray/window.rb +219 -219
  29. data/examples/dialogs/complexwizard/complexwizard.rb +140 -140
  30. data/examples/dialogs/complexwizard/licensewizard.rb +294 -294
  31. data/examples/dialogs/complexwizard/main.rb +31 -31
  32. data/examples/dialogs/configdialog/configdialog.rb +109 -109
  33. data/examples/dialogs/configdialog/main.rb +31 -31
  34. data/examples/dialogs/configdialog/pages.rb +140 -140
  35. data/examples/dialogs/extension/finddialog.rb +89 -89
  36. data/examples/dialogs/extension/main.rb +31 -31
  37. data/examples/dialogs/findfiles/main.rb +32 -32
  38. data/examples/dialogs/findfiles/window.rb +177 -177
  39. data/examples/dialogs/simplewizard/classwizard.rb +374 -374
  40. data/examples/dialogs/simplewizard/main.rb +31 -31
  41. data/examples/dialogs/simplewizard/simplewizard.rb +110 -110
  42. data/examples/dialogs/standarddialogs/dialog.rb +340 -340
  43. data/examples/dialogs/standarddialogs/main.rb +31 -31
  44. data/examples/dialogs/tabdialog/main.rb +38 -38
  45. data/examples/dialogs/tabdialog/tabdialog.rb +178 -178
  46. data/examples/draganddrop/draggableicons/dragwidget.rb +125 -125
  47. data/examples/draganddrop/draggableicons/main.rb +41 -41
  48. data/examples/draganddrop/draggabletext/draglabel.rb +51 -51
  49. data/examples/draganddrop/draggabletext/dragwidget.rb +94 -94
  50. data/examples/draganddrop/draggabletext/main.rb +33 -33
  51. data/examples/draganddrop/draggabletext/words.txt +41 -41
  52. data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -99
  53. data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -114
  54. data/examples/draganddrop/dropsite/main.rb +33 -33
  55. data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -78
  56. data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -130
  57. data/examples/draganddrop/fridgemagnets/main.rb +33 -33
  58. data/examples/draganddrop/fridgemagnets/words.txt +48 -48
  59. data/examples/draganddrop/puzzle/main.rb +33 -33
  60. data/examples/draganddrop/puzzle/mainwindow.rb +136 -136
  61. data/examples/draganddrop/puzzle/pieceslist.rb +95 -95
  62. data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -190
  63. data/examples/graphicsview/collidingmice/main.rb +53 -53
  64. data/examples/graphicsview/collidingmice/makefile +2 -2
  65. data/examples/graphicsview/collidingmice/mice.qrc +5 -5
  66. data/examples/graphicsview/collidingmice/mouse.rb +176 -176
  67. data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -86
  68. data/examples/graphicsview/dragdroprobot/main.rb +57 -57
  69. data/examples/graphicsview/dragdroprobot/makefile +2 -2
  70. data/examples/graphicsview/dragdroprobot/robot.qrc +5 -5
  71. data/examples/graphicsview/dragdroprobot/robot.rb +246 -246
  72. data/examples/itemviews/chart/chart.qrc +5 -5
  73. data/examples/itemviews/chart/main.rb +33 -33
  74. data/examples/itemviews/chart/mainwindow.rb +151 -151
  75. data/examples/itemviews/chart/makefile +2 -2
  76. data/examples/itemviews/chart/mydata.cht +8 -8
  77. data/examples/itemviews/chart/pieview.rb +516 -516
  78. data/examples/itemviews/chart/qtdata.cht +14 -14
  79. data/examples/itemviews/dirview/main.rb +39 -39
  80. data/examples/itemviews/pixelator/imagemodel.rb +51 -51
  81. data/examples/itemviews/pixelator/images.qrc +5 -5
  82. data/examples/itemviews/pixelator/main.rb +34 -34
  83. data/examples/itemviews/pixelator/mainwindow.rb +218 -218
  84. data/examples/itemviews/pixelator/makefile +3 -3
  85. data/examples/itemviews/pixelator/pixeldelegate.rb +67 -67
  86. data/examples/itemviews/puzzle/main.rb +36 -36
  87. data/examples/itemviews/puzzle/mainwindow.rb +143 -143
  88. data/examples/itemviews/puzzle/piecesmodel.rb +174 -174
  89. data/examples/itemviews/puzzle/puzzlewidget.rb +192 -192
  90. data/examples/itemviews/simpledommodel/domitem.rb +62 -62
  91. data/examples/itemviews/simpledommodel/dommodel.rb +139 -139
  92. data/examples/itemviews/simpledommodel/main.rb +33 -33
  93. data/examples/itemviews/simpledommodel/mainwindow.rb +66 -66
  94. data/examples/itemviews/simpletreemodel/default.txt +40 -40
  95. data/examples/itemviews/simpletreemodel/main.rb +41 -41
  96. data/examples/itemviews/simpletreemodel/makefile +2 -2
  97. data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -5
  98. data/examples/itemviews/simpletreemodel/treeitem.rb +67 -67
  99. data/examples/itemviews/simpletreemodel/treemodel.rb +164 -164
  100. data/examples/itemviews/sortingmodel/default.txt +40 -40
  101. data/examples/itemviews/sortingmodel/main.rb +53 -53
  102. data/examples/itemviews/sortingmodel/treeitem.rb +73 -73
  103. data/examples/itemviews/sortingmodel/treemodel.rb +166 -166
  104. data/examples/itemviews/spinboxdelegate/main.rb +47 -47
  105. data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -62
  106. data/examples/killerfilter/killerfilter.rb +55 -55
  107. data/examples/layouts/basiclayouts/dialog.rb +110 -110
  108. data/examples/layouts/basiclayouts/main.rb +31 -31
  109. data/examples/layouts/borderlayout/borderlayout.rb +190 -190
  110. data/examples/layouts/borderlayout/main.rb +32 -32
  111. data/examples/layouts/borderlayout/window.rb +52 -52
  112. data/examples/layouts/flowlayouts/flowlayout.rb +108 -108
  113. data/examples/layouts/flowlayouts/main.rb +32 -32
  114. data/examples/layouts/flowlayouts/window.rb +43 -43
  115. data/examples/mainwindows/application/main.rb +32 -32
  116. data/examples/mainwindows/application/mainwindow.rb +285 -285
  117. data/examples/mainwindows/dockwidgets/main.rb +32 -32
  118. data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -302
  119. data/examples/mainwindows/mdi/main.rb +32 -32
  120. data/examples/mainwindows/mdi/mainwindow.rb +363 -363
  121. data/examples/mainwindows/mdi/mdichild.rb +152 -152
  122. data/examples/mainwindows/menus/main.rb +32 -32
  123. data/examples/mainwindows/menus/mainwindow.rb +327 -327
  124. data/examples/mainwindows/recentfiles/main.rb +32 -32
  125. data/examples/mainwindows/recentfiles/mainwindow.rb +258 -258
  126. data/examples/mainwindows/sdi/main.rb +32 -32
  127. data/examples/mainwindows/sdi/mainwindow.rb +335 -335
  128. data/examples/network/broadcastreceiver/main.rb +32 -32
  129. data/examples/network/broadcastreceiver/receiver.rb +64 -64
  130. data/examples/network/broadcastsender/main.rb +32 -32
  131. data/examples/network/broadcastsender/sender.rb +72 -72
  132. data/examples/network/fortuneclient/client.rb +149 -149
  133. data/examples/network/fortuneclient/main.rb +32 -32
  134. data/examples/network/fortuneserver/main.rb +32 -32
  135. data/examples/network/fortuneserver/server.rb +88 -88
  136. data/examples/network/ftp/ftpwindow.rb +259 -259
  137. data/examples/network/ftp/main.rb +32 -32
  138. data/examples/network/http/httpwindow.rb +187 -187
  139. data/examples/network/http/main.rb +32 -32
  140. data/examples/network/loopback/dialog.rb +163 -163
  141. data/examples/network/loopback/main.rb +32 -32
  142. data/examples/opengl/grabber/glwidget.rb +265 -265
  143. data/examples/opengl/grabber/main.rb +32 -32
  144. data/examples/opengl/grabber/mainwindow.rb +189 -189
  145. data/examples/opengl/hellogl/glwidget.rb +226 -226
  146. data/examples/opengl/hellogl/main.rb +32 -32
  147. data/examples/opengl/hellogl/window.rb +66 -66
  148. data/examples/opengl/textures/glwidget.rb +151 -151
  149. data/examples/opengl/textures/main.rb +32 -32
  150. data/examples/opengl/textures/window.rb +77 -77
  151. data/examples/painting/basicdrawing/main.rb +32 -32
  152. data/examples/painting/basicdrawing/renderarea.rb +166 -166
  153. data/examples/painting/basicdrawing/window.rb +215 -215
  154. data/examples/painting/concentriccircles/circlewidget.rb +88 -88
  155. data/examples/painting/concentriccircles/main.rb +32 -32
  156. data/examples/painting/concentriccircles/window.rb +72 -72
  157. data/examples/painting/fontsampler/main.rb +32 -32
  158. data/examples/painting/fontsampler/mainwindow.rb +369 -369
  159. data/examples/painting/fontsampler/mainwindowbase.ui +136 -136
  160. data/examples/painting/fontsampler/makefile +8 -8
  161. data/examples/painting/fontsampler/previewdialog.rb +257 -257
  162. data/examples/painting/fontsampler/previewdialogbase.ui +224 -224
  163. data/examples/painting/fontsampler/previewlabel.rb +43 -43
  164. data/examples/painting/imagecomposition/imagecomposer.rb +152 -152
  165. data/examples/painting/imagecomposition/imagecomposition.qrc +6 -6
  166. data/examples/painting/imagecomposition/main.rb +33 -33
  167. data/examples/painting/imagecomposition/makefile +2 -2
  168. data/examples/painting/painterpaths/main.rb +32 -32
  169. data/examples/painting/painterpaths/renderarea.rb +97 -97
  170. data/examples/painting/painterpaths/window.rb +247 -247
  171. data/examples/painting/svgviewer/files/bubbles.svg +212 -212
  172. data/examples/painting/svgviewer/files/cubic.svg +77 -77
  173. data/examples/painting/svgviewer/files/spheres.svg +79 -79
  174. data/examples/painting/svgviewer/main.rb +38 -38
  175. data/examples/painting/svgviewer/mainwindow.rb +99 -99
  176. data/examples/painting/svgviewer/makefile +2 -2
  177. data/examples/painting/svgviewer/svgview.rb +156 -156
  178. data/examples/painting/svgviewer/svgviewer.qrc +6 -6
  179. data/examples/painting/svgviewer/svgwindow.rb +87 -87
  180. data/examples/painting/transformations/main.rb +32 -32
  181. data/examples/painting/transformations/renderarea.rb +127 -127
  182. data/examples/painting/transformations/window.rb +153 -153
  183. data/examples/passivepopup/passivepopup.rb +38 -38
  184. data/examples/qdbus/chat/chat.rb +146 -146
  185. data/examples/qdbus/chat/chat_adaptor.rb +12 -12
  186. data/examples/qdbus/chat/chat_interface.rb +13 -13
  187. data/examples/qdbus/chat/chatmainwindow.ui +184 -184
  188. data/examples/qdbus/chat/chatsetnickname.ui +145 -145
  189. data/examples/qdbus/chat/makefile +8 -8
  190. data/examples/qdbus/complexpingpong/complexping.rb +92 -92
  191. data/examples/qdbus/complexpingpong/complexpong.rb +83 -83
  192. data/examples/qdbus/complexpingpong/ping-common.rb +1 -1
  193. data/examples/qdbus/listnames/listnames.rb +69 -69
  194. data/examples/qdbus/pingpong/ping-common.rb +1 -1
  195. data/examples/qdbus/pingpong/ping.rb +52 -52
  196. data/examples/qdbus/pingpong/pong.rb +55 -55
  197. data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -151
  198. data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -50
  199. data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -66
  200. data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -61
  201. data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -32
  202. data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -2
  203. data/examples/qtscribble/scribble.rb +270 -270
  204. data/examples/richtext/calendar/main.rb +33 -33
  205. data/examples/richtext/calendar/mainwindow.rb +173 -173
  206. data/examples/richtext/orderform/detailsdialog.rb +130 -130
  207. data/examples/richtext/orderform/main.rb +34 -34
  208. data/examples/richtext/orderform/mainwindow.rb +194 -194
  209. data/examples/richtext/syntaxhighlighter/examples/example +79 -79
  210. data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -90
  211. data/examples/richtext/syntaxhighlighter/main.rb +34 -34
  212. data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -105
  213. data/examples/ruboids/LICENSE.txt +58 -58
  214. data/examples/ruboids/Manifest +26 -26
  215. data/examples/ruboids/README +53 -53
  216. data/examples/ruboids/TODO +29 -29
  217. data/examples/ruboids/boids.properties +33 -33
  218. data/examples/ruboids/generateManifest.rb +42 -42
  219. data/examples/ruboids/release.rb +152 -152
  220. data/examples/ruboids/ruboids/Boid.rb +141 -141
  221. data/examples/ruboids/ruboids/BoidView.rb +159 -159
  222. data/examples/ruboids/ruboids/Camera.rb +24 -24
  223. data/examples/ruboids/ruboids/CameraDialog.rb +218 -218
  224. data/examples/ruboids/ruboids/Canvas.rb +143 -143
  225. data/examples/ruboids/ruboids/Cloud.rb +61 -61
  226. data/examples/ruboids/ruboids/CloudView.rb +54 -54
  227. data/examples/ruboids/ruboids/Flock.rb +47 -47
  228. data/examples/ruboids/ruboids/Graphics.rb +278 -278
  229. data/examples/ruboids/ruboids/Params.rb +87 -87
  230. data/examples/ruboids/ruboids/Point.rb +153 -153
  231. data/examples/ruboids/ruboids/Thing.rb +34 -34
  232. data/examples/ruboids/ruboids/Triangle.rb +21 -21
  233. data/examples/ruboids/ruboids/View.rb +88 -88
  234. data/examples/ruboids/ruboids/World.rb +82 -82
  235. data/examples/ruboids/ruboids/WorldWindow.rb +52 -52
  236. data/examples/ruboids/ruboids/info.rb +12 -12
  237. data/examples/ruboids/ruboids/ruboids.rb +29 -29
  238. data/examples/threading/main_thread.rb +19 -19
  239. data/examples/tutorial/t1/t1.rb +10 -10
  240. data/examples/tutorial/t10/cannon.rb +72 -72
  241. data/examples/tutorial/t10/lcdrange.rb +45 -45
  242. data/examples/tutorial/t10/t10.rb +55 -55
  243. data/examples/tutorial/t11/cannon.rb +124 -124
  244. data/examples/tutorial/t11/lcdrange.rb +45 -45
  245. data/examples/tutorial/t11/t11.rb +65 -65
  246. data/examples/tutorial/t12/cannon.rb +158 -158
  247. data/examples/tutorial/t12/lcdrange.rb +59 -59
  248. data/examples/tutorial/t12/t12.rb +66 -66
  249. data/examples/tutorial/t13/cannon.rb +208 -208
  250. data/examples/tutorial/t13/gamebrd.rb +113 -113
  251. data/examples/tutorial/t13/lcdrange.rb +60 -60
  252. data/examples/tutorial/t13/t13.rb +11 -11
  253. data/examples/tutorial/t14/cannon.rb +263 -263
  254. data/examples/tutorial/t14/gamebrd.rb +123 -123
  255. data/examples/tutorial/t14/lcdrange.rb +63 -63
  256. data/examples/tutorial/t14/t14.rb +11 -11
  257. data/examples/tutorial/t2/t2.rb +16 -16
  258. data/examples/tutorial/t3/t3.rb +18 -18
  259. data/examples/tutorial/t4/t4.rb +25 -25
  260. data/examples/tutorial/t5/t5.rb +37 -37
  261. data/examples/tutorial/t6/t6.rb +52 -52
  262. data/examples/tutorial/t7/lcdrange.rb +32 -32
  263. data/examples/tutorial/t7/t7.rb +42 -42
  264. data/examples/tutorial/t8/cannon.rb +38 -38
  265. data/examples/tutorial/t8/lcdrange.rb +45 -45
  266. data/examples/tutorial/t8/t8.rb +43 -43
  267. data/examples/tutorial/t9/cannon.rb +45 -45
  268. data/examples/tutorial/t9/lcdrange.rb +46 -46
  269. data/examples/tutorial/t9/t9.rb +43 -43
  270. data/examples/widgets/analogclock/analogclock.rb +94 -94
  271. data/examples/widgets/analogclock/main.rb +9 -9
  272. data/examples/widgets/calculator/button.rb +45 -45
  273. data/examples/widgets/calculator/calculator.rb +382 -382
  274. data/examples/widgets/calculator/main.rb +32 -32
  275. data/examples/widgets/charactermap/characterwidget.rb +109 -109
  276. data/examples/widgets/charactermap/main.rb +32 -32
  277. data/examples/widgets/charactermap/mainwindow.rb +118 -118
  278. data/examples/widgets/digitalclock/digitalclock.rb +30 -30
  279. data/examples/widgets/digitalclock/main.rb +9 -9
  280. data/examples/widgets/groupbox/main.rb +32 -32
  281. data/examples/widgets/groupbox/window.rb +134 -134
  282. data/examples/widgets/icons/iconpreviewarea.rb +110 -110
  283. data/examples/widgets/icons/iconsizespinbox.rb +39 -39
  284. data/examples/widgets/icons/imagedelegate.rb +73 -73
  285. data/examples/widgets/icons/main.rb +32 -32
  286. data/examples/widgets/icons/mainwindow.rb +351 -351
  287. data/examples/widgets/imageviewer/imageviewer.rb +219 -219
  288. data/examples/widgets/imageviewer/main.rb +32 -32
  289. data/examples/widgets/lineedits/main.rb +32 -32
  290. data/examples/widgets/lineedits/window.rb +199 -199
  291. data/examples/widgets/movie/main.rb +32 -32
  292. data/examples/widgets/movie/movieplayer.rb +201 -201
  293. data/examples/widgets/screenshot/main.rb +32 -32
  294. data/examples/widgets/screenshot/screenshot.rb +154 -154
  295. data/examples/widgets/scribble/main.rb +32 -32
  296. data/examples/widgets/scribble/mainwindow.rb +202 -202
  297. data/examples/widgets/scribble/scribblearea.rb +154 -154
  298. data/examples/widgets/sliders/main.rb +32 -32
  299. data/examples/widgets/sliders/slidersgroup.rb +97 -97
  300. data/examples/widgets/sliders/window.rb +124 -124
  301. data/examples/widgets/spinboxes/main.rb +32 -32
  302. data/examples/widgets/spinboxes/window.rb +213 -213
  303. data/examples/widgets/tetrix/main.rb +33 -33
  304. data/examples/widgets/tetrix/tetrixboard.rb +346 -346
  305. data/examples/widgets/tetrix/tetrixpiece.rb +135 -135
  306. data/examples/widgets/tetrix/tetrixwindow.rb +88 -88
  307. data/examples/widgets/tooltips/main.rb +32 -32
  308. data/examples/widgets/tooltips/shapeitem.rb +31 -31
  309. data/examples/widgets/tooltips/sortingbox.rb +222 -222
  310. data/examples/widgets/wiggly/dialog.rb +48 -48
  311. data/examples/widgets/wiggly/main.rb +9 -9
  312. data/examples/widgets/wiggly/wigglywidget.rb +75 -75
  313. data/examples/widgets/windowflags/controllerwindow.rb +195 -195
  314. data/examples/widgets/windowflags/main.rb +32 -32
  315. data/examples/widgets/windowflags/previewwindow.rb +103 -103
  316. data/examples/xml/dombookmarks/frank.xbel +230 -230
  317. data/examples/xml/dombookmarks/jennifer.xbel +93 -93
  318. data/examples/xml/dombookmarks/main.rb +34 -34
  319. data/examples/xml/dombookmarks/mainwindow.rb +129 -129
  320. data/examples/xml/dombookmarks/xbeltree.rb +172 -172
  321. data/examples/xml/saxbookmarks/frank.xbel +230 -230
  322. data/examples/xml/saxbookmarks/jennifer.xbel +93 -93
  323. data/examples/xml/saxbookmarks/main.rb +34 -34
  324. data/examples/xml/saxbookmarks/mainwindow.rb +144 -144
  325. data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -95
  326. data/examples/xml/saxbookmarks/xbelhandler.rb +122 -122
  327. data/ext/CMakeLists.txt +3 -0
  328. data/ext/cmake/modules/BasicFindPackageVersion.cmake.in +30 -30
  329. data/ext/cmake/modules/CMakeCSharpCompiler.cmake.in +7 -7
  330. data/ext/cmake/modules/CMakeCSharpInformation.cmake +366 -366
  331. data/ext/cmake/modules/CMakeDetermineCSharpCompiler.cmake +85 -85
  332. data/ext/cmake/modules/CMakeTestCSharpCompiler.cmake +1 -1
  333. data/ext/cmake/modules/FindLibraryWithDebug.cmake +113 -113
  334. data/ext/cmake/modules/FindMono.cmake +36 -36
  335. data/ext/cmake/modules/FindPHP5.cmake +179 -179
  336. data/ext/cmake/modules/FindPerlMore.cmake +78 -78
  337. data/ext/cmake/modules/FindPhonon.cmake +71 -71
  338. data/ext/cmake/modules/FindQImageBlitz.cmake +51 -51
  339. data/ext/cmake/modules/FindQScintilla.cmake +57 -57
  340. data/ext/cmake/modules/FindQwt5.cmake +104 -104
  341. data/ext/cmake/modules/FindRuby.cmake +279 -279
  342. data/ext/cmake/modules/FindSmoke.cmake +78 -78
  343. data/ext/cmake/modules/MacroLogFeature.cmake +146 -146
  344. data/ext/cmake/modules/MacroOptionalAddBindings.cmake +47 -47
  345. data/ext/cmake/modules/MacroOptionalFindPackage.cmake +28 -28
  346. data/ext/cmake/modules/MacroPushRequiredVars.cmake +47 -47
  347. data/ext/cmake/modules/MacroWriteBasicCMakeVersionFile.cmake +22 -22
  348. data/ext/cmake/modules/SmokeConfig.cmake.in +109 -109
  349. data/ext/generator/CMakeLists.txt +38 -38
  350. data/ext/generator/cmake/BasicFindPackageVersion.cmake.in +30 -30
  351. data/ext/generator/cmake/CMakeLists.txt +24 -24
  352. data/ext/generator/cmake/FindLibraryWithDebug.cmake +113 -113
  353. data/ext/generator/cmake/FindPhonon.cmake +71 -71
  354. data/ext/generator/cmake/FindQImageBlitz.cmake +51 -51
  355. data/ext/generator/cmake/FindQScintilla.cmake +57 -57
  356. data/ext/generator/cmake/FindQwt5.cmake +104 -104
  357. data/ext/generator/cmake/HandleImportedTargetsInCMakeRequiredLibraries.cmake +85 -85
  358. data/ext/generator/cmake/MacroLogFeature.cmake +146 -146
  359. data/ext/generator/cmake/MacroOptionalAddBindings.cmake +47 -47
  360. data/ext/generator/cmake/MacroOptionalFindPackage.cmake +28 -28
  361. data/ext/generator/cmake/MacroWriteBasicCMakeVersionFile.cmake +22 -22
  362. data/ext/generator/cmake/SmokeConfig.cmake.in +109 -109
  363. data/ext/generator/config.h +25 -25
  364. data/ext/generator/generator_export.h +31 -31
  365. data/ext/generator/generatorenvironment.cpp +52 -52
  366. data/ext/generator/generatorenvironment.h +35 -35
  367. data/ext/generator/generatorpreprocessor.cpp +303 -303
  368. data/ext/generator/generatorpreprocessor.h +83 -83
  369. data/ext/generator/generators/CMakeLists.txt +4 -4
  370. data/ext/generator/generators/dump/CMakeLists.txt +15 -15
  371. data/ext/generator/generators/dump/generator_dump.cpp +36 -36
  372. data/ext/generator/generators/smoke/CMakeLists.txt +18 -18
  373. data/ext/generator/generators/smoke/generator_smoke.cpp +240 -240
  374. data/ext/generator/generators/smoke/globals.h +140 -140
  375. data/ext/generator/generators/smoke/helpers.cpp +793 -793
  376. data/ext/generator/generators/smoke/writeClasses.cpp +502 -502
  377. data/ext/generator/generators/smoke/writeSmokeDataFile.cpp +754 -754
  378. data/ext/generator/generatorvisitor.cpp +922 -922
  379. data/ext/generator/generatorvisitor.h +119 -119
  380. data/ext/generator/name_compiler.cpp +205 -205
  381. data/ext/generator/name_compiler.h +76 -76
  382. data/ext/generator/options.cpp +33 -33
  383. data/ext/generator/options.h +46 -46
  384. data/ext/generator/parser/CMakeLists.txt +50 -50
  385. data/ext/generator/parser/ast.cpp +21 -21
  386. data/ext/generator/parser/ast.h +923 -923
  387. data/ext/generator/parser/astutilities.h +65 -65
  388. data/ext/generator/parser/codegenerator.cpp +867 -867
  389. data/ext/generator/parser/codegenerator.h +180 -180
  390. data/ext/generator/parser/codemodel_fwd.h +76 -76
  391. data/ext/generator/parser/commentformatter.cpp +54 -54
  392. data/ext/generator/parser/commentformatter.h +45 -45
  393. data/ext/generator/parser/commentparser.cpp +109 -109
  394. data/ext/generator/parser/commentparser.h +84 -84
  395. data/ext/generator/parser/control.cpp +40 -40
  396. data/ext/generator/parser/control.h +51 -51
  397. data/ext/generator/parser/cppparser_export.h +33 -33
  398. data/ext/generator/parser/default_visitor.cpp +470 -470
  399. data/ext/generator/parser/default_visitor.h +116 -116
  400. data/ext/generator/parser/dumptree.cpp +146 -146
  401. data/ext/generator/parser/dumptree.h +50 -50
  402. data/ext/generator/parser/indexedstring.cpp +213 -213
  403. data/ext/generator/parser/indexedstring.h +147 -147
  404. data/ext/generator/parser/kdevelop-parser-rev +1 -1
  405. data/ext/generator/parser/kdevvarlengtharray.h +346 -346
  406. data/ext/generator/parser/lexer.cpp +964 -964
  407. data/ext/generator/parser/lexer.h +308 -308
  408. data/ext/generator/parser/listnode.cpp +20 -20
  409. data/ext/generator/parser/listnode.h +97 -97
  410. data/ext/generator/parser/memorypool.cpp +20 -20
  411. data/ext/generator/parser/memorypool.h +41 -41
  412. data/ext/generator/parser/name_compiler.cpp +190 -190
  413. data/ext/generator/parser/name_compiler.h +77 -77
  414. data/ext/generator/parser/parser.cpp +4708 -4708
  415. data/ext/generator/parser/parser.h +290 -290
  416. data/ext/generator/parser/parsesession.cpp +106 -106
  417. data/ext/generator/parser/parsesession.h +87 -87
  418. data/ext/generator/parser/problem.h +21 -21
  419. data/ext/generator/parser/rpp/CMakeLists.txt +45 -45
  420. data/ext/generator/parser/rpp/Makefile.am +13 -13
  421. data/ext/generator/parser/rpp/anchor.h +51 -51
  422. data/ext/generator/parser/rpp/appendedlist.h +363 -363
  423. data/ext/generator/parser/rpp/chartools.cpp +146 -146
  424. data/ext/generator/parser/rpp/chartools.h +99 -99
  425. data/ext/generator/parser/rpp/macrorepository.cpp +44 -44
  426. data/ext/generator/parser/rpp/macrorepository.h +59 -59
  427. data/ext/generator/parser/rpp/pp-configuration +86 -86
  428. data/ext/generator/parser/rpp/pp-engine.h +267 -267
  429. data/ext/generator/parser/rpp/pp-environment.cpp +271 -271
  430. data/ext/generator/parser/rpp/pp-environment.h +119 -119
  431. data/ext/generator/parser/rpp/pp-internal.cpp +38 -38
  432. data/ext/generator/parser/rpp/pp-internal.h +37 -37
  433. data/ext/generator/parser/rpp/pp-location.cpp +191 -191
  434. data/ext/generator/parser/rpp/pp-location.h +89 -89
  435. data/ext/generator/parser/rpp/pp-macro-expander.cpp +568 -568
  436. data/ext/generator/parser/rpp/pp-macro-expander.cpp.orig +558 -558
  437. data/ext/generator/parser/rpp/pp-macro-expander.h +130 -130
  438. data/ext/generator/parser/rpp/pp-macro.cpp +153 -153
  439. data/ext/generator/parser/rpp/pp-macro.h +176 -176
  440. data/ext/generator/parser/rpp/pp-scanner.cpp +311 -311
  441. data/ext/generator/parser/rpp/pp-scanner.h +97 -97
  442. data/ext/generator/parser/rpp/pp-stream.cpp +425 -425
  443. data/ext/generator/parser/rpp/pp-stream.h +183 -183
  444. data/ext/generator/parser/rpp/preprocessor.cpp +65 -65
  445. data/ext/generator/parser/rpp/preprocessor.h +80 -80
  446. data/ext/generator/parser/rpp/rpp.pri +2 -2
  447. data/ext/generator/parser/rpp/test/t001.cpp +23 -23
  448. data/ext/generator/parser/rpp/test/t002.cpp +15 -15
  449. data/ext/generator/parser/rpp/test/t003.cpp +10 -10
  450. data/ext/generator/parser/rpp/test/t004.cpp +9 -9
  451. data/ext/generator/parser/rpp/test/t005.cpp +10 -10
  452. data/ext/generator/parser/rpp/test/t006.cpp +10 -10
  453. data/ext/generator/parser/rpp/test/t007.cpp +6 -6
  454. data/ext/generator/parser/rpp/test/t008.cpp +6 -6
  455. data/ext/generator/parser/rpp/test/t009.cpp +5 -5
  456. data/ext/generator/parser/rpp/test/t010.cpp +15 -15
  457. data/ext/generator/parser/rpp/test/t011.cpp +9 -9
  458. data/ext/generator/parser/rpp/tests/CMakeLists.txt +17 -17
  459. data/ext/generator/parser/rpp/tests/main.cpp +69 -69
  460. data/ext/generator/parser/rxx.pri +50 -50
  461. data/ext/generator/parser/rxx_allocator.h +128 -128
  462. data/ext/generator/parser/safetycounter.h +57 -57
  463. data/ext/generator/parser/simplecursor.h +74 -74
  464. data/ext/generator/parser/stringhelpers.cpp +577 -577
  465. data/ext/generator/parser/stringhelpers.h +118 -118
  466. data/ext/generator/parser/symbol.h +140 -140
  467. data/ext/generator/parser/tests/CMakeLists.txt +46 -46
  468. data/ext/generator/parser/tests/test_generator.cpp +259 -259
  469. data/ext/generator/parser/tests/test_parser.cpp +474 -474
  470. data/ext/generator/parser/tests/test_pool.cpp +109 -109
  471. data/ext/generator/parser/tests/test_pool.h +35 -35
  472. data/ext/generator/parser/tests/testconfig.h.cmake +4 -4
  473. data/ext/generator/parser/tokens.cpp +367 -367
  474. data/ext/generator/parser/tokens.h +148 -148
  475. data/ext/generator/parser/type_compiler.cpp +135 -135
  476. data/ext/generator/parser/type_compiler.h +68 -68
  477. data/ext/generator/parser/visitor.cpp +115 -115
  478. data/ext/generator/parser/visitor.h +138 -138
  479. data/ext/generator/smoke.h +557 -557
  480. data/ext/generator/smokegen_string.h +43 -43
  481. data/ext/generator/type.cpp +204 -204
  482. data/ext/generator/type.h +497 -497
  483. data/ext/generator/type_compiler.cpp +277 -277
  484. data/ext/generator/type_compiler.h +80 -80
  485. data/ext/ruby/CMakeLists.txt +64 -64
  486. data/ext/ruby/qtdeclarative/CMakeLists.txt +17 -17
  487. data/ext/ruby/qtdeclarative/qtdeclarative.cpp +67 -67
  488. data/ext/ruby/qtdeclarative/qtdeclarative.rb +17 -17
  489. data/ext/ruby/qtdeclarative/qtdeclarativehandlers.cpp +36 -36
  490. data/ext/ruby/qtruby/AUTHORS +54 -54
  491. data/ext/ruby/qtruby/COPYING +355 -355
  492. data/ext/ruby/qtruby/COPYING.LIB +510 -510
  493. data/ext/ruby/qtruby/ChangeLog +3732 -3732
  494. data/ext/ruby/qtruby/INSTALL +79 -79
  495. data/ext/ruby/qtruby/README +264 -264
  496. data/ext/ruby/qtruby/TODO +8 -8
  497. data/ext/ruby/qtruby/bin/rbqtapi +152 -152
  498. data/ext/ruby/qtruby/rails_support/CMakeLists.txt +1 -1
  499. data/ext/ruby/qtruby/rails_support/active_item_model.rb +234 -234
  500. data/ext/ruby/qtruby/rails_support/active_table_model.rb +122 -122
  501. data/ext/ruby/qtruby/src/Qt.cpp +8 -8
  502. data/ext/ruby/qtruby/src/marshall_basetypes.h +208 -208
  503. data/ext/ruby/qtruby/src/marshall_complex.h +175 -175
  504. data/ext/ruby/qtruby/src/marshall_macros.h +647 -647
  505. data/ext/ruby/qtruby/src/marshall_types.cpp +815 -815
  506. data/ext/ruby/qtruby/src/marshall_types.h +240 -240
  507. data/ext/ruby/qtruby/src/qtruby.cpp +69 -12
  508. data/ext/ruby/qtruby/src/qtruby.h +1 -1
  509. data/ext/ruby/qtruby/test/opoverloading.rb +46 -46
  510. data/ext/ruby/qtruby/test/unittests.rb +151 -151
  511. data/ext/ruby/qtruby/tools/rbrcc/main.cpp +173 -173
  512. data/ext/ruby/qtruby/tools/rbrcc/rbrcc.pro +14 -14
  513. data/ext/ruby/qtruby/tools/rbrcc/rcc.cpp +648 -648
  514. data/ext/ruby/qtruby/tools/rbrcc/rcc.h +165 -165
  515. data/ext/ruby/qtruby/tools/rbuic/LICENSE.GPL +280 -280
  516. data/ext/ruby/qtruby/tools/rbuic/TODO +4 -4
  517. data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.cpp +106 -106
  518. data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.h +95 -95
  519. data/ext/ruby/qtruby/tools/rbuic/databaseinfo.cpp +102 -102
  520. data/ext/ruby/qtruby/tools/rbuic/databaseinfo.h +85 -85
  521. data/ext/ruby/qtruby/tools/rbuic/driver.cpp +384 -384
  522. data/ext/ruby/qtruby/tools/rbuic/driver.h +141 -141
  523. data/ext/ruby/qtruby/tools/rbuic/option.h +3 -0
  524. data/ext/ruby/qtruby/tools/rbuic/rbuic.pri +23 -23
  525. data/ext/ruby/qtruby/tools/rbuic/rbuic4.pro +43 -43
  526. data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.cpp +150 -150
  527. data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.h +83 -83
  528. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.cpp +217 -217
  529. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.h +85 -85
  530. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.cpp +185 -185
  531. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.h +86 -86
  532. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.cpp +88 -88
  533. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.h +83 -83
  534. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.cpp +126 -126
  535. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.h +87 -87
  536. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.cpp +2478 -2478
  537. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.h +314 -314
  538. data/ext/ruby/qtruby/tools/rbuic/ruby/ruby.pri +18 -18
  539. data/ext/ruby/qtruby/tools/rbuic/treewalker.cpp +318 -318
  540. data/ext/ruby/qtruby/tools/rbuic/treewalker.h +139 -139
  541. data/ext/ruby/qtruby/tools/rbuic/ui4.cpp +7623 -7623
  542. data/ext/ruby/qtruby/tools/rbuic/ui4.h +3180 -3180
  543. data/ext/ruby/qtruby/tools/rbuic/utils.h +125 -125
  544. data/ext/ruby/qtruby/tools/rbuic/validator.cpp +100 -100
  545. data/ext/ruby/qtruby/tools/rbuic/validator.h +80 -80
  546. data/ext/ruby/qtscript/CMakeLists.txt +19 -19
  547. data/ext/ruby/qtscript/qtscript.cpp +83 -83
  548. data/ext/ruby/qtscript/qtscript.rb +40 -40
  549. data/ext/ruby/qtscript/qtscripthandlers.cpp +37 -37
  550. data/ext/ruby/qtscript/smokedata.cpp +1403 -1403
  551. data/ext/ruby/qttest/CMakeLists.txt +18 -18
  552. data/ext/ruby/qttest/ChangeLog +9 -9
  553. data/ext/ruby/qttest/examples/myfirsttest.rb +30 -30
  554. data/ext/ruby/qttest/qttest.cpp +83 -83
  555. data/ext/ruby/qttest/qttest.rb +166 -166
  556. data/ext/ruby/qttest/qttesthandlers.cpp +37 -37
  557. data/ext/ruby/qtuitools/CMakeLists.txt +16 -16
  558. data/ext/ruby/qtuitools/qtuitools.cpp +83 -83
  559. data/ext/ruby/qtuitools/qtuitools.rb +17 -17
  560. data/ext/ruby/qtuitools/qtuitoolshandlers.cpp +32 -32
  561. data/ext/ruby/qtwebkit/CMakeLists.txt +17 -17
  562. data/ext/ruby/qtwebkit/qtwebkit.cpp +67 -67
  563. data/ext/ruby/qtwebkit/qtwebkit.rb +17 -17
  564. data/ext/ruby/qtwebkit/qtwebkithandlers.cpp +40 -40
  565. data/ext/smoke/deptool/CMakeLists.txt +7 -7
  566. data/ext/smoke/deptool/main.cpp +128 -128
  567. data/ext/smoke/qtcore/CMakeLists.txt +88 -88
  568. data/ext/smoke/qtcore/QtGuess.txt +180 -180
  569. data/ext/smoke/qtcore/config.xml.cmake +10 -10
  570. data/ext/smoke/qtcore/qt-config.xml.cmake +21 -21
  571. data/ext/smoke/qtcore/qtcore_includes.h +1 -1
  572. data/ext/smoke/qtcore/smokeconfig.xml +193 -193
  573. data/ext/smoke/qtcore/tests/CMakeLists.txt +13 -13
  574. data/ext/smoke/qtcore/tests/test.cpp +846 -846
  575. data/ext/smoke/qtcore_smoke.h +16 -16
  576. data/ext/smoke/qtdbus/CMakeLists.txt +38 -38
  577. data/ext/smoke/qtdbus/config.xml.cmake +11 -11
  578. data/ext/smoke/qtdbus/qtdbus_includes.h +2 -2
  579. data/ext/smoke/qtdbus/smokeconfig.xml +65 -65
  580. data/ext/smoke/qtdbus_smoke.h +16 -16
  581. data/ext/smoke/qtdeclarative/CMakeLists.txt +45 -45
  582. data/ext/smoke/qtdeclarative/config.xml.cmake +12 -12
  583. data/ext/smoke/qtdeclarative/qtdeclarative_includes.h +3 -3
  584. data/ext/smoke/qtdeclarative/smokeconfig.xml +59 -59
  585. data/ext/smoke/qtdeclarative_smoke.h +16 -16
  586. data/ext/smoke/qtgui/CMakeLists.txt +76 -76
  587. data/ext/smoke/qtgui/config.xml.cmake +11 -11
  588. data/ext/smoke/qtgui/qtgui_includes.h +7 -7
  589. data/ext/smoke/qtgui/smokeconfig.xml +500 -500
  590. data/ext/smoke/qtgui_smoke.h +16 -16
  591. data/ext/smoke/qthelp/CMakeLists.txt +45 -45
  592. data/ext/smoke/qthelp/config.xml.cmake +13 -13
  593. data/ext/smoke/qthelp/qthelp_includes.h +3 -3
  594. data/ext/smoke/qthelp/smokeconfig.xml +54 -54
  595. data/ext/smoke/qthelp_smoke.h +16 -16
  596. data/ext/smoke/qtmultimedia/CMakeLists.txt +42 -42
  597. data/ext/smoke/qtmultimedia/config.xml.cmake +12 -12
  598. data/ext/smoke/qtmultimedia/qtmultimedia_includes.h +3 -3
  599. data/ext/smoke/qtmultimedia/smokeconfig.xml +51 -51
  600. data/ext/smoke/qtmultimedia_smoke.h +16 -16
  601. data/ext/smoke/qtnetwork/CMakeLists.txt +38 -38
  602. data/ext/smoke/qtnetwork/config.xml.cmake +11 -11
  603. data/ext/smoke/qtnetwork/qtnetwork_includes.h +2 -2
  604. data/ext/smoke/qtnetwork/smokeconfig.xml +81 -81
  605. data/ext/smoke/qtnetwork_smoke.h +16 -16
  606. data/ext/smoke/qtopengl/CMakeLists.txt +43 -43
  607. data/ext/smoke/qtopengl/config.xml.cmake +13 -13
  608. data/ext/smoke/qtopengl/qtopengl_includes.h +3 -3
  609. data/ext/smoke/qtopengl/smokeconfig.xml +58 -58
  610. data/ext/smoke/qtopengl_smoke.h +16 -16
  611. data/ext/smoke/qtscript/CMakeLists.txt +31 -31
  612. data/ext/smoke/qtscript/config.xml.cmake +11 -11
  613. data/ext/smoke/qtscript/qtscript_includes.h +14 -14
  614. data/ext/smoke/qtscript/smokeconfig.xml +39 -39
  615. data/ext/smoke/qtscript_smoke.h +16 -16
  616. data/ext/smoke/qtsql/CMakeLists.txt +45 -45
  617. data/ext/smoke/qtsql/config.xml.cmake +11 -11
  618. data/ext/smoke/qtsql/qtsql_includes.h +3 -3
  619. data/ext/smoke/qtsql/smokeconfig.xml +60 -60
  620. data/ext/smoke/qtsql_smoke.h +16 -16
  621. data/ext/smoke/qtsvg/CMakeLists.txt +43 -43
  622. data/ext/smoke/qtsvg/config.xml.cmake +12 -12
  623. data/ext/smoke/qtsvg/qtsvg_includes.h +3 -3
  624. data/ext/smoke/qtsvg/smokeconfig.xml +46 -46
  625. data/ext/smoke/qtsvg_smoke.h +16 -16
  626. data/ext/smoke/qttest/CMakeLists.txt +35 -35
  627. data/ext/smoke/qttest/config.xml.cmake +12 -12
  628. data/ext/smoke/qttest/qttest_includes.h +14 -14
  629. data/ext/smoke/qttest/smokeconfig.xml +36 -36
  630. data/ext/smoke/qttest_smoke.h +16 -16
  631. data/ext/smoke/qtuitools/CMakeLists.txt +30 -30
  632. data/ext/smoke/qtuitools/config.xml.cmake +12 -12
  633. data/ext/smoke/qtuitools/qtuitools_includes.h +1 -1
  634. data/ext/smoke/qtuitools/smokeconfig.xml +20 -20
  635. data/ext/smoke/qtuitools_smoke.h +16 -16
  636. data/ext/smoke/qtwebkit/CMakeLists.txt +36 -36
  637. data/ext/smoke/qtwebkit/config.xml.cmake +11 -11
  638. data/ext/smoke/qtwebkit/qtwebkit_includes.h +1 -1
  639. data/ext/smoke/qtwebkit/smokeconfig.xml +48 -48
  640. data/ext/smoke/qtwebkit_smoke.h +16 -16
  641. data/ext/smoke/qtxml/CMakeLists.txt +41 -41
  642. data/ext/smoke/qtxml/config.xml.cmake +11 -11
  643. data/ext/smoke/qtxml/qtxml_includes.h +2 -2
  644. data/ext/smoke/qtxml/smokeconfig.xml +70 -70
  645. data/ext/smoke/qtxml_smoke.h +16 -16
  646. data/ext/smoke/qtxmlpatterns/CMakeLists.txt +42 -42
  647. data/ext/smoke/qtxmlpatterns/config.xml.cmake +12 -12
  648. data/ext/smoke/qtxmlpatterns/qtxmlpatterns_includes.h +3 -3
  649. data/ext/smoke/qtxmlpatterns/smokeconfig.xml +80 -80
  650. data/ext/smoke/qtxmlpatterns_smoke.h +16 -16
  651. data/ext/smoke/smokeapi/CMakeLists.txt +9 -9
  652. data/ext/smoke/smokeapi/main.cpp +309 -309
  653. data/ext/smoke/smokebase/CMakeLists.txt +11 -11
  654. data/ext/smoke/smokebase/smokebase.cpp +6 -6
  655. data/ext/smoke/solid_smoke.h +16 -16
  656. data/extconf.rb +2 -2
  657. data/lib/Qt.rb +1 -1
  658. data/lib/Qt4.rb +111 -111
  659. data/lib/qtbindings_version.rb +2 -2
  660. data/lib/qtdeclarative/qtdeclarative.rb +17 -17
  661. data/lib/qtscript/qtscript.rb +40 -40
  662. data/lib/qttest/qttest.rb +166 -166
  663. data/lib/qtuitools/qtuitools.rb +17 -17
  664. data/lib/qtwebkit/qtwebkit.rb +17 -17
  665. data/qtbindings.gemspec +18 -18
  666. metadata +48 -48
@@ -1,176 +1,176 @@
1
- /*
2
- Copyright 2005 Roberto Raggi <roberto@kdevelop.org>
3
-
4
- Permission to use, copy, modify, distribute, and sell this software and its
5
- documentation for any purpose is hereby granted without fee, provided that
6
- the above copyright notice appear in all copies and that both that
7
- copyright notice and this permission notice appear in supporting
8
- documentation.
9
-
10
- The above copyright notice and this permission notice shall be included in
11
- all copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
17
- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
- */
20
-
21
- #ifndef PP_MACRO_H
22
- #define PP_MACRO_H
23
-
24
- //krazy:excludeall=inline
25
-
26
- #include <QtCore/QStringList>
27
- #include <QVector>
28
- #include "../indexedstring.h"
29
- #include "../cppparser_export.h"
30
- // #include "appendedlist.h"
31
- // #include <language/editor/hashedstring.h>
32
- // #include <language/duchain/appendedlist.h>
33
-
34
- #define FOREACH_CUSTOM(item, container, size) for(int a = 0, mustDo = 1; a < (int)size; ++a) if((mustDo = 1)) for(item(container[a]); mustDo; mustDo = 0)
35
-
36
- namespace rpp {
37
-
38
- // Q_DECL_EXPORT DECLARE_LIST_MEMBER_HASH(pp_macro, definition, IndexedString)
39
- // Q_DECL_EXPORT DECLARE_LIST_MEMBER_HASH(pp_macro, formals, IndexedString)
40
-
41
- //This contains the data of a macro that can be marshalled by directly copying the memory
42
- struct CPPPARSER_EXPORT pp_macro
43
- { ///@todo enable structure packing
44
- pp_macro(const IndexedString& name = IndexedString());
45
- pp_macro(const char* name);
46
- pp_macro(const pp_macro& rhs, bool dynamic = true);
47
- ~pp_macro();
48
-
49
- uint classSize() const {
50
- return sizeof(pp_macro);
51
- }
52
-
53
- /*uint itemSize() const {
54
- return dynamicSize();
55
- }*/
56
-
57
- typedef uint HashType;
58
-
59
- IndexedString name;
60
- IndexedString file;
61
-
62
- int sourceLine; //line
63
-
64
- bool defined: 1; // !isUndefMacro
65
- bool hidden: 1;
66
- bool function_like: 1; // hasArguments
67
- bool variadics: 1;
68
- bool fixed : 1; //If this is set, the macro can not be overridden or undefined.
69
- mutable bool m_valueHashValid : 1;
70
-
71
- //The valueHash is not necessarily valid
72
- mutable HashType m_valueHash; //Hash that represents the values of all macros
73
-
74
- bool operator==(const pp_macro& rhs) const;
75
-
76
- bool isUndef() const {
77
- return !defined;
78
- }
79
-
80
- unsigned int hash() const {
81
- return completeHash();
82
- }
83
-
84
- HashType idHash() const {
85
- return name.hash();
86
- }
87
-
88
- QString toString() const;
89
-
90
- struct NameCompare {
91
- bool operator () ( const pp_macro& lhs, const pp_macro& rhs ) const {
92
- return lhs.name.index() < rhs.name.index();
93
- }
94
- #ifdef Q_CC_MSVC
95
-
96
- HashType operator () ( const pp_macro& macro ) const
97
- {
98
- return macro.idHash();
99
- }
100
-
101
- enum
102
- { // parameters for hash table
103
- bucket_size = 4, // 0 < bucket_size
104
- min_buckets = 8}; // min_buckets = 2 ^^ N, 0 < N
105
- #endif
106
- };
107
-
108
- //Hash over id and value
109
- struct CompleteHash {
110
- HashType operator () ( const pp_macro& lhs ) const {
111
- return lhs.completeHash();
112
- }
113
-
114
- #ifdef Q_CC_MSVC
115
-
116
- bool operator () ( const pp_macro& lhs, const pp_macro& rhs ) const {
117
- HashType lhash = lhs.valueHash()+lhs.idHash();
118
- HashType rhash = rhs.valueHash()+rhs.idHash();
119
- if( lhash < rhash ) return true;
120
- else if( lhash > rhash ) return false;
121
-
122
- int df = lhs.name.str().compare( rhs.name.str() );
123
- return df < 0;
124
- }
125
-
126
- enum
127
- { // parameters for hash table
128
- bucket_size = 4, // 0 < bucket_size
129
- min_buckets = 8}; // min_buckets = 2 ^^ N, 0 < N
130
- #endif
131
- };
132
-
133
- HashType valueHash() const {
134
- if( !m_valueHashValid ) computeHash();
135
- return m_valueHash;
136
- }
137
-
138
- ///Hash that identifies all of this macro, the value and the identity
139
- HashType completeHash() const {
140
- return valueHash() + idHash() * 3777;
141
- }
142
-
143
- void invalidateHash();
144
-
145
- ///Convenient way of setting the definition, it is tokenized automatically
146
- ///@param definition utf-8 representation of the definition text
147
- void setDefinitionText(QByteArray definition);
148
-
149
- ///More convenient overload
150
- void setDefinitionText(QString definition);
151
-
152
- void setDefinitionText(const char* definition) {
153
- setDefinitionText(QByteArray(definition));
154
- }
155
-
156
- // START_APPENDED_LISTS(pp_macro)
157
- // APPENDED_LIST_FIRST(pp_macro, IndexedString, definition)
158
- // APPENDED_LIST(pp_macro, IndexedString, formals, definition)
159
- // END_APPENDED_LISTS(pp_macro, formals)
160
-
161
- QVector<IndexedString> definition;
162
- QVector<IndexedString> formals;
163
-
164
- private:
165
- pp_macro& operator=(const pp_macro& rhs);
166
- void computeHash() const;
167
- };
168
-
169
- }
170
-
171
- inline uint qHash( const rpp::pp_macro& m ) {
172
- return (uint)m.idHash();
173
- }
174
-
175
- #endif // PP_MACRO_H
176
-
1
+ /*
2
+ Copyright 2005 Roberto Raggi <roberto@kdevelop.org>
3
+
4
+ Permission to use, copy, modify, distribute, and sell this software and its
5
+ documentation for any purpose is hereby granted without fee, provided that
6
+ the above copyright notice appear in all copies and that both that
7
+ copyright notice and this permission notice appear in supporting
8
+ documentation.
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
17
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ #ifndef PP_MACRO_H
22
+ #define PP_MACRO_H
23
+
24
+ //krazy:excludeall=inline
25
+
26
+ #include <QtCore/QStringList>
27
+ #include <QVector>
28
+ #include "../indexedstring.h"
29
+ #include "../cppparser_export.h"
30
+ // #include "appendedlist.h"
31
+ // #include <language/editor/hashedstring.h>
32
+ // #include <language/duchain/appendedlist.h>
33
+
34
+ #define FOREACH_CUSTOM(item, container, size) for(int a = 0, mustDo = 1; a < (int)size; ++a) if((mustDo = 1)) for(item(container[a]); mustDo; mustDo = 0)
35
+
36
+ namespace rpp {
37
+
38
+ // Q_DECL_EXPORT DECLARE_LIST_MEMBER_HASH(pp_macro, definition, IndexedString)
39
+ // Q_DECL_EXPORT DECLARE_LIST_MEMBER_HASH(pp_macro, formals, IndexedString)
40
+
41
+ //This contains the data of a macro that can be marshalled by directly copying the memory
42
+ struct CPPPARSER_EXPORT pp_macro
43
+ { ///@todo enable structure packing
44
+ pp_macro(const IndexedString& name = IndexedString());
45
+ pp_macro(const char* name);
46
+ pp_macro(const pp_macro& rhs, bool dynamic = true);
47
+ ~pp_macro();
48
+
49
+ uint classSize() const {
50
+ return sizeof(pp_macro);
51
+ }
52
+
53
+ /*uint itemSize() const {
54
+ return dynamicSize();
55
+ }*/
56
+
57
+ typedef uint HashType;
58
+
59
+ IndexedString name;
60
+ IndexedString file;
61
+
62
+ int sourceLine; //line
63
+
64
+ bool defined: 1; // !isUndefMacro
65
+ bool hidden: 1;
66
+ bool function_like: 1; // hasArguments
67
+ bool variadics: 1;
68
+ bool fixed : 1; //If this is set, the macro can not be overridden or undefined.
69
+ mutable bool m_valueHashValid : 1;
70
+
71
+ //The valueHash is not necessarily valid
72
+ mutable HashType m_valueHash; //Hash that represents the values of all macros
73
+
74
+ bool operator==(const pp_macro& rhs) const;
75
+
76
+ bool isUndef() const {
77
+ return !defined;
78
+ }
79
+
80
+ unsigned int hash() const {
81
+ return completeHash();
82
+ }
83
+
84
+ HashType idHash() const {
85
+ return name.hash();
86
+ }
87
+
88
+ QString toString() const;
89
+
90
+ struct NameCompare {
91
+ bool operator () ( const pp_macro& lhs, const pp_macro& rhs ) const {
92
+ return lhs.name.index() < rhs.name.index();
93
+ }
94
+ #ifdef Q_CC_MSVC
95
+
96
+ HashType operator () ( const pp_macro& macro ) const
97
+ {
98
+ return macro.idHash();
99
+ }
100
+
101
+ enum
102
+ { // parameters for hash table
103
+ bucket_size = 4, // 0 < bucket_size
104
+ min_buckets = 8}; // min_buckets = 2 ^^ N, 0 < N
105
+ #endif
106
+ };
107
+
108
+ //Hash over id and value
109
+ struct CompleteHash {
110
+ HashType operator () ( const pp_macro& lhs ) const {
111
+ return lhs.completeHash();
112
+ }
113
+
114
+ #ifdef Q_CC_MSVC
115
+
116
+ bool operator () ( const pp_macro& lhs, const pp_macro& rhs ) const {
117
+ HashType lhash = lhs.valueHash()+lhs.idHash();
118
+ HashType rhash = rhs.valueHash()+rhs.idHash();
119
+ if( lhash < rhash ) return true;
120
+ else if( lhash > rhash ) return false;
121
+
122
+ int df = lhs.name.str().compare( rhs.name.str() );
123
+ return df < 0;
124
+ }
125
+
126
+ enum
127
+ { // parameters for hash table
128
+ bucket_size = 4, // 0 < bucket_size
129
+ min_buckets = 8}; // min_buckets = 2 ^^ N, 0 < N
130
+ #endif
131
+ };
132
+
133
+ HashType valueHash() const {
134
+ if( !m_valueHashValid ) computeHash();
135
+ return m_valueHash;
136
+ }
137
+
138
+ ///Hash that identifies all of this macro, the value and the identity
139
+ HashType completeHash() const {
140
+ return valueHash() + idHash() * 3777;
141
+ }
142
+
143
+ void invalidateHash();
144
+
145
+ ///Convenient way of setting the definition, it is tokenized automatically
146
+ ///@param definition utf-8 representation of the definition text
147
+ void setDefinitionText(QByteArray definition);
148
+
149
+ ///More convenient overload
150
+ void setDefinitionText(QString definition);
151
+
152
+ void setDefinitionText(const char* definition) {
153
+ setDefinitionText(QByteArray(definition));
154
+ }
155
+
156
+ // START_APPENDED_LISTS(pp_macro)
157
+ // APPENDED_LIST_FIRST(pp_macro, IndexedString, definition)
158
+ // APPENDED_LIST(pp_macro, IndexedString, formals, definition)
159
+ // END_APPENDED_LISTS(pp_macro, formals)
160
+
161
+ QVector<IndexedString> definition;
162
+ QVector<IndexedString> formals;
163
+
164
+ private:
165
+ pp_macro& operator=(const pp_macro& rhs);
166
+ void computeHash() const;
167
+ };
168
+
169
+ }
170
+
171
+ inline uint qHash( const rpp::pp_macro& m ) {
172
+ return (uint)m.idHash();
173
+ }
174
+
175
+ #endif // PP_MACRO_H
176
+
@@ -1,311 +1,311 @@
1
- /*
2
- Copyright 2005 Roberto Raggi <roberto@kdevelop.org>
3
- Copyright 2006 Hamish Rodda <rodda@kde.org>
4
-
5
- Permission to use, copy, modify, distribute, and sell this software and its
6
- documentation for any purpose is hereby granted without fee, provided that
7
- the above copyright notice appear in all copies and that both that
8
- copyright notice and this permission notice appear in supporting
9
- documentation.
10
-
11
- The above copyright notice and this permission notice shall be included in
12
- all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18
- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
- */
21
-
22
- #include "pp-scanner.h"
23
- #include "chartools.h"
24
- #include "../indexedstring.h"
25
- #include "../kdevvarlengtharray.h"
26
-
27
- using namespace rpp;
28
-
29
- void pp_skip_blanks::operator()(Stream& input, Stream& output)
30
- {
31
- while (!input.atEnd()) {
32
- if (input == '\\') {
33
- ++input;
34
- if (input != '\n') {
35
- --input;
36
- return;
37
-
38
- } else {
39
- ++input;
40
- continue;
41
- }
42
- }
43
-
44
- if (input == '\n' || !isSpace(input.current()))
45
- return;
46
-
47
- output << input;
48
- ++input;
49
- }
50
- }
51
-
52
- void pp_skip_whitespaces::operator()(Stream& input, Stream& output)
53
- {
54
- while (!input.atEnd()) {
55
- if (!isSpace(input.current()))
56
- return;
57
-
58
- output << input;
59
- ++input;
60
- }
61
- }
62
-
63
- void pp_skip_comment_or_divop::operator()(Stream& input, Stream& output, bool outputText)
64
- {
65
- enum {
66
- MAYBE_BEGIN,
67
- BEGIN,
68
- MAYBE_END,
69
- END,
70
- IN_COMMENT,
71
- IN_CXX_COMMENT
72
- } state (MAYBE_BEGIN);
73
-
74
- while (!input.atEnd()) {
75
- switch (state) {
76
- case MAYBE_BEGIN:
77
- if (input != '/')
78
- return;
79
-
80
- state = BEGIN;
81
- break;
82
-
83
- case BEGIN:
84
- if (input == '*')
85
- state = IN_COMMENT;
86
- else if (input == '/')
87
- state = IN_CXX_COMMENT;
88
- else
89
- return;
90
- break;
91
-
92
- case IN_COMMENT:
93
- if (input == '*')
94
- state = MAYBE_END;
95
- break;
96
-
97
- case IN_CXX_COMMENT:
98
- if (input == '\n')
99
- return;
100
- break;
101
-
102
- case MAYBE_END:
103
- if (input == '/')
104
- state = END;
105
- else if (input != '*')
106
- state = IN_COMMENT;
107
- break;
108
-
109
- case END:
110
- return;
111
- }
112
-
113
- if (outputText) {
114
- output << input;
115
- ++input;
116
-
117
- } else if (input == '\n') {
118
- output << '\n';
119
- ++input;
120
- output.mark(input.inputPosition());
121
-
122
- } else {
123
- output << ' ';
124
- ++input;
125
- }
126
- }
127
- }
128
-
129
- uint pp_skip_identifier::operator()(Stream& input)
130
- {
131
- KDevVarLengthArray<char, 100> identifier;
132
-
133
- IndexedString::RunningHash hash;
134
-
135
- while (!input.atEnd()) {
136
- if(!isCharacter(input.current())) {
137
- //Do a more complex merge, where also tokenized identifiers can be merged
138
- IndexedString ret;
139
- if(!identifier.isEmpty())
140
- ret = IndexedString(identifier.constData(), identifier.size(), hash.hash);
141
-
142
- while (!input.atEnd()) {
143
- uint current = input.current();
144
-
145
- if (!isLetterOrNumber(current) && input != '_' && isCharacter(current))
146
- break;
147
-
148
- if(ret.isEmpty())
149
- ret = IndexedString::fromIndex(current); //The most common fast path
150
- else ///@todo Be better to build up a complete buffer and then append it all, so we don't get he intermediate strings into the repository
151
- ret = IndexedString(ret.byteArray() + IndexedString::fromIndex(input.current()).byteArray());
152
-
153
- ++input;
154
- }
155
- return ret.index();
156
- }
157
- //Collect characters and connect them to an IndexedString
158
-
159
- if (!isLetterOrNumber(input.current()) && input != '_')
160
- break;
161
-
162
- char c = characterFromIndex(input);
163
- hash.append(c);
164
- identifier.append(c);
165
- ++input;
166
- }
167
-
168
- return IndexedString(identifier.constData(), identifier.size(), hash.hash).index();
169
- }
170
-
171
- void pp_skip_number::operator()(Stream& input, Stream& output)
172
- {
173
- while (!input.atEnd()) {
174
- if (!isLetterOrNumber(input.current()) && input != '_')
175
- return;
176
-
177
- output << input;
178
- ++input;
179
- }
180
- }
181
-
182
- void pp_skip_string_literal::operator()(Stream& input, Stream& output)
183
- {
184
- enum {
185
- BEGIN,
186
- IN_STRING,
187
- QUOTE,
188
- END
189
- } state (BEGIN);
190
-
191
- while (!input.atEnd()) {
192
- switch (state) {
193
- case BEGIN:
194
- if (input != '\"')
195
- return;
196
- state = IN_STRING;
197
- break;
198
-
199
- case IN_STRING:
200
- // Q_ASSERT(input != '\n');
201
-
202
- if (input == '\"')
203
- state = END;
204
- else if (input == '\\')
205
- state = QUOTE;
206
- break;
207
-
208
- case QUOTE:
209
- state = IN_STRING;
210
- break;
211
-
212
- case END:
213
- return;
214
- }
215
-
216
- output << input;
217
- ++input;
218
- }
219
- }
220
-
221
- void pp_skip_char_literal::operator()(Stream& input, Stream& output)
222
- {
223
- enum {
224
- BEGIN,
225
- IN_STRING,
226
- QUOTE,
227
- END
228
- } state (BEGIN);
229
- int inner_count = 0;
230
-
231
- while (!input.atEnd()) {
232
- if (state == END)
233
- break;
234
-
235
- switch (state) {
236
- case BEGIN:
237
- if (input != '\'')
238
- return;
239
- state = IN_STRING;
240
- break;
241
-
242
- case IN_STRING:
243
- if(input == '\n' || inner_count > 3)
244
- return; //Probably this isn't a string literal. Example: "#warning What's up"
245
-
246
- if (input == '\'')
247
- state = END;
248
- else if (input == '\\')
249
- state = QUOTE;
250
-
251
- ++inner_count;
252
- break;
253
- case QUOTE:
254
- state = IN_STRING;
255
- break;
256
-
257
- default:
258
- Q_ASSERT(0);
259
- break;
260
- }
261
-
262
- output << input;
263
- ++input;
264
- }
265
- }
266
-
267
- ///@todo Can this deal with comments? like /*(*/
268
- void pp_skip_argument::operator()(Stream& input, Stream& output)
269
- {
270
- int depth = 0;
271
-
272
- while (!input.atEnd()) {
273
- if (!depth && (input == ')' || input == ',')) {
274
- return;
275
-
276
- } else if (input == '(') {
277
- ++depth;
278
-
279
- } else if (input == ')') {
280
- --depth;
281
-
282
- } else if (input == '\"') {
283
- skip_string_literal(input, output);
284
- continue;
285
-
286
- } else if (input == '\'') {
287
- skip_char_literal (input, output);
288
- continue;
289
-
290
- } else if (input == '/') {
291
- skip_comment_or_divop (input, output, true);
292
- continue;
293
-
294
- } else if (isLetter(input.current()) || input == '_') {
295
- Anchor inputPosition = input.inputPosition();
296
- output.appendString(inputPosition, IndexedString::fromIndex(skip_identifier(input)));
297
- continue;
298
-
299
- } else if (isNumber(input.current())) {
300
- output.mark(input.inputPosition());
301
- skip_number(input, output);
302
- continue;
303
-
304
- }
305
-
306
- output << input;
307
- ++input;
308
- }
309
-
310
- return;
311
- }
1
+ /*
2
+ Copyright 2005 Roberto Raggi <roberto@kdevelop.org>
3
+ Copyright 2006 Hamish Rodda <rodda@kde.org>
4
+
5
+ Permission to use, copy, modify, distribute, and sell this software and its
6
+ documentation for any purpose is hereby granted without fee, provided that
7
+ the above copyright notice appear in all copies and that both that
8
+ copyright notice and this permission notice appear in supporting
9
+ documentation.
10
+
11
+ The above copyright notice and this permission notice shall be included in
12
+ all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+
22
+ #include "pp-scanner.h"
23
+ #include "chartools.h"
24
+ #include "../indexedstring.h"
25
+ #include "../kdevvarlengtharray.h"
26
+
27
+ using namespace rpp;
28
+
29
+ void pp_skip_blanks::operator()(Stream& input, Stream& output)
30
+ {
31
+ while (!input.atEnd()) {
32
+ if (input == '\\') {
33
+ ++input;
34
+ if (input != '\n') {
35
+ --input;
36
+ return;
37
+
38
+ } else {
39
+ ++input;
40
+ continue;
41
+ }
42
+ }
43
+
44
+ if (input == '\n' || !isSpace(input.current()))
45
+ return;
46
+
47
+ output << input;
48
+ ++input;
49
+ }
50
+ }
51
+
52
+ void pp_skip_whitespaces::operator()(Stream& input, Stream& output)
53
+ {
54
+ while (!input.atEnd()) {
55
+ if (!isSpace(input.current()))
56
+ return;
57
+
58
+ output << input;
59
+ ++input;
60
+ }
61
+ }
62
+
63
+ void pp_skip_comment_or_divop::operator()(Stream& input, Stream& output, bool outputText)
64
+ {
65
+ enum {
66
+ MAYBE_BEGIN,
67
+ BEGIN,
68
+ MAYBE_END,
69
+ END,
70
+ IN_COMMENT,
71
+ IN_CXX_COMMENT
72
+ } state (MAYBE_BEGIN);
73
+
74
+ while (!input.atEnd()) {
75
+ switch (state) {
76
+ case MAYBE_BEGIN:
77
+ if (input != '/')
78
+ return;
79
+
80
+ state = BEGIN;
81
+ break;
82
+
83
+ case BEGIN:
84
+ if (input == '*')
85
+ state = IN_COMMENT;
86
+ else if (input == '/')
87
+ state = IN_CXX_COMMENT;
88
+ else
89
+ return;
90
+ break;
91
+
92
+ case IN_COMMENT:
93
+ if (input == '*')
94
+ state = MAYBE_END;
95
+ break;
96
+
97
+ case IN_CXX_COMMENT:
98
+ if (input == '\n')
99
+ return;
100
+ break;
101
+
102
+ case MAYBE_END:
103
+ if (input == '/')
104
+ state = END;
105
+ else if (input != '*')
106
+ state = IN_COMMENT;
107
+ break;
108
+
109
+ case END:
110
+ return;
111
+ }
112
+
113
+ if (outputText) {
114
+ output << input;
115
+ ++input;
116
+
117
+ } else if (input == '\n') {
118
+ output << '\n';
119
+ ++input;
120
+ output.mark(input.inputPosition());
121
+
122
+ } else {
123
+ output << ' ';
124
+ ++input;
125
+ }
126
+ }
127
+ }
128
+
129
+ uint pp_skip_identifier::operator()(Stream& input)
130
+ {
131
+ KDevVarLengthArray<char, 100> identifier;
132
+
133
+ IndexedString::RunningHash hash;
134
+
135
+ while (!input.atEnd()) {
136
+ if(!isCharacter(input.current())) {
137
+ //Do a more complex merge, where also tokenized identifiers can be merged
138
+ IndexedString ret;
139
+ if(!identifier.isEmpty())
140
+ ret = IndexedString(identifier.constData(), identifier.size(), hash.hash);
141
+
142
+ while (!input.atEnd()) {
143
+ uint current = input.current();
144
+
145
+ if (!isLetterOrNumber(current) && input != '_' && isCharacter(current))
146
+ break;
147
+
148
+ if(ret.isEmpty())
149
+ ret = IndexedString::fromIndex(current); //The most common fast path
150
+ else ///@todo Be better to build up a complete buffer and then append it all, so we don't get he intermediate strings into the repository
151
+ ret = IndexedString(ret.byteArray() + IndexedString::fromIndex(input.current()).byteArray());
152
+
153
+ ++input;
154
+ }
155
+ return ret.index();
156
+ }
157
+ //Collect characters and connect them to an IndexedString
158
+
159
+ if (!isLetterOrNumber(input.current()) && input != '_')
160
+ break;
161
+
162
+ char c = characterFromIndex(input);
163
+ hash.append(c);
164
+ identifier.append(c);
165
+ ++input;
166
+ }
167
+
168
+ return IndexedString(identifier.constData(), identifier.size(), hash.hash).index();
169
+ }
170
+
171
+ void pp_skip_number::operator()(Stream& input, Stream& output)
172
+ {
173
+ while (!input.atEnd()) {
174
+ if (!isLetterOrNumber(input.current()) && input != '_')
175
+ return;
176
+
177
+ output << input;
178
+ ++input;
179
+ }
180
+ }
181
+
182
+ void pp_skip_string_literal::operator()(Stream& input, Stream& output)
183
+ {
184
+ enum {
185
+ BEGIN,
186
+ IN_STRING,
187
+ QUOTE,
188
+ END
189
+ } state (BEGIN);
190
+
191
+ while (!input.atEnd()) {
192
+ switch (state) {
193
+ case BEGIN:
194
+ if (input != '\"')
195
+ return;
196
+ state = IN_STRING;
197
+ break;
198
+
199
+ case IN_STRING:
200
+ // Q_ASSERT(input != '\n');
201
+
202
+ if (input == '\"')
203
+ state = END;
204
+ else if (input == '\\')
205
+ state = QUOTE;
206
+ break;
207
+
208
+ case QUOTE:
209
+ state = IN_STRING;
210
+ break;
211
+
212
+ case END:
213
+ return;
214
+ }
215
+
216
+ output << input;
217
+ ++input;
218
+ }
219
+ }
220
+
221
+ void pp_skip_char_literal::operator()(Stream& input, Stream& output)
222
+ {
223
+ enum {
224
+ BEGIN,
225
+ IN_STRING,
226
+ QUOTE,
227
+ END
228
+ } state (BEGIN);
229
+ int inner_count = 0;
230
+
231
+ while (!input.atEnd()) {
232
+ if (state == END)
233
+ break;
234
+
235
+ switch (state) {
236
+ case BEGIN:
237
+ if (input != '\'')
238
+ return;
239
+ state = IN_STRING;
240
+ break;
241
+
242
+ case IN_STRING:
243
+ if(input == '\n' || inner_count > 3)
244
+ return; //Probably this isn't a string literal. Example: "#warning What's up"
245
+
246
+ if (input == '\'')
247
+ state = END;
248
+ else if (input == '\\')
249
+ state = QUOTE;
250
+
251
+ ++inner_count;
252
+ break;
253
+ case QUOTE:
254
+ state = IN_STRING;
255
+ break;
256
+
257
+ default:
258
+ Q_ASSERT(0);
259
+ break;
260
+ }
261
+
262
+ output << input;
263
+ ++input;
264
+ }
265
+ }
266
+
267
+ ///@todo Can this deal with comments? like /*(*/
268
+ void pp_skip_argument::operator()(Stream& input, Stream& output)
269
+ {
270
+ int depth = 0;
271
+
272
+ while (!input.atEnd()) {
273
+ if (!depth && (input == ')' || input == ',')) {
274
+ return;
275
+
276
+ } else if (input == '(') {
277
+ ++depth;
278
+
279
+ } else if (input == ')') {
280
+ --depth;
281
+
282
+ } else if (input == '\"') {
283
+ skip_string_literal(input, output);
284
+ continue;
285
+
286
+ } else if (input == '\'') {
287
+ skip_char_literal (input, output);
288
+ continue;
289
+
290
+ } else if (input == '/') {
291
+ skip_comment_or_divop (input, output, true);
292
+ continue;
293
+
294
+ } else if (isLetter(input.current()) || input == '_') {
295
+ Anchor inputPosition = input.inputPosition();
296
+ output.appendString(inputPosition, IndexedString::fromIndex(skip_identifier(input)));
297
+ continue;
298
+
299
+ } else if (isNumber(input.current())) {
300
+ output.mark(input.inputPosition());
301
+ skip_number(input, output);
302
+ continue;
303
+
304
+ }
305
+
306
+ output << input;
307
+ ++input;
308
+ }
309
+
310
+ return;
311
+ }