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.
- checksums.yaml +7 -0
- data/CHANGELOG.txt +48 -0
- data/COPYING.LIB.txt +510 -0
- data/COPYING.txt +286 -0
- data/KNOWN_ISSUES.txt +17 -0
- data/Rakefile +121 -0
- data/TODO.txt +2 -0
- data/bin/2.0/rbrcc.exe +0 -0
- data/bin/2.0/rbuic4.exe +0 -0
- data/bin/2.0/smokeapi.exe +0 -0
- data/bin/2.0/smokedeptool.exe +0 -0
- data/bin/2.1/rbrcc.exe +0 -0
- data/bin/2.1/rbuic4.exe +0 -0
- data/bin/2.1/smokeapi.exe +0 -0
- data/bin/2.1/smokedeptool.exe +0 -0
- data/bin/2.2/rbrcc.exe +0 -0
- data/bin/2.2/rbuic4.exe +0 -0
- data/bin/2.2/smokeapi.exe +0 -0
- data/bin/2.2/smokedeptool.exe +0 -0
- data/bin/rbqtapi +152 -0
- data/bin/rbrcc +14 -0
- data/bin/rbuic4 +14 -0
- data/bin/smokeapi +14 -0
- data/bin/smokedeptool +14 -0
- data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
- data/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
- data/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
- data/examples/designer/calculatorbuilder/main.rb +34 -0
- data/examples/designer/calculatorbuilder/makefile +2 -0
- data/examples/designer/calculatorform/calculatorform.rb +46 -0
- data/examples/designer/calculatorform/calculatorform.ui +277 -0
- data/examples/designer/calculatorform/main.rb +32 -0
- data/examples/designer/calculatorform/makefile +3 -0
- data/examples/desktop/screenshot/main.rb +32 -0
- data/examples/desktop/screenshot/screenshot.rb +157 -0
- data/examples/desktop/systray/images/bad.svg +64 -0
- data/examples/desktop/systray/images/heart.svg +55 -0
- data/examples/desktop/systray/images/trash.svg +58 -0
- data/examples/desktop/systray/main.rb +41 -0
- data/examples/desktop/systray/makefile +2 -0
- data/examples/desktop/systray/systray.qrc +7 -0
- data/examples/desktop/systray/window.rb +219 -0
- data/examples/dialogs/complexwizard/complexwizard.rb +140 -0
- data/examples/dialogs/complexwizard/licensewizard.rb +294 -0
- data/examples/dialogs/complexwizard/main.rb +31 -0
- data/examples/dialogs/configdialog/configdialog.rb +109 -0
- data/examples/dialogs/configdialog/images/config.png +0 -0
- data/examples/dialogs/configdialog/images/query.png +0 -0
- data/examples/dialogs/configdialog/images/update.png +0 -0
- data/examples/dialogs/configdialog/main.rb +31 -0
- data/examples/dialogs/configdialog/pages.rb +140 -0
- data/examples/dialogs/extension/finddialog.rb +89 -0
- data/examples/dialogs/extension/main.rb +31 -0
- data/examples/dialogs/findfiles/main.rb +32 -0
- data/examples/dialogs/findfiles/window.rb +177 -0
- data/examples/dialogs/simplewizard/classwizard.rb +374 -0
- data/examples/dialogs/simplewizard/main.rb +31 -0
- data/examples/dialogs/simplewizard/simplewizard.rb +110 -0
- data/examples/dialogs/standarddialogs/dialog.rb +340 -0
- data/examples/dialogs/standarddialogs/main.rb +31 -0
- data/examples/dialogs/tabdialog/main.rb +38 -0
- data/examples/dialogs/tabdialog/tabdialog.rb +178 -0
- data/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
- data/examples/draganddrop/draggableicons/images/boat.png +0 -0
- data/examples/draganddrop/draggableicons/images/car.png +0 -0
- data/examples/draganddrop/draggableicons/images/house.png +0 -0
- data/examples/draganddrop/draggableicons/main.rb +41 -0
- data/examples/draganddrop/draggabletext/draglabel.rb +51 -0
- data/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
- data/examples/draganddrop/draggabletext/main.rb +33 -0
- data/examples/draganddrop/draggabletext/words.txt +41 -0
- data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -0
- data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
- data/examples/draganddrop/dropsite/main.rb +33 -0
- data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
- data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
- data/examples/draganddrop/fridgemagnets/main.rb +33 -0
- data/examples/draganddrop/fridgemagnets/words.txt +48 -0
- data/examples/draganddrop/puzzle/example.jpg +0 -0
- data/examples/draganddrop/puzzle/main.rb +33 -0
- data/examples/draganddrop/puzzle/mainwindow.rb +136 -0
- data/examples/draganddrop/puzzle/pieceslist.rb +95 -0
- data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
- data/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
- data/examples/graphicsview/collidingmice/main.rb +53 -0
- data/examples/graphicsview/collidingmice/makefile +2 -0
- data/examples/graphicsview/collidingmice/mice.qrc +5 -0
- data/examples/graphicsview/collidingmice/mouse.rb +176 -0
- data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
- data/examples/graphicsview/dragdroprobot/images/head.png +0 -0
- data/examples/graphicsview/dragdroprobot/main.rb +57 -0
- data/examples/graphicsview/dragdroprobot/makefile +2 -0
- data/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
- data/examples/graphicsview/dragdroprobot/robot.rb +246 -0
- data/examples/itemviews/chart/chart.qrc +5 -0
- data/examples/itemviews/chart/main.rb +33 -0
- data/examples/itemviews/chart/mainwindow.rb +151 -0
- data/examples/itemviews/chart/makefile +2 -0
- data/examples/itemviews/chart/mydata.cht +8 -0
- data/examples/itemviews/chart/pieview.rb +516 -0
- data/examples/itemviews/chart/qtdata.cht +14 -0
- data/examples/itemviews/dirview/main.rb +39 -0
- data/examples/itemviews/pixelator/imagemodel.rb +51 -0
- data/examples/itemviews/pixelator/images.qrc +5 -0
- data/examples/itemviews/pixelator/images/qt.png +0 -0
- data/examples/itemviews/pixelator/main.rb +34 -0
- data/examples/itemviews/pixelator/mainwindow.rb +218 -0
- data/examples/itemviews/pixelator/makefile +3 -0
- data/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
- data/examples/itemviews/puzzle/example.jpg +0 -0
- data/examples/itemviews/puzzle/main.rb +36 -0
- data/examples/itemviews/puzzle/mainwindow.rb +143 -0
- data/examples/itemviews/puzzle/piecesmodel.rb +174 -0
- data/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
- data/examples/itemviews/simpledommodel/domitem.rb +62 -0
- data/examples/itemviews/simpledommodel/dommodel.rb +139 -0
- data/examples/itemviews/simpledommodel/main.rb +33 -0
- data/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
- data/examples/itemviews/simpletreemodel/default.txt +40 -0
- data/examples/itemviews/simpletreemodel/main.rb +41 -0
- data/examples/itemviews/simpletreemodel/makefile +2 -0
- data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
- data/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
- data/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
- data/examples/itemviews/sortingmodel/default.txt +40 -0
- data/examples/itemviews/sortingmodel/main.rb +53 -0
- data/examples/itemviews/sortingmodel/treeitem.rb +73 -0
- data/examples/itemviews/sortingmodel/treemodel.rb +166 -0
- data/examples/itemviews/spinboxdelegate/main.rb +47 -0
- data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
- data/examples/killerfilter/killerfilter.rb +55 -0
- data/examples/layouts/basiclayouts/dialog.rb +110 -0
- data/examples/layouts/basiclayouts/main.rb +31 -0
- data/examples/layouts/borderlayout/borderlayout.rb +190 -0
- data/examples/layouts/borderlayout/main.rb +32 -0
- data/examples/layouts/borderlayout/window.rb +52 -0
- data/examples/layouts/flowlayouts/flowlayout.rb +108 -0
- data/examples/layouts/flowlayouts/main.rb +32 -0
- data/examples/layouts/flowlayouts/window.rb +43 -0
- data/examples/mainwindows/application/images/copy.png +0 -0
- data/examples/mainwindows/application/images/cut.png +0 -0
- data/examples/mainwindows/application/images/new.png +0 -0
- data/examples/mainwindows/application/images/open.png +0 -0
- data/examples/mainwindows/application/images/paste.png +0 -0
- data/examples/mainwindows/application/images/save.png +0 -0
- data/examples/mainwindows/application/main.rb +32 -0
- data/examples/mainwindows/application/mainwindow.rb +285 -0
- data/examples/mainwindows/dockwidgets/images/new.png +0 -0
- data/examples/mainwindows/dockwidgets/images/print.png +0 -0
- data/examples/mainwindows/dockwidgets/images/save.png +0 -0
- data/examples/mainwindows/dockwidgets/images/undo.png +0 -0
- data/examples/mainwindows/dockwidgets/main.rb +32 -0
- data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
- data/examples/mainwindows/mdi/images/copy.png +0 -0
- data/examples/mainwindows/mdi/images/cut.png +0 -0
- data/examples/mainwindows/mdi/images/new.png +0 -0
- data/examples/mainwindows/mdi/images/open.png +0 -0
- data/examples/mainwindows/mdi/images/paste.png +0 -0
- data/examples/mainwindows/mdi/images/save.png +0 -0
- data/examples/mainwindows/mdi/main.rb +32 -0
- data/examples/mainwindows/mdi/mainwindow.rb +363 -0
- data/examples/mainwindows/mdi/mdichild.rb +152 -0
- data/examples/mainwindows/menus/main.rb +32 -0
- data/examples/mainwindows/menus/mainwindow.rb +327 -0
- data/examples/mainwindows/recentfiles/main.rb +32 -0
- data/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
- data/examples/mainwindows/sdi/images/copy.png +0 -0
- data/examples/mainwindows/sdi/images/cut.png +0 -0
- data/examples/mainwindows/sdi/images/new.png +0 -0
- data/examples/mainwindows/sdi/images/open.png +0 -0
- data/examples/mainwindows/sdi/images/paste.png +0 -0
- data/examples/mainwindows/sdi/images/save.png +0 -0
- data/examples/mainwindows/sdi/main.rb +32 -0
- data/examples/mainwindows/sdi/mainwindow.rb +335 -0
- data/examples/network/broadcastreceiver/main.rb +32 -0
- data/examples/network/broadcastreceiver/receiver.rb +64 -0
- data/examples/network/broadcastsender/main.rb +32 -0
- data/examples/network/broadcastsender/sender.rb +72 -0
- data/examples/network/fortuneclient/client.rb +149 -0
- data/examples/network/fortuneclient/main.rb +32 -0
- data/examples/network/fortuneserver/main.rb +32 -0
- data/examples/network/fortuneserver/server.rb +88 -0
- data/examples/network/ftp/ftpwindow.rb +259 -0
- data/examples/network/ftp/images/cdtoparent.png +0 -0
- data/examples/network/ftp/images/dir.png +0 -0
- data/examples/network/ftp/images/file.png +0 -0
- data/examples/network/ftp/main.rb +32 -0
- data/examples/network/http/httpwindow.rb +187 -0
- data/examples/network/http/main.rb +32 -0
- data/examples/network/loopback/dialog.rb +163 -0
- data/examples/network/loopback/main.rb +32 -0
- data/examples/opengl/grabber/glwidget.rb +265 -0
- data/examples/opengl/grabber/main.rb +32 -0
- data/examples/opengl/grabber/mainwindow.rb +189 -0
- data/examples/opengl/hellogl/glwidget.rb +226 -0
- data/examples/opengl/hellogl/main.rb +32 -0
- data/examples/opengl/hellogl/window.rb +66 -0
- data/examples/opengl/textures/glwidget.rb +151 -0
- data/examples/opengl/textures/images/side1.png +0 -0
- data/examples/opengl/textures/images/side2.png +0 -0
- data/examples/opengl/textures/images/side3.png +0 -0
- data/examples/opengl/textures/images/side4.png +0 -0
- data/examples/opengl/textures/images/side5.png +0 -0
- data/examples/opengl/textures/images/side6.png +0 -0
- data/examples/opengl/textures/main.rb +32 -0
- data/examples/opengl/textures/window.rb +77 -0
- data/examples/painting/basicdrawing/images/brick.png +0 -0
- data/examples/painting/basicdrawing/images/qt-logo.png +0 -0
- data/examples/painting/basicdrawing/main.rb +32 -0
- data/examples/painting/basicdrawing/renderarea.rb +166 -0
- data/examples/painting/basicdrawing/window.rb +215 -0
- data/examples/painting/concentriccircles/circlewidget.rb +88 -0
- data/examples/painting/concentriccircles/main.rb +32 -0
- data/examples/painting/concentriccircles/window.rb +72 -0
- data/examples/painting/fontsampler/main.rb +32 -0
- data/examples/painting/fontsampler/mainwindow.rb +369 -0
- data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
- data/examples/painting/fontsampler/makefile +8 -0
- data/examples/painting/fontsampler/previewdialog.rb +257 -0
- data/examples/painting/fontsampler/previewdialogbase.ui +224 -0
- data/examples/painting/fontsampler/previewlabel.rb +43 -0
- data/examples/painting/imagecomposition/imagecomposer.rb +152 -0
- data/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
- data/examples/painting/imagecomposition/images/background.png +0 -0
- data/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
- data/examples/painting/imagecomposition/images/butterfly.png +0 -0
- data/examples/painting/imagecomposition/images/checker.png +0 -0
- data/examples/painting/imagecomposition/main.rb +33 -0
- data/examples/painting/imagecomposition/makefile +2 -0
- data/examples/painting/painterpaths/main.rb +32 -0
- data/examples/painting/painterpaths/renderarea.rb +97 -0
- data/examples/painting/painterpaths/window.rb +247 -0
- data/examples/painting/svgviewer/files/bubbles.svg +212 -0
- data/examples/painting/svgviewer/files/cubic.svg +77 -0
- data/examples/painting/svgviewer/files/spheres.svg +79 -0
- data/examples/painting/svgviewer/main.rb +38 -0
- data/examples/painting/svgviewer/mainwindow.rb +99 -0
- data/examples/painting/svgviewer/makefile +2 -0
- data/examples/painting/svgviewer/svgview.rb +156 -0
- data/examples/painting/svgviewer/svgviewer.qrc +6 -0
- data/examples/painting/svgviewer/svgwindow.rb +87 -0
- data/examples/painting/transformations/main.rb +32 -0
- data/examples/painting/transformations/renderarea.rb +127 -0
- data/examples/painting/transformations/window.rb +153 -0
- data/examples/passivepopup/passivepopup.rb +38 -0
- data/examples/qdbus/chat/chat.rb +146 -0
- data/examples/qdbus/chat/chat_adaptor.rb +12 -0
- data/examples/qdbus/chat/chat_interface.rb +13 -0
- data/examples/qdbus/chat/chatmainwindow.ui +184 -0
- data/examples/qdbus/chat/chatsetnickname.ui +145 -0
- data/examples/qdbus/chat/makefile +8 -0
- data/examples/qdbus/complexpingpong/complexping.rb +92 -0
- data/examples/qdbus/complexpingpong/complexpong.rb +83 -0
- data/examples/qdbus/complexpingpong/ping-common.rb +1 -0
- data/examples/qdbus/listnames/listnames.rb +69 -0
- data/examples/qdbus/pingpong/ping-common.rb +1 -0
- data/examples/qdbus/pingpong/ping.rb +52 -0
- data/examples/qdbus/pingpong/pong.rb +55 -0
- data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
- data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
- data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
- data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
- data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
- data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
- data/examples/qtscribble/scribble.rb +270 -0
- data/examples/richtext/calendar/main.rb +33 -0
- data/examples/richtext/calendar/mainwindow.rb +173 -0
- data/examples/richtext/orderform/detailsdialog.rb +130 -0
- data/examples/richtext/orderform/main.rb +34 -0
- data/examples/richtext/orderform/mainwindow.rb +194 -0
- data/examples/richtext/syntaxhighlighter/examples/example +79 -0
- data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
- data/examples/richtext/syntaxhighlighter/main.rb +34 -0
- data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
- data/examples/ruboids/LICENSE.txt +58 -0
- data/examples/ruboids/Manifest +26 -0
- data/examples/ruboids/README +53 -0
- data/examples/ruboids/TODO +29 -0
- data/examples/ruboids/boids.properties +33 -0
- data/examples/ruboids/generateManifest.rb +42 -0
- data/examples/ruboids/index.html +147 -0
- data/examples/ruboids/release.rb +152 -0
- data/examples/ruboids/ruboids/Boid.rb +141 -0
- data/examples/ruboids/ruboids/BoidView.rb +159 -0
- data/examples/ruboids/ruboids/Camera.rb +24 -0
- data/examples/ruboids/ruboids/CameraDialog.rb +218 -0
- data/examples/ruboids/ruboids/Canvas.rb +143 -0
- data/examples/ruboids/ruboids/Cloud.rb +61 -0
- data/examples/ruboids/ruboids/CloudView.rb +54 -0
- data/examples/ruboids/ruboids/Flock.rb +47 -0
- data/examples/ruboids/ruboids/Graphics.rb +278 -0
- data/examples/ruboids/ruboids/Params.rb +87 -0
- data/examples/ruboids/ruboids/Point.rb +153 -0
- data/examples/ruboids/ruboids/Thing.rb +34 -0
- data/examples/ruboids/ruboids/Triangle.rb +21 -0
- data/examples/ruboids/ruboids/View.rb +88 -0
- data/examples/ruboids/ruboids/World.rb +82 -0
- data/examples/ruboids/ruboids/WorldWindow.rb +52 -0
- data/examples/ruboids/ruboids/info.rb +12 -0
- data/examples/ruboids/ruboids/ruboids.rb +29 -0
- data/examples/run_all.rb +15 -0
- data/examples/threading/main_thread.rb +19 -0
- data/examples/tutorial/t1/t1.rb +10 -0
- data/examples/tutorial/t10/cannon.rb +72 -0
- data/examples/tutorial/t10/lcdrange.rb +45 -0
- data/examples/tutorial/t10/t10.rb +55 -0
- data/examples/tutorial/t11/cannon.rb +124 -0
- data/examples/tutorial/t11/lcdrange.rb +45 -0
- data/examples/tutorial/t11/t11.rb +65 -0
- data/examples/tutorial/t12/cannon.rb +158 -0
- data/examples/tutorial/t12/lcdrange.rb +59 -0
- data/examples/tutorial/t12/t12.rb +66 -0
- data/examples/tutorial/t13/cannon.rb +208 -0
- data/examples/tutorial/t13/gamebrd.rb +113 -0
- data/examples/tutorial/t13/lcdrange.rb +60 -0
- data/examples/tutorial/t13/t13.rb +11 -0
- data/examples/tutorial/t14/cannon.rb +263 -0
- data/examples/tutorial/t14/gamebrd.rb +123 -0
- data/examples/tutorial/t14/lcdrange.rb +63 -0
- data/examples/tutorial/t14/t14.rb +11 -0
- data/examples/tutorial/t2/t2.rb +16 -0
- data/examples/tutorial/t3/t3.rb +18 -0
- data/examples/tutorial/t4/t4.rb +25 -0
- data/examples/tutorial/t5/t5.rb +37 -0
- data/examples/tutorial/t6/t6.rb +52 -0
- data/examples/tutorial/t7/lcdrange.rb +32 -0
- data/examples/tutorial/t7/t7.rb +42 -0
- data/examples/tutorial/t8/cannon.rb +38 -0
- data/examples/tutorial/t8/lcdrange.rb +45 -0
- data/examples/tutorial/t8/t8.rb +43 -0
- data/examples/tutorial/t9/cannon.rb +45 -0
- data/examples/tutorial/t9/lcdrange.rb +46 -0
- data/examples/tutorial/t9/t9.rb +43 -0
- data/examples/widgets/analogclock/analogclock.rb +94 -0
- data/examples/widgets/analogclock/main.rb +9 -0
- data/examples/widgets/calculator/button.rb +45 -0
- data/examples/widgets/calculator/calculator.rb +382 -0
- data/examples/widgets/calculator/main.rb +32 -0
- data/examples/widgets/charactermap/characterwidget.rb +110 -0
- data/examples/widgets/charactermap/main.rb +32 -0
- data/examples/widgets/charactermap/mainwindow.rb +118 -0
- data/examples/widgets/digitalclock/digitalclock.rb +30 -0
- data/examples/widgets/digitalclock/main.rb +9 -0
- data/examples/widgets/groupbox/main.rb +32 -0
- data/examples/widgets/groupbox/window.rb +134 -0
- data/examples/widgets/icons/iconpreviewarea.rb +111 -0
- data/examples/widgets/icons/iconsizespinbox.rb +39 -0
- data/examples/widgets/icons/imagedelegate.rb +73 -0
- data/examples/widgets/icons/images/designer.png +0 -0
- data/examples/widgets/icons/images/find_disabled.png +0 -0
- data/examples/widgets/icons/images/find_normal.png +0 -0
- data/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
- data/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
- data/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
- data/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
- data/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
- data/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
- data/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
- data/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
- data/examples/widgets/icons/images/qtopia_16x16.png +0 -0
- data/examples/widgets/icons/images/qtopia_32x32.png +0 -0
- data/examples/widgets/icons/images/qtopia_48x48.png +0 -0
- data/examples/widgets/icons/main.rb +32 -0
- data/examples/widgets/icons/mainwindow.rb +351 -0
- data/examples/widgets/imageviewer/imageviewer.rb +219 -0
- data/examples/widgets/imageviewer/main.rb +32 -0
- data/examples/widgets/lineedits/main.rb +32 -0
- data/examples/widgets/lineedits/window.rb +199 -0
- data/examples/widgets/movie/images/open.png +0 -0
- data/examples/widgets/movie/images/pause.png +0 -0
- data/examples/widgets/movie/images/play.png +0 -0
- data/examples/widgets/movie/images/quit.png +0 -0
- data/examples/widgets/movie/images/stop.png +0 -0
- data/examples/widgets/movie/main.rb +32 -0
- data/examples/widgets/movie/movieplayer.rb +201 -0
- data/examples/widgets/movie/movies/fire.mng +0 -0
- data/examples/widgets/screenshot/main.rb +32 -0
- data/examples/widgets/screenshot/screenshot.rb +155 -0
- data/examples/widgets/scribble/main.rb +32 -0
- data/examples/widgets/scribble/mainwindow.rb +202 -0
- data/examples/widgets/scribble/scribblearea.rb +154 -0
- data/examples/widgets/sliders/main.rb +32 -0
- data/examples/widgets/sliders/slidersgroup.rb +97 -0
- data/examples/widgets/sliders/window.rb +124 -0
- data/examples/widgets/spinboxes/main.rb +32 -0
- data/examples/widgets/spinboxes/window.rb +213 -0
- data/examples/widgets/tetrix/main.rb +33 -0
- data/examples/widgets/tetrix/tetrixboard.rb +346 -0
- data/examples/widgets/tetrix/tetrixpiece.rb +135 -0
- data/examples/widgets/tetrix/tetrixwindow.rb +88 -0
- data/examples/widgets/tooltips/images/circle.png +0 -0
- data/examples/widgets/tooltips/images/square.png +0 -0
- data/examples/widgets/tooltips/images/triangle.png +0 -0
- data/examples/widgets/tooltips/main.rb +32 -0
- data/examples/widgets/tooltips/shapeitem.rb +31 -0
- data/examples/widgets/tooltips/sortingbox.rb +222 -0
- data/examples/widgets/wiggly/dialog.rb +48 -0
- data/examples/widgets/wiggly/main.rb +9 -0
- data/examples/widgets/wiggly/wigglywidget.rb +76 -0
- data/examples/widgets/windowflags/controllerwindow.rb +195 -0
- data/examples/widgets/windowflags/main.rb +32 -0
- data/examples/widgets/windowflags/previewwindow.rb +103 -0
- data/examples/xml/dombookmarks/frank.xbel +230 -0
- data/examples/xml/dombookmarks/jennifer.xbel +93 -0
- data/examples/xml/dombookmarks/main.rb +34 -0
- data/examples/xml/dombookmarks/mainwindow.rb +129 -0
- data/examples/xml/dombookmarks/xbeltree.rb +172 -0
- data/examples/xml/saxbookmarks/frank.xbel +230 -0
- data/examples/xml/saxbookmarks/jennifer.xbel +93 -0
- data/examples/xml/saxbookmarks/main.rb +34 -0
- data/examples/xml/saxbookmarks/mainwindow.rb +144 -0
- data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
- data/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
- data/extconf.rb +256 -0
- data/lib/2.0/libqtruby4shared.dll +0 -0
- data/lib/2.0/libsmokebase.dll +0 -0
- data/lib/2.0/libsmokeqtcore.dll +0 -0
- data/lib/2.0/libsmokeqtdeclarative.dll +0 -0
- data/lib/2.0/libsmokeqtgui.dll +0 -0
- data/lib/2.0/libsmokeqthelp.dll +0 -0
- data/lib/2.0/libsmokeqtmultimedia.dll +0 -0
- data/lib/2.0/libsmokeqtnetwork.dll +0 -0
- data/lib/2.0/libsmokeqtopengl.dll +0 -0
- data/lib/2.0/libsmokeqtscript.dll +0 -0
- data/lib/2.0/libsmokeqtsql.dll +0 -0
- data/lib/2.0/libsmokeqtsvg.dll +0 -0
- data/lib/2.0/libsmokeqttest.dll +0 -0
- data/lib/2.0/libsmokeqtuitools.dll +0 -0
- data/lib/2.0/libsmokeqtwebkit.dll +0 -0
- data/lib/2.0/libsmokeqtxml.dll +0 -0
- data/lib/2.0/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/2.0/qtdeclarative.so +0 -0
- data/lib/2.0/qtruby4.so +0 -0
- data/lib/2.0/qtscript.so +0 -0
- data/lib/2.0/qttest.so +0 -0
- data/lib/2.0/qtuitools.so +0 -0
- data/lib/2.0/qtwebkit.so +0 -0
- data/lib/2.1/libqtruby4shared.dll +0 -0
- data/lib/2.1/libsmokebase.dll +0 -0
- data/lib/2.1/libsmokeqtcore.dll +0 -0
- data/lib/2.1/libsmokeqtdeclarative.dll +0 -0
- data/lib/2.1/libsmokeqtgui.dll +0 -0
- data/lib/2.1/libsmokeqthelp.dll +0 -0
- data/lib/2.1/libsmokeqtmultimedia.dll +0 -0
- data/lib/2.1/libsmokeqtnetwork.dll +0 -0
- data/lib/2.1/libsmokeqtopengl.dll +0 -0
- data/lib/2.1/libsmokeqtscript.dll +0 -0
- data/lib/2.1/libsmokeqtsql.dll +0 -0
- data/lib/2.1/libsmokeqtsvg.dll +0 -0
- data/lib/2.1/libsmokeqttest.dll +0 -0
- data/lib/2.1/libsmokeqtuitools.dll +0 -0
- data/lib/2.1/libsmokeqtwebkit.dll +0 -0
- data/lib/2.1/libsmokeqtxml.dll +0 -0
- data/lib/2.1/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/2.1/qtdeclarative.so +0 -0
- data/lib/2.1/qtruby4.so +0 -0
- data/lib/2.1/qtscript.so +0 -0
- data/lib/2.1/qttest.so +0 -0
- data/lib/2.1/qtuitools.so +0 -0
- data/lib/2.1/qtwebkit.so +0 -0
- data/lib/2.2/libqtruby4shared.dll +0 -0
- data/lib/2.2/libsmokebase.dll +0 -0
- data/lib/2.2/libsmokeqtcore.dll +0 -0
- data/lib/2.2/libsmokeqtdeclarative.dll +0 -0
- data/lib/2.2/libsmokeqtgui.dll +0 -0
- data/lib/2.2/libsmokeqthelp.dll +0 -0
- data/lib/2.2/libsmokeqtmultimedia.dll +0 -0
- data/lib/2.2/libsmokeqtnetwork.dll +0 -0
- data/lib/2.2/libsmokeqtopengl.dll +0 -0
- data/lib/2.2/libsmokeqtscript.dll +0 -0
- data/lib/2.2/libsmokeqtsql.dll +0 -0
- data/lib/2.2/libsmokeqtsvg.dll +0 -0
- data/lib/2.2/libsmokeqttest.dll +0 -0
- data/lib/2.2/libsmokeqtuitools.dll +0 -0
- data/lib/2.2/libsmokeqtwebkit.dll +0 -0
- data/lib/2.2/libsmokeqtxml.dll +0 -0
- data/lib/2.2/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/2.2/qtdeclarative.so +0 -0
- data/lib/2.2/qtruby4.so +0 -0
- data/lib/2.2/qtscript.so +0 -0
- data/lib/2.2/qttest.so +0 -0
- data/lib/2.2/qtuitools.so +0 -0
- data/lib/2.2/qtwebkit.so +0 -0
- data/lib/Qt.rb +1 -0
- data/lib/Qt/qtruby4.rb +3258 -0
- data/lib/Qt4.rb +111 -0
- data/lib/qtbindings_version.rb +2 -0
- data/lib/qtdeclarative/qtdeclarative.rb +17 -0
- data/lib/qtscript/qtscript.rb +40 -0
- data/lib/qttest/qttest.rb +166 -0
- data/lib/qtuitools/qtuitools.rb +17 -0
- data/lib/qtwebkit/qtwebkit.rb +17 -0
- data/qtbindings.gemspec +18 -0
- data/qtbindingsnative.gemspec +19 -0
- metadata +559 -0
@@ -0,0 +1,215 @@
|
|
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
|
+
require './renderarea.rb'
|
28
|
+
|
29
|
+
class Window < Qt::Widget
|
30
|
+
|
31
|
+
slots 'shapeChanged()',
|
32
|
+
'penChanged()',
|
33
|
+
'brushChanged()'
|
34
|
+
|
35
|
+
def initialize(parent = nil)
|
36
|
+
super
|
37
|
+
@idRole = Qt::UserRole
|
38
|
+
@renderArea = RenderArea.new
|
39
|
+
|
40
|
+
@shapeComboBox = Qt::ComboBox.new do |s|
|
41
|
+
s.addItem(tr("Rectangle"), Qt::Variant.new(RenderArea::Rect))
|
42
|
+
s.addItem(tr("Round Rectangle"), Qt::Variant.new(RenderArea::RoundRect))
|
43
|
+
s.addItem(tr("Ellipse"), Qt::Variant.new(RenderArea::Ellipse))
|
44
|
+
s.addItem(tr("Pie"), Qt::Variant.new(RenderArea::Pie))
|
45
|
+
s.addItem(tr("Chord"), Qt::Variant.new(RenderArea::Chord))
|
46
|
+
s.addItem(tr("Polygon"), Qt::Variant.new(RenderArea::Polygon))
|
47
|
+
s.addItem(tr("Path"), Qt::Variant.new(RenderArea::Path))
|
48
|
+
s.addItem(tr("Line"), Qt::Variant.new(RenderArea::Line))
|
49
|
+
s.addItem(tr("Polyline"), Qt::Variant.new(RenderArea::Polyline))
|
50
|
+
s.addItem(tr("Arc"), Qt::Variant.new(RenderArea::Arc))
|
51
|
+
s.addItem(tr("Points"), Qt::Variant.new(RenderArea::Points))
|
52
|
+
s.addItem(tr("Text"), Qt::Variant.new(RenderArea::Text))
|
53
|
+
s.addItem(tr("Pixmap"), Qt::Variant.new(RenderArea::Pixmap))
|
54
|
+
end
|
55
|
+
|
56
|
+
@shapeLabel = Qt::Label.new(tr("&Shape:"))
|
57
|
+
@shapeLabel.buddy = @shapeComboBox
|
58
|
+
|
59
|
+
@penWidthSpinBox = Qt::SpinBox.new
|
60
|
+
@penWidthSpinBox.range = 0..20
|
61
|
+
|
62
|
+
@penWidthLabel = Qt::Label.new(tr("Pen &Width:"))
|
63
|
+
@penWidthLabel.buddy = @penWidthSpinBox
|
64
|
+
|
65
|
+
@penStyleComboBox = Qt::ComboBox.new do |p|
|
66
|
+
p.addItem(tr("Solid"), Qt::Variant.new(Qt::SolidLine.to_i))
|
67
|
+
p.addItem(tr("Dash"), Qt::Variant.new(Qt::DashLine.to_i))
|
68
|
+
p.addItem(tr("Dot"), Qt::Variant.new(Qt::DotLine.to_i))
|
69
|
+
p.addItem(tr("Dash Dot"), Qt::Variant.new(Qt::DashDotLine.to_i))
|
70
|
+
p.addItem(tr("Dash Dot Dot"), Qt::Variant.new(Qt::DashDotDotLine.to_i))
|
71
|
+
p.addItem(tr("None"), Qt::Variant.new(Qt::NoPen.to_i))
|
72
|
+
end
|
73
|
+
|
74
|
+
@penStyleLabel = Qt::Label.new(tr("&Pen Style:"))
|
75
|
+
@penStyleLabel.buddy = @penStyleComboBox
|
76
|
+
|
77
|
+
@penCapComboBox = Qt::ComboBox.new do |p|
|
78
|
+
p.addItem(tr("Flat"), Qt::Variant.new(Qt::FlatCap.to_i))
|
79
|
+
p.addItem(tr("Square"), Qt::Variant.new(Qt::SquareCap.to_i))
|
80
|
+
p.addItem(tr("Round"), Qt::Variant.new(Qt::RoundCap.to_i))
|
81
|
+
end
|
82
|
+
|
83
|
+
@penCapLabel = Qt::Label.new(tr("Pen &Cap:"))
|
84
|
+
@penCapLabel.buddy = @penCapComboBox
|
85
|
+
|
86
|
+
@penJoinComboBox = Qt::ComboBox.new do |p|
|
87
|
+
p.addItem(tr("Miter"), Qt::Variant.new(Qt::MiterJoin.to_i))
|
88
|
+
p.addItem(tr("Bevel"), Qt::Variant.new(Qt::BevelJoin.to_i))
|
89
|
+
p.addItem(tr("Round"), Qt::Variant.new(Qt::RoundJoin.to_i))
|
90
|
+
end
|
91
|
+
|
92
|
+
@penJoinLabel = Qt::Label.new(tr("Pen &Join:"))
|
93
|
+
@penJoinLabel.buddy = @penJoinComboBox
|
94
|
+
|
95
|
+
@brushStyleComboBox = Qt::ComboBox.new do |b|
|
96
|
+
b.addItem(tr("Linear Gradient"),
|
97
|
+
Qt::Variant.new(Qt::LinearGradientPattern.to_i))
|
98
|
+
b.addItem(tr("Radial Gradient"),
|
99
|
+
Qt::Variant.new(Qt::RadialGradientPattern.to_i))
|
100
|
+
b.addItem(tr("Conical Gradient"),
|
101
|
+
Qt::Variant.new(Qt::ConicalGradientPattern.to_i))
|
102
|
+
b.addItem(tr("Texture"), Qt::Variant.new(Qt::TexturePattern.to_i))
|
103
|
+
b.addItem(tr("Solid"), Qt::Variant.new(Qt::SolidPattern.to_i))
|
104
|
+
b.addItem(tr("Horizontal"), Qt::Variant.new(Qt::HorPattern.to_i))
|
105
|
+
b.addItem(tr("Vertical"), Qt::Variant.new(Qt::VerPattern.to_i))
|
106
|
+
b.addItem(tr("Cross"), Qt::Variant.new(Qt::CrossPattern.to_i))
|
107
|
+
b.addItem(tr("Backward Diagonal"), Qt::Variant.new(Qt::BDiagPattern.to_i))
|
108
|
+
b.addItem(tr("Forward Diagonal"), Qt::Variant.new(Qt::FDiagPattern.to_i))
|
109
|
+
b.addItem(tr("Diagonal Cross"), Qt::Variant.new(Qt::DiagCrossPattern.to_i))
|
110
|
+
b.addItem(tr("Dense 1"), Qt::Variant.new(Qt::Dense1Pattern.to_i))
|
111
|
+
b.addItem(tr("Dense 2"), Qt::Variant.new(Qt::Dense2Pattern.to_i))
|
112
|
+
b.addItem(tr("Dense 3"), Qt::Variant.new(Qt::Dense3Pattern.to_i))
|
113
|
+
b.addItem(tr("Dense 4"), Qt::Variant.new(Qt::Dense4Pattern.to_i))
|
114
|
+
b.addItem(tr("Dense 5"), Qt::Variant.new(Qt::Dense5Pattern.to_i))
|
115
|
+
b.addItem(tr("Dense 6"), Qt::Variant.new(Qt::Dense6Pattern.to_i))
|
116
|
+
b.addItem(tr("Dense 7"), Qt::Variant.new(Qt::Dense7Pattern.to_i))
|
117
|
+
b.addItem(tr("None"), Qt::Variant.new(Qt::NoBrush.to_i))
|
118
|
+
end
|
119
|
+
|
120
|
+
@brushStyleLabel = Qt::Label.new(tr("&Brush Style:"))
|
121
|
+
@brushStyleLabel.buddy = @brushStyleComboBox
|
122
|
+
|
123
|
+
@antialiasingCheckBox = Qt::CheckBox.new(tr("&Antialiasing"))
|
124
|
+
@transformationsCheckBox = Qt::CheckBox.new(tr("&Transformations"))
|
125
|
+
|
126
|
+
connect(@shapeComboBox, SIGNAL('activated(int)'),
|
127
|
+
self, SLOT('shapeChanged()'))
|
128
|
+
connect(@penWidthSpinBox, SIGNAL('valueChanged(int)'),
|
129
|
+
self, SLOT('penChanged()'))
|
130
|
+
connect(@penStyleComboBox, SIGNAL('activated(int)'),
|
131
|
+
self, SLOT('penChanged()'))
|
132
|
+
connect(@penCapComboBox, SIGNAL('activated(int)'),
|
133
|
+
self, SLOT('penChanged()'))
|
134
|
+
connect(@penJoinComboBox, SIGNAL('activated(int)'),
|
135
|
+
self, SLOT('penChanged()'))
|
136
|
+
connect(@brushStyleComboBox, SIGNAL('activated(int)'),
|
137
|
+
self, SLOT('brushChanged()'))
|
138
|
+
connect(@antialiasingCheckBox, SIGNAL('toggled(bool)'),
|
139
|
+
@renderArea, SLOT('antialiased=(bool)'))
|
140
|
+
connect(@transformationsCheckBox, SIGNAL('toggled(bool)'),
|
141
|
+
@renderArea, SLOT('transformed=(bool)'))
|
142
|
+
|
143
|
+
checkBoxLayout = Qt::HBoxLayout.new do |c|
|
144
|
+
c.addWidget(@antialiasingCheckBox)
|
145
|
+
c.addWidget(@transformationsCheckBox)
|
146
|
+
end
|
147
|
+
|
148
|
+
self.layout = Qt::GridLayout.new do |l|
|
149
|
+
l.addWidget(@renderArea, 0, 0, 1, 2)
|
150
|
+
l.addWidget(@shapeLabel, 1, 0)
|
151
|
+
l.addWidget(@shapeComboBox, 1, 1)
|
152
|
+
l.addWidget(@penWidthLabel, 2, 0)
|
153
|
+
l.addWidget(@penWidthSpinBox, 2, 1)
|
154
|
+
l.addWidget(@penStyleLabel, 3, 0)
|
155
|
+
l.addWidget(@penStyleComboBox, 3, 1)
|
156
|
+
l.addWidget(@penCapLabel, 4, 0)
|
157
|
+
l.addWidget(@penCapComboBox, 4, 1)
|
158
|
+
l.addWidget(@penJoinLabel, 5, 0)
|
159
|
+
l.addWidget(@penJoinComboBox, 5, 1)
|
160
|
+
l.addWidget(@brushStyleLabel, 6, 0)
|
161
|
+
l.addWidget(@brushStyleComboBox, 6, 1)
|
162
|
+
l.addLayout(checkBoxLayout, 7, 0, 1, 2)
|
163
|
+
end
|
164
|
+
|
165
|
+
shapeChanged()
|
166
|
+
penChanged()
|
167
|
+
brushChanged()
|
168
|
+
@renderArea.antialiased = false
|
169
|
+
@renderArea.transformed = false
|
170
|
+
|
171
|
+
setWindowTitle(tr("Basic Drawing"))
|
172
|
+
end
|
173
|
+
|
174
|
+
def shapeChanged()
|
175
|
+
shape = @shapeComboBox.itemData(@shapeComboBox.currentIndex(), @idRole).toInt
|
176
|
+
@renderArea.shape = shape
|
177
|
+
end
|
178
|
+
|
179
|
+
def penChanged()
|
180
|
+
width = @penWidthSpinBox.value()
|
181
|
+
style = @penStyleComboBox.itemData(@penStyleComboBox.currentIndex(), @idRole).toInt
|
182
|
+
cap = @penCapComboBox.itemData(@penCapComboBox.currentIndex(), @idRole).toInt
|
183
|
+
join = @penJoinComboBox.itemData(@penJoinComboBox.currentIndex(), @idRole).toInt
|
184
|
+
|
185
|
+
@renderArea.pen = Qt::Pen.new(Qt::Brush.new(Qt::blue), width, style, cap, join)
|
186
|
+
end
|
187
|
+
|
188
|
+
def brushChanged()
|
189
|
+
style = @brushStyleComboBox.itemData(@brushStyleComboBox.currentIndex(), @idRole).toInt
|
190
|
+
|
191
|
+
if style == Qt::LinearGradientPattern
|
192
|
+
linearGradient = Qt::LinearGradient.new(0, 0, 100, 100)
|
193
|
+
linearGradient.setColorAt(0.0, Qt::Color.new(Qt::white))
|
194
|
+
linearGradient.setColorAt(0.2, Qt::Color.new(Qt::green))
|
195
|
+
linearGradient.setColorAt(1.0, Qt::Color.new(Qt::black))
|
196
|
+
@renderArea.brush = Qt::Brush.new(linearGradient)
|
197
|
+
elsif style == Qt::RadialGradientPattern
|
198
|
+
radialGradient = Qt::RadialGradient.new(50, 50, 50, 50, 50)
|
199
|
+
radialGradient.setColorAt(0.0, Qt::Color.new(Qt::white))
|
200
|
+
radialGradient.setColorAt(0.2, Qt::Color.new(Qt::green))
|
201
|
+
radialGradient.setColorAt(1.0, Qt::Color.new(Qt::black))
|
202
|
+
@renderArea.brush = Qt::Brush.new(radialGradient)
|
203
|
+
elsif style == Qt::ConicalGradientPattern
|
204
|
+
conicalGradient = Qt::ConicalGradient.new(50, 50, 150)
|
205
|
+
conicalGradient.setColorAt(0.0, Qt::Color.new(Qt::white))
|
206
|
+
conicalGradient.setColorAt(0.2, Qt::Color.new(Qt::green))
|
207
|
+
conicalGradient.setColorAt(1.0, Qt::Color.new(Qt::black))
|
208
|
+
@renderArea.brush = Qt::Brush.new(conicalGradient)
|
209
|
+
elsif style == Qt::TexturePattern
|
210
|
+
@renderArea.brush = Qt::Brush.new(Qt::Pixmap.new("images/brick.png"))
|
211
|
+
else
|
212
|
+
@renderArea.brush = Qt::Brush.new(Qt::green, style)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
@@ -0,0 +1,88 @@
|
|
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
|
+
class CircleWidget < Qt::Widget
|
28
|
+
|
29
|
+
slots 'nextAnimationFrame()'
|
30
|
+
|
31
|
+
def initialize(parent = nil)
|
32
|
+
super(parent)
|
33
|
+
@floatBased = false
|
34
|
+
@antialiased = false
|
35
|
+
@frameNo = 0
|
36
|
+
|
37
|
+
setBackgroundRole(Qt::Palette::Base)
|
38
|
+
setSizePolicy(Qt::SizePolicy::Expanding, Qt::SizePolicy::Expanding)
|
39
|
+
end
|
40
|
+
|
41
|
+
def floatBased=(floatBased)
|
42
|
+
@floatBased = floatBased
|
43
|
+
update()
|
44
|
+
end
|
45
|
+
|
46
|
+
def antialiased=(antialiased)
|
47
|
+
@antialiased = antialiased
|
48
|
+
update()
|
49
|
+
end
|
50
|
+
|
51
|
+
def minimumSizeHint()
|
52
|
+
return Qt::Size.new(50, 50)
|
53
|
+
end
|
54
|
+
|
55
|
+
def sizeHint()
|
56
|
+
return Qt::Size.new(180, 180)
|
57
|
+
end
|
58
|
+
|
59
|
+
def nextAnimationFrame()
|
60
|
+
@frameNo += 1
|
61
|
+
update()
|
62
|
+
end
|
63
|
+
|
64
|
+
def paintEvent(event)
|
65
|
+
painter = Qt::Painter.new(self)
|
66
|
+
painter.setRenderHint(Qt::Painter::Antialiasing, @antialiased)
|
67
|
+
painter.translate(width() / 2, height() / 2)
|
68
|
+
|
69
|
+
diameter = 0
|
70
|
+
while diameter < 256
|
71
|
+
delta = ((@frameNo % 128) - diameter / 2).abs
|
72
|
+
alpha = 255 - (delta * delta) / 4 - diameter
|
73
|
+
if alpha > 0
|
74
|
+
painter.pen = Qt::Pen.new(Qt::Brush.new(Qt::Color.new(0, diameter / 2, 127, alpha)), 3)
|
75
|
+
|
76
|
+
if @floatBased
|
77
|
+
painter.drawEllipse(Qt::RectF.new(-diameter / 2.0, -diameter / 2.0,
|
78
|
+
diameter, diameter))
|
79
|
+
else
|
80
|
+
painter.drawEllipse(Qt::Rect.new(-diameter / 2, -diameter / 2,
|
81
|
+
diameter, diameter))
|
82
|
+
end
|
83
|
+
end
|
84
|
+
diameter += 9
|
85
|
+
end
|
86
|
+
painter.end
|
87
|
+
end
|
88
|
+
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 './window.rb'
|
28
|
+
|
29
|
+
app = Qt::Application.new(ARGV)
|
30
|
+
window = Window.new
|
31
|
+
window.show
|
32
|
+
app.exec
|
@@ -0,0 +1,72 @@
|
|
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
|
+
require './circlewidget.rb'
|
28
|
+
|
29
|
+
class Window < Qt::Widget
|
30
|
+
|
31
|
+
def initialize(parent = nil)
|
32
|
+
super
|
33
|
+
@aliasedLabel = createLabel(tr("Aliased"))
|
34
|
+
@antialiasedLabel = createLabel(tr("Antialiased"))
|
35
|
+
@intLabel = createLabel(tr("Int"))
|
36
|
+
@floatLabel = createLabel(tr("Float"))
|
37
|
+
@circleWidgets = Array.new(2, Array.new(2))
|
38
|
+
|
39
|
+
layout = Qt::GridLayout.new
|
40
|
+
layout.addWidget(@aliasedLabel, 0, 1)
|
41
|
+
layout.addWidget(@antialiasedLabel, 0, 2)
|
42
|
+
layout.addWidget(@intLabel, 1, 0)
|
43
|
+
layout.addWidget(@floatLabel, 2, 0)
|
44
|
+
|
45
|
+
timer = Qt::Timer.new(self)
|
46
|
+
|
47
|
+
(0...2).each do |i|
|
48
|
+
(0...2).each do |j|
|
49
|
+
@circleWidgets[i][j] = CircleWidget.new
|
50
|
+
@circleWidgets[i][j].antialiased = j != 0
|
51
|
+
@circleWidgets[i][j].floatBased = i != 0
|
52
|
+
|
53
|
+
connect(timer, SIGNAL('timeout()'),
|
54
|
+
@circleWidgets[i][j], SLOT('nextAnimationFrame()'))
|
55
|
+
|
56
|
+
layout.addWidget(@circleWidgets[i][j], i + 1, j + 1)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
timer.start(100)
|
60
|
+
setLayout(layout)
|
61
|
+
|
62
|
+
setWindowTitle(tr("Concentric Circles"))
|
63
|
+
end
|
64
|
+
|
65
|
+
def createLabel(text)
|
66
|
+
label = Qt::Label.new(text)
|
67
|
+
label.alignment = Qt::AlignCenter.to_i
|
68
|
+
label.margin = 2
|
69
|
+
label.frameStyle = Qt::Frame::Box | Qt::Frame::Sunken
|
70
|
+
return label
|
71
|
+
end
|
72
|
+
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
|
+
window = MainWindow.new
|
31
|
+
window.show
|
32
|
+
app.exec
|
@@ -0,0 +1,369 @@
|
|
1
|
+
=begin
|
2
|
+
**
|
3
|
+
** Copyright (C) 2004-2006 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 './ui_mainwindowbase.rb'
|
27
|
+
require './previewdialog.rb'
|
28
|
+
|
29
|
+
class MainWindow < Qt::MainWindow
|
30
|
+
|
31
|
+
|
32
|
+
slots 'on_clearAction_triggered()',
|
33
|
+
'on_markAction_triggered()',
|
34
|
+
'on_printAction_triggered()',
|
35
|
+
'on_printPreviewAction_triggered()',
|
36
|
+
'on_unmarkAction_triggered()',
|
37
|
+
'printPage(int, QPainter*, QPrinter*)',
|
38
|
+
'showFont(QTreeWidgetItem *)',
|
39
|
+
'updateStyles(QTreeWidgetItem *, int)'
|
40
|
+
|
41
|
+
def initialize(parent = nil)
|
42
|
+
super(parent)
|
43
|
+
@ui = Ui_MainWindowBase.new
|
44
|
+
@ui.setupUi(self)
|
45
|
+
@sampleSizes = []
|
46
|
+
@sampleSizes << 32 << 24 << 16 << 14 << 12 << 8 << 4 << 2 << 1
|
47
|
+
@markedCount = 0
|
48
|
+
@pageMap = {}
|
49
|
+
setupFontTree()
|
50
|
+
|
51
|
+
connect(@ui.quitAction, SIGNAL('triggered()'), $qApp, SLOT('quit()'))
|
52
|
+
connect(@ui.fontTree, SIGNAL('currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)'),
|
53
|
+
self, SLOT('showFont(QTreeWidgetItem *)'))
|
54
|
+
connect(@ui.fontTree, SIGNAL('itemChanged(QTreeWidgetItem *, int)'),
|
55
|
+
self, SLOT('updateStyles(QTreeWidgetItem *, int)'))
|
56
|
+
|
57
|
+
@ui.fontTree.setItemSelected(@ui.fontTree.topLevelItem(0), true)
|
58
|
+
showFont(@ui.fontTree.topLevelItem(0))
|
59
|
+
end
|
60
|
+
|
61
|
+
def setupFontTree()
|
62
|
+
database = Qt::FontDatabase.new
|
63
|
+
@ui.fontTree.columnCount = 1
|
64
|
+
@ui.fontTree.headerLabels = [tr("Font")]
|
65
|
+
|
66
|
+
database.families.each do |family|
|
67
|
+
styles = database.styles(family)
|
68
|
+
if styles.empty?
|
69
|
+
continue
|
70
|
+
end
|
71
|
+
|
72
|
+
familyItem = Qt::TreeWidgetItem.new(@ui.fontTree)
|
73
|
+
familyItem.setText(0, family)
|
74
|
+
familyItem.setCheckState(0, Qt::Unchecked)
|
75
|
+
|
76
|
+
styles.each do |style|
|
77
|
+
styleItem = Qt::TreeWidgetItem.new(familyItem)
|
78
|
+
styleItem.setText(0, style)
|
79
|
+
styleItem.setCheckState(0, Qt::Unchecked)
|
80
|
+
styleItem.setData(0, Qt::UserRole,
|
81
|
+
Qt::Variant.new(database.weight(family, style)))
|
82
|
+
styleItem.setData(0, Qt::UserRole + 1,
|
83
|
+
Qt::Variant.new(database.italic(family, style)))
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def on_clearAction_triggered()
|
89
|
+
currentItem = @ui.fontTree.currentItem()
|
90
|
+
@ui.fontTree.selectedItems.each do |item|
|
91
|
+
@ui.fontTree.setItemSelected(item, false)
|
92
|
+
end
|
93
|
+
@ui.fontTree.setItemSelected(currentItem, true)
|
94
|
+
end
|
95
|
+
|
96
|
+
def on_markAction_triggered()
|
97
|
+
markUnmarkFonts(Qt::Checked)
|
98
|
+
end
|
99
|
+
|
100
|
+
def on_unmarkAction_triggered()
|
101
|
+
markUnmarkFonts(Qt::Unchecked)
|
102
|
+
end
|
103
|
+
|
104
|
+
def markUnmarkFonts(state)
|
105
|
+
items = @ui.fontTree.selectedItems()
|
106
|
+
items.each do |item|
|
107
|
+
if item.checkState(0) != state
|
108
|
+
item.setCheckState(0, state)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def showFont(item)
|
114
|
+
if item.nil?
|
115
|
+
return
|
116
|
+
end
|
117
|
+
|
118
|
+
if !item.parent.nil?
|
119
|
+
family = item.parent().text(0)
|
120
|
+
style = item.text(0)
|
121
|
+
weight = item.data(0, Qt::UserRole).to_i
|
122
|
+
italic = item.data(0, Qt::UserRole + 1).toBool()
|
123
|
+
else
|
124
|
+
family = item.text(0)
|
125
|
+
style = item.child(0).text(0)
|
126
|
+
weight = item.child(0).data(0, Qt::UserRole).to_i
|
127
|
+
italic = item.child(0).data(0, Qt::UserRole + 1).toBool()
|
128
|
+
end
|
129
|
+
|
130
|
+
oldText = @ui.textEdit.toPlainText.lstrip.rstrip
|
131
|
+
modified = @ui.textEdit.document.modified?
|
132
|
+
@ui.textEdit.clear
|
133
|
+
@ui.textEdit.document.setDefaultFont(Qt::Font.new(family, 32, weight, italic))
|
134
|
+
|
135
|
+
cursor = @ui.textEdit.textCursor()
|
136
|
+
blockFormat = Qt::TextBlockFormat.new
|
137
|
+
blockFormat.alignment = Qt::AlignCenter
|
138
|
+
cursor.insertBlock(blockFormat)
|
139
|
+
|
140
|
+
if modified
|
141
|
+
cursor.insertText(oldText)
|
142
|
+
else
|
143
|
+
cursor.insertText("%s %s" % [family, style])
|
144
|
+
end
|
145
|
+
|
146
|
+
@ui.textEdit.document().modified = modified
|
147
|
+
end
|
148
|
+
|
149
|
+
def updateStyles(item, column)
|
150
|
+
if item.nil? || column != 0
|
151
|
+
return
|
152
|
+
end
|
153
|
+
state = item.checkState(0)
|
154
|
+
parent = item.parent
|
155
|
+
|
156
|
+
if !parent.nil?
|
157
|
+
|
158
|
+
# Only count style items.
|
159
|
+
if state == Qt::Checked
|
160
|
+
@markedCount += 1
|
161
|
+
else
|
162
|
+
@markedCount -= 1
|
163
|
+
end
|
164
|
+
|
165
|
+
if state == Qt::Checked &&
|
166
|
+
parent.checkState(0) == Qt::Unchecked
|
167
|
+
# Mark parent items when child items are checked.
|
168
|
+
parent.setCheckState(0, Qt::Checked)
|
169
|
+
elsif state == Qt::Unchecked &&
|
170
|
+
parent.checkState(0) == Qt::Checked
|
171
|
+
marked = false
|
172
|
+
for row in 0..(parent.childCount - 1)
|
173
|
+
if parent.child(row).checkState(0) == Qt::Checked
|
174
|
+
marked = true
|
175
|
+
break
|
176
|
+
end
|
177
|
+
end
|
178
|
+
# Unmark parent items when all child items are unchecked.
|
179
|
+
if !marked
|
180
|
+
parent.setCheckState(0, Qt::Unchecked)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
else
|
184
|
+
row
|
185
|
+
number = 0
|
186
|
+
for row in 0..(item.childCount - 1)
|
187
|
+
if item.child(row).checkState(0) == Qt::Checked
|
188
|
+
number += 1
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
# Mark/unmark all child items when marking/unmarking top-level
|
193
|
+
# items.
|
194
|
+
if state == Qt::Checked && number == 0
|
195
|
+
for row in 0..(item.childCount - 1)
|
196
|
+
if item.child(row).checkState(0) == Qt::Unchecked
|
197
|
+
item.child(row).setCheckState(0, Qt::Checked)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
elsif state == Qt::Unchecked && number > 0
|
201
|
+
for row in 0..(item.childCount - 1)
|
202
|
+
if item.child(row).checkState(0) == Qt::Checked
|
203
|
+
item.child(row).setCheckState(0, Qt::Unchecked)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
@ui.printAction.enabled = @markedCount > 0
|
210
|
+
@ui.printPreviewAction.enabled = @markedCount > 0
|
211
|
+
end
|
212
|
+
|
213
|
+
def on_printAction_triggered()
|
214
|
+
@pageMap = currentPageMap()
|
215
|
+
|
216
|
+
if @pageMap.length == 0
|
217
|
+
return
|
218
|
+
end
|
219
|
+
|
220
|
+
printer = Qt::Printer.new(Qt::Printer::HighResolution)
|
221
|
+
if !setupPrinter(printer)
|
222
|
+
return
|
223
|
+
end
|
224
|
+
|
225
|
+
from = printer.fromPage()
|
226
|
+
to = printer.toPage()
|
227
|
+
if from <= 0 && to <= 0
|
228
|
+
from = 1
|
229
|
+
to = @pageMap.keys().length
|
230
|
+
end
|
231
|
+
|
232
|
+
progress = Qt::ProgressDialog.new(tr("Printing font samples..."), tr("&Cancel"),
|
233
|
+
0, @pageMap.length, self)
|
234
|
+
progress.windowModality = Qt::ApplicationModal
|
235
|
+
progress.windowTitle = tr("Printing")
|
236
|
+
progress.minimum = from - 1
|
237
|
+
progress.maximum = to
|
238
|
+
|
239
|
+
painter = Qt::Painter.new
|
240
|
+
painter.begin(printer)
|
241
|
+
firstPage = true
|
242
|
+
|
243
|
+
for index in -1..to
|
244
|
+
if !firstPage
|
245
|
+
printer.newPage()
|
246
|
+
end
|
247
|
+
|
248
|
+
$qApp.processEvents()
|
249
|
+
if progress.wasCanceled()
|
250
|
+
break
|
251
|
+
end
|
252
|
+
|
253
|
+
printPage(index, painter, printer)
|
254
|
+
progress.value = index + 1
|
255
|
+
firstPage = false
|
256
|
+
end
|
257
|
+
|
258
|
+
painter.end
|
259
|
+
end
|
260
|
+
|
261
|
+
def on_printPreviewAction_triggered()
|
262
|
+
@pageMap = currentPageMap()
|
263
|
+
|
264
|
+
if @pageMap.length == 0
|
265
|
+
return
|
266
|
+
end
|
267
|
+
printer = Qt::Printer.new
|
268
|
+
|
269
|
+
preview = PreviewDialog.new(printer, self)
|
270
|
+
connect(preview,
|
271
|
+
SIGNAL('pageRequested(int, QPainter*, QPrinter*)'),
|
272
|
+
self, SLOT('printPage(int, QPainter*, QPrinter*)'),
|
273
|
+
Qt::DirectConnection)
|
274
|
+
|
275
|
+
preview.setNumberOfPages = @pageMap.length
|
276
|
+
preview.exec()
|
277
|
+
end
|
278
|
+
|
279
|
+
def currentPageMap()
|
280
|
+
pageMap = {}
|
281
|
+
|
282
|
+
for row in 0..(@ui.fontTree.topLevelItemCount - 1)
|
283
|
+
familyItem = @ui.fontTree.topLevelItem(row)
|
284
|
+
|
285
|
+
if familyItem.checkState(0) == Qt::Checked
|
286
|
+
family = familyItem.text(0)
|
287
|
+
pageMap[family] = []
|
288
|
+
end
|
289
|
+
|
290
|
+
for childRow in 0..(familyItem.childCount - 1)
|
291
|
+
styleItem = familyItem.child(childRow)
|
292
|
+
if styleItem.checkState(0) == Qt::Checked
|
293
|
+
pageMap[family] << styleItem
|
294
|
+
end
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
return pageMap
|
299
|
+
end
|
300
|
+
|
301
|
+
def setupPrinter(printer)
|
302
|
+
dialog = Qt::PrintDialog.new(printer, self)
|
303
|
+
return dialog.exec() == Qt::Dialog::Accepted
|
304
|
+
end
|
305
|
+
|
306
|
+
def printPage(index, painter, printer)
|
307
|
+
pageMap = currentPageMap()
|
308
|
+
family = pageMap.keys()[index]
|
309
|
+
items = pageMap[family]
|
310
|
+
|
311
|
+
# Find the dimensions of the text on each page.
|
312
|
+
width = 0.0
|
313
|
+
height = 0.0
|
314
|
+
items.each do |item|
|
315
|
+
style = item.text(0)
|
316
|
+
weight = item.data(0, Qt::UserRole).to_i
|
317
|
+
italic = item.data(0, Qt::UserRole + 1).toBool()
|
318
|
+
|
319
|
+
# Calculate the maximum width and total height of the text.
|
320
|
+
@sampleSizes.each do |size|
|
321
|
+
font = Qt::Font.new(family, size, weight, italic)
|
322
|
+
font = Qt::Font.new(font, painter.device())
|
323
|
+
fontMetrics = Qt::FontMetricsF.new(font)
|
324
|
+
rect = fontMetrics.boundingRect(
|
325
|
+
"%s %s" % [family, style])
|
326
|
+
width = [rect.width(), width].max
|
327
|
+
height += rect.height()
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
xScale = printer.pageRect().width() / width
|
332
|
+
yScale = printer.pageRect().height() / height
|
333
|
+
scale = [xScale, yScale].min
|
334
|
+
|
335
|
+
remainingHeight = printer.pageRect().height()/scale - height
|
336
|
+
spaceHeight = (remainingHeight/4.0) / (items.length + 1)
|
337
|
+
interLineHeight = (remainingHeight/4.0) / (@sampleSizes.length * items.count())
|
338
|
+
|
339
|
+
painter.save()
|
340
|
+
painter.translate(printer.pageRect().width()/2.0, printer.pageRect().height()/2.0)
|
341
|
+
painter.scale(scale, scale)
|
342
|
+
painter.brush = Qt::Brush.new(Qt::black)
|
343
|
+
|
344
|
+
x = -width/2.0
|
345
|
+
y = -height/2.0 - remainingHeight/4.0 + spaceHeight
|
346
|
+
|
347
|
+
items.each do |item|
|
348
|
+
style = item.text(0)
|
349
|
+
weight = item.data(0, Qt::UserRole).to_i
|
350
|
+
italic = item.data(0, Qt::UserRole + 1).toBool()
|
351
|
+
|
352
|
+
# Draw each line of text
|
353
|
+
@sampleSizes.each do |size|
|
354
|
+
font = Qt::Font.new(family, size, weight, italic)
|
355
|
+
font = Qt::Font.new(font, painter.device())
|
356
|
+
fontMetrics = Qt::FontMetricsF.new(font)
|
357
|
+
rect = fontMetrics.boundingRect("%s %s" % [font.family(), style])
|
358
|
+
y += rect.height()
|
359
|
+
painter.font = font
|
360
|
+
painter.drawText(Qt::PointF.new(x, y),
|
361
|
+
"%s %s" % [family, style])
|
362
|
+
y += interLineHeight
|
363
|
+
end
|
364
|
+
y += spaceHeight
|
365
|
+
end
|
366
|
+
|
367
|
+
painter.restore()
|
368
|
+
end
|
369
|
+
end
|