qtbindings 4.8.6.1-x64-mingw32

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 (495) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.txt +48 -0
  3. data/COPYING.LIB.txt +510 -0
  4. data/COPYING.txt +286 -0
  5. data/KNOWN_ISSUES.txt +17 -0
  6. data/Rakefile +121 -0
  7. data/TODO.txt +2 -0
  8. data/bin/2.0/rbrcc.exe +0 -0
  9. data/bin/2.0/rbuic4.exe +0 -0
  10. data/bin/2.0/smokeapi.exe +0 -0
  11. data/bin/2.0/smokedeptool.exe +0 -0
  12. data/bin/2.1/rbrcc.exe +0 -0
  13. data/bin/2.1/rbuic4.exe +0 -0
  14. data/bin/2.1/smokeapi.exe +0 -0
  15. data/bin/2.1/smokedeptool.exe +0 -0
  16. data/bin/2.2/rbrcc.exe +0 -0
  17. data/bin/2.2/rbuic4.exe +0 -0
  18. data/bin/2.2/smokeapi.exe +0 -0
  19. data/bin/2.2/smokedeptool.exe +0 -0
  20. data/bin/rbqtapi +152 -0
  21. data/bin/rbrcc +14 -0
  22. data/bin/rbuic4 +14 -0
  23. data/bin/smokeapi +14 -0
  24. data/bin/smokedeptool +14 -0
  25. data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
  26. data/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
  27. data/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
  28. data/examples/designer/calculatorbuilder/main.rb +34 -0
  29. data/examples/designer/calculatorbuilder/makefile +2 -0
  30. data/examples/designer/calculatorform/calculatorform.rb +46 -0
  31. data/examples/designer/calculatorform/calculatorform.ui +277 -0
  32. data/examples/designer/calculatorform/main.rb +32 -0
  33. data/examples/designer/calculatorform/makefile +3 -0
  34. data/examples/desktop/screenshot/main.rb +32 -0
  35. data/examples/desktop/screenshot/screenshot.rb +157 -0
  36. data/examples/desktop/systray/images/bad.svg +64 -0
  37. data/examples/desktop/systray/images/heart.svg +55 -0
  38. data/examples/desktop/systray/images/trash.svg +58 -0
  39. data/examples/desktop/systray/main.rb +41 -0
  40. data/examples/desktop/systray/makefile +2 -0
  41. data/examples/desktop/systray/systray.qrc +7 -0
  42. data/examples/desktop/systray/window.rb +219 -0
  43. data/examples/dialogs/complexwizard/complexwizard.rb +140 -0
  44. data/examples/dialogs/complexwizard/licensewizard.rb +294 -0
  45. data/examples/dialogs/complexwizard/main.rb +31 -0
  46. data/examples/dialogs/configdialog/configdialog.rb +109 -0
  47. data/examples/dialogs/configdialog/images/config.png +0 -0
  48. data/examples/dialogs/configdialog/images/query.png +0 -0
  49. data/examples/dialogs/configdialog/images/update.png +0 -0
  50. data/examples/dialogs/configdialog/main.rb +31 -0
  51. data/examples/dialogs/configdialog/pages.rb +140 -0
  52. data/examples/dialogs/extension/finddialog.rb +89 -0
  53. data/examples/dialogs/extension/main.rb +31 -0
  54. data/examples/dialogs/findfiles/main.rb +32 -0
  55. data/examples/dialogs/findfiles/window.rb +177 -0
  56. data/examples/dialogs/simplewizard/classwizard.rb +374 -0
  57. data/examples/dialogs/simplewizard/main.rb +31 -0
  58. data/examples/dialogs/simplewizard/simplewizard.rb +110 -0
  59. data/examples/dialogs/standarddialogs/dialog.rb +340 -0
  60. data/examples/dialogs/standarddialogs/main.rb +31 -0
  61. data/examples/dialogs/tabdialog/main.rb +38 -0
  62. data/examples/dialogs/tabdialog/tabdialog.rb +178 -0
  63. data/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
  64. data/examples/draganddrop/draggableicons/images/boat.png +0 -0
  65. data/examples/draganddrop/draggableicons/images/car.png +0 -0
  66. data/examples/draganddrop/draggableicons/images/house.png +0 -0
  67. data/examples/draganddrop/draggableicons/main.rb +41 -0
  68. data/examples/draganddrop/draggabletext/draglabel.rb +51 -0
  69. data/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
  70. data/examples/draganddrop/draggabletext/main.rb +33 -0
  71. data/examples/draganddrop/draggabletext/words.txt +41 -0
  72. data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -0
  73. data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
  74. data/examples/draganddrop/dropsite/main.rb +33 -0
  75. data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
  76. data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
  77. data/examples/draganddrop/fridgemagnets/main.rb +33 -0
  78. data/examples/draganddrop/fridgemagnets/words.txt +48 -0
  79. data/examples/draganddrop/puzzle/example.jpg +0 -0
  80. data/examples/draganddrop/puzzle/main.rb +33 -0
  81. data/examples/draganddrop/puzzle/mainwindow.rb +136 -0
  82. data/examples/draganddrop/puzzle/pieceslist.rb +95 -0
  83. data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
  84. data/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
  85. data/examples/graphicsview/collidingmice/main.rb +53 -0
  86. data/examples/graphicsview/collidingmice/makefile +2 -0
  87. data/examples/graphicsview/collidingmice/mice.qrc +5 -0
  88. data/examples/graphicsview/collidingmice/mouse.rb +176 -0
  89. data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
  90. data/examples/graphicsview/dragdroprobot/images/head.png +0 -0
  91. data/examples/graphicsview/dragdroprobot/main.rb +57 -0
  92. data/examples/graphicsview/dragdroprobot/makefile +2 -0
  93. data/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
  94. data/examples/graphicsview/dragdroprobot/robot.rb +246 -0
  95. data/examples/itemviews/chart/chart.qrc +5 -0
  96. data/examples/itemviews/chart/main.rb +33 -0
  97. data/examples/itemviews/chart/mainwindow.rb +151 -0
  98. data/examples/itemviews/chart/makefile +2 -0
  99. data/examples/itemviews/chart/mydata.cht +8 -0
  100. data/examples/itemviews/chart/pieview.rb +516 -0
  101. data/examples/itemviews/chart/qtdata.cht +14 -0
  102. data/examples/itemviews/dirview/main.rb +39 -0
  103. data/examples/itemviews/pixelator/imagemodel.rb +51 -0
  104. data/examples/itemviews/pixelator/images.qrc +5 -0
  105. data/examples/itemviews/pixelator/images/qt.png +0 -0
  106. data/examples/itemviews/pixelator/main.rb +34 -0
  107. data/examples/itemviews/pixelator/mainwindow.rb +218 -0
  108. data/examples/itemviews/pixelator/makefile +3 -0
  109. data/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
  110. data/examples/itemviews/puzzle/example.jpg +0 -0
  111. data/examples/itemviews/puzzle/main.rb +36 -0
  112. data/examples/itemviews/puzzle/mainwindow.rb +143 -0
  113. data/examples/itemviews/puzzle/piecesmodel.rb +174 -0
  114. data/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
  115. data/examples/itemviews/simpledommodel/domitem.rb +62 -0
  116. data/examples/itemviews/simpledommodel/dommodel.rb +139 -0
  117. data/examples/itemviews/simpledommodel/main.rb +33 -0
  118. data/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
  119. data/examples/itemviews/simpletreemodel/default.txt +40 -0
  120. data/examples/itemviews/simpletreemodel/main.rb +41 -0
  121. data/examples/itemviews/simpletreemodel/makefile +2 -0
  122. data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
  123. data/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
  124. data/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
  125. data/examples/itemviews/sortingmodel/default.txt +40 -0
  126. data/examples/itemviews/sortingmodel/main.rb +53 -0
  127. data/examples/itemviews/sortingmodel/treeitem.rb +73 -0
  128. data/examples/itemviews/sortingmodel/treemodel.rb +166 -0
  129. data/examples/itemviews/spinboxdelegate/main.rb +47 -0
  130. data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
  131. data/examples/killerfilter/killerfilter.rb +55 -0
  132. data/examples/layouts/basiclayouts/dialog.rb +110 -0
  133. data/examples/layouts/basiclayouts/main.rb +31 -0
  134. data/examples/layouts/borderlayout/borderlayout.rb +190 -0
  135. data/examples/layouts/borderlayout/main.rb +32 -0
  136. data/examples/layouts/borderlayout/window.rb +52 -0
  137. data/examples/layouts/flowlayouts/flowlayout.rb +108 -0
  138. data/examples/layouts/flowlayouts/main.rb +32 -0
  139. data/examples/layouts/flowlayouts/window.rb +43 -0
  140. data/examples/mainwindows/application/images/copy.png +0 -0
  141. data/examples/mainwindows/application/images/cut.png +0 -0
  142. data/examples/mainwindows/application/images/new.png +0 -0
  143. data/examples/mainwindows/application/images/open.png +0 -0
  144. data/examples/mainwindows/application/images/paste.png +0 -0
  145. data/examples/mainwindows/application/images/save.png +0 -0
  146. data/examples/mainwindows/application/main.rb +32 -0
  147. data/examples/mainwindows/application/mainwindow.rb +285 -0
  148. data/examples/mainwindows/dockwidgets/images/new.png +0 -0
  149. data/examples/mainwindows/dockwidgets/images/print.png +0 -0
  150. data/examples/mainwindows/dockwidgets/images/save.png +0 -0
  151. data/examples/mainwindows/dockwidgets/images/undo.png +0 -0
  152. data/examples/mainwindows/dockwidgets/main.rb +32 -0
  153. data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
  154. data/examples/mainwindows/mdi/images/copy.png +0 -0
  155. data/examples/mainwindows/mdi/images/cut.png +0 -0
  156. data/examples/mainwindows/mdi/images/new.png +0 -0
  157. data/examples/mainwindows/mdi/images/open.png +0 -0
  158. data/examples/mainwindows/mdi/images/paste.png +0 -0
  159. data/examples/mainwindows/mdi/images/save.png +0 -0
  160. data/examples/mainwindows/mdi/main.rb +32 -0
  161. data/examples/mainwindows/mdi/mainwindow.rb +363 -0
  162. data/examples/mainwindows/mdi/mdichild.rb +152 -0
  163. data/examples/mainwindows/menus/main.rb +32 -0
  164. data/examples/mainwindows/menus/mainwindow.rb +327 -0
  165. data/examples/mainwindows/recentfiles/main.rb +32 -0
  166. data/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
  167. data/examples/mainwindows/sdi/images/copy.png +0 -0
  168. data/examples/mainwindows/sdi/images/cut.png +0 -0
  169. data/examples/mainwindows/sdi/images/new.png +0 -0
  170. data/examples/mainwindows/sdi/images/open.png +0 -0
  171. data/examples/mainwindows/sdi/images/paste.png +0 -0
  172. data/examples/mainwindows/sdi/images/save.png +0 -0
  173. data/examples/mainwindows/sdi/main.rb +32 -0
  174. data/examples/mainwindows/sdi/mainwindow.rb +335 -0
  175. data/examples/network/broadcastreceiver/main.rb +32 -0
  176. data/examples/network/broadcastreceiver/receiver.rb +64 -0
  177. data/examples/network/broadcastsender/main.rb +32 -0
  178. data/examples/network/broadcastsender/sender.rb +72 -0
  179. data/examples/network/fortuneclient/client.rb +149 -0
  180. data/examples/network/fortuneclient/main.rb +32 -0
  181. data/examples/network/fortuneserver/main.rb +32 -0
  182. data/examples/network/fortuneserver/server.rb +88 -0
  183. data/examples/network/ftp/ftpwindow.rb +259 -0
  184. data/examples/network/ftp/images/cdtoparent.png +0 -0
  185. data/examples/network/ftp/images/dir.png +0 -0
  186. data/examples/network/ftp/images/file.png +0 -0
  187. data/examples/network/ftp/main.rb +32 -0
  188. data/examples/network/http/httpwindow.rb +187 -0
  189. data/examples/network/http/main.rb +32 -0
  190. data/examples/network/loopback/dialog.rb +163 -0
  191. data/examples/network/loopback/main.rb +32 -0
  192. data/examples/opengl/grabber/glwidget.rb +265 -0
  193. data/examples/opengl/grabber/main.rb +32 -0
  194. data/examples/opengl/grabber/mainwindow.rb +189 -0
  195. data/examples/opengl/hellogl/glwidget.rb +226 -0
  196. data/examples/opengl/hellogl/main.rb +32 -0
  197. data/examples/opengl/hellogl/window.rb +66 -0
  198. data/examples/opengl/textures/glwidget.rb +151 -0
  199. data/examples/opengl/textures/images/side1.png +0 -0
  200. data/examples/opengl/textures/images/side2.png +0 -0
  201. data/examples/opengl/textures/images/side3.png +0 -0
  202. data/examples/opengl/textures/images/side4.png +0 -0
  203. data/examples/opengl/textures/images/side5.png +0 -0
  204. data/examples/opengl/textures/images/side6.png +0 -0
  205. data/examples/opengl/textures/main.rb +32 -0
  206. data/examples/opengl/textures/window.rb +77 -0
  207. data/examples/painting/basicdrawing/images/brick.png +0 -0
  208. data/examples/painting/basicdrawing/images/qt-logo.png +0 -0
  209. data/examples/painting/basicdrawing/main.rb +32 -0
  210. data/examples/painting/basicdrawing/renderarea.rb +166 -0
  211. data/examples/painting/basicdrawing/window.rb +215 -0
  212. data/examples/painting/concentriccircles/circlewidget.rb +88 -0
  213. data/examples/painting/concentriccircles/main.rb +32 -0
  214. data/examples/painting/concentriccircles/window.rb +72 -0
  215. data/examples/painting/fontsampler/main.rb +32 -0
  216. data/examples/painting/fontsampler/mainwindow.rb +369 -0
  217. data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
  218. data/examples/painting/fontsampler/makefile +8 -0
  219. data/examples/painting/fontsampler/previewdialog.rb +257 -0
  220. data/examples/painting/fontsampler/previewdialogbase.ui +224 -0
  221. data/examples/painting/fontsampler/previewlabel.rb +43 -0
  222. data/examples/painting/imagecomposition/imagecomposer.rb +152 -0
  223. data/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
  224. data/examples/painting/imagecomposition/images/background.png +0 -0
  225. data/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
  226. data/examples/painting/imagecomposition/images/butterfly.png +0 -0
  227. data/examples/painting/imagecomposition/images/checker.png +0 -0
  228. data/examples/painting/imagecomposition/main.rb +33 -0
  229. data/examples/painting/imagecomposition/makefile +2 -0
  230. data/examples/painting/painterpaths/main.rb +32 -0
  231. data/examples/painting/painterpaths/renderarea.rb +97 -0
  232. data/examples/painting/painterpaths/window.rb +247 -0
  233. data/examples/painting/svgviewer/files/bubbles.svg +212 -0
  234. data/examples/painting/svgviewer/files/cubic.svg +77 -0
  235. data/examples/painting/svgviewer/files/spheres.svg +79 -0
  236. data/examples/painting/svgviewer/main.rb +38 -0
  237. data/examples/painting/svgviewer/mainwindow.rb +99 -0
  238. data/examples/painting/svgviewer/makefile +2 -0
  239. data/examples/painting/svgviewer/svgview.rb +156 -0
  240. data/examples/painting/svgviewer/svgviewer.qrc +6 -0
  241. data/examples/painting/svgviewer/svgwindow.rb +87 -0
  242. data/examples/painting/transformations/main.rb +32 -0
  243. data/examples/painting/transformations/renderarea.rb +127 -0
  244. data/examples/painting/transformations/window.rb +153 -0
  245. data/examples/passivepopup/passivepopup.rb +38 -0
  246. data/examples/qdbus/chat/chat.rb +146 -0
  247. data/examples/qdbus/chat/chat_adaptor.rb +12 -0
  248. data/examples/qdbus/chat/chat_interface.rb +13 -0
  249. data/examples/qdbus/chat/chatmainwindow.ui +184 -0
  250. data/examples/qdbus/chat/chatsetnickname.ui +145 -0
  251. data/examples/qdbus/chat/makefile +8 -0
  252. data/examples/qdbus/complexpingpong/complexping.rb +92 -0
  253. data/examples/qdbus/complexpingpong/complexpong.rb +83 -0
  254. data/examples/qdbus/complexpingpong/ping-common.rb +1 -0
  255. data/examples/qdbus/listnames/listnames.rb +69 -0
  256. data/examples/qdbus/pingpong/ping-common.rb +1 -0
  257. data/examples/qdbus/pingpong/ping.rb +52 -0
  258. data/examples/qdbus/pingpong/pong.rb +55 -0
  259. data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
  260. data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
  261. data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
  262. data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
  263. data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
  264. data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
  265. data/examples/qtscribble/scribble.rb +270 -0
  266. data/examples/richtext/calendar/main.rb +33 -0
  267. data/examples/richtext/calendar/mainwindow.rb +173 -0
  268. data/examples/richtext/orderform/detailsdialog.rb +130 -0
  269. data/examples/richtext/orderform/main.rb +34 -0
  270. data/examples/richtext/orderform/mainwindow.rb +194 -0
  271. data/examples/richtext/syntaxhighlighter/examples/example +79 -0
  272. data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
  273. data/examples/richtext/syntaxhighlighter/main.rb +34 -0
  274. data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
  275. data/examples/ruboids/LICENSE.txt +58 -0
  276. data/examples/ruboids/Manifest +26 -0
  277. data/examples/ruboids/README +53 -0
  278. data/examples/ruboids/TODO +29 -0
  279. data/examples/ruboids/boids.properties +33 -0
  280. data/examples/ruboids/generateManifest.rb +42 -0
  281. data/examples/ruboids/index.html +147 -0
  282. data/examples/ruboids/release.rb +152 -0
  283. data/examples/ruboids/ruboids/Boid.rb +141 -0
  284. data/examples/ruboids/ruboids/BoidView.rb +159 -0
  285. data/examples/ruboids/ruboids/Camera.rb +24 -0
  286. data/examples/ruboids/ruboids/CameraDialog.rb +218 -0
  287. data/examples/ruboids/ruboids/Canvas.rb +143 -0
  288. data/examples/ruboids/ruboids/Cloud.rb +61 -0
  289. data/examples/ruboids/ruboids/CloudView.rb +54 -0
  290. data/examples/ruboids/ruboids/Flock.rb +47 -0
  291. data/examples/ruboids/ruboids/Graphics.rb +278 -0
  292. data/examples/ruboids/ruboids/Params.rb +87 -0
  293. data/examples/ruboids/ruboids/Point.rb +153 -0
  294. data/examples/ruboids/ruboids/Thing.rb +34 -0
  295. data/examples/ruboids/ruboids/Triangle.rb +21 -0
  296. data/examples/ruboids/ruboids/View.rb +88 -0
  297. data/examples/ruboids/ruboids/World.rb +82 -0
  298. data/examples/ruboids/ruboids/WorldWindow.rb +52 -0
  299. data/examples/ruboids/ruboids/info.rb +12 -0
  300. data/examples/ruboids/ruboids/ruboids.rb +29 -0
  301. data/examples/run_all.rb +15 -0
  302. data/examples/threading/main_thread.rb +19 -0
  303. data/examples/tutorial/t1/t1.rb +10 -0
  304. data/examples/tutorial/t10/cannon.rb +72 -0
  305. data/examples/tutorial/t10/lcdrange.rb +45 -0
  306. data/examples/tutorial/t10/t10.rb +55 -0
  307. data/examples/tutorial/t11/cannon.rb +124 -0
  308. data/examples/tutorial/t11/lcdrange.rb +45 -0
  309. data/examples/tutorial/t11/t11.rb +65 -0
  310. data/examples/tutorial/t12/cannon.rb +158 -0
  311. data/examples/tutorial/t12/lcdrange.rb +59 -0
  312. data/examples/tutorial/t12/t12.rb +66 -0
  313. data/examples/tutorial/t13/cannon.rb +208 -0
  314. data/examples/tutorial/t13/gamebrd.rb +113 -0
  315. data/examples/tutorial/t13/lcdrange.rb +60 -0
  316. data/examples/tutorial/t13/t13.rb +11 -0
  317. data/examples/tutorial/t14/cannon.rb +263 -0
  318. data/examples/tutorial/t14/gamebrd.rb +123 -0
  319. data/examples/tutorial/t14/lcdrange.rb +63 -0
  320. data/examples/tutorial/t14/t14.rb +11 -0
  321. data/examples/tutorial/t2/t2.rb +16 -0
  322. data/examples/tutorial/t3/t3.rb +18 -0
  323. data/examples/tutorial/t4/t4.rb +25 -0
  324. data/examples/tutorial/t5/t5.rb +37 -0
  325. data/examples/tutorial/t6/t6.rb +52 -0
  326. data/examples/tutorial/t7/lcdrange.rb +32 -0
  327. data/examples/tutorial/t7/t7.rb +42 -0
  328. data/examples/tutorial/t8/cannon.rb +38 -0
  329. data/examples/tutorial/t8/lcdrange.rb +45 -0
  330. data/examples/tutorial/t8/t8.rb +43 -0
  331. data/examples/tutorial/t9/cannon.rb +45 -0
  332. data/examples/tutorial/t9/lcdrange.rb +46 -0
  333. data/examples/tutorial/t9/t9.rb +43 -0
  334. data/examples/widgets/analogclock/analogclock.rb +94 -0
  335. data/examples/widgets/analogclock/main.rb +9 -0
  336. data/examples/widgets/calculator/button.rb +45 -0
  337. data/examples/widgets/calculator/calculator.rb +382 -0
  338. data/examples/widgets/calculator/main.rb +32 -0
  339. data/examples/widgets/charactermap/characterwidget.rb +110 -0
  340. data/examples/widgets/charactermap/main.rb +32 -0
  341. data/examples/widgets/charactermap/mainwindow.rb +118 -0
  342. data/examples/widgets/digitalclock/digitalclock.rb +30 -0
  343. data/examples/widgets/digitalclock/main.rb +9 -0
  344. data/examples/widgets/groupbox/main.rb +32 -0
  345. data/examples/widgets/groupbox/window.rb +134 -0
  346. data/examples/widgets/icons/iconpreviewarea.rb +111 -0
  347. data/examples/widgets/icons/iconsizespinbox.rb +39 -0
  348. data/examples/widgets/icons/imagedelegate.rb +73 -0
  349. data/examples/widgets/icons/images/designer.png +0 -0
  350. data/examples/widgets/icons/images/find_disabled.png +0 -0
  351. data/examples/widgets/icons/images/find_normal.png +0 -0
  352. data/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
  353. data/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
  354. data/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
  355. data/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
  356. data/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
  357. data/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
  358. data/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
  359. data/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
  360. data/examples/widgets/icons/images/qtopia_16x16.png +0 -0
  361. data/examples/widgets/icons/images/qtopia_32x32.png +0 -0
  362. data/examples/widgets/icons/images/qtopia_48x48.png +0 -0
  363. data/examples/widgets/icons/main.rb +32 -0
  364. data/examples/widgets/icons/mainwindow.rb +351 -0
  365. data/examples/widgets/imageviewer/imageviewer.rb +219 -0
  366. data/examples/widgets/imageviewer/main.rb +32 -0
  367. data/examples/widgets/lineedits/main.rb +32 -0
  368. data/examples/widgets/lineedits/window.rb +199 -0
  369. data/examples/widgets/movie/images/open.png +0 -0
  370. data/examples/widgets/movie/images/pause.png +0 -0
  371. data/examples/widgets/movie/images/play.png +0 -0
  372. data/examples/widgets/movie/images/quit.png +0 -0
  373. data/examples/widgets/movie/images/stop.png +0 -0
  374. data/examples/widgets/movie/main.rb +32 -0
  375. data/examples/widgets/movie/movieplayer.rb +201 -0
  376. data/examples/widgets/movie/movies/fire.mng +0 -0
  377. data/examples/widgets/screenshot/main.rb +32 -0
  378. data/examples/widgets/screenshot/screenshot.rb +155 -0
  379. data/examples/widgets/scribble/main.rb +32 -0
  380. data/examples/widgets/scribble/mainwindow.rb +202 -0
  381. data/examples/widgets/scribble/scribblearea.rb +154 -0
  382. data/examples/widgets/sliders/main.rb +32 -0
  383. data/examples/widgets/sliders/slidersgroup.rb +97 -0
  384. data/examples/widgets/sliders/window.rb +124 -0
  385. data/examples/widgets/spinboxes/main.rb +32 -0
  386. data/examples/widgets/spinboxes/window.rb +213 -0
  387. data/examples/widgets/tetrix/main.rb +33 -0
  388. data/examples/widgets/tetrix/tetrixboard.rb +346 -0
  389. data/examples/widgets/tetrix/tetrixpiece.rb +135 -0
  390. data/examples/widgets/tetrix/tetrixwindow.rb +88 -0
  391. data/examples/widgets/tooltips/images/circle.png +0 -0
  392. data/examples/widgets/tooltips/images/square.png +0 -0
  393. data/examples/widgets/tooltips/images/triangle.png +0 -0
  394. data/examples/widgets/tooltips/main.rb +32 -0
  395. data/examples/widgets/tooltips/shapeitem.rb +31 -0
  396. data/examples/widgets/tooltips/sortingbox.rb +222 -0
  397. data/examples/widgets/wiggly/dialog.rb +48 -0
  398. data/examples/widgets/wiggly/main.rb +9 -0
  399. data/examples/widgets/wiggly/wigglywidget.rb +76 -0
  400. data/examples/widgets/windowflags/controllerwindow.rb +195 -0
  401. data/examples/widgets/windowflags/main.rb +32 -0
  402. data/examples/widgets/windowflags/previewwindow.rb +103 -0
  403. data/examples/xml/dombookmarks/frank.xbel +230 -0
  404. data/examples/xml/dombookmarks/jennifer.xbel +93 -0
  405. data/examples/xml/dombookmarks/main.rb +34 -0
  406. data/examples/xml/dombookmarks/mainwindow.rb +129 -0
  407. data/examples/xml/dombookmarks/xbeltree.rb +172 -0
  408. data/examples/xml/saxbookmarks/frank.xbel +230 -0
  409. data/examples/xml/saxbookmarks/jennifer.xbel +93 -0
  410. data/examples/xml/saxbookmarks/main.rb +34 -0
  411. data/examples/xml/saxbookmarks/mainwindow.rb +144 -0
  412. data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
  413. data/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
  414. data/extconf.rb +256 -0
  415. data/lib/2.0/libqtruby4shared.dll +0 -0
  416. data/lib/2.0/libsmokebase.dll +0 -0
  417. data/lib/2.0/libsmokeqtcore.dll +0 -0
  418. data/lib/2.0/libsmokeqtdeclarative.dll +0 -0
  419. data/lib/2.0/libsmokeqtgui.dll +0 -0
  420. data/lib/2.0/libsmokeqthelp.dll +0 -0
  421. data/lib/2.0/libsmokeqtmultimedia.dll +0 -0
  422. data/lib/2.0/libsmokeqtnetwork.dll +0 -0
  423. data/lib/2.0/libsmokeqtopengl.dll +0 -0
  424. data/lib/2.0/libsmokeqtscript.dll +0 -0
  425. data/lib/2.0/libsmokeqtsql.dll +0 -0
  426. data/lib/2.0/libsmokeqtsvg.dll +0 -0
  427. data/lib/2.0/libsmokeqttest.dll +0 -0
  428. data/lib/2.0/libsmokeqtuitools.dll +0 -0
  429. data/lib/2.0/libsmokeqtwebkit.dll +0 -0
  430. data/lib/2.0/libsmokeqtxml.dll +0 -0
  431. data/lib/2.0/libsmokeqtxmlpatterns.dll +0 -0
  432. data/lib/2.0/qtdeclarative.so +0 -0
  433. data/lib/2.0/qtruby4.so +0 -0
  434. data/lib/2.0/qtscript.so +0 -0
  435. data/lib/2.0/qttest.so +0 -0
  436. data/lib/2.0/qtuitools.so +0 -0
  437. data/lib/2.0/qtwebkit.so +0 -0
  438. data/lib/2.1/libqtruby4shared.dll +0 -0
  439. data/lib/2.1/libsmokebase.dll +0 -0
  440. data/lib/2.1/libsmokeqtcore.dll +0 -0
  441. data/lib/2.1/libsmokeqtdeclarative.dll +0 -0
  442. data/lib/2.1/libsmokeqtgui.dll +0 -0
  443. data/lib/2.1/libsmokeqthelp.dll +0 -0
  444. data/lib/2.1/libsmokeqtmultimedia.dll +0 -0
  445. data/lib/2.1/libsmokeqtnetwork.dll +0 -0
  446. data/lib/2.1/libsmokeqtopengl.dll +0 -0
  447. data/lib/2.1/libsmokeqtscript.dll +0 -0
  448. data/lib/2.1/libsmokeqtsql.dll +0 -0
  449. data/lib/2.1/libsmokeqtsvg.dll +0 -0
  450. data/lib/2.1/libsmokeqttest.dll +0 -0
  451. data/lib/2.1/libsmokeqtuitools.dll +0 -0
  452. data/lib/2.1/libsmokeqtwebkit.dll +0 -0
  453. data/lib/2.1/libsmokeqtxml.dll +0 -0
  454. data/lib/2.1/libsmokeqtxmlpatterns.dll +0 -0
  455. data/lib/2.1/qtdeclarative.so +0 -0
  456. data/lib/2.1/qtruby4.so +0 -0
  457. data/lib/2.1/qtscript.so +0 -0
  458. data/lib/2.1/qttest.so +0 -0
  459. data/lib/2.1/qtuitools.so +0 -0
  460. data/lib/2.1/qtwebkit.so +0 -0
  461. data/lib/2.2/libqtruby4shared.dll +0 -0
  462. data/lib/2.2/libsmokebase.dll +0 -0
  463. data/lib/2.2/libsmokeqtcore.dll +0 -0
  464. data/lib/2.2/libsmokeqtdeclarative.dll +0 -0
  465. data/lib/2.2/libsmokeqtgui.dll +0 -0
  466. data/lib/2.2/libsmokeqthelp.dll +0 -0
  467. data/lib/2.2/libsmokeqtmultimedia.dll +0 -0
  468. data/lib/2.2/libsmokeqtnetwork.dll +0 -0
  469. data/lib/2.2/libsmokeqtopengl.dll +0 -0
  470. data/lib/2.2/libsmokeqtscript.dll +0 -0
  471. data/lib/2.2/libsmokeqtsql.dll +0 -0
  472. data/lib/2.2/libsmokeqtsvg.dll +0 -0
  473. data/lib/2.2/libsmokeqttest.dll +0 -0
  474. data/lib/2.2/libsmokeqtuitools.dll +0 -0
  475. data/lib/2.2/libsmokeqtwebkit.dll +0 -0
  476. data/lib/2.2/libsmokeqtxml.dll +0 -0
  477. data/lib/2.2/libsmokeqtxmlpatterns.dll +0 -0
  478. data/lib/2.2/qtdeclarative.so +0 -0
  479. data/lib/2.2/qtruby4.so +0 -0
  480. data/lib/2.2/qtscript.so +0 -0
  481. data/lib/2.2/qttest.so +0 -0
  482. data/lib/2.2/qtuitools.so +0 -0
  483. data/lib/2.2/qtwebkit.so +0 -0
  484. data/lib/Qt.rb +1 -0
  485. data/lib/Qt/qtruby4.rb +3258 -0
  486. data/lib/Qt4.rb +111 -0
  487. data/lib/qtbindings_version.rb +2 -0
  488. data/lib/qtdeclarative/qtdeclarative.rb +17 -0
  489. data/lib/qtscript/qtscript.rb +40 -0
  490. data/lib/qttest/qttest.rb +166 -0
  491. data/lib/qtuitools/qtuitools.rb +17 -0
  492. data/lib/qtwebkit/qtwebkit.rb +17 -0
  493. data/qtbindings.gemspec +18 -0
  494. data/qtbindingsnative.gemspec +19 -0
  495. metadata +559 -0
@@ -0,0 +1,32 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+ require 'Qt'
27
+ require './mainwindow.rb'
28
+
29
+ app = Qt::Application.new(ARGV)
30
+ mainWin = MainWindow.new
31
+ mainWin.show
32
+ app.exec
@@ -0,0 +1,258 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+
27
+
28
+
29
+ class MainWindow < Qt::MainWindow
30
+
31
+
32
+ slots 'newFile()',
33
+ 'open()',
34
+ 'save()',
35
+ 'saveAs()',
36
+ 'openRecentFile()',
37
+ 'about()'
38
+
39
+
40
+ MaxRecentFiles = 5
41
+
42
+ def initialize(parent = nil)
43
+ super
44
+ setAttribute(Qt::WA_DeleteOnClose)
45
+
46
+ @textEdit = Qt::TextEdit.new
47
+ setCentralWidget(@textEdit)
48
+ @recentFileActs = []
49
+ createActions()
50
+ createMenus()
51
+ statusBar()
52
+
53
+ setWindowTitle(tr("Recent Files"))
54
+ resize(400, 300)
55
+ end
56
+
57
+ def newFile()
58
+ other = MainWindow.new
59
+ other.show()
60
+ end
61
+
62
+ def open()
63
+ fileName = Qt::FileDialog.getOpenFileName(self)
64
+ if !fileName.nil?
65
+ loadFile(fileName)
66
+ end
67
+ end
68
+
69
+ def save()
70
+ if @curFile.nil?
71
+ saveAs()
72
+ else
73
+ saveFile(@curFile)
74
+ end
75
+ end
76
+
77
+ def saveAs()
78
+ fileName = Qt::FileDialog::getSaveFileName(self)
79
+ if fileName.nil?
80
+ return
81
+ end
82
+
83
+ if Qt::File.exists(fileName)
84
+ ret = Qt::MessageBox::warning(self, tr("Recent Files"),
85
+ tr("File %s already exists.\nDo you want to overwrite it?" %
86
+ Qt::Dir.convertSeparators(fileName)),
87
+ Qt::MessageBox::Yes | Qt::MessageBox::Default,
88
+ Qt::MessageBox::No | Qt::MessageBox::Escape)
89
+ if ret == Qt::MessageBox::No
90
+ return
91
+ end
92
+ end
93
+ saveFile(fileName)
94
+ end
95
+
96
+ def openRecentFile()
97
+ action = sender()
98
+ if !action.nil?
99
+ loadFile(action.data().toString())
100
+ end
101
+ end
102
+
103
+ def about()
104
+ Qt::MessageBox.about(self, tr("About Recent Files"),
105
+ tr("The <b>Recent Files</b> example demonstrates how to provide a " +
106
+ "recently used file menu in a Qt application."))
107
+ end
108
+
109
+ def createActions()
110
+ @newAct = Qt::Action.new(tr("&New"), self)
111
+ @newAct.shortcut = Qt::KeySequence.new( tr("Ctrl+N") )
112
+ @newAct.statusTip = tr("Create a file.new")
113
+ connect(@newAct, SIGNAL('triggered()'), self, SLOT('newFile()'))
114
+
115
+ @openAct = Qt::Action.new(tr("&Open..."), self)
116
+ @openAct.shortcut = Qt::KeySequence.new( tr("Ctrl+O") )
117
+ @openAct.statusTip = tr("Open an existing file")
118
+ connect(@openAct, SIGNAL('triggered()'), self, SLOT('open()'))
119
+
120
+ @saveAct = Qt::Action.new(tr("&Save"), self)
121
+ @saveAct.shortcut = Qt::KeySequence.new( tr("Ctrl+S") )
122
+ @saveAct.statusTip = tr("Save the document to disk")
123
+ connect(@saveAct, SIGNAL('triggered()'), self, SLOT('save()'))
124
+
125
+ @saveAsAct = Qt::Action.new(tr("Save &As..."), self)
126
+ @saveAsAct.statusTip = tr("Save the document under a name.new")
127
+ connect(@saveAsAct, SIGNAL('triggered()'), self, SLOT('saveAs()'))
128
+
129
+ (0...MaxRecentFiles).each do |i|
130
+ @recentFileActs[i] = Qt::Action.new(self)
131
+ @recentFileActs[i].visible = false
132
+ connect(@recentFileActs[i], SIGNAL('triggered()'),
133
+ self, SLOT('openRecentFile()'))
134
+ end
135
+
136
+ @exitAct = Qt::Action.new(tr("&Close"), self)
137
+ @exitAct.shortcut = Qt::KeySequence.new( tr("Ctrl+W") )
138
+ @exitAct.statusTip = tr("Close self window")
139
+ connect(@exitAct, SIGNAL('triggered()'), self, SLOT('close()'))
140
+
141
+ @exitAct = Qt::Action.new(tr("E&xit"), self)
142
+ @exitAct.shortcut = Qt::KeySequence.new( tr("Ctrl+Q") )
143
+ @exitAct.statusTip = tr("Exit the application")
144
+ connect(@exitAct, SIGNAL('triggered()'), $qApp, SLOT('closeAllWindows()'))
145
+
146
+ @aboutAct = Qt::Action.new(tr("&About"), self)
147
+ @aboutAct.statusTip = tr("Show the application's About box")
148
+ connect(@aboutAct, SIGNAL('triggered()'), self, SLOT('about()'))
149
+
150
+ @aboutQtAct = Qt::Action.new(tr("About &Qt"), self)
151
+ @aboutQtAct.statusTip = tr("Show the Qt library's About box")
152
+ connect(@aboutQtAct, SIGNAL('triggered()'), $qApp, SLOT('aboutQt()'))
153
+ end
154
+
155
+ def createMenus()
156
+ @fileMenu = menuBar().addMenu(tr("&File"))
157
+ @fileMenu.addAction(@newAct)
158
+ @fileMenu.addAction(@openAct)
159
+ @fileMenu.addAction(@saveAct)
160
+ @fileMenu.addAction(@saveAsAct)
161
+ @separatorAct = @fileMenu.addSeparator()
162
+ (0...MaxRecentFiles).each do |i|
163
+ @fileMenu.addAction(@recentFileActs[i])
164
+ end
165
+ @fileMenu.addSeparator()
166
+ @fileMenu.addAction(@exitAct)
167
+ updateRecentFileActions()
168
+
169
+ menuBar().addSeparator()
170
+
171
+ @helpMenu = menuBar().addMenu(tr("&Help"))
172
+ @helpMenu.addAction(@aboutAct)
173
+ @helpMenu.addAction(@aboutQtAct)
174
+ end
175
+
176
+ def loadFile(fileName)
177
+ file = Qt::File.new(fileName)
178
+ if !file.open(Qt::File::ReadOnly | Qt::File::Text)
179
+ Qt::MessageBox.warning(self, tr("Recent Files"),
180
+ tr("Cannot read file %s:\n%s." % [fileName, file.errorString]))
181
+ return
182
+ end
183
+
184
+ inf = Qt::TextStream.new(file)
185
+ Qt::Application.overrideCursor = Qt::Cursor.new(Qt::WaitCursor)
186
+ @textEdit.plainText = inf.readAll
187
+ Qt::Application::restoreOverrideCursor
188
+
189
+ setCurrentFile(fileName)
190
+ statusBar().showMessage(tr("File loaded"), 2000)
191
+ end
192
+
193
+ def saveFile(fileName)
194
+ file = Qt::File.new(fileName)
195
+ if !file.open(Qt::File::WriteOnly | Qt::File::Text)
196
+ Qt::MessageBox.warning(self, tr("Recent Files"),
197
+ tr("Cannot write file %s:\n%s." % [fileName, file.errorString]))
198
+ return
199
+ end
200
+
201
+ outf = Qt::TextStream.new(file)
202
+ Qt::Application.overrideCursor = Qt::Cursor.new(Qt::WaitCursor)
203
+ outf << @textEdit.toPlainText
204
+ outf.flush
205
+ Qt::Application.restoreOverrideCursor
206
+
207
+ setCurrentFile(fileName)
208
+ statusBar().showMessage(tr("File saved"), 2000)
209
+ end
210
+
211
+ def setCurrentFile(fileName)
212
+ @curFile = fileName
213
+ if @curFile.nil?
214
+ setWindowTitle(tr("Recent Files"))
215
+ else
216
+ setWindowTitle(tr("%s - %s" % [strippedName(@curFile), tr("Recent Files")]))
217
+ end
218
+
219
+ settings = Qt::Settings.new("Trolltech", "Recent Files Example")
220
+ files = settings.value("recentFileList").toStringList()
221
+ files.delete(fileName)
222
+ files.insert(0, fileName)
223
+ while files.length > MaxRecentFiles do
224
+ files.pop
225
+ end
226
+
227
+ settings.setValue("recentFileList", Qt::Variant.new(files))
228
+
229
+ Qt::Application.topLevelWidgets.each do |widget|
230
+ if widget.inherits "Qt::MainWindow"
231
+ widget.updateRecentFileActions()
232
+ end
233
+ end
234
+ end
235
+
236
+ def updateRecentFileActions()
237
+ settings = Qt::Settings.new("Trolltech", "Recent Files Example")
238
+ files = settings.value("recentFileList").toStringList()
239
+
240
+ numRecentFiles = [files.length, MaxRecentFiles].min
241
+
242
+ (0...numRecentFiles).each do |i|
243
+ text = tr("&%s %s" % [i + 1, strippedName(files[i])])
244
+ @recentFileActs[i].text = text
245
+ @recentFileActs[i].data = Qt::Variant.new(files[i])
246
+ @recentFileActs[i].visible = true
247
+ end
248
+ (numRecentFiles...MaxRecentFiles).each do |j|
249
+ @recentFileActs[j].visible = false
250
+ end
251
+
252
+ @separatorAct.visible = numRecentFiles > 0
253
+ end
254
+
255
+ def strippedName(fullFileName)
256
+ return Qt::FileInfo.new(fullFileName).fileName()
257
+ end
258
+ end
@@ -0,0 +1,32 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+ require 'Qt'
27
+ require './mainwindow.rb'
28
+
29
+ app = Qt::Application.new(ARGV)
30
+ mainWin = MainWindow.new
31
+ mainWin.show
32
+ app.exec
@@ -0,0 +1,335 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+ class MainWindow < Qt::MainWindow
27
+
28
+ slots 'newFile()',
29
+ 'open()',
30
+ 'save()',
31
+ 'saveAs()',
32
+ 'about()',
33
+ 'documentWasModified()'
34
+
35
+ attr_reader :curFile
36
+
37
+ @@sequenceNumber = 0
38
+
39
+ def initialize(fileName = "")
40
+ super()
41
+ init()
42
+
43
+ if fileName.empty?
44
+ setCurrentFile("")
45
+ else
46
+ loadFile(fileName)
47
+ end
48
+ end
49
+
50
+ def closeEvent(event)
51
+ if maybeSave()
52
+ writeSettings()
53
+ event.accept()
54
+ else
55
+ event.ignore()
56
+ end
57
+ end
58
+
59
+ def newFile()
60
+ other = MainWindow.new
61
+ other.move(x() + 40, y() + 40)
62
+ other.show()
63
+ end
64
+
65
+ def open()
66
+ fileName = Qt::FileDialog.getOpenFileName(self)
67
+ if !fileName.nil?
68
+ existing = findMainWindow(fileName)
69
+ if !existing.nil?
70
+ existing.show()
71
+ existing.raise()
72
+ existing.activateWindow()
73
+ return
74
+ end
75
+
76
+ if @isUntitled && @textEdit.document().empty? &&
77
+ !isWindowModified()
78
+ loadFile(fileName)
79
+ else
80
+ other = MainWindow.new(fileName)
81
+ if other.isUntitled
82
+ other.dispose
83
+ return
84
+ end
85
+ other.move(x() + 40, y() + 40)
86
+ other.show()
87
+ end
88
+ end
89
+ end
90
+
91
+ def save()
92
+ if @isUntitled
93
+ return saveAs()
94
+ else
95
+ return saveFile(@curFile)
96
+ end
97
+ end
98
+
99
+ def saveAs()
100
+ fileName = Qt::FileDialog.getSaveFileName(self, tr("Save As"),
101
+ @curFile)
102
+ if fileName.nil?
103
+ return false
104
+ end
105
+
106
+ return saveFile(fileName)
107
+ end
108
+
109
+ def about()
110
+ Qt::MessageBox::about(self, tr("About SDI"),
111
+ tr("The <b>SDI</b> example demonstrates how to write single " +
112
+ "document interface applications using Qt."))
113
+ end
114
+
115
+ def documentWasModified()
116
+ setWindowModified(true)
117
+ end
118
+
119
+ def init()
120
+ setAttribute(Qt::WA_DeleteOnClose)
121
+
122
+ @isUntitled = true
123
+
124
+ @textEdit = Qt::TextEdit.new
125
+ setCentralWidget(@textEdit)
126
+
127
+ createActions()
128
+ createMenus()
129
+ createToolBars()
130
+ createStatusBar()
131
+
132
+ readSettings()
133
+
134
+ connect(@textEdit.document(), SIGNAL('contentsChanged()'),
135
+ self, SLOT('documentWasModified()'))
136
+ end
137
+
138
+ def createActions()
139
+ @newAct = Qt::Action.new(Qt::Icon.new("images/new.png"), tr("&New"), self)
140
+ @newAct.shortcut = Qt::KeySequence.new( tr("Ctrl+N") )
141
+ @newAct.statusTip = tr("Create a file.new")
142
+ connect(@newAct, SIGNAL('triggered()'), self, SLOT('newFile()'))
143
+
144
+ @openAct = Qt::Action.new(Qt::Icon.new("images/open.png"), tr("&Open..."), self)
145
+ @openAct.shortcut = Qt::KeySequence.new( tr("Ctrl+O") )
146
+ @openAct.statusTip = tr("Open an existing file")
147
+ connect(@openAct, SIGNAL('triggered()'), self, SLOT('open()'))
148
+
149
+ @saveAct = Qt::Action.new(Qt::Icon.new("images/save.png"), tr("&Save"), self)
150
+ @saveAct.shortcut = Qt::KeySequence.new( tr("Ctrl+S") )
151
+ @saveAct.statusTip = tr("Save the document to disk")
152
+ connect(@saveAct, SIGNAL('triggered()'), self, SLOT('save()'))
153
+
154
+ @saveAsAct = Qt::Action.new(tr("Save &As..."), self)
155
+ @saveAsAct.statusTip = tr("Save the document under a name.new")
156
+ connect(@saveAsAct, SIGNAL('triggered()'), self, SLOT('saveAs()'))
157
+
158
+ @closeAct = Qt::Action.new(tr("&Close"), self)
159
+ @closeAct.shortcut = Qt::KeySequence.new( tr("Ctrl+W") )
160
+ @closeAct.statusTip = tr("Close self window")
161
+ connect(@closeAct, SIGNAL('triggered()'), self, SLOT('close()'))
162
+
163
+ @exitAct = Qt::Action.new(tr("E&xit"), self)
164
+ @exitAct.shortcut = Qt::KeySequence.new( tr("Ctrl+Q") )
165
+ @exitAct.statusTip = tr("Exit the application")
166
+ connect(@exitAct, SIGNAL('triggered()'), $qApp, SLOT('closeAllWindows()'))
167
+
168
+ @cutAct = Qt::Action.new(Qt::Icon.new("images/cut.png"), tr("Cu&t"), self)
169
+ @cutAct.shortcut = Qt::KeySequence.new( tr("Ctrl+X") )
170
+ @cutAct.setStatusTip(tr("Cut the current selection's contents to the " +
171
+ "clipboard"))
172
+ connect(@cutAct, SIGNAL('triggered()'), @textEdit, SLOT('cut()'))
173
+
174
+ @copyAct = Qt::Action.new(Qt::Icon.new("images/copy.png"), tr("&Copy"), self)
175
+ @copyAct.shortcut = Qt::KeySequence.new( tr("Ctrl+C") )
176
+ @copyAct.setStatusTip(tr("Copy the current selection's contents to the " +
177
+ "clipboard"))
178
+ connect(@copyAct, SIGNAL('triggered()'), @textEdit, SLOT('copy()'))
179
+
180
+ @pasteAct = Qt::Action.new(Qt::Icon.new("images/paste.png"), tr("&Paste"), self)
181
+ @pasteAct.shortcut = Qt::KeySequence.new( tr("Ctrl+V") )
182
+ @pasteAct.setStatusTip(tr("Paste the clipboard's contents into the current " +
183
+ "selection"))
184
+ connect(@pasteAct, SIGNAL('triggered()'), @textEdit, SLOT('paste()'))
185
+
186
+ @aboutAct = Qt::Action.new(tr("&About"), self)
187
+ @aboutAct.statusTip = tr("Show the application's About box")
188
+ connect(@aboutAct, SIGNAL('triggered()'), self, SLOT('about()'))
189
+
190
+ @aboutQtAct = Qt::Action.new(tr("About &Qt"), self)
191
+ @aboutQtAct.statusTip = tr("Show the Qt library's About box")
192
+ connect(@aboutQtAct, SIGNAL('triggered()'), $qApp, SLOT('aboutQt()'))
193
+
194
+
195
+ @cutAct.enabled = false
196
+ @copyAct.enabled = false
197
+ connect(@textEdit, SIGNAL('copyAvailable(bool)'),
198
+ @cutAct, SLOT('setEnabled(bool)'))
199
+ connect(@textEdit, SIGNAL('copyAvailable(bool)'),
200
+ @copyAct, SLOT('setEnabled(bool)'))
201
+ end
202
+
203
+ def createMenus()
204
+ @fileMenu = menuBar().addMenu(tr("&File"))
205
+ @fileMenu.addAction(@newAct)
206
+ @fileMenu.addAction(@openAct)
207
+ @fileMenu.addAction(@saveAct)
208
+ @fileMenu.addAction(@saveAsAct)
209
+ @fileMenu.addSeparator()
210
+ @fileMenu.addAction(@closeAct)
211
+ @fileMenu.addAction(@exitAct)
212
+
213
+ @editMenu = menuBar().addMenu(tr("&Edit"))
214
+ @editMenu.addAction(@cutAct)
215
+ @editMenu.addAction(@copyAct)
216
+ @editMenu.addAction(@pasteAct)
217
+
218
+ menuBar().addSeparator()
219
+
220
+ @helpMenu = menuBar().addMenu(tr("&Help"))
221
+ @helpMenu.addAction(@aboutAct)
222
+ @helpMenu.addAction(@aboutQtAct)
223
+ end
224
+
225
+ def createToolBars()
226
+ @fileToolBar = addToolBar(tr("File"))
227
+ @fileToolBar.addAction(@newAct)
228
+ @fileToolBar.addAction(@openAct)
229
+ @fileToolBar.addAction(@saveAct)
230
+
231
+ @editToolBar = addToolBar(tr("Edit"))
232
+ @editToolBar.addAction(@cutAct)
233
+ @editToolBar.addAction(@copyAct)
234
+ @editToolBar.addAction(@pasteAct)
235
+ end
236
+
237
+ def createStatusBar()
238
+ statusBar().showMessage(tr("Ready"))
239
+ end
240
+
241
+ def readSettings()
242
+ settings = Qt::Settings.new("Trolltech", "SDI Example")
243
+ pos = settings.value("pos", Qt::Variant.new(Qt::Point.new(200, 200))).toPoint()
244
+ size = settings.value("size", Qt::Variant.new(Qt::Size.new(400, 400))).toSize()
245
+ move(pos)
246
+ resize(size)
247
+ end
248
+
249
+ def writeSettings()
250
+ settings = Qt::Settings.new("Trolltech", "SDI Example")
251
+ settings.setValue("pos", Qt::Variant.new(pos()))
252
+ settings.setValue("size", Qt::Variant.new(size()))
253
+ end
254
+
255
+ def maybeSave()
256
+ if @textEdit.document().isModified()
257
+ ret = Qt::MessageBox.warning(self, tr("SDI"),
258
+ tr("The document has been modified.\n" +
259
+ "Do you want to save your changes?"),
260
+ Qt::MessageBox::Yes | Qt::MessageBox::Default,
261
+ Qt::MessageBox::No,
262
+ Qt::MessageBox::Cancel | Qt::MessageBox::Escape)
263
+ if ret == Qt::MessageBox::Yes
264
+ return save()
265
+ elsif ret == Qt::MessageBox::Cancel
266
+ return false
267
+ end
268
+ end
269
+ return true
270
+ end
271
+
272
+ def loadFile(fileName)
273
+ file = Qt::File.new(fileName)
274
+ if !file.open(Qt::File::ReadOnly | Qt::File::Text)
275
+ Qt::MessageBox.warning(self, tr("SDI"),
276
+ tr("Cannot read file %s:\n%s." % [fileName, file.errorString]))
277
+ return
278
+ end
279
+
280
+ inf = Qt::TextStream.new(file)
281
+ Qt::Application.overrideCursor = Qt::Cursor.new(Qt::WaitCursor)
282
+ @textEdit.plainText = inf.readAll
283
+ Qt::Application::restoreOverrideCursor
284
+
285
+ setCurrentFile(fileName)
286
+ statusBar().showMessage(tr("File loaded"), 2000)
287
+ end
288
+
289
+ def saveFile(fileName)
290
+ file = Qt::File.new(fileName)
291
+ if !file.open(Qt::File::WriteOnly | Qt::File::Text)
292
+ Qt::MessageBox.warning(self, tr("SDI"),
293
+ tr("Cannot write file %s:\n%s." % [fileName, file.errorString]))
294
+ return
295
+ end
296
+
297
+ outf = Qt::TextStream.new(file)
298
+ Qt::Application.overrideCursor = Qt::Cursor.new(Qt::WaitCursor)
299
+ outf << @textEdit.toPlainText
300
+ outf.flush
301
+ Qt::Application.restoreOverrideCursor
302
+
303
+ setCurrentFile(fileName)
304
+ statusBar().showMessage(tr("File saved"), 2000)
305
+ end
306
+
307
+ def setCurrentFile(fileName)
308
+ @isUntitled = fileName.empty?
309
+ if @isUntitled
310
+ @curFile = tr("document%d.txt" % (@@sequenceNumber += 1))
311
+ else
312
+ @curFile = Qt::FileInfo.new(fileName).canonicalFilePath()
313
+ end
314
+
315
+ @textEdit.document().modified = false
316
+ setWindowModified(false)
317
+
318
+ setWindowTitle(tr("%s[*] - %s" % [strippedName(@curFile), tr("SDI")]))
319
+ end
320
+
321
+ def strippedName(fullFileName)
322
+ return Qt::FileInfo.new(fullFileName).fileName()
323
+ end
324
+
325
+ def findMainWindow(fileName)
326
+ canonicalFilePath = Qt::FileInfo.new(fileName).canonicalFilePath()
327
+
328
+ $qApp.topLevelWidgets.each do |widget|
329
+ if widget.kind_of?(MainWindow) && widget.curFile == canonicalFilePath
330
+ return mainWin
331
+ end
332
+ end
333
+ return nil
334
+ end
335
+ end