qtbindings 4.8.6.3 → 4.8.6.4
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.
- checksums.yaml +5 -5
- data/COPYING.LIB.txt +510 -510
- data/COPYING.txt +286 -286
- data/KNOWN_ISSUES.txt +17 -17
- data/bin/rbqtapi +0 -0
- data/bin/rbrcc +0 -0
- data/bin/rbuic4 +0 -0
- data/bin/smokeapi +0 -0
- data/bin/smokedeptool +0 -0
- data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -5
- data/examples/designer/calculatorbuilder/calculatorform.rb +60 -60
- data/examples/designer/calculatorbuilder/calculatorform.ui +299 -299
- data/examples/designer/calculatorbuilder/main.rb +34 -34
- data/examples/designer/calculatorbuilder/makefile +2 -2
- data/examples/designer/calculatorform/calculatorform.rb +46 -46
- data/examples/designer/calculatorform/calculatorform.ui +277 -277
- data/examples/designer/calculatorform/main.rb +32 -32
- data/examples/designer/calculatorform/makefile +3 -3
- data/examples/desktop/screenshot/main.rb +32 -32
- data/examples/desktop/screenshot/screenshot.rb +157 -157
- data/examples/desktop/systray/images/bad.svg +64 -64
- data/examples/desktop/systray/images/heart.svg +55 -55
- data/examples/desktop/systray/images/trash.svg +58 -58
- data/examples/desktop/systray/main.rb +41 -41
- data/examples/desktop/systray/makefile +2 -2
- data/examples/desktop/systray/systray.qrc +7 -7
- data/examples/desktop/systray/window.rb +219 -219
- data/examples/dialogs/complexwizard/complexwizard.rb +140 -140
- data/examples/dialogs/complexwizard/licensewizard.rb +294 -294
- data/examples/dialogs/complexwizard/main.rb +31 -31
- data/examples/dialogs/configdialog/configdialog.rb +109 -109
- data/examples/dialogs/configdialog/main.rb +31 -31
- data/examples/dialogs/configdialog/pages.rb +140 -140
- data/examples/dialogs/extension/finddialog.rb +89 -89
- data/examples/dialogs/extension/main.rb +31 -31
- data/examples/dialogs/findfiles/main.rb +32 -32
- data/examples/dialogs/findfiles/window.rb +177 -177
- data/examples/dialogs/simplewizard/classwizard.rb +374 -374
- data/examples/dialogs/simplewizard/main.rb +31 -31
- data/examples/dialogs/simplewizard/simplewizard.rb +110 -110
- data/examples/dialogs/standarddialogs/dialog.rb +340 -340
- data/examples/dialogs/standarddialogs/main.rb +31 -31
- data/examples/dialogs/tabdialog/main.rb +38 -38
- data/examples/dialogs/tabdialog/tabdialog.rb +178 -178
- data/examples/draganddrop/draggableicons/dragwidget.rb +125 -125
- data/examples/draganddrop/draggableicons/main.rb +41 -41
- data/examples/draganddrop/draggabletext/draglabel.rb +51 -51
- data/examples/draganddrop/draggabletext/dragwidget.rb +94 -94
- data/examples/draganddrop/draggabletext/main.rb +33 -33
- data/examples/draganddrop/draggabletext/words.txt +41 -41
- data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -99
- data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -114
- data/examples/draganddrop/dropsite/main.rb +33 -33
- data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -78
- data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -130
- data/examples/draganddrop/fridgemagnets/main.rb +33 -33
- data/examples/draganddrop/fridgemagnets/words.txt +48 -48
- data/examples/draganddrop/puzzle/main.rb +33 -33
- data/examples/draganddrop/puzzle/mainwindow.rb +136 -136
- data/examples/draganddrop/puzzle/pieceslist.rb +95 -95
- data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -190
- data/examples/graphicsview/collidingmice/main.rb +53 -53
- data/examples/graphicsview/collidingmice/makefile +2 -2
- data/examples/graphicsview/collidingmice/mice.qrc +5 -5
- data/examples/graphicsview/collidingmice/mouse.rb +176 -176
- data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -86
- data/examples/graphicsview/dragdroprobot/main.rb +57 -57
- data/examples/graphicsview/dragdroprobot/makefile +2 -2
- data/examples/graphicsview/dragdroprobot/robot.qrc +5 -5
- data/examples/graphicsview/dragdroprobot/robot.rb +246 -246
- data/examples/itemviews/chart/chart.qrc +5 -5
- data/examples/itemviews/chart/main.rb +33 -33
- data/examples/itemviews/chart/mainwindow.rb +151 -151
- data/examples/itemviews/chart/makefile +2 -2
- data/examples/itemviews/chart/mydata.cht +8 -8
- data/examples/itemviews/chart/pieview.rb +516 -516
- data/examples/itemviews/chart/qtdata.cht +14 -14
- data/examples/itemviews/dirview/main.rb +39 -39
- data/examples/itemviews/pixelator/imagemodel.rb +51 -51
- data/examples/itemviews/pixelator/images.qrc +5 -5
- data/examples/itemviews/pixelator/main.rb +34 -34
- data/examples/itemviews/pixelator/mainwindow.rb +218 -218
- data/examples/itemviews/pixelator/makefile +3 -3
- data/examples/itemviews/pixelator/pixeldelegate.rb +67 -67
- data/examples/itemviews/puzzle/main.rb +36 -36
- data/examples/itemviews/puzzle/mainwindow.rb +143 -143
- data/examples/itemviews/puzzle/piecesmodel.rb +174 -174
- data/examples/itemviews/puzzle/puzzlewidget.rb +192 -192
- data/examples/itemviews/simpledommodel/domitem.rb +62 -62
- data/examples/itemviews/simpledommodel/dommodel.rb +139 -139
- data/examples/itemviews/simpledommodel/main.rb +33 -33
- data/examples/itemviews/simpledommodel/mainwindow.rb +66 -66
- data/examples/itemviews/simpletreemodel/default.txt +40 -40
- data/examples/itemviews/simpletreemodel/main.rb +41 -41
- data/examples/itemviews/simpletreemodel/makefile +2 -2
- data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -5
- data/examples/itemviews/simpletreemodel/treeitem.rb +67 -67
- data/examples/itemviews/simpletreemodel/treemodel.rb +164 -164
- data/examples/itemviews/sortingmodel/default.txt +40 -40
- data/examples/itemviews/sortingmodel/main.rb +53 -53
- data/examples/itemviews/sortingmodel/treeitem.rb +73 -73
- data/examples/itemviews/sortingmodel/treemodel.rb +166 -166
- data/examples/itemviews/spinboxdelegate/main.rb +47 -47
- data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -62
- data/examples/killerfilter/killerfilter.rb +55 -55
- data/examples/layouts/basiclayouts/dialog.rb +110 -110
- data/examples/layouts/basiclayouts/main.rb +31 -31
- data/examples/layouts/borderlayout/borderlayout.rb +190 -190
- data/examples/layouts/borderlayout/main.rb +32 -32
- data/examples/layouts/borderlayout/window.rb +52 -52
- data/examples/layouts/flowlayouts/flowlayout.rb +108 -108
- data/examples/layouts/flowlayouts/main.rb +32 -32
- data/examples/layouts/flowlayouts/window.rb +43 -43
- data/examples/mainwindows/application/main.rb +32 -32
- data/examples/mainwindows/application/mainwindow.rb +285 -285
- data/examples/mainwindows/dockwidgets/main.rb +32 -32
- data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -302
- data/examples/mainwindows/mdi/main.rb +32 -32
- data/examples/mainwindows/mdi/mainwindow.rb +363 -363
- data/examples/mainwindows/mdi/mdichild.rb +152 -152
- data/examples/mainwindows/menus/main.rb +32 -32
- data/examples/mainwindows/menus/mainwindow.rb +327 -327
- data/examples/mainwindows/recentfiles/main.rb +32 -32
- data/examples/mainwindows/recentfiles/mainwindow.rb +258 -258
- data/examples/mainwindows/sdi/main.rb +32 -32
- data/examples/mainwindows/sdi/mainwindow.rb +335 -335
- data/examples/network/broadcastreceiver/main.rb +32 -32
- data/examples/network/broadcastreceiver/receiver.rb +64 -64
- data/examples/network/broadcastsender/main.rb +32 -32
- data/examples/network/broadcastsender/sender.rb +72 -72
- data/examples/network/fortuneclient/client.rb +149 -149
- data/examples/network/fortuneclient/main.rb +32 -32
- data/examples/network/fortuneserver/main.rb +32 -32
- data/examples/network/fortuneserver/server.rb +88 -88
- data/examples/network/ftp/ftpwindow.rb +259 -259
- data/examples/network/ftp/main.rb +32 -32
- data/examples/network/http/httpwindow.rb +187 -187
- data/examples/network/http/main.rb +32 -32
- data/examples/network/loopback/dialog.rb +163 -163
- data/examples/network/loopback/main.rb +32 -32
- data/examples/opengl/grabber/glwidget.rb +265 -265
- data/examples/opengl/grabber/main.rb +32 -32
- data/examples/opengl/grabber/mainwindow.rb +189 -189
- data/examples/opengl/hellogl/glwidget.rb +226 -226
- data/examples/opengl/hellogl/main.rb +32 -32
- data/examples/opengl/hellogl/window.rb +66 -66
- data/examples/opengl/textures/glwidget.rb +151 -151
- data/examples/opengl/textures/main.rb +32 -32
- data/examples/opengl/textures/window.rb +77 -77
- data/examples/painting/basicdrawing/main.rb +32 -32
- data/examples/painting/basicdrawing/renderarea.rb +166 -166
- data/examples/painting/basicdrawing/window.rb +215 -215
- data/examples/painting/concentriccircles/circlewidget.rb +88 -88
- data/examples/painting/concentriccircles/main.rb +32 -32
- data/examples/painting/concentriccircles/window.rb +72 -72
- data/examples/painting/fontsampler/main.rb +32 -32
- data/examples/painting/fontsampler/mainwindow.rb +369 -369
- data/examples/painting/fontsampler/mainwindowbase.ui +136 -136
- data/examples/painting/fontsampler/makefile +8 -8
- data/examples/painting/fontsampler/previewdialog.rb +257 -257
- data/examples/painting/fontsampler/previewdialogbase.ui +224 -224
- data/examples/painting/fontsampler/previewlabel.rb +43 -43
- data/examples/painting/imagecomposition/imagecomposer.rb +152 -152
- data/examples/painting/imagecomposition/imagecomposition.qrc +6 -6
- data/examples/painting/imagecomposition/main.rb +33 -33
- data/examples/painting/imagecomposition/makefile +2 -2
- data/examples/painting/painterpaths/main.rb +32 -32
- data/examples/painting/painterpaths/renderarea.rb +97 -97
- data/examples/painting/painterpaths/window.rb +247 -247
- data/examples/painting/svgviewer/files/bubbles.svg +212 -212
- data/examples/painting/svgviewer/files/cubic.svg +77 -77
- data/examples/painting/svgviewer/files/spheres.svg +79 -79
- data/examples/painting/svgviewer/main.rb +38 -38
- data/examples/painting/svgviewer/mainwindow.rb +99 -99
- data/examples/painting/svgviewer/makefile +2 -2
- data/examples/painting/svgviewer/svgview.rb +156 -156
- data/examples/painting/svgviewer/svgviewer.qrc +6 -6
- data/examples/painting/svgviewer/svgwindow.rb +87 -87
- data/examples/painting/transformations/main.rb +32 -32
- data/examples/painting/transformations/renderarea.rb +127 -127
- data/examples/painting/transformations/window.rb +153 -153
- data/examples/passivepopup/passivepopup.rb +38 -38
- data/examples/qdbus/chat/chat.rb +146 -146
- data/examples/qdbus/chat/chat_adaptor.rb +12 -12
- data/examples/qdbus/chat/chat_interface.rb +13 -13
- data/examples/qdbus/chat/chatmainwindow.ui +184 -184
- data/examples/qdbus/chat/chatsetnickname.ui +145 -145
- data/examples/qdbus/chat/makefile +8 -8
- data/examples/qdbus/complexpingpong/complexping.rb +92 -92
- data/examples/qdbus/complexpingpong/complexpong.rb +83 -83
- data/examples/qdbus/complexpingpong/ping-common.rb +1 -1
- data/examples/qdbus/listnames/listnames.rb +69 -69
- data/examples/qdbus/pingpong/ping-common.rb +1 -1
- data/examples/qdbus/pingpong/ping.rb +52 -52
- data/examples/qdbus/pingpong/pong.rb +55 -55
- data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -151
- data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -50
- data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -66
- data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -61
- data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -32
- data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -2
- data/examples/qtscribble/scribble.rb +270 -270
- data/examples/richtext/calendar/main.rb +33 -33
- data/examples/richtext/calendar/mainwindow.rb +173 -173
- data/examples/richtext/orderform/detailsdialog.rb +130 -130
- data/examples/richtext/orderform/main.rb +34 -34
- data/examples/richtext/orderform/mainwindow.rb +194 -194
- data/examples/richtext/syntaxhighlighter/examples/example +79 -79
- data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -90
- data/examples/richtext/syntaxhighlighter/main.rb +34 -34
- data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -105
- data/examples/ruboids/LICENSE.txt +58 -58
- data/examples/ruboids/Manifest +26 -26
- data/examples/ruboids/README +53 -53
- data/examples/ruboids/TODO +29 -29
- data/examples/ruboids/boids.properties +33 -33
- data/examples/ruboids/generateManifest.rb +42 -42
- data/examples/ruboids/release.rb +152 -152
- data/examples/ruboids/ruboids/Boid.rb +141 -141
- data/examples/ruboids/ruboids/BoidView.rb +159 -159
- data/examples/ruboids/ruboids/Camera.rb +24 -24
- data/examples/ruboids/ruboids/CameraDialog.rb +218 -218
- data/examples/ruboids/ruboids/Canvas.rb +143 -143
- data/examples/ruboids/ruboids/Cloud.rb +61 -61
- data/examples/ruboids/ruboids/CloudView.rb +54 -54
- data/examples/ruboids/ruboids/Flock.rb +47 -47
- data/examples/ruboids/ruboids/Graphics.rb +278 -278
- data/examples/ruboids/ruboids/Params.rb +87 -87
- data/examples/ruboids/ruboids/Point.rb +153 -153
- data/examples/ruboids/ruboids/Thing.rb +34 -34
- data/examples/ruboids/ruboids/Triangle.rb +21 -21
- data/examples/ruboids/ruboids/View.rb +88 -88
- data/examples/ruboids/ruboids/World.rb +82 -82
- data/examples/ruboids/ruboids/WorldWindow.rb +52 -52
- data/examples/ruboids/ruboids/info.rb +12 -12
- data/examples/ruboids/ruboids/ruboids.rb +29 -29
- data/examples/threading/main_thread.rb +19 -19
- data/examples/tutorial/t1/t1.rb +10 -10
- data/examples/tutorial/t10/cannon.rb +72 -72
- data/examples/tutorial/t10/lcdrange.rb +45 -45
- data/examples/tutorial/t10/t10.rb +55 -55
- data/examples/tutorial/t11/cannon.rb +123 -124
- data/examples/tutorial/t11/lcdrange.rb +45 -45
- data/examples/tutorial/t11/t11.rb +65 -65
- data/examples/tutorial/t12/cannon.rb +157 -158
- data/examples/tutorial/t12/lcdrange.rb +58 -59
- data/examples/tutorial/t12/t12.rb +65 -66
- data/examples/tutorial/t13/cannon.rb +206 -208
- data/examples/tutorial/t13/gamebrd.rb +112 -113
- data/examples/tutorial/t13/lcdrange.rb +59 -60
- data/examples/tutorial/t13/t13.rb +11 -11
- data/examples/tutorial/t14/cannon.rb +262 -263
- data/examples/tutorial/t14/gamebrd.rb +122 -123
- data/examples/tutorial/t14/lcdrange.rb +61 -63
- data/examples/tutorial/t14/t14.rb +11 -11
- data/examples/tutorial/t2/t2.rb +16 -16
- data/examples/tutorial/t3/t3.rb +17 -18
- data/examples/tutorial/t4/t4.rb +23 -25
- data/examples/tutorial/t5/t5.rb +35 -37
- data/examples/tutorial/t6/t6.rb +48 -52
- data/examples/tutorial/t7/lcdrange.rb +32 -32
- data/examples/tutorial/t7/t7.rb +40 -42
- data/examples/tutorial/t8/cannon.rb +37 -38
- data/examples/tutorial/t8/lcdrange.rb +45 -45
- data/examples/tutorial/t8/t8.rb +43 -43
- data/examples/tutorial/t9/cannon.rb +44 -45
- data/examples/tutorial/t9/lcdrange.rb +46 -46
- data/examples/tutorial/t9/t9.rb +43 -43
- data/examples/widgets/analogclock/analogclock.rb +94 -94
- data/examples/widgets/analogclock/main.rb +9 -9
- data/examples/widgets/calculator/button.rb +45 -45
- data/examples/widgets/calculator/calculator.rb +382 -382
- data/examples/widgets/calculator/main.rb +32 -32
- data/examples/widgets/charactermap/characterwidget.rb +109 -109
- data/examples/widgets/charactermap/main.rb +32 -32
- data/examples/widgets/charactermap/mainwindow.rb +118 -118
- data/examples/widgets/digitalclock/digitalclock.rb +30 -30
- data/examples/widgets/digitalclock/main.rb +9 -9
- data/examples/widgets/groupbox/main.rb +32 -32
- data/examples/widgets/groupbox/window.rb +134 -134
- data/examples/widgets/icons/iconpreviewarea.rb +110 -110
- data/examples/widgets/icons/iconsizespinbox.rb +39 -39
- data/examples/widgets/icons/imagedelegate.rb +73 -73
- data/examples/widgets/icons/main.rb +32 -32
- data/examples/widgets/icons/mainwindow.rb +351 -351
- data/examples/widgets/imageviewer/imageviewer.rb +219 -219
- data/examples/widgets/imageviewer/main.rb +32 -32
- data/examples/widgets/lineedits/main.rb +32 -32
- data/examples/widgets/lineedits/window.rb +199 -199
- data/examples/widgets/movie/main.rb +32 -32
- data/examples/widgets/movie/movieplayer.rb +201 -201
- data/examples/widgets/screenshot/main.rb +32 -32
- data/examples/widgets/screenshot/screenshot.rb +154 -154
- data/examples/widgets/scribble/main.rb +32 -32
- data/examples/widgets/scribble/mainwindow.rb +202 -202
- data/examples/widgets/scribble/scribblearea.rb +154 -154
- data/examples/widgets/sliders/main.rb +32 -32
- data/examples/widgets/sliders/slidersgroup.rb +97 -97
- data/examples/widgets/sliders/window.rb +124 -124
- data/examples/widgets/spinboxes/main.rb +32 -32
- data/examples/widgets/spinboxes/window.rb +213 -213
- data/examples/widgets/tetrix/main.rb +33 -33
- data/examples/widgets/tetrix/tetrixboard.rb +346 -346
- data/examples/widgets/tetrix/tetrixpiece.rb +135 -135
- data/examples/widgets/tetrix/tetrixwindow.rb +88 -88
- data/examples/widgets/tooltips/main.rb +32 -32
- data/examples/widgets/tooltips/shapeitem.rb +31 -31
- data/examples/widgets/tooltips/sortingbox.rb +222 -222
- data/examples/widgets/wiggly/dialog.rb +48 -48
- data/examples/widgets/wiggly/main.rb +9 -9
- data/examples/widgets/wiggly/wigglywidget.rb +75 -75
- data/examples/widgets/windowflags/controllerwindow.rb +195 -195
- data/examples/widgets/windowflags/main.rb +32 -32
- data/examples/widgets/windowflags/previewwindow.rb +103 -103
- data/examples/xml/dombookmarks/frank.xbel +230 -230
- data/examples/xml/dombookmarks/jennifer.xbel +93 -93
- data/examples/xml/dombookmarks/main.rb +34 -34
- data/examples/xml/dombookmarks/mainwindow.rb +129 -129
- data/examples/xml/dombookmarks/xbeltree.rb +172 -172
- data/examples/xml/saxbookmarks/frank.xbel +230 -230
- data/examples/xml/saxbookmarks/jennifer.xbel +93 -93
- data/examples/xml/saxbookmarks/main.rb +34 -34
- data/examples/xml/saxbookmarks/mainwindow.rb +144 -144
- data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -95
- data/examples/xml/saxbookmarks/xbelhandler.rb +122 -122
- data/ext/cmake/modules/BasicFindPackageVersion.cmake.in +30 -30
- data/ext/cmake/modules/CMakeCSharpCompiler.cmake.in +7 -7
- data/ext/cmake/modules/CMakeCSharpInformation.cmake +366 -366
- data/ext/cmake/modules/CMakeDetermineCSharpCompiler.cmake +85 -85
- data/ext/cmake/modules/CMakeTestCSharpCompiler.cmake +1 -1
- data/ext/cmake/modules/FindLibraryWithDebug.cmake +113 -113
- data/ext/cmake/modules/FindMono.cmake +36 -36
- data/ext/cmake/modules/FindPHP5.cmake +179 -179
- data/ext/cmake/modules/FindPerlMore.cmake +78 -78
- data/ext/cmake/modules/FindPhonon.cmake +71 -71
- data/ext/cmake/modules/FindQImageBlitz.cmake +51 -51
- data/ext/cmake/modules/FindQScintilla.cmake +57 -57
- data/ext/cmake/modules/FindQwt5.cmake +104 -104
- data/ext/cmake/modules/FindRuby.cmake +279 -279
- data/ext/cmake/modules/FindSmoke.cmake +78 -78
- data/ext/cmake/modules/MacroLogFeature.cmake +146 -146
- data/ext/cmake/modules/MacroOptionalAddBindings.cmake +47 -47
- data/ext/cmake/modules/MacroOptionalFindPackage.cmake +28 -28
- data/ext/cmake/modules/MacroPushRequiredVars.cmake +47 -47
- data/ext/cmake/modules/MacroWriteBasicCMakeVersionFile.cmake +22 -22
- data/ext/cmake/modules/SmokeConfig.cmake.in +109 -109
- data/ext/generator/CMakeLists.txt +38 -38
- data/ext/generator/cmake/BasicFindPackageVersion.cmake.in +30 -30
- data/ext/generator/cmake/CMakeLists.txt +24 -24
- data/ext/generator/cmake/FindLibraryWithDebug.cmake +113 -113
- data/ext/generator/cmake/FindPhonon.cmake +71 -71
- data/ext/generator/cmake/FindQImageBlitz.cmake +51 -51
- data/ext/generator/cmake/FindQScintilla.cmake +57 -57
- data/ext/generator/cmake/FindQwt5.cmake +104 -104
- data/ext/generator/cmake/HandleImportedTargetsInCMakeRequiredLibraries.cmake +85 -85
- data/ext/generator/cmake/MacroLogFeature.cmake +146 -146
- data/ext/generator/cmake/MacroOptionalAddBindings.cmake +47 -47
- data/ext/generator/cmake/MacroOptionalFindPackage.cmake +28 -28
- data/ext/generator/cmake/MacroWriteBasicCMakeVersionFile.cmake +22 -22
- data/ext/generator/cmake/SmokeConfig.cmake.in +109 -109
- data/ext/generator/config.h +25 -25
- data/ext/generator/generator_export.h +31 -31
- data/ext/generator/generatorenvironment.cpp +52 -52
- data/ext/generator/generatorenvironment.h +35 -35
- data/ext/generator/generatorpreprocessor.cpp +303 -303
- data/ext/generator/generatorpreprocessor.h +83 -83
- data/ext/generator/generators/CMakeLists.txt +4 -4
- data/ext/generator/generators/dump/CMakeLists.txt +15 -15
- data/ext/generator/generators/dump/generator_dump.cpp +36 -36
- data/ext/generator/generators/smoke/CMakeLists.txt +18 -18
- data/ext/generator/generators/smoke/generator_smoke.cpp +240 -240
- data/ext/generator/generators/smoke/globals.h +140 -140
- data/ext/generator/generators/smoke/helpers.cpp +793 -793
- data/ext/generator/generators/smoke/writeClasses.cpp +502 -502
- data/ext/generator/generators/smoke/writeSmokeDataFile.cpp +754 -754
- data/ext/generator/generatorvisitor.cpp +922 -922
- data/ext/generator/generatorvisitor.h +119 -119
- data/ext/generator/name_compiler.cpp +205 -205
- data/ext/generator/name_compiler.h +76 -76
- data/ext/generator/options.cpp +33 -33
- data/ext/generator/options.h +46 -46
- data/ext/generator/parser/CMakeLists.txt +50 -50
- data/ext/generator/parser/ast.cpp +21 -21
- data/ext/generator/parser/ast.h +923 -923
- data/ext/generator/parser/astutilities.h +65 -65
- data/ext/generator/parser/codegenerator.cpp +867 -867
- data/ext/generator/parser/codegenerator.h +180 -180
- data/ext/generator/parser/codemodel_fwd.h +76 -76
- data/ext/generator/parser/commentformatter.cpp +54 -54
- data/ext/generator/parser/commentformatter.h +45 -45
- data/ext/generator/parser/commentparser.cpp +109 -109
- data/ext/generator/parser/commentparser.h +84 -84
- data/ext/generator/parser/control.cpp +40 -40
- data/ext/generator/parser/control.h +51 -51
- data/ext/generator/parser/cppparser_export.h +33 -33
- data/ext/generator/parser/default_visitor.cpp +470 -470
- data/ext/generator/parser/default_visitor.h +116 -116
- data/ext/generator/parser/dumptree.cpp +146 -146
- data/ext/generator/parser/dumptree.h +50 -50
- data/ext/generator/parser/indexedstring.cpp +213 -213
- data/ext/generator/parser/indexedstring.h +147 -147
- data/ext/generator/parser/kdevelop-parser-rev +1 -1
- data/ext/generator/parser/kdevvarlengtharray.h +346 -346
- data/ext/generator/parser/lexer.cpp +964 -964
- data/ext/generator/parser/lexer.h +308 -308
- data/ext/generator/parser/listnode.cpp +20 -20
- data/ext/generator/parser/listnode.h +97 -97
- data/ext/generator/parser/memorypool.cpp +20 -20
- data/ext/generator/parser/memorypool.h +41 -41
- data/ext/generator/parser/name_compiler.cpp +190 -190
- data/ext/generator/parser/name_compiler.h +77 -77
- data/ext/generator/parser/parser.cpp +4708 -4708
- data/ext/generator/parser/parser.h +290 -290
- data/ext/generator/parser/parsesession.cpp +106 -106
- data/ext/generator/parser/parsesession.h +87 -87
- data/ext/generator/parser/problem.h +21 -21
- data/ext/generator/parser/rpp/CMakeLists.txt +45 -45
- data/ext/generator/parser/rpp/Makefile.am +13 -13
- data/ext/generator/parser/rpp/anchor.h +51 -51
- data/ext/generator/parser/rpp/appendedlist.h +363 -363
- data/ext/generator/parser/rpp/chartools.cpp +146 -146
- data/ext/generator/parser/rpp/chartools.h +99 -99
- data/ext/generator/parser/rpp/macrorepository.cpp +44 -44
- data/ext/generator/parser/rpp/macrorepository.h +59 -59
- data/ext/generator/parser/rpp/pp-configuration +86 -86
- data/ext/generator/parser/rpp/pp-engine.h +267 -267
- data/ext/generator/parser/rpp/pp-environment.cpp +271 -271
- data/ext/generator/parser/rpp/pp-environment.h +119 -119
- data/ext/generator/parser/rpp/pp-internal.cpp +38 -38
- data/ext/generator/parser/rpp/pp-internal.h +37 -37
- data/ext/generator/parser/rpp/pp-location.cpp +191 -191
- data/ext/generator/parser/rpp/pp-location.h +89 -89
- data/ext/generator/parser/rpp/pp-macro-expander.cpp +568 -568
- data/ext/generator/parser/rpp/pp-macro-expander.cpp.orig +558 -558
- data/ext/generator/parser/rpp/pp-macro-expander.h +130 -130
- data/ext/generator/parser/rpp/pp-macro.cpp +153 -153
- data/ext/generator/parser/rpp/pp-macro.h +176 -176
- data/ext/generator/parser/rpp/pp-scanner.cpp +311 -311
- data/ext/generator/parser/rpp/pp-scanner.h +97 -97
- data/ext/generator/parser/rpp/pp-stream.cpp +425 -425
- data/ext/generator/parser/rpp/pp-stream.h +183 -183
- data/ext/generator/parser/rpp/preprocessor.cpp +65 -65
- data/ext/generator/parser/rpp/preprocessor.h +80 -80
- data/ext/generator/parser/rpp/rpp.pri +2 -2
- data/ext/generator/parser/rpp/test/t001.cpp +23 -23
- data/ext/generator/parser/rpp/test/t002.cpp +15 -15
- data/ext/generator/parser/rpp/test/t003.cpp +10 -10
- data/ext/generator/parser/rpp/test/t004.cpp +9 -9
- data/ext/generator/parser/rpp/test/t005.cpp +10 -10
- data/ext/generator/parser/rpp/test/t006.cpp +10 -10
- data/ext/generator/parser/rpp/test/t007.cpp +6 -6
- data/ext/generator/parser/rpp/test/t008.cpp +6 -6
- data/ext/generator/parser/rpp/test/t009.cpp +5 -5
- data/ext/generator/parser/rpp/test/t010.cpp +15 -15
- data/ext/generator/parser/rpp/test/t011.cpp +9 -9
- data/ext/generator/parser/rpp/tests/CMakeLists.txt +17 -17
- data/ext/generator/parser/rpp/tests/main.cpp +69 -69
- data/ext/generator/parser/rxx.pri +50 -50
- data/ext/generator/parser/rxx_allocator.h +128 -128
- data/ext/generator/parser/safetycounter.h +57 -57
- data/ext/generator/parser/simplecursor.h +74 -74
- data/ext/generator/parser/stringhelpers.cpp +577 -577
- data/ext/generator/parser/stringhelpers.h +118 -118
- data/ext/generator/parser/symbol.h +140 -140
- data/ext/generator/parser/tests/CMakeLists.txt +46 -46
- data/ext/generator/parser/tests/test_generator.cpp +259 -259
- data/ext/generator/parser/tests/test_parser.cpp +474 -474
- data/ext/generator/parser/tests/test_pool.cpp +109 -109
- data/ext/generator/parser/tests/test_pool.h +35 -35
- data/ext/generator/parser/tests/testconfig.h.cmake +4 -4
- data/ext/generator/parser/tokens.cpp +367 -367
- data/ext/generator/parser/tokens.h +148 -148
- data/ext/generator/parser/type_compiler.cpp +135 -135
- data/ext/generator/parser/type_compiler.h +68 -68
- data/ext/generator/parser/visitor.cpp +115 -115
- data/ext/generator/parser/visitor.h +138 -138
- data/ext/generator/smoke.h +557 -557
- data/ext/generator/smokegen_string.h +43 -43
- data/ext/generator/type.cpp +204 -204
- data/ext/generator/type.h +497 -497
- data/ext/generator/type_compiler.cpp +277 -277
- data/ext/generator/type_compiler.h +80 -80
- data/ext/ruby/CMakeLists.txt +64 -64
- data/ext/ruby/qtdeclarative/CMakeLists.txt +17 -17
- data/ext/ruby/qtdeclarative/qtdeclarative.cpp +67 -67
- data/ext/ruby/qtdeclarative/qtdeclarative.rb +17 -17
- data/ext/ruby/qtdeclarative/qtdeclarativehandlers.cpp +36 -36
- data/ext/ruby/qtruby/AUTHORS +54 -54
- data/ext/ruby/qtruby/COPYING +355 -355
- data/ext/ruby/qtruby/COPYING.LIB +510 -510
- data/ext/ruby/qtruby/ChangeLog +3732 -3732
- data/ext/ruby/qtruby/INSTALL +79 -79
- data/ext/ruby/qtruby/README +264 -264
- data/ext/ruby/qtruby/TODO +8 -8
- data/ext/ruby/qtruby/bin/rbqtapi +152 -152
- data/ext/ruby/qtruby/rails_support/CMakeLists.txt +1 -1
- data/ext/ruby/qtruby/rails_support/active_item_model.rb +234 -234
- data/ext/ruby/qtruby/rails_support/active_table_model.rb +122 -122
- data/ext/ruby/qtruby/src/marshall_basetypes.h +208 -208
- data/ext/ruby/qtruby/src/marshall_complex.h +175 -175
- data/ext/ruby/qtruby/src/marshall_macros.h +647 -647
- data/ext/ruby/qtruby/src/marshall_types.cpp +815 -815
- data/ext/ruby/qtruby/src/marshall_types.h +240 -240
- data/ext/ruby/qtruby/src/qtruby.cpp +1 -1
- data/ext/ruby/qtruby/test/opoverloading.rb +46 -46
- data/ext/ruby/qtruby/test/unittests.rb +151 -151
- data/ext/ruby/qtruby/tools/rbrcc/main.cpp +173 -173
- data/ext/ruby/qtruby/tools/rbrcc/rbrcc.pro +14 -14
- data/ext/ruby/qtruby/tools/rbrcc/rcc.cpp +648 -648
- data/ext/ruby/qtruby/tools/rbrcc/rcc.h +165 -165
- data/ext/ruby/qtruby/tools/rbuic/LICENSE.GPL +280 -280
- data/ext/ruby/qtruby/tools/rbuic/TODO +4 -4
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.cpp +106 -106
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.h +95 -95
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.cpp +102 -102
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.h +85 -85
- data/ext/ruby/qtruby/tools/rbuic/driver.cpp +384 -384
- data/ext/ruby/qtruby/tools/rbuic/driver.h +141 -141
- data/ext/ruby/qtruby/tools/rbuic/rbuic.pri +23 -23
- data/ext/ruby/qtruby/tools/rbuic/rbuic4.pro +43 -43
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.cpp +150 -150
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.h +83 -83
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.cpp +217 -217
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.h +85 -85
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.cpp +185 -185
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.h +86 -86
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.cpp +88 -88
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.h +83 -83
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.cpp +126 -126
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.h +87 -87
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.cpp +2478 -2478
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.h +314 -314
- data/ext/ruby/qtruby/tools/rbuic/ruby/ruby.pri +18 -18
- data/ext/ruby/qtruby/tools/rbuic/treewalker.cpp +318 -318
- data/ext/ruby/qtruby/tools/rbuic/treewalker.h +139 -139
- data/ext/ruby/qtruby/tools/rbuic/ui4.cpp +7623 -7623
- data/ext/ruby/qtruby/tools/rbuic/ui4.h +3180 -3180
- data/ext/ruby/qtruby/tools/rbuic/utils.h +125 -125
- data/ext/ruby/qtruby/tools/rbuic/validator.cpp +100 -100
- data/ext/ruby/qtruby/tools/rbuic/validator.h +80 -80
- data/ext/ruby/qtscript/CMakeLists.txt +19 -19
- data/ext/ruby/qtscript/qtscript.cpp +83 -83
- data/ext/ruby/qtscript/qtscript.rb +40 -40
- data/ext/ruby/qtscript/qtscripthandlers.cpp +37 -37
- data/ext/ruby/qtscript/smokedata.cpp +1403 -1403
- data/ext/ruby/qttest/CMakeLists.txt +18 -18
- data/ext/ruby/qttest/ChangeLog +9 -9
- data/ext/ruby/qttest/examples/myfirsttest.rb +30 -30
- data/ext/ruby/qttest/qttest.cpp +83 -83
- data/ext/ruby/qttest/qttest.rb +166 -166
- data/ext/ruby/qttest/qttesthandlers.cpp +37 -37
- data/ext/ruby/qtuitools/CMakeLists.txt +16 -16
- data/ext/ruby/qtuitools/qtuitools.cpp +83 -83
- data/ext/ruby/qtuitools/qtuitools.rb +17 -17
- data/ext/ruby/qtuitools/qtuitoolshandlers.cpp +32 -32
- data/ext/ruby/qtwebkit/CMakeLists.txt +17 -17
- data/ext/ruby/qtwebkit/qtwebkit.cpp +67 -67
- data/ext/ruby/qtwebkit/qtwebkit.rb +17 -17
- data/ext/ruby/qtwebkit/qtwebkithandlers.cpp +40 -40
- data/ext/smoke/deptool/CMakeLists.txt +7 -7
- data/ext/smoke/deptool/main.cpp +128 -128
- data/ext/smoke/qtcore/CMakeLists.txt +88 -88
- data/ext/smoke/qtcore/QtGuess.txt +180 -180
- data/ext/smoke/qtcore/config.xml.cmake +10 -10
- data/ext/smoke/qtcore/qt-config.xml.cmake +21 -21
- data/ext/smoke/qtcore/qtcore_includes.h +1 -1
- data/ext/smoke/qtcore/smokeconfig.xml +193 -193
- data/ext/smoke/qtcore/tests/CMakeLists.txt +13 -13
- data/ext/smoke/qtcore/tests/test.cpp +846 -846
- data/ext/smoke/qtcore_smoke.h +16 -16
- data/ext/smoke/qtdbus/CMakeLists.txt +38 -38
- data/ext/smoke/qtdbus/config.xml.cmake +11 -11
- data/ext/smoke/qtdbus/qtdbus_includes.h +2 -2
- data/ext/smoke/qtdbus/smokeconfig.xml +65 -65
- data/ext/smoke/qtdbus_smoke.h +16 -16
- data/ext/smoke/qtdeclarative/CMakeLists.txt +45 -45
- data/ext/smoke/qtdeclarative/config.xml.cmake +12 -12
- data/ext/smoke/qtdeclarative/qtdeclarative_includes.h +3 -3
- data/ext/smoke/qtdeclarative/smokeconfig.xml +59 -59
- data/ext/smoke/qtdeclarative_smoke.h +16 -16
- data/ext/smoke/qtgui/CMakeLists.txt +76 -76
- data/ext/smoke/qtgui/config.xml.cmake +11 -11
- data/ext/smoke/qtgui/qtgui_includes.h +7 -7
- data/ext/smoke/qtgui/smokeconfig.xml +500 -500
- data/ext/smoke/qtgui_smoke.h +16 -16
- data/ext/smoke/qthelp/CMakeLists.txt +45 -45
- data/ext/smoke/qthelp/config.xml.cmake +13 -13
- data/ext/smoke/qthelp/qthelp_includes.h +3 -3
- data/ext/smoke/qthelp/smokeconfig.xml +54 -54
- data/ext/smoke/qthelp_smoke.h +16 -16
- data/ext/smoke/qtmultimedia/CMakeLists.txt +42 -42
- data/ext/smoke/qtmultimedia/config.xml.cmake +12 -12
- data/ext/smoke/qtmultimedia/qtmultimedia_includes.h +3 -3
- data/ext/smoke/qtmultimedia/smokeconfig.xml +51 -51
- data/ext/smoke/qtmultimedia_smoke.h +16 -16
- data/ext/smoke/qtnetwork/CMakeLists.txt +38 -38
- data/ext/smoke/qtnetwork/config.xml.cmake +11 -11
- data/ext/smoke/qtnetwork/qtnetwork_includes.h +2 -2
- data/ext/smoke/qtnetwork/smokeconfig.xml +81 -81
- data/ext/smoke/qtnetwork_smoke.h +16 -16
- data/ext/smoke/qtopengl/CMakeLists.txt +43 -43
- data/ext/smoke/qtopengl/config.xml.cmake +13 -13
- data/ext/smoke/qtopengl/qtopengl_includes.h +3 -3
- data/ext/smoke/qtopengl/smokeconfig.xml +58 -58
- data/ext/smoke/qtopengl_smoke.h +16 -16
- data/ext/smoke/qtscript/CMakeLists.txt +31 -31
- data/ext/smoke/qtscript/config.xml.cmake +11 -11
- data/ext/smoke/qtscript/qtscript_includes.h +14 -14
- data/ext/smoke/qtscript/smokeconfig.xml +39 -39
- data/ext/smoke/qtscript_smoke.h +16 -16
- data/ext/smoke/qtsql/CMakeLists.txt +45 -45
- data/ext/smoke/qtsql/config.xml.cmake +11 -11
- data/ext/smoke/qtsql/qtsql_includes.h +3 -3
- data/ext/smoke/qtsql/smokeconfig.xml +60 -60
- data/ext/smoke/qtsql_smoke.h +16 -16
- data/ext/smoke/qtsvg/CMakeLists.txt +43 -43
- data/ext/smoke/qtsvg/config.xml.cmake +12 -12
- data/ext/smoke/qtsvg/qtsvg_includes.h +3 -3
- data/ext/smoke/qtsvg/smokeconfig.xml +46 -46
- data/ext/smoke/qtsvg_smoke.h +16 -16
- data/ext/smoke/qttest/CMakeLists.txt +35 -35
- data/ext/smoke/qttest/config.xml.cmake +12 -12
- data/ext/smoke/qttest/qttest_includes.h +14 -14
- data/ext/smoke/qttest/smokeconfig.xml +36 -36
- data/ext/smoke/qttest_smoke.h +16 -16
- data/ext/smoke/qtuitools/CMakeLists.txt +30 -30
- data/ext/smoke/qtuitools/config.xml.cmake +12 -12
- data/ext/smoke/qtuitools/qtuitools_includes.h +1 -1
- data/ext/smoke/qtuitools/smokeconfig.xml +20 -20
- data/ext/smoke/qtuitools_smoke.h +16 -16
- data/ext/smoke/qtwebkit/CMakeLists.txt +36 -36
- data/ext/smoke/qtwebkit/config.xml.cmake +11 -11
- data/ext/smoke/qtwebkit/qtwebkit_includes.h +1 -1
- data/ext/smoke/qtwebkit/smokeconfig.xml +48 -48
- data/ext/smoke/qtwebkit_smoke.h +16 -16
- data/ext/smoke/qtxml/CMakeLists.txt +41 -41
- data/ext/smoke/qtxml/config.xml.cmake +11 -11
- data/ext/smoke/qtxml/qtxml_includes.h +2 -2
- data/ext/smoke/qtxml/smokeconfig.xml +70 -70
- data/ext/smoke/qtxml_smoke.h +16 -16
- data/ext/smoke/qtxmlpatterns/CMakeLists.txt +42 -42
- data/ext/smoke/qtxmlpatterns/config.xml.cmake +12 -12
- data/ext/smoke/qtxmlpatterns/qtxmlpatterns_includes.h +3 -3
- data/ext/smoke/qtxmlpatterns/smokeconfig.xml +80 -80
- data/ext/smoke/qtxmlpatterns_smoke.h +16 -16
- data/ext/smoke/smokeapi/CMakeLists.txt +9 -9
- data/ext/smoke/smokeapi/main.cpp +309 -309
- data/ext/smoke/smokebase/CMakeLists.txt +11 -11
- data/ext/smoke/smokebase/smokebase.cpp +6 -6
- data/ext/smoke/solid_smoke.h +16 -16
- data/lib/Qt.rb +1 -1
- data/lib/Qt4.rb +119 -111
- data/lib/qtbindings_version.rb +2 -2
- data/lib/qtdeclarative/qtdeclarative.rb +17 -17
- data/lib/qtscript/qtscript.rb +40 -40
- data/lib/qttest/qttest.rb +166 -166
- data/lib/qtuitools/qtuitools.rb +17 -17
- data/lib/qtwebkit/qtwebkit.rb +17 -17
- metadata +6 -7
data/ext/ruby/qtruby/INSTALL
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
Dependencies
|
|
2
|
-
------------
|
|
3
|
-
|
|
4
|
-
- ruby 1.8 or greater
|
|
5
|
-
- cmake 2.4.6 or greater
|
|
6
|
-
- Qt 4.0 or greater
|
|
7
|
-
|
|
8
|
-
Configure flags needed
|
|
9
|
-
----------------------
|
|
10
|
-
|
|
11
|
-
In order to build just qtruby:
|
|
12
|
-
|
|
13
|
-
Copy the CMakeLists.txt.qtruby file to QCMakeLists.txt, and follow the
|
|
14
|
-
instructions in the file.
|
|
15
|
-
|
|
16
|
-
Optionally give cmake and install prefix like this:
|
|
17
|
-
cmake -DCMAKE_INSTALL_PREFIX=/opt/kde4
|
|
18
|
-
|
|
19
|
-
Then type 'make'
|
|
20
|
-
|
|
21
|
-
Building on Mac OS X
|
|
22
|
-
--------------------
|
|
23
|
-
|
|
24
|
-
Ryutaro Amano wrote this about creating a double clickable bundle:
|
|
25
|
-
|
|
26
|
-
"Thanks all, I have succeeded make rubyw.
|
|
27
|
-
sample script is launched in foreground.
|
|
28
|
-
And I have known the following steps to launch qt-ruby script by double clicking
|
|
29
|
-
from Finder.
|
|
30
|
-
|
|
31
|
-
As an example, I take qtruby-1.0.11/qtruby/rubylib/tutorial/t14
|
|
32
|
-
|
|
33
|
-
cd qtruby-1.0.11/qtruby/rubylib/tutorial/t14
|
|
34
|
-
chmod 755 t14.rb
|
|
35
|
-
replace first line of t14.rb with "#!/usr/local/bin/rubyw"
|
|
36
|
-
mkdir -p Shoot.app/Contents/MacOS
|
|
37
|
-
mv t14.rb Shoot.app/Contents/MacOS/Shoot
|
|
38
|
-
cp {cannon.rb,gamebrd.rb,lcdrange.rb} Shoot.app/Contents/MacOS
|
|
39
|
-
cp Info.plist Shoot.app/Contents
|
|
40
|
-
|
|
41
|
-
Info.plist is
|
|
42
|
-
|
|
43
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
44
|
-
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
|
|
45
|
-
<plist version="0.9">
|
|
46
|
-
<dict>
|
|
47
|
-
<key>CFBundleExecutable</key>
|
|
48
|
-
<string>Shoot</string>
|
|
49
|
-
<key>CFBundleIdentifier</key>
|
|
50
|
-
<string>jp.co.ryutaro.qtquit</string>
|
|
51
|
-
<key>CFBundlePackageType</key>
|
|
52
|
-
<string>APPL</string>
|
|
53
|
-
<key>CFBundleSignature</key>
|
|
54
|
-
<string>????</string>
|
|
55
|
-
</dict>
|
|
56
|
-
</plist>
|
|
57
|
-
|
|
58
|
-
echo -n "APPL????" > Shoot.app/Contents/PkgInfo
|
|
59
|
-
|
|
60
|
-
Double click Shoot.app, Qt-Window appears in foreground."
|
|
61
|
-
|
|
62
|
-
QScintilla text editing widget support
|
|
63
|
-
--------------------------------------
|
|
64
|
-
|
|
65
|
-
QScintilla is a text editing widget with syntax highlighting for a
|
|
66
|
-
number of languages including ruby. It can be downloaded from here:
|
|
67
|
-
|
|
68
|
-
http://www.riverbankcomputing.co.uk/qscintilla/download.php
|
|
69
|
-
|
|
70
|
-
If the scintilla library is found by the cmake configuration, QtRuby will be
|
|
71
|
-
built with QScintilla support. The classes in a 'Qext::' module, with names such as
|
|
72
|
-
Qext::Scintilla.
|
|
73
|
-
|
|
74
|
-
Qwt scientific plotting library support
|
|
75
|
-
---------------------------------------
|
|
76
|
-
|
|
77
|
-
If the Qwt library is found by the cmake configuration, QtRuby will be
|
|
78
|
-
built with Qwt support. The classes in a 'Qwt::' module, with names such as
|
|
79
|
-
Qext::Plot.
|
|
1
|
+
Dependencies
|
|
2
|
+
------------
|
|
3
|
+
|
|
4
|
+
- ruby 1.8 or greater
|
|
5
|
+
- cmake 2.4.6 or greater
|
|
6
|
+
- Qt 4.0 or greater
|
|
7
|
+
|
|
8
|
+
Configure flags needed
|
|
9
|
+
----------------------
|
|
10
|
+
|
|
11
|
+
In order to build just qtruby:
|
|
12
|
+
|
|
13
|
+
Copy the CMakeLists.txt.qtruby file to QCMakeLists.txt, and follow the
|
|
14
|
+
instructions in the file.
|
|
15
|
+
|
|
16
|
+
Optionally give cmake and install prefix like this:
|
|
17
|
+
cmake -DCMAKE_INSTALL_PREFIX=/opt/kde4
|
|
18
|
+
|
|
19
|
+
Then type 'make'
|
|
20
|
+
|
|
21
|
+
Building on Mac OS X
|
|
22
|
+
--------------------
|
|
23
|
+
|
|
24
|
+
Ryutaro Amano wrote this about creating a double clickable bundle:
|
|
25
|
+
|
|
26
|
+
"Thanks all, I have succeeded make rubyw.
|
|
27
|
+
sample script is launched in foreground.
|
|
28
|
+
And I have known the following steps to launch qt-ruby script by double clicking
|
|
29
|
+
from Finder.
|
|
30
|
+
|
|
31
|
+
As an example, I take qtruby-1.0.11/qtruby/rubylib/tutorial/t14
|
|
32
|
+
|
|
33
|
+
cd qtruby-1.0.11/qtruby/rubylib/tutorial/t14
|
|
34
|
+
chmod 755 t14.rb
|
|
35
|
+
replace first line of t14.rb with "#!/usr/local/bin/rubyw"
|
|
36
|
+
mkdir -p Shoot.app/Contents/MacOS
|
|
37
|
+
mv t14.rb Shoot.app/Contents/MacOS/Shoot
|
|
38
|
+
cp {cannon.rb,gamebrd.rb,lcdrange.rb} Shoot.app/Contents/MacOS
|
|
39
|
+
cp Info.plist Shoot.app/Contents
|
|
40
|
+
|
|
41
|
+
Info.plist is
|
|
42
|
+
|
|
43
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
44
|
+
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
|
|
45
|
+
<plist version="0.9">
|
|
46
|
+
<dict>
|
|
47
|
+
<key>CFBundleExecutable</key>
|
|
48
|
+
<string>Shoot</string>
|
|
49
|
+
<key>CFBundleIdentifier</key>
|
|
50
|
+
<string>jp.co.ryutaro.qtquit</string>
|
|
51
|
+
<key>CFBundlePackageType</key>
|
|
52
|
+
<string>APPL</string>
|
|
53
|
+
<key>CFBundleSignature</key>
|
|
54
|
+
<string>????</string>
|
|
55
|
+
</dict>
|
|
56
|
+
</plist>
|
|
57
|
+
|
|
58
|
+
echo -n "APPL????" > Shoot.app/Contents/PkgInfo
|
|
59
|
+
|
|
60
|
+
Double click Shoot.app, Qt-Window appears in foreground."
|
|
61
|
+
|
|
62
|
+
QScintilla text editing widget support
|
|
63
|
+
--------------------------------------
|
|
64
|
+
|
|
65
|
+
QScintilla is a text editing widget with syntax highlighting for a
|
|
66
|
+
number of languages including ruby. It can be downloaded from here:
|
|
67
|
+
|
|
68
|
+
http://www.riverbankcomputing.co.uk/qscintilla/download.php
|
|
69
|
+
|
|
70
|
+
If the scintilla library is found by the cmake configuration, QtRuby will be
|
|
71
|
+
built with QScintilla support. The classes in a 'Qext::' module, with names such as
|
|
72
|
+
Qext::Scintilla.
|
|
73
|
+
|
|
74
|
+
Qwt scientific plotting library support
|
|
75
|
+
---------------------------------------
|
|
76
|
+
|
|
77
|
+
If the Qwt library is found by the cmake configuration, QtRuby will be
|
|
78
|
+
built with Qwt support. The classes in a 'Qwt::' module, with names such as
|
|
79
|
+
Qext::Plot.
|
data/ext/ruby/qtruby/README
CHANGED
|
@@ -1,264 +1,264 @@
|
|
|
1
|
-
/***************************************************************************
|
|
2
|
-
* (C) 2003-2007 Richard Dale All rights reserved. *
|
|
3
|
-
* *
|
|
4
|
-
* This program is free software; you can redistribute it and/or modify *
|
|
5
|
-
* it under the terms of the GNU General Public License as *
|
|
6
|
-
* published by the Free Software Foundation; either version 2 of the *
|
|
7
|
-
* License, or (at your option) any later version. *
|
|
8
|
-
* *
|
|
9
|
-
***************************************************************************/
|
|
10
|
-
|
|
11
|
-
Here is a Ruby SMOKE adaptor for Qt
|
|
12
|
-
|
|
13
|
-
Why ruby? From the rubytalk list
|
|
14
|
-
|
|
15
|
-
On 8/28/03 8:56 PM, "Scott Thompson" wrote:
|
|
16
|
-
|
|
17
|
-
>> : Can anyone give me a good reason why I would want to use Ruby over
|
|
18
|
-
>> Python?
|
|
19
|
-
>>
|
|
20
|
-
>> Ruby smells better than Python. Also, it has cuter girls.
|
|
21
|
-
>>
|
|
22
|
-
>> Python sometimes tastes better if you prepare it right.
|
|
23
|
-
>
|
|
24
|
-
> I hadn't noticed the odor thing. It does have a faintly floral aroma
|
|
25
|
-
> doesn't it.
|
|
26
|
-
>
|
|
27
|
-
> Of course it is no surprise that you can get more and cuter girls with
|
|
28
|
-
> Rubies than you can with Pythons.
|
|
29
|
-
>
|
|
30
|
-
> Scott
|
|
31
|
-
|
|
32
|
-
So there you have it! :)
|
|
33
|
-
|
|
34
|
-
Here is 'Hello World' in QtRuby:
|
|
35
|
-
|
|
36
|
-
#!/usr/bin/ruby -w
|
|
37
|
-
|
|
38
|
-
require 'Qt'
|
|
39
|
-
|
|
40
|
-
a = Qt::Application.new(ARGV)
|
|
41
|
-
hello = Qt::PushButton.new("Hello World!")
|
|
42
|
-
hello.resize(100, 30)
|
|
43
|
-
hello.show
|
|
44
|
-
a.exec
|
|
45
|
-
|
|
46
|
-
Ruby 1.8 is unfortunately implicitly required as with 1.6.x it is not possible to:
|
|
47
|
-
|
|
48
|
-
Make dynamic constants available (thus forcing syntax such as Qt.RichText rather than Qt::RichText)<br>
|
|
49
|
-
Call super in the initialize method thus making subclassing of non trivial classes impossible
|
|
50
|
-
|
|
51
|
-
QtRuby features a very complete coverage of the Qt api:
|
|
52
|
-
|
|
53
|
-
- You can call all Qt public and protected methods, and all friend methods
|
|
54
|
-
such as bitBlt() etc
|
|
55
|
-
|
|
56
|
-
- Virtual methods
|
|
57
|
-
All virtual methods can be overriden, not just event handlers
|
|
58
|
-
|
|
59
|
-
- Properties
|
|
60
|
-
'fooBar = 5' is a synonym for 'setFooBar(5)'
|
|
61
|
-
|
|
62
|
-
- Predicates
|
|
63
|
-
'if foo?' is a synonym for 'if isFoo()' or 'if hasFoo()'
|
|
64
|
-
|
|
65
|
-
- Use underscore naming for method names instead of camel case if you
|
|
66
|
-
prefer. Any underscores in method names are removed, and the following
|
|
67
|
-
character is capitalised. For example, you can use either of these two
|
|
68
|
-
forms to call the same method:
|
|
69
|
-
|
|
70
|
-
create_standard_status_bar_action()
|
|
71
|
-
|
|
72
|
-
createStandardStatusBarAction()
|
|
73
|
-
|
|
74
|
-
- Operator overloading
|
|
75
|
-
The full range of Qt operator methods is available, for example:
|
|
76
|
-
|
|
77
|
-
p1 = Qt::Point.new(5,5) => (5, 5)
|
|
78
|
-
p2 = Qt::Point.new(20,20) => (20, 20)
|
|
79
|
-
p1 + p2 => (25, 25)
|
|
80
|
-
|
|
81
|
-
- Declare signals and slots
|
|
82
|
-
Signals and slots are declared as list of strings like this:
|
|
83
|
-
|
|
84
|
-
slots 'setColor(QColor)', 'slotLoad(const QString&)'..
|
|
85
|
-
signals 'clicked()'..
|
|
86
|
-
|
|
87
|
-
If the slots or signal have no arguments they can also be declared as
|
|
88
|
-
Symbols:
|
|
89
|
-
|
|
90
|
-
slots :click, :toggle
|
|
91
|
-
signals :clicked
|
|
92
|
-
|
|
93
|
-
Currently C++ type signatures must be used, a future version of QtRuby
|
|
94
|
-
will allow ruby type signatures instead.
|
|
95
|
-
|
|
96
|
-
Connect slots and signals like this:
|
|
97
|
-
|
|
98
|
-
Qt::Object.connect( @_colormenu, SIGNAL( "activated( int )" ),
|
|
99
|
-
self, SLOT( "slotColorMenu( int )" ) )
|
|
100
|
-
|
|
101
|
-
And emit signals like this:
|
|
102
|
-
|
|
103
|
-
emit colorChanged( black )
|
|
104
|
-
|
|
105
|
-
- Constructors
|
|
106
|
-
You can call constructors in the conventional style:
|
|
107
|
-
|
|
108
|
-
quit = Qt::PushButton.new("Quit", self, "quit")
|
|
109
|
-
|
|
110
|
-
Or you can pass a block if you prefer:
|
|
111
|
-
|
|
112
|
-
w = MyWidget.new { setCaption("foobar") }
|
|
113
|
-
|
|
114
|
-
The block will be called in the context of the newly created instance.
|
|
115
|
-
|
|
116
|
-
Ordinary arguments can be provided as well as a block at the end:
|
|
117
|
-
|
|
118
|
-
w = MyWidget.new(nil) { setCaption("foobar") }
|
|
119
|
-
|
|
120
|
-
They are run in the context of the new instance.
|
|
121
|
-
|
|
122
|
-
And there's more! You can also pass an arg to the block, and it will
|
|
123
|
-
be run in the context of the arg:
|
|
124
|
-
|
|
125
|
-
w = MyWidget.new { |theWidget| theWidget.setCaption "foobar" }
|
|
126
|
-
|
|
127
|
-
- Garbage Collection
|
|
128
|
-
When a ruby instance is garbage collected, the underlying C++ instance will only be
|
|
129
|
-
deleted if it isn't 'owned' by a parent object. Normally this will 'just work', but
|
|
130
|
-
there are occasions when you need to delete the C++ ahead of garbage collection, and
|
|
131
|
-
whether or not it has a parent. Use the dispose() and isDisposed() methods like this:
|
|
132
|
-
|
|
133
|
-
item2.dispose
|
|
134
|
-
if item2.isDisposed
|
|
135
|
-
puts "item2 is disposed"
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
- C++ 'int*' and 'int&' argument types
|
|
139
|
-
Ruby passes numeric values by value, and so they can't be changed when passed to a
|
|
140
|
-
method. The Qt::Integer class provides a mutable numeric type which does get updated
|
|
141
|
-
when passed as an argument. For example, this C++ method 'findByFileContent()':
|
|
142
|
-
|
|
143
|
-
# static Ptr findByFileContent( const QString &fileName, int *accuracy=0 );
|
|
144
|
-
|
|
145
|
-
acc = Qt::Integer.new(0)
|
|
146
|
-
fc = KDE::MimeType.findByFileContent("mimetype.rb", acc)
|
|
147
|
-
|
|
148
|
-
It supports the arithmetic operators, and so expressions such as 'acc + 3' will work.
|
|
149
|
-
|
|
150
|
-
- C++ 'bool*' and 'bool&' argument types
|
|
151
|
-
There is a similar problem for bool arg types, and the mutable Qt::Boolean class can be
|
|
152
|
-
used like this:
|
|
153
|
-
|
|
154
|
-
# QFont getFont(bool * ok, const QFont&initial, QWidget* parent = 0, const char *name = 0);
|
|
155
|
-
|
|
156
|
-
ok = Qt::Boolean.new
|
|
157
|
-
font = Qt::FontDialog.getFont(ok, Qt::Font.new("Helvetica [Cronyx]", 10), self)
|
|
158
|
-
if !ok.nil?
|
|
159
|
-
# font is set to the font the user selected
|
|
160
|
-
else
|
|
161
|
-
# the user canceled the dialog
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
Use 'nil?' to test the value returned in the Boolean
|
|
165
|
-
|
|
166
|
-
- Debugging
|
|
167
|
-
If a method call can't be matched in the Smoke library giving a 'method_missing'
|
|
168
|
-
error, you can turn on debugging to trace the matching process:
|
|
169
|
-
|
|
170
|
-
a = Qt::Application.new(ARGV)
|
|
171
|
-
Qt.debug_level = Qt::DebugLevel::High
|
|
172
|
-
a.loadLibrary("foo") # Non existent method
|
|
173
|
-
|
|
174
|
-
Will give the following output:
|
|
175
|
-
|
|
176
|
-
classname == QApplication
|
|
177
|
-
:: method == loadLibrary$
|
|
178
|
-
-> methodIds == []
|
|
179
|
-
candidate list:
|
|
180
|
-
Possible prototypes:
|
|
181
|
-
static QWidget* QApplication::widgetAt(int, int, bool)
|
|
182
|
-
...
|
|
183
|
-
|
|
184
|
-
Here, the list of candidate methods 'methodIds' is empty
|
|
185
|
-
|
|
186
|
-
Another debugging mechanism allows various trace 'channels' to be switched on.
|
|
187
|
-
|
|
188
|
-
You can trace virtual method callbacks:
|
|
189
|
-
Qt::Internal::setDebug(Qt::QtDebugChannel::QTDB_VIRTUAL)
|
|
190
|
-
|
|
191
|
-
Or trace QtRuby garbage collection:
|
|
192
|
-
Qt::Internal::setDebug(Qt::QtDebugChannel::QTDB_GC)
|
|
193
|
-
|
|
194
|
-
- String i18n
|
|
195
|
-
|
|
196
|
-
QtRuby supports $KCODE values of 'u', 'e' and
|
|
197
|
-
's' or the corresponding '-K' options from the command line. Qt Designer
|
|
198
|
-
.ui files have UTF-8 strings so if you use any 8 bit UTF-8 characters, you
|
|
199
|
-
will need to set $KCODE='u' or use the -Ku command line option.
|
|
200
|
-
|
|
201
|
-
- Qt Designer
|
|
202
|
-
A 'rbuic4' tool is included in tools/rbuic to compile
|
|
203
|
-
.ui files into ruby code. As described above, Qt Designer uses UTF-8.
|
|
204
|
-
In addition to the options in the original uic C++ utility an '-x' flag
|
|
205
|
-
has been added. This will generate a top level stub in the code:
|
|
206
|
-
|
|
207
|
-
$ rbuic4 mainwindowbase.ui -x -o mainwindowbase.rb
|
|
208
|
-
|
|
209
|
-
Will add this to the end of the generated code:
|
|
210
|
-
|
|
211
|
-
if $0 == __FILE__
|
|
212
|
-
a = Qt::Application.new(ARGV)
|
|
213
|
-
u = Ui_MainWindowBase.new
|
|
214
|
-
w = Qt::MainWindow.new
|
|
215
|
-
u.setupUi(w)
|
|
216
|
-
w.show
|
|
217
|
-
a.exec
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
Then you can test the example code straight away:
|
|
221
|
-
|
|
222
|
-
$ ruby mainwindowbase.rb
|
|
223
|
-
|
|
224
|
-
- Loading .ui files at runtime with Qt::UiLoader
|
|
225
|
-
You can load a Qt Designer .ui file at runtime with Qt::UiLoader,
|
|
226
|
-
for example:
|
|
227
|
-
|
|
228
|
-
require 'Qt'
|
|
229
|
-
...
|
|
230
|
-
|
|
231
|
-
loader = Qt::UiLoader.new
|
|
232
|
-
|
|
233
|
-
file = Qt::File.new(":/forms/calculatorform.ui")
|
|
234
|
-
file.open(Qt::File::ReadOnly)
|
|
235
|
-
formWidget = loader.load(file, self)
|
|
236
|
-
file.close
|
|
237
|
-
|
|
238
|
-
@ui_inputSpinBox1 = findChild(Qt::SpinBox, "inputSpinBox1")
|
|
239
|
-
@ui_inputSpinBox2 = findChild(Qt::SpinBox, "inputSpinBox2")
|
|
240
|
-
@ui_outputWidget = findChild(Qt::Label, "outputWidget")
|
|
241
|
-
|
|
242
|
-
Qt::MetaObject.connectSlotsByName(self)
|
|
243
|
-
|
|
244
|
-
self.layout = Qt::VBoxLayout.new do |l|
|
|
245
|
-
l.addWidget(formWidget)
|
|
246
|
-
end
|
|
247
|
-
|
|
248
|
-
- API reference
|
|
249
|
-
Use the bin/rbqtapi tool to discover which methods are available in
|
|
250
|
-
the QtRuby api.
|
|
251
|
-
|
|
252
|
-
- Example programs
|
|
253
|
-
The best way to start programming QtRuby is to look at some existing
|
|
254
|
-
code and start messing with it..
|
|
255
|
-
The are various samples under qtruby/examples.
|
|
256
|
-
|
|
257
|
-
- Optional QScintilla text editing widget support
|
|
258
|
-
Great for building your own ruby IDE..
|
|
259
|
-
|
|
260
|
-
- Optional Qwt scientific plotting library support
|
|
261
|
-
|
|
262
|
-
Have Fun!
|
|
263
|
-
|
|
264
|
-
-- Richard
|
|
1
|
+
/***************************************************************************
|
|
2
|
+
* (C) 2003-2007 Richard Dale All rights reserved. *
|
|
3
|
+
* *
|
|
4
|
+
* This program is free software; you can redistribute it and/or modify *
|
|
5
|
+
* it under the terms of the GNU General Public License as *
|
|
6
|
+
* published by the Free Software Foundation; either version 2 of the *
|
|
7
|
+
* License, or (at your option) any later version. *
|
|
8
|
+
* *
|
|
9
|
+
***************************************************************************/
|
|
10
|
+
|
|
11
|
+
Here is a Ruby SMOKE adaptor for Qt
|
|
12
|
+
|
|
13
|
+
Why ruby? From the rubytalk list
|
|
14
|
+
|
|
15
|
+
On 8/28/03 8:56 PM, "Scott Thompson" wrote:
|
|
16
|
+
|
|
17
|
+
>> : Can anyone give me a good reason why I would want to use Ruby over
|
|
18
|
+
>> Python?
|
|
19
|
+
>>
|
|
20
|
+
>> Ruby smells better than Python. Also, it has cuter girls.
|
|
21
|
+
>>
|
|
22
|
+
>> Python sometimes tastes better if you prepare it right.
|
|
23
|
+
>
|
|
24
|
+
> I hadn't noticed the odor thing. It does have a faintly floral aroma
|
|
25
|
+
> doesn't it.
|
|
26
|
+
>
|
|
27
|
+
> Of course it is no surprise that you can get more and cuter girls with
|
|
28
|
+
> Rubies than you can with Pythons.
|
|
29
|
+
>
|
|
30
|
+
> Scott
|
|
31
|
+
|
|
32
|
+
So there you have it! :)
|
|
33
|
+
|
|
34
|
+
Here is 'Hello World' in QtRuby:
|
|
35
|
+
|
|
36
|
+
#!/usr/bin/ruby -w
|
|
37
|
+
|
|
38
|
+
require 'Qt'
|
|
39
|
+
|
|
40
|
+
a = Qt::Application.new(ARGV)
|
|
41
|
+
hello = Qt::PushButton.new("Hello World!")
|
|
42
|
+
hello.resize(100, 30)
|
|
43
|
+
hello.show
|
|
44
|
+
a.exec
|
|
45
|
+
|
|
46
|
+
Ruby 1.8 is unfortunately implicitly required as with 1.6.x it is not possible to:
|
|
47
|
+
|
|
48
|
+
Make dynamic constants available (thus forcing syntax such as Qt.RichText rather than Qt::RichText)<br>
|
|
49
|
+
Call super in the initialize method thus making subclassing of non trivial classes impossible
|
|
50
|
+
|
|
51
|
+
QtRuby features a very complete coverage of the Qt api:
|
|
52
|
+
|
|
53
|
+
- You can call all Qt public and protected methods, and all friend methods
|
|
54
|
+
such as bitBlt() etc
|
|
55
|
+
|
|
56
|
+
- Virtual methods
|
|
57
|
+
All virtual methods can be overriden, not just event handlers
|
|
58
|
+
|
|
59
|
+
- Properties
|
|
60
|
+
'fooBar = 5' is a synonym for 'setFooBar(5)'
|
|
61
|
+
|
|
62
|
+
- Predicates
|
|
63
|
+
'if foo?' is a synonym for 'if isFoo()' or 'if hasFoo()'
|
|
64
|
+
|
|
65
|
+
- Use underscore naming for method names instead of camel case if you
|
|
66
|
+
prefer. Any underscores in method names are removed, and the following
|
|
67
|
+
character is capitalised. For example, you can use either of these two
|
|
68
|
+
forms to call the same method:
|
|
69
|
+
|
|
70
|
+
create_standard_status_bar_action()
|
|
71
|
+
|
|
72
|
+
createStandardStatusBarAction()
|
|
73
|
+
|
|
74
|
+
- Operator overloading
|
|
75
|
+
The full range of Qt operator methods is available, for example:
|
|
76
|
+
|
|
77
|
+
p1 = Qt::Point.new(5,5) => (5, 5)
|
|
78
|
+
p2 = Qt::Point.new(20,20) => (20, 20)
|
|
79
|
+
p1 + p2 => (25, 25)
|
|
80
|
+
|
|
81
|
+
- Declare signals and slots
|
|
82
|
+
Signals and slots are declared as list of strings like this:
|
|
83
|
+
|
|
84
|
+
slots 'setColor(QColor)', 'slotLoad(const QString&)'..
|
|
85
|
+
signals 'clicked()'..
|
|
86
|
+
|
|
87
|
+
If the slots or signal have no arguments they can also be declared as
|
|
88
|
+
Symbols:
|
|
89
|
+
|
|
90
|
+
slots :click, :toggle
|
|
91
|
+
signals :clicked
|
|
92
|
+
|
|
93
|
+
Currently C++ type signatures must be used, a future version of QtRuby
|
|
94
|
+
will allow ruby type signatures instead.
|
|
95
|
+
|
|
96
|
+
Connect slots and signals like this:
|
|
97
|
+
|
|
98
|
+
Qt::Object.connect( @_colormenu, SIGNAL( "activated( int )" ),
|
|
99
|
+
self, SLOT( "slotColorMenu( int )" ) )
|
|
100
|
+
|
|
101
|
+
And emit signals like this:
|
|
102
|
+
|
|
103
|
+
emit colorChanged( black )
|
|
104
|
+
|
|
105
|
+
- Constructors
|
|
106
|
+
You can call constructors in the conventional style:
|
|
107
|
+
|
|
108
|
+
quit = Qt::PushButton.new("Quit", self, "quit")
|
|
109
|
+
|
|
110
|
+
Or you can pass a block if you prefer:
|
|
111
|
+
|
|
112
|
+
w = MyWidget.new { setCaption("foobar") }
|
|
113
|
+
|
|
114
|
+
The block will be called in the context of the newly created instance.
|
|
115
|
+
|
|
116
|
+
Ordinary arguments can be provided as well as a block at the end:
|
|
117
|
+
|
|
118
|
+
w = MyWidget.new(nil) { setCaption("foobar") }
|
|
119
|
+
|
|
120
|
+
They are run in the context of the new instance.
|
|
121
|
+
|
|
122
|
+
And there's more! You can also pass an arg to the block, and it will
|
|
123
|
+
be run in the context of the arg:
|
|
124
|
+
|
|
125
|
+
w = MyWidget.new { |theWidget| theWidget.setCaption "foobar" }
|
|
126
|
+
|
|
127
|
+
- Garbage Collection
|
|
128
|
+
When a ruby instance is garbage collected, the underlying C++ instance will only be
|
|
129
|
+
deleted if it isn't 'owned' by a parent object. Normally this will 'just work', but
|
|
130
|
+
there are occasions when you need to delete the C++ ahead of garbage collection, and
|
|
131
|
+
whether or not it has a parent. Use the dispose() and isDisposed() methods like this:
|
|
132
|
+
|
|
133
|
+
item2.dispose
|
|
134
|
+
if item2.isDisposed
|
|
135
|
+
puts "item2 is disposed"
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
- C++ 'int*' and 'int&' argument types
|
|
139
|
+
Ruby passes numeric values by value, and so they can't be changed when passed to a
|
|
140
|
+
method. The Qt::Integer class provides a mutable numeric type which does get updated
|
|
141
|
+
when passed as an argument. For example, this C++ method 'findByFileContent()':
|
|
142
|
+
|
|
143
|
+
# static Ptr findByFileContent( const QString &fileName, int *accuracy=0 );
|
|
144
|
+
|
|
145
|
+
acc = Qt::Integer.new(0)
|
|
146
|
+
fc = KDE::MimeType.findByFileContent("mimetype.rb", acc)
|
|
147
|
+
|
|
148
|
+
It supports the arithmetic operators, and so expressions such as 'acc + 3' will work.
|
|
149
|
+
|
|
150
|
+
- C++ 'bool*' and 'bool&' argument types
|
|
151
|
+
There is a similar problem for bool arg types, and the mutable Qt::Boolean class can be
|
|
152
|
+
used like this:
|
|
153
|
+
|
|
154
|
+
# QFont getFont(bool * ok, const QFont&initial, QWidget* parent = 0, const char *name = 0);
|
|
155
|
+
|
|
156
|
+
ok = Qt::Boolean.new
|
|
157
|
+
font = Qt::FontDialog.getFont(ok, Qt::Font.new("Helvetica [Cronyx]", 10), self)
|
|
158
|
+
if !ok.nil?
|
|
159
|
+
# font is set to the font the user selected
|
|
160
|
+
else
|
|
161
|
+
# the user canceled the dialog
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
Use 'nil?' to test the value returned in the Boolean
|
|
165
|
+
|
|
166
|
+
- Debugging
|
|
167
|
+
If a method call can't be matched in the Smoke library giving a 'method_missing'
|
|
168
|
+
error, you can turn on debugging to trace the matching process:
|
|
169
|
+
|
|
170
|
+
a = Qt::Application.new(ARGV)
|
|
171
|
+
Qt.debug_level = Qt::DebugLevel::High
|
|
172
|
+
a.loadLibrary("foo") # Non existent method
|
|
173
|
+
|
|
174
|
+
Will give the following output:
|
|
175
|
+
|
|
176
|
+
classname == QApplication
|
|
177
|
+
:: method == loadLibrary$
|
|
178
|
+
-> methodIds == []
|
|
179
|
+
candidate list:
|
|
180
|
+
Possible prototypes:
|
|
181
|
+
static QWidget* QApplication::widgetAt(int, int, bool)
|
|
182
|
+
...
|
|
183
|
+
|
|
184
|
+
Here, the list of candidate methods 'methodIds' is empty
|
|
185
|
+
|
|
186
|
+
Another debugging mechanism allows various trace 'channels' to be switched on.
|
|
187
|
+
|
|
188
|
+
You can trace virtual method callbacks:
|
|
189
|
+
Qt::Internal::setDebug(Qt::QtDebugChannel::QTDB_VIRTUAL)
|
|
190
|
+
|
|
191
|
+
Or trace QtRuby garbage collection:
|
|
192
|
+
Qt::Internal::setDebug(Qt::QtDebugChannel::QTDB_GC)
|
|
193
|
+
|
|
194
|
+
- String i18n
|
|
195
|
+
|
|
196
|
+
QtRuby supports $KCODE values of 'u', 'e' and
|
|
197
|
+
's' or the corresponding '-K' options from the command line. Qt Designer
|
|
198
|
+
.ui files have UTF-8 strings so if you use any 8 bit UTF-8 characters, you
|
|
199
|
+
will need to set $KCODE='u' or use the -Ku command line option.
|
|
200
|
+
|
|
201
|
+
- Qt Designer
|
|
202
|
+
A 'rbuic4' tool is included in tools/rbuic to compile
|
|
203
|
+
.ui files into ruby code. As described above, Qt Designer uses UTF-8.
|
|
204
|
+
In addition to the options in the original uic C++ utility an '-x' flag
|
|
205
|
+
has been added. This will generate a top level stub in the code:
|
|
206
|
+
|
|
207
|
+
$ rbuic4 mainwindowbase.ui -x -o mainwindowbase.rb
|
|
208
|
+
|
|
209
|
+
Will add this to the end of the generated code:
|
|
210
|
+
|
|
211
|
+
if $0 == __FILE__
|
|
212
|
+
a = Qt::Application.new(ARGV)
|
|
213
|
+
u = Ui_MainWindowBase.new
|
|
214
|
+
w = Qt::MainWindow.new
|
|
215
|
+
u.setupUi(w)
|
|
216
|
+
w.show
|
|
217
|
+
a.exec
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
Then you can test the example code straight away:
|
|
221
|
+
|
|
222
|
+
$ ruby mainwindowbase.rb
|
|
223
|
+
|
|
224
|
+
- Loading .ui files at runtime with Qt::UiLoader
|
|
225
|
+
You can load a Qt Designer .ui file at runtime with Qt::UiLoader,
|
|
226
|
+
for example:
|
|
227
|
+
|
|
228
|
+
require 'Qt'
|
|
229
|
+
...
|
|
230
|
+
|
|
231
|
+
loader = Qt::UiLoader.new
|
|
232
|
+
|
|
233
|
+
file = Qt::File.new(":/forms/calculatorform.ui")
|
|
234
|
+
file.open(Qt::File::ReadOnly)
|
|
235
|
+
formWidget = loader.load(file, self)
|
|
236
|
+
file.close
|
|
237
|
+
|
|
238
|
+
@ui_inputSpinBox1 = findChild(Qt::SpinBox, "inputSpinBox1")
|
|
239
|
+
@ui_inputSpinBox2 = findChild(Qt::SpinBox, "inputSpinBox2")
|
|
240
|
+
@ui_outputWidget = findChild(Qt::Label, "outputWidget")
|
|
241
|
+
|
|
242
|
+
Qt::MetaObject.connectSlotsByName(self)
|
|
243
|
+
|
|
244
|
+
self.layout = Qt::VBoxLayout.new do |l|
|
|
245
|
+
l.addWidget(formWidget)
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
- API reference
|
|
249
|
+
Use the bin/rbqtapi tool to discover which methods are available in
|
|
250
|
+
the QtRuby api.
|
|
251
|
+
|
|
252
|
+
- Example programs
|
|
253
|
+
The best way to start programming QtRuby is to look at some existing
|
|
254
|
+
code and start messing with it..
|
|
255
|
+
The are various samples under qtruby/examples.
|
|
256
|
+
|
|
257
|
+
- Optional QScintilla text editing widget support
|
|
258
|
+
Great for building your own ruby IDE..
|
|
259
|
+
|
|
260
|
+
- Optional Qwt scientific plotting library support
|
|
261
|
+
|
|
262
|
+
Have Fun!
|
|
263
|
+
|
|
264
|
+
-- Richard
|