qtbindings 4.6.3.0-x86-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.
- data/CHANGELOG.txt +9 -0
- data/CMakeLists.txt +22 -0
- data/COPYING.LIB.txt +510 -0
- data/COPYING.txt +286 -0
- data/KNOWN_ISSUES.txt +20 -0
- data/README.txt +92 -0
- data/Rakefile +96 -0
- data/TODO.txt +2 -0
- data/bin/1.8/rbrcc.exe +0 -0
- data/bin/1.8/rbuic4.exe +0 -0
- data/bin/1.8/smokeapi.exe +0 -0
- data/bin/1.8/smokedeptool.exe +0 -0
- data/bin/1.9/rbrcc.exe +0 -0
- data/bin/1.9/rbuic4.exe +0 -0
- data/bin/1.9/smokeapi.exe +0 -0
- data/bin/1.9/smokedeptool.exe +0 -0
- data/bin/Qt3Support4.dll +0 -0
- data/bin/QtAssistantClient4.dll +0 -0
- data/bin/QtCLucene4.dll +0 -0
- data/bin/QtCore4.dll +0 -0
- data/bin/QtDesigner4.dll +0 -0
- data/bin/QtDesignerComponents4.dll +0 -0
- data/bin/QtGui4.dll +0 -0
- data/bin/QtHelp4.dll +0 -0
- data/bin/QtMultimedia4.dll +0 -0
- data/bin/QtNetwork4.dll +0 -0
- data/bin/QtOpenGL4.dll +0 -0
- data/bin/QtScript4.dll +0 -0
- data/bin/QtScriptTools4.dll +0 -0
- data/bin/QtSql4.dll +0 -0
- data/bin/QtSvg4.dll +0 -0
- data/bin/QtTest4.dll +0 -0
- data/bin/QtWebKit4.dll +0 -0
- data/bin/QtXml4.dll +0 -0
- data/bin/QtXmlPatterns4.dll +0 -0
- data/bin/libgcc_s_dw2-1.dll +0 -0
- data/bin/mingwm10.dll +0 -0
- data/bin/phonon4.dll +0 -0
- data/bin/plugins/arthurplugin.dll +0 -0
- data/bin/plugins/containerextension.dll +0 -0
- data/bin/plugins/customwidgetplugin.dll +0 -0
- data/bin/plugins/phononwidgets.dll +0 -0
- data/bin/plugins/qcncodecs4.dll +0 -0
- data/bin/plugins/qgif4.dll +0 -0
- data/bin/plugins/qglgraphicssystem4.dll +0 -0
- data/bin/plugins/qico4.dll +0 -0
- data/bin/plugins/qjpcodecs4.dll +0 -0
- data/bin/plugins/qjpeg4.dll +0 -0
- data/bin/plugins/qkrcodecs4.dll +0 -0
- data/bin/plugins/qmng4.dll +0 -0
- data/bin/plugins/qsqlite4.dll +0 -0
- data/bin/plugins/qsqlodbc4.dll +0 -0
- data/bin/plugins/qsvg4.dll +0 -0
- data/bin/plugins/qsvgicon4.dll +0 -0
- data/bin/plugins/qt3supportwidgets.dll +0 -0
- data/bin/plugins/qtaccessiblecompatwidgets4.dll +0 -0
- data/bin/plugins/qtaccessiblewidgets4.dll +0 -0
- data/bin/plugins/qtiff4.dll +0 -0
- data/bin/plugins/qtracegraphicssystem4.dll +0 -0
- data/bin/plugins/qtwcodecs4.dll +0 -0
- data/bin/plugins/qwebview.dll +0 -0
- data/bin/plugins/taskmenuextension.dll +0 -0
- data/bin/plugins/worldtimeclockplugin.dll +0 -0
- data/bin/rbqtapi +152 -0
- data/bin/rbrcc +18 -0
- data/bin/rbuic4 +18 -0
- data/bin/smokeapi +18 -0
- data/bin/smokedeptool +18 -0
- data/examples/base/kicons.rb +54 -0
- data/examples/base/rui.rb +21 -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 +156 -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 +223 -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 +98 -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 +70 -0
- data/examples/network/fortuneclient/client.rb +150 -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 +254 -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 +368 -0
- data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
- data/examples/painting/fontsampler/makefile +8 -0
- data/examples/painting/fontsampler/previewdialog.rb +256 -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/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 +14 -0
- data/examples/textedit/textedit.rb +150 -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/ext/CMakeLists.txt +22 -0
- data/ext/cmake/modules/CMakeCSharpCompiler.cmake.in +7 -0
- data/ext/cmake/modules/CMakeCSharpInformation.cmake +366 -0
- data/ext/cmake/modules/CMakeDetermineCSharpCompiler.cmake +85 -0
- data/ext/cmake/modules/CMakeTestCSharpCompiler.cmake +1 -0
- data/ext/cmake/modules/CheckCXXSourceCompiles.cmake +68 -0
- data/ext/cmake/modules/FindMono.cmake +36 -0
- data/ext/cmake/modules/FindPHP5.cmake +179 -0
- data/ext/cmake/modules/FindPerlMore.cmake +78 -0
- data/ext/cmake/modules/FindQScintilla.cmake +57 -0
- data/ext/cmake/modules/FindQt4.cmake +1271 -0
- data/ext/cmake/modules/FindQwt5.cmake +104 -0
- data/ext/cmake/modules/FindRuby.cmake +261 -0
- data/ext/cmake/modules/FindSmoke.cmake +78 -0
- data/ext/cmake/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake +85 -0
- data/ext/cmake/modules/MacroLogFeature.cmake +146 -0
- data/ext/cmake/modules/MacroOptionalAddBindings.cmake +47 -0
- data/ext/cmake/modules/MacroOptionalFindPackage.cmake +48 -0
- data/ext/cmake/modules/MacroPushRequiredVars.cmake +47 -0
- data/ext/cmake/modules/Qt4ConfigDependentSettings.cmake +384 -0
- data/ext/cmake/modules/Qt4Macros.cmake +414 -0
- data/ext/generator/CMakeLists.txt +38 -0
- data/ext/generator/generator_export.h +31 -0
- data/ext/generator/generatorenvironment.cpp +52 -0
- data/ext/generator/generatorenvironment.h +35 -0
- data/ext/generator/generatorpreprocessor.cpp +242 -0
- data/ext/generator/generatorpreprocessor.h +83 -0
- data/ext/generator/generators/CMakeLists.txt +4 -0
- data/ext/generator/generators/dump/CMakeLists.txt +10 -0
- data/ext/generator/generators/dump/generator_dump.cpp +36 -0
- data/ext/generator/generators/smoke/CMakeLists.txt +13 -0
- data/ext/generator/generators/smoke/generator_smoke.cpp +233 -0
- data/ext/generator/generators/smoke/globals.h +138 -0
- data/ext/generator/generators/smoke/helpers.cpp +773 -0
- data/ext/generator/generators/smoke/writeClasses.cpp +502 -0
- data/ext/generator/generators/smoke/writeSmokeDataFile.cpp +729 -0
- data/ext/generator/generatorvisitor.cpp +922 -0
- data/ext/generator/generatorvisitor.h +119 -0
- data/ext/generator/main.cpp +239 -0
- data/ext/generator/name_compiler.cpp +205 -0
- data/ext/generator/name_compiler.h +76 -0
- data/ext/generator/options.cpp +32 -0
- data/ext/generator/options.h +45 -0
- data/ext/generator/parser/CMakeLists.txt +41 -0
- data/ext/generator/parser/ast.cpp +21 -0
- data/ext/generator/parser/ast.h +923 -0
- data/ext/generator/parser/astutilities.h +65 -0
- data/ext/generator/parser/codegenerator.cpp +867 -0
- data/ext/generator/parser/codegenerator.h +180 -0
- data/ext/generator/parser/codemodel_fwd.h +76 -0
- data/ext/generator/parser/commentformatter.cpp +54 -0
- data/ext/generator/parser/commentformatter.h +45 -0
- data/ext/generator/parser/commentparser.cpp +109 -0
- data/ext/generator/parser/commentparser.h +84 -0
- data/ext/generator/parser/control.cpp +40 -0
- data/ext/generator/parser/control.h +51 -0
- data/ext/generator/parser/cppparser_export.h +33 -0
- data/ext/generator/parser/default_visitor.cpp +470 -0
- data/ext/generator/parser/default_visitor.h +116 -0
- data/ext/generator/parser/dumptree.cpp +146 -0
- data/ext/generator/parser/dumptree.h +50 -0
- data/ext/generator/parser/indexedstring.cpp +213 -0
- data/ext/generator/parser/indexedstring.h +147 -0
- data/ext/generator/parser/kdevelop-parser-rev +1 -0
- data/ext/generator/parser/kdevvarlengtharray.h +346 -0
- data/ext/generator/parser/lexer.cpp +963 -0
- data/ext/generator/parser/lexer.h +308 -0
- data/ext/generator/parser/listnode.cpp +20 -0
- data/ext/generator/parser/listnode.h +97 -0
- data/ext/generator/parser/memorypool.cpp +20 -0
- data/ext/generator/parser/memorypool.h +41 -0
- data/ext/generator/parser/name_compiler.cpp +190 -0
- data/ext/generator/parser/name_compiler.h +77 -0
- data/ext/generator/parser/parser.cpp +4706 -0
- data/ext/generator/parser/parser.h +300 -0
- data/ext/generator/parser/parsesession.cpp +105 -0
- data/ext/generator/parser/parsesession.h +87 -0
- data/ext/generator/parser/problem.h +21 -0
- data/ext/generator/parser/rpp/CMakeLists.txt +39 -0
- data/ext/generator/parser/rpp/Makefile.am +13 -0
- data/ext/generator/parser/rpp/anchor.h +51 -0
- data/ext/generator/parser/rpp/appendedlist.h +363 -0
- data/ext/generator/parser/rpp/chartools.cpp +126 -0
- data/ext/generator/parser/rpp/chartools.h +90 -0
- data/ext/generator/parser/rpp/macrorepository.cpp +44 -0
- data/ext/generator/parser/rpp/macrorepository.h +59 -0
- data/ext/generator/parser/rpp/pp-configuration +86 -0
- data/ext/generator/parser/rpp/pp-engine.cpp +1216 -0
- data/ext/generator/parser/rpp/pp-engine.h +267 -0
- data/ext/generator/parser/rpp/pp-environment.cpp +271 -0
- data/ext/generator/parser/rpp/pp-environment.h +119 -0
- data/ext/generator/parser/rpp/pp-internal.cpp +38 -0
- data/ext/generator/parser/rpp/pp-internal.h +37 -0
- data/ext/generator/parser/rpp/pp-location.cpp +191 -0
- data/ext/generator/parser/rpp/pp-location.h +89 -0
- data/ext/generator/parser/rpp/pp-macro-expander.cpp +568 -0
- data/ext/generator/parser/rpp/pp-macro-expander.cpp.orig +558 -0
- data/ext/generator/parser/rpp/pp-macro-expander.h +130 -0
- data/ext/generator/parser/rpp/pp-macro.cpp +153 -0
- data/ext/generator/parser/rpp/pp-macro.h +176 -0
- data/ext/generator/parser/rpp/pp-scanner.cpp +310 -0
- data/ext/generator/parser/rpp/pp-scanner.h +97 -0
- data/ext/generator/parser/rpp/pp-stream.cpp +425 -0
- data/ext/generator/parser/rpp/pp-stream.h +183 -0
- data/ext/generator/parser/rpp/preprocessor.cpp +65 -0
- data/ext/generator/parser/rpp/preprocessor.h +80 -0
- data/ext/generator/parser/rpp/rpp.pri +2 -0
- data/ext/generator/parser/rpp/test/t001.cpp +23 -0
- data/ext/generator/parser/rpp/test/t002.cpp +15 -0
- data/ext/generator/parser/rpp/test/t003.cpp +10 -0
- data/ext/generator/parser/rpp/test/t004.cpp +9 -0
- data/ext/generator/parser/rpp/test/t005.cpp +10 -0
- data/ext/generator/parser/rpp/test/t006.cpp +10 -0
- data/ext/generator/parser/rpp/test/t007.cpp +6 -0
- data/ext/generator/parser/rpp/test/t008.cpp +6 -0
- data/ext/generator/parser/rpp/test/t009.cpp +5 -0
- data/ext/generator/parser/rpp/test/t010.cpp +15 -0
- data/ext/generator/parser/rpp/test/t011.cpp +9 -0
- data/ext/generator/parser/rpp/tests/CMakeLists.txt +13 -0
- data/ext/generator/parser/rpp/tests/main.cpp +69 -0
- data/ext/generator/parser/rxx.pri +50 -0
- data/ext/generator/parser/rxx_allocator.h +128 -0
- data/ext/generator/parser/safetycounter.h +57 -0
- data/ext/generator/parser/simplecursor.h +74 -0
- data/ext/generator/parser/stringhelpers.cpp +577 -0
- data/ext/generator/parser/stringhelpers.h +118 -0
- data/ext/generator/parser/symbol.h +140 -0
- data/ext/generator/parser/tests/CMakeLists.txt +30 -0
- data/ext/generator/parser/tests/test_generator.cpp +259 -0
- data/ext/generator/parser/tests/test_parser.cpp +474 -0
- data/ext/generator/parser/tests/test_pool.cpp +109 -0
- data/ext/generator/parser/tests/test_pool.h +35 -0
- data/ext/generator/parser/tests/testconfig.h.cmake +4 -0
- data/ext/generator/parser/tokens.cpp +364 -0
- data/ext/generator/parser/tokens.h +147 -0
- data/ext/generator/parser/type_compiler.cpp +135 -0
- data/ext/generator/parser/type_compiler.h +68 -0
- data/ext/generator/parser/visitor.cpp +115 -0
- data/ext/generator/parser/visitor.h +138 -0
- data/ext/generator/type.cpp +195 -0
- data/ext/generator/type.h +497 -0
- data/ext/generator/type_compiler.cpp +275 -0
- data/ext/generator/type_compiler.h +80 -0
- data/ext/ruby/CMakeLists.txt +63 -0
- data/ext/ruby/qtruby/AUTHORS +54 -0
- data/ext/ruby/qtruby/CMakeLists.txt +4 -0
- data/ext/ruby/qtruby/COPYING +355 -0
- data/ext/ruby/qtruby/COPYING.LIB +510 -0
- data/ext/ruby/qtruby/ChangeLog +3732 -0
- data/ext/ruby/qtruby/INSTALL +79 -0
- data/ext/ruby/qtruby/README +264 -0
- data/ext/ruby/qtruby/TODO +8 -0
- data/ext/ruby/qtruby/bin/CMakeLists.txt +1 -0
- data/ext/ruby/qtruby/bin/rbqtapi +152 -0
- data/ext/ruby/qtruby/examples/base/kicons.rb +54 -0
- data/ext/ruby/qtruby/examples/base/rui.rb +21 -0
- data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
- data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
- data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
- data/ext/ruby/qtruby/examples/designer/calculatorbuilder/main.rb +33 -0
- data/ext/ruby/qtruby/examples/designer/calculatorbuilder/makefile +2 -0
- data/ext/ruby/qtruby/examples/designer/calculatorform/calculatorform.rb +46 -0
- data/ext/ruby/qtruby/examples/designer/calculatorform/calculatorform.ui +277 -0
- data/ext/ruby/qtruby/examples/designer/calculatorform/main.rb +32 -0
- data/ext/ruby/qtruby/examples/designer/calculatorform/makefile +3 -0
- data/ext/ruby/qtruby/examples/desktop/screenshot/main.rb +32 -0
- data/ext/ruby/qtruby/examples/desktop/screenshot/screenshot.rb +156 -0
- data/ext/ruby/qtruby/examples/desktop/systray/images/bad.svg +64 -0
- data/ext/ruby/qtruby/examples/desktop/systray/images/heart.svg +55 -0
- data/ext/ruby/qtruby/examples/desktop/systray/images/trash.svg +58 -0
- data/ext/ruby/qtruby/examples/desktop/systray/main.rb +41 -0
- data/ext/ruby/qtruby/examples/desktop/systray/makefile +2 -0
- data/ext/ruby/qtruby/examples/desktop/systray/systray.qrc +7 -0
- data/ext/ruby/qtruby/examples/desktop/systray/window.rb +223 -0
- data/ext/ruby/qtruby/examples/dialogs/complexwizard/complexwizard.rb +140 -0
- data/ext/ruby/qtruby/examples/dialogs/complexwizard/licensewizard.rb +294 -0
- data/ext/ruby/qtruby/examples/dialogs/complexwizard/main.rb +31 -0
- data/ext/ruby/qtruby/examples/dialogs/configdialog/configdialog.rb +109 -0
- data/ext/ruby/qtruby/examples/dialogs/configdialog/images/config.png +0 -0
- data/ext/ruby/qtruby/examples/dialogs/configdialog/images/query.png +0 -0
- data/ext/ruby/qtruby/examples/dialogs/configdialog/images/update.png +0 -0
- data/ext/ruby/qtruby/examples/dialogs/configdialog/main.rb +31 -0
- data/ext/ruby/qtruby/examples/dialogs/configdialog/pages.rb +140 -0
- data/ext/ruby/qtruby/examples/dialogs/extension/finddialog.rb +89 -0
- data/ext/ruby/qtruby/examples/dialogs/extension/main.rb +31 -0
- data/ext/ruby/qtruby/examples/dialogs/findfiles/main.rb +32 -0
- data/ext/ruby/qtruby/examples/dialogs/findfiles/window.rb +177 -0
- data/ext/ruby/qtruby/examples/dialogs/simplewizard/classwizard.rb +374 -0
- data/ext/ruby/qtruby/examples/dialogs/simplewizard/main.rb +31 -0
- data/ext/ruby/qtruby/examples/dialogs/simplewizard/simplewizard.rb +110 -0
- data/ext/ruby/qtruby/examples/dialogs/standarddialogs/dialog.rb +340 -0
- data/ext/ruby/qtruby/examples/dialogs/standarddialogs/main.rb +31 -0
- data/ext/ruby/qtruby/examples/dialogs/tabdialog/main.rb +38 -0
- data/ext/ruby/qtruby/examples/dialogs/tabdialog/tabdialog.rb +178 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/boat.png +0 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/car.png +0 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/house.png +0 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggableicons/main.rb +41 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggabletext/draglabel.rb +51 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggabletext/main.rb +33 -0
- data/ext/ruby/qtruby/examples/draganddrop/draggabletext/words.txt +41 -0
- data/ext/ruby/qtruby/examples/draganddrop/dropsite/dropsitewidget.rb +98 -0
- data/ext/ruby/qtruby/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
- data/ext/ruby/qtruby/examples/draganddrop/dropsite/main.rb +33 -0
- data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
- data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
- data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/main.rb +33 -0
- data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/words.txt +48 -0
- data/ext/ruby/qtruby/examples/draganddrop/puzzle/example.jpg +0 -0
- data/ext/ruby/qtruby/examples/draganddrop/puzzle/main.rb +33 -0
- data/ext/ruby/qtruby/examples/draganddrop/puzzle/mainwindow.rb +136 -0
- data/ext/ruby/qtruby/examples/draganddrop/puzzle/pieceslist.rb +95 -0
- data/ext/ruby/qtruby/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
- data/ext/ruby/qtruby/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
- data/ext/ruby/qtruby/examples/graphicsview/collidingmice/main.rb +53 -0
- data/ext/ruby/qtruby/examples/graphicsview/collidingmice/makefile +2 -0
- data/ext/ruby/qtruby/examples/graphicsview/collidingmice/mice.qrc +5 -0
- data/ext/ruby/qtruby/examples/graphicsview/collidingmice/mouse.rb +176 -0
- data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
- data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/images/head.png +0 -0
- data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/main.rb +57 -0
- data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/makefile +2 -0
- data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
- data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/robot.rb +246 -0
- data/ext/ruby/qtruby/examples/itemviews/chart/chart.qrc +5 -0
- data/ext/ruby/qtruby/examples/itemviews/chart/main.rb +33 -0
- data/ext/ruby/qtruby/examples/itemviews/chart/mainwindow.rb +151 -0
- data/ext/ruby/qtruby/examples/itemviews/chart/makefile +2 -0
- data/ext/ruby/qtruby/examples/itemviews/chart/mydata.cht +8 -0
- data/ext/ruby/qtruby/examples/itemviews/chart/pieview.rb +516 -0
- data/ext/ruby/qtruby/examples/itemviews/chart/qtdata.cht +14 -0
- data/ext/ruby/qtruby/examples/itemviews/dirview/main.rb +39 -0
- data/ext/ruby/qtruby/examples/itemviews/pixelator/imagemodel.rb +51 -0
- data/ext/ruby/qtruby/examples/itemviews/pixelator/images.qrc +5 -0
- data/ext/ruby/qtruby/examples/itemviews/pixelator/images/qt.png +0 -0
- data/ext/ruby/qtruby/examples/itemviews/pixelator/main.rb +34 -0
- data/ext/ruby/qtruby/examples/itemviews/pixelator/mainwindow.rb +218 -0
- data/ext/ruby/qtruby/examples/itemviews/pixelator/makefile +3 -0
- data/ext/ruby/qtruby/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
- data/ext/ruby/qtruby/examples/itemviews/puzzle/example.jpg +0 -0
- data/ext/ruby/qtruby/examples/itemviews/puzzle/main.rb +36 -0
- data/ext/ruby/qtruby/examples/itemviews/puzzle/mainwindow.rb +143 -0
- data/ext/ruby/qtruby/examples/itemviews/puzzle/piecesmodel.rb +174 -0
- data/ext/ruby/qtruby/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
- data/ext/ruby/qtruby/examples/itemviews/simpledommodel/domitem.rb +62 -0
- data/ext/ruby/qtruby/examples/itemviews/simpledommodel/dommodel.rb +139 -0
- data/ext/ruby/qtruby/examples/itemviews/simpledommodel/main.rb +33 -0
- data/ext/ruby/qtruby/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
- data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/default.txt +40 -0
- data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/main.rb +41 -0
- data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/makefile +2 -0
- data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
- data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
- data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
- data/ext/ruby/qtruby/examples/itemviews/sortingmodel/default.txt +40 -0
- data/ext/ruby/qtruby/examples/itemviews/sortingmodel/main.rb +53 -0
- data/ext/ruby/qtruby/examples/itemviews/sortingmodel/treeitem.rb +73 -0
- data/ext/ruby/qtruby/examples/itemviews/sortingmodel/treemodel.rb +166 -0
- data/ext/ruby/qtruby/examples/itemviews/spinboxdelegate/main.rb +47 -0
- data/ext/ruby/qtruby/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
- data/ext/ruby/qtruby/examples/killerfilter/killerfilter.rb +55 -0
- data/ext/ruby/qtruby/examples/layouts/basiclayouts/dialog.rb +110 -0
- data/ext/ruby/qtruby/examples/layouts/basiclayouts/main.rb +31 -0
- data/ext/ruby/qtruby/examples/layouts/borderlayout/borderlayout.rb +190 -0
- data/ext/ruby/qtruby/examples/layouts/borderlayout/main.rb +32 -0
- data/ext/ruby/qtruby/examples/layouts/borderlayout/window.rb +52 -0
- data/ext/ruby/qtruby/examples/layouts/flowlayouts/flowlayout.rb +108 -0
- data/ext/ruby/qtruby/examples/layouts/flowlayouts/main.rb +32 -0
- data/ext/ruby/qtruby/examples/layouts/flowlayouts/window.rb +43 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/images/copy.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/images/cut.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/images/new.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/images/open.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/images/paste.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/images/save.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/main.rb +32 -0
- data/ext/ruby/qtruby/examples/mainwindows/application/mainwindow.rb +285 -0
- data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/new.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/print.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/save.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/undo.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/main.rb +32 -0
- data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/images/copy.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/images/cut.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/images/new.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/images/open.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/images/paste.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/images/save.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/main.rb +32 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/mainwindow.rb +363 -0
- data/ext/ruby/qtruby/examples/mainwindows/mdi/mdichild.rb +152 -0
- data/ext/ruby/qtruby/examples/mainwindows/menus/main.rb +32 -0
- data/ext/ruby/qtruby/examples/mainwindows/menus/mainwindow.rb +327 -0
- data/ext/ruby/qtruby/examples/mainwindows/recentfiles/main.rb +32 -0
- data/ext/ruby/qtruby/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/images/copy.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/images/cut.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/images/new.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/images/open.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/images/paste.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/images/save.png +0 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/main.rb +32 -0
- data/ext/ruby/qtruby/examples/mainwindows/sdi/mainwindow.rb +335 -0
- data/ext/ruby/qtruby/examples/network/broadcastreceiver/main.rb +32 -0
- data/ext/ruby/qtruby/examples/network/broadcastreceiver/receiver.rb +64 -0
- data/ext/ruby/qtruby/examples/network/broadcastsender/main.rb +32 -0
- data/ext/ruby/qtruby/examples/network/broadcastsender/sender.rb +70 -0
- data/ext/ruby/qtruby/examples/network/fortuneclient/client.rb +150 -0
- data/ext/ruby/qtruby/examples/network/fortuneclient/main.rb +32 -0
- data/ext/ruby/qtruby/examples/network/fortuneserver/main.rb +32 -0
- data/ext/ruby/qtruby/examples/network/fortuneserver/server.rb +88 -0
- data/ext/ruby/qtruby/examples/network/ftp/ftpwindow.rb +254 -0
- data/ext/ruby/qtruby/examples/network/ftp/images/cdtoparent.png +0 -0
- data/ext/ruby/qtruby/examples/network/ftp/images/dir.png +0 -0
- data/ext/ruby/qtruby/examples/network/ftp/images/file.png +0 -0
- data/ext/ruby/qtruby/examples/network/ftp/main.rb +32 -0
- data/ext/ruby/qtruby/examples/network/http/httpwindow.rb +187 -0
- data/ext/ruby/qtruby/examples/network/http/main.rb +32 -0
- data/ext/ruby/qtruby/examples/network/loopback/dialog.rb +163 -0
- data/ext/ruby/qtruby/examples/network/loopback/main.rb +32 -0
- data/ext/ruby/qtruby/examples/opengl/grabber/glwidget.rb +265 -0
- data/ext/ruby/qtruby/examples/opengl/grabber/main.rb +32 -0
- data/ext/ruby/qtruby/examples/opengl/grabber/mainwindow.rb +189 -0
- data/ext/ruby/qtruby/examples/opengl/hellogl/glwidget.rb +226 -0
- data/ext/ruby/qtruby/examples/opengl/hellogl/main.rb +32 -0
- data/ext/ruby/qtruby/examples/opengl/hellogl/window.rb +66 -0
- data/ext/ruby/qtruby/examples/opengl/textures/glwidget.rb +151 -0
- data/ext/ruby/qtruby/examples/opengl/textures/images/side1.png +0 -0
- data/ext/ruby/qtruby/examples/opengl/textures/images/side2.png +0 -0
- data/ext/ruby/qtruby/examples/opengl/textures/images/side3.png +0 -0
- data/ext/ruby/qtruby/examples/opengl/textures/images/side4.png +0 -0
- data/ext/ruby/qtruby/examples/opengl/textures/images/side5.png +0 -0
- data/ext/ruby/qtruby/examples/opengl/textures/images/side6.png +0 -0
- data/ext/ruby/qtruby/examples/opengl/textures/main.rb +32 -0
- data/ext/ruby/qtruby/examples/opengl/textures/window.rb +77 -0
- data/ext/ruby/qtruby/examples/painting/basicdrawing/images/brick.png +0 -0
- data/ext/ruby/qtruby/examples/painting/basicdrawing/images/qt-logo.png +0 -0
- data/ext/ruby/qtruby/examples/painting/basicdrawing/main.rb +32 -0
- data/ext/ruby/qtruby/examples/painting/basicdrawing/renderarea.rb +166 -0
- data/ext/ruby/qtruby/examples/painting/basicdrawing/window.rb +215 -0
- data/ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb +88 -0
- data/ext/ruby/qtruby/examples/painting/concentriccircles/main.rb +32 -0
- data/ext/ruby/qtruby/examples/painting/concentriccircles/window.rb +72 -0
- data/ext/ruby/qtruby/examples/painting/fontsampler/main.rb +32 -0
- data/ext/ruby/qtruby/examples/painting/fontsampler/mainwindow.rb +368 -0
- data/ext/ruby/qtruby/examples/painting/fontsampler/mainwindowbase.ui +136 -0
- data/ext/ruby/qtruby/examples/painting/fontsampler/makefile +8 -0
- data/ext/ruby/qtruby/examples/painting/fontsampler/previewdialog.rb +256 -0
- data/ext/ruby/qtruby/examples/painting/fontsampler/previewdialogbase.ui +224 -0
- data/ext/ruby/qtruby/examples/painting/fontsampler/previewlabel.rb +43 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/imagecomposer.rb +152 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/images/background.png +0 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/images/butterfly.png +0 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/images/checker.png +0 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/main.rb +33 -0
- data/ext/ruby/qtruby/examples/painting/imagecomposition/makefile +2 -0
- data/ext/ruby/qtruby/examples/painting/painterpaths/main.rb +32 -0
- data/ext/ruby/qtruby/examples/painting/painterpaths/renderarea.rb +97 -0
- data/ext/ruby/qtruby/examples/painting/painterpaths/window.rb +247 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/files/bubbles.svg +212 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/files/cubic.svg +77 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/files/spheres.svg +79 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/main.rb +38 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/mainwindow.rb +99 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/makefile +2 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/svgview.rb +156 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/svgviewer.qrc +6 -0
- data/ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb +87 -0
- data/ext/ruby/qtruby/examples/painting/transformations/main.rb +32 -0
- data/ext/ruby/qtruby/examples/painting/transformations/renderarea.rb +127 -0
- data/ext/ruby/qtruby/examples/painting/transformations/window.rb +153 -0
- data/ext/ruby/qtruby/examples/passivepopup/passivepopup.rb +38 -0
- data/ext/ruby/qtruby/examples/qdbus/chat/chat.rb +146 -0
- data/ext/ruby/qtruby/examples/qdbus/chat/chat_adaptor.rb +12 -0
- data/ext/ruby/qtruby/examples/qdbus/chat/chat_interface.rb +13 -0
- data/ext/ruby/qtruby/examples/qdbus/chat/chatmainwindow.ui +184 -0
- data/ext/ruby/qtruby/examples/qdbus/chat/chatsetnickname.ui +145 -0
- data/ext/ruby/qtruby/examples/qdbus/chat/makefile +8 -0
- data/ext/ruby/qtruby/examples/qdbus/complexpingpong/complexping.rb +92 -0
- data/ext/ruby/qtruby/examples/qdbus/complexpingpong/complexpong.rb +83 -0
- data/ext/ruby/qtruby/examples/qdbus/complexpingpong/ping-common.rb +1 -0
- data/ext/ruby/qtruby/examples/qdbus/listnames/listnames.rb +69 -0
- data/ext/ruby/qtruby/examples/qdbus/pingpong/ping-common.rb +1 -0
- data/ext/ruby/qtruby/examples/qdbus/pingpong/ping.rb +52 -0
- data/ext/ruby/qtruby/examples/qdbus/pingpong/pong.rb +55 -0
- data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
- data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
- data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
- data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
- data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
- data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
- data/ext/ruby/qtruby/examples/qtscribble/scribble.rb +270 -0
- data/ext/ruby/qtruby/examples/richtext/calendar/main.rb +33 -0
- data/ext/ruby/qtruby/examples/richtext/calendar/mainwindow.rb +173 -0
- data/ext/ruby/qtruby/examples/richtext/orderform/detailsdialog.rb +130 -0
- data/ext/ruby/qtruby/examples/richtext/orderform/main.rb +34 -0
- data/ext/ruby/qtruby/examples/richtext/orderform/mainwindow.rb +194 -0
- data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/examples/example +79 -0
- data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
- data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/main.rb +34 -0
- data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
- data/ext/ruby/qtruby/examples/ruboids/Manifest +26 -0
- data/ext/ruby/qtruby/examples/ruboids/README +53 -0
- data/ext/ruby/qtruby/examples/ruboids/TODO +29 -0
- data/ext/ruby/qtruby/examples/ruboids/boids.properties +33 -0
- data/ext/ruby/qtruby/examples/ruboids/generateManifest.rb +42 -0
- data/ext/ruby/qtruby/examples/ruboids/index.html +147 -0
- data/ext/ruby/qtruby/examples/ruboids/release.rb +152 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Boid.rb +141 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/BoidView.rb +159 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Camera.rb +24 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/CameraDialog.rb +218 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Canvas.rb +143 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Cloud.rb +61 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/CloudView.rb +54 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Flock.rb +47 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Graphics.rb +278 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Params.rb +87 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Point.rb +153 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Thing.rb +34 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/Triangle.rb +21 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/View.rb +88 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/World.rb +82 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/WorldWindow.rb +52 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/info.rb +12 -0
- data/ext/ruby/qtruby/examples/ruboids/ruboids/ruboids.rb +29 -0
- data/ext/ruby/qtruby/examples/textedit/textedit.rb +150 -0
- data/ext/ruby/qtruby/examples/tutorial/t1/t1.rb +10 -0
- data/ext/ruby/qtruby/examples/tutorial/t10/cannon.rb +72 -0
- data/ext/ruby/qtruby/examples/tutorial/t10/lcdrange.rb +45 -0
- data/ext/ruby/qtruby/examples/tutorial/t10/t10.rb +55 -0
- data/ext/ruby/qtruby/examples/tutorial/t11/cannon.rb +124 -0
- data/ext/ruby/qtruby/examples/tutorial/t11/lcdrange.rb +45 -0
- data/ext/ruby/qtruby/examples/tutorial/t11/t11.rb +65 -0
- data/ext/ruby/qtruby/examples/tutorial/t12/cannon.rb +158 -0
- data/ext/ruby/qtruby/examples/tutorial/t12/lcdrange.rb +59 -0
- data/ext/ruby/qtruby/examples/tutorial/t12/t12.rb +66 -0
- data/ext/ruby/qtruby/examples/tutorial/t13/cannon.rb +208 -0
- data/ext/ruby/qtruby/examples/tutorial/t13/gamebrd.rb +113 -0
- data/ext/ruby/qtruby/examples/tutorial/t13/lcdrange.rb +60 -0
- data/ext/ruby/qtruby/examples/tutorial/t13/t13.rb +11 -0
- data/ext/ruby/qtruby/examples/tutorial/t14/cannon.rb +263 -0
- data/ext/ruby/qtruby/examples/tutorial/t14/gamebrd.rb +123 -0
- data/ext/ruby/qtruby/examples/tutorial/t14/lcdrange.rb +63 -0
- data/ext/ruby/qtruby/examples/tutorial/t14/t14.rb +11 -0
- data/ext/ruby/qtruby/examples/tutorial/t2/t2.rb +16 -0
- data/ext/ruby/qtruby/examples/tutorial/t3/t3.rb +18 -0
- data/ext/ruby/qtruby/examples/tutorial/t4/t4.rb +25 -0
- data/ext/ruby/qtruby/examples/tutorial/t5/t5.rb +37 -0
- data/ext/ruby/qtruby/examples/tutorial/t6/t6.rb +52 -0
- data/ext/ruby/qtruby/examples/tutorial/t7/lcdrange.rb +32 -0
- data/ext/ruby/qtruby/examples/tutorial/t7/t7.rb +42 -0
- data/ext/ruby/qtruby/examples/tutorial/t8/cannon.rb +38 -0
- data/ext/ruby/qtruby/examples/tutorial/t8/lcdrange.rb +45 -0
- data/ext/ruby/qtruby/examples/tutorial/t8/t8.rb +43 -0
- data/ext/ruby/qtruby/examples/tutorial/t9/cannon.rb +45 -0
- data/ext/ruby/qtruby/examples/tutorial/t9/lcdrange.rb +46 -0
- data/ext/ruby/qtruby/examples/tutorial/t9/t9.rb +43 -0
- data/ext/ruby/qtruby/examples/widgets/analogclock/analogclock.rb +94 -0
- data/ext/ruby/qtruby/examples/widgets/analogclock/main.rb +9 -0
- data/ext/ruby/qtruby/examples/widgets/calculator/button.rb +45 -0
- data/ext/ruby/qtruby/examples/widgets/calculator/calculator.rb +382 -0
- data/ext/ruby/qtruby/examples/widgets/calculator/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/charactermap/characterwidget.rb +110 -0
- data/ext/ruby/qtruby/examples/widgets/charactermap/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/charactermap/mainwindow.rb +118 -0
- data/ext/ruby/qtruby/examples/widgets/digitalclock/digitalclock.rb +30 -0
- data/ext/ruby/qtruby/examples/widgets/digitalclock/main.rb +9 -0
- data/ext/ruby/qtruby/examples/widgets/groupbox/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/groupbox/window.rb +134 -0
- data/ext/ruby/qtruby/examples/widgets/icons/iconpreviewarea.rb +111 -0
- data/ext/ruby/qtruby/examples/widgets/icons/iconsizespinbox.rb +39 -0
- data/ext/ruby/qtruby/examples/widgets/icons/imagedelegate.rb +73 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/designer.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/find_disabled.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/find_normal.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_16x16.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_32x32.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_48x48.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/icons/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/icons/mainwindow.rb +351 -0
- data/ext/ruby/qtruby/examples/widgets/imageviewer/imageviewer.rb +219 -0
- data/ext/ruby/qtruby/examples/widgets/imageviewer/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/lineedits/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/lineedits/window.rb +199 -0
- data/ext/ruby/qtruby/examples/widgets/movie/images/open.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/movie/images/pause.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/movie/images/play.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/movie/images/quit.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/movie/images/stop.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/movie/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/movie/movieplayer.rb +201 -0
- data/ext/ruby/qtruby/examples/widgets/movie/movies/fire.mng +0 -0
- data/ext/ruby/qtruby/examples/widgets/screenshot/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/screenshot/screenshot.rb +155 -0
- data/ext/ruby/qtruby/examples/widgets/scribble/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/scribble/mainwindow.rb +202 -0
- data/ext/ruby/qtruby/examples/widgets/scribble/scribblearea.rb +154 -0
- data/ext/ruby/qtruby/examples/widgets/sliders/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/sliders/slidersgroup.rb +97 -0
- data/ext/ruby/qtruby/examples/widgets/sliders/window.rb +124 -0
- data/ext/ruby/qtruby/examples/widgets/spinboxes/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/spinboxes/window.rb +213 -0
- data/ext/ruby/qtruby/examples/widgets/tetrix/main.rb +33 -0
- data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixboard.rb +346 -0
- data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixpiece.rb +135 -0
- data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixwindow.rb +88 -0
- data/ext/ruby/qtruby/examples/widgets/tooltips/images/circle.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/tooltips/images/square.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/tooltips/images/triangle.png +0 -0
- data/ext/ruby/qtruby/examples/widgets/tooltips/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/tooltips/shapeitem.rb +31 -0
- data/ext/ruby/qtruby/examples/widgets/tooltips/sortingbox.rb +222 -0
- data/ext/ruby/qtruby/examples/widgets/wiggly/dialog.rb +48 -0
- data/ext/ruby/qtruby/examples/widgets/wiggly/main.rb +9 -0
- data/ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb +76 -0
- data/ext/ruby/qtruby/examples/widgets/windowflags/controllerwindow.rb +195 -0
- data/ext/ruby/qtruby/examples/widgets/windowflags/main.rb +32 -0
- data/ext/ruby/qtruby/examples/widgets/windowflags/previewwindow.rb +103 -0
- data/ext/ruby/qtruby/examples/xml/dombookmarks/frank.xbel +230 -0
- data/ext/ruby/qtruby/examples/xml/dombookmarks/jennifer.xbel +93 -0
- data/ext/ruby/qtruby/examples/xml/dombookmarks/main.rb +34 -0
- data/ext/ruby/qtruby/examples/xml/dombookmarks/mainwindow.rb +129 -0
- data/ext/ruby/qtruby/examples/xml/dombookmarks/xbeltree.rb +172 -0
- data/ext/ruby/qtruby/examples/xml/saxbookmarks/frank.xbel +230 -0
- data/ext/ruby/qtruby/examples/xml/saxbookmarks/jennifer.xbel +93 -0
- data/ext/ruby/qtruby/examples/xml/saxbookmarks/main.rb +34 -0
- data/ext/ruby/qtruby/examples/xml/saxbookmarks/mainwindow.rb +144 -0
- data/ext/ruby/qtruby/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
- data/ext/ruby/qtruby/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
- data/ext/ruby/qtruby/rails_support/CMakeLists.txt +1 -0
- data/ext/ruby/qtruby/rails_support/active_item_model.rb +234 -0
- data/ext/ruby/qtruby/rails_support/active_table_model.rb +122 -0
- data/ext/ruby/qtruby/src/CMakeLists.txt +103 -0
- data/ext/ruby/qtruby/src/Qt.cpp +1279 -0
- data/ext/ruby/qtruby/src/extconf.rb +11 -0
- data/ext/ruby/qtruby/src/handlers.cpp +2622 -0
- data/ext/ruby/qtruby/src/lib/CMakeLists.txt +16 -0
- data/ext/ruby/qtruby/src/lib/Qt.rb +1 -0
- data/ext/ruby/qtruby/src/lib/Qt/CMakeLists.txt +9 -0
- data/ext/ruby/qtruby/src/lib/Qt/qtruby4.rb +3177 -0
- data/ext/ruby/qtruby/src/lib/Qt3.rb +6 -0
- data/ext/ruby/qtruby/src/lib/Qt4.rb +6 -0
- data/ext/ruby/qtruby/src/marshall.h +66 -0
- data/ext/ruby/qtruby/src/marshall_basetypes.h +208 -0
- data/ext/ruby/qtruby/src/marshall_complex.h +175 -0
- data/ext/ruby/qtruby/src/marshall_macros.h +647 -0
- data/ext/ruby/qtruby/src/marshall_primitives.h +290 -0
- data/ext/ruby/qtruby/src/marshall_types.cpp +815 -0
- data/ext/ruby/qtruby/src/marshall_types.h +240 -0
- data/ext/ruby/qtruby/src/qtruby.cpp +2483 -0
- data/ext/ruby/qtruby/src/qtruby.h +185 -0
- data/ext/ruby/qtruby/src/smokeruby.h +164 -0
- data/ext/ruby/qtruby/test/opoverloading.rb +46 -0
- data/ext/ruby/qtruby/test/unittests.rb +151 -0
- data/ext/ruby/qtruby/tools/CMakeLists.txt +2 -0
- data/ext/ruby/qtruby/tools/rbrcc/CMakeLists.txt +6 -0
- data/ext/ruby/qtruby/tools/rbrcc/Messages.sh +7 -0
- data/ext/ruby/qtruby/tools/rbrcc/main.cpp +173 -0
- data/ext/ruby/qtruby/tools/rbrcc/rbrcc.pro +14 -0
- data/ext/ruby/qtruby/tools/rbrcc/rcc.cpp +648 -0
- data/ext/ruby/qtruby/tools/rbrcc/rcc.h +165 -0
- data/ext/ruby/qtruby/tools/rbuic/CMakeLists.txt +35 -0
- data/ext/ruby/qtruby/tools/rbuic/LICENSE.GPL +280 -0
- data/ext/ruby/qtruby/tools/rbuic/Messages.sh +7 -0
- data/ext/ruby/qtruby/tools/rbuic/TODO +4 -0
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.cpp +106 -0
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.h +95 -0
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.cpp +102 -0
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.h +85 -0
- data/ext/ruby/qtruby/tools/rbuic/driver.cpp +384 -0
- data/ext/ruby/qtruby/tools/rbuic/driver.h +141 -0
- data/ext/ruby/qtruby/tools/rbuic/globaldefs.h +60 -0
- data/ext/ruby/qtruby/tools/rbuic/main.cpp +201 -0
- data/ext/ruby/qtruby/tools/rbuic/option.h +107 -0
- data/ext/ruby/qtruby/tools/rbuic/rbuic.pri +23 -0
- data/ext/ruby/qtruby/tools/rbuic/rbuic4.pro +43 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.cpp +150 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.h +83 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.cpp +217 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.h +85 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.cpp +185 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.h +86 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.cpp +88 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.h +83 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.cpp +126 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.h +87 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.cpp +2478 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.h +314 -0
- data/ext/ruby/qtruby/tools/rbuic/ruby/ruby.pri +18 -0
- data/ext/ruby/qtruby/tools/rbuic/treewalker.cpp +318 -0
- data/ext/ruby/qtruby/tools/rbuic/treewalker.h +139 -0
- data/ext/ruby/qtruby/tools/rbuic/ui4.cpp +7623 -0
- data/ext/ruby/qtruby/tools/rbuic/ui4.h +3180 -0
- data/ext/ruby/qtruby/tools/rbuic/uic.cpp +438 -0
- data/ext/ruby/qtruby/tools/rbuic/uic.h +154 -0
- data/ext/ruby/qtruby/tools/rbuic/utils.h +125 -0
- data/ext/ruby/qtruby/tools/rbuic/validator.cpp +100 -0
- data/ext/ruby/qtruby/tools/rbuic/validator.h +80 -0
- data/ext/ruby/qtscript/CMakeLists.txt +19 -0
- data/ext/ruby/qtscript/qtscript.cpp +82 -0
- data/ext/ruby/qtscript/qtscript.rb +40 -0
- data/ext/ruby/qtscript/qtscripthandlers.cpp +36 -0
- data/ext/ruby/qtscript/smokedata.cpp +1403 -0
- data/ext/ruby/qttest/CMakeLists.txt +18 -0
- data/ext/ruby/qttest/ChangeLog +9 -0
- data/ext/ruby/qttest/examples/myfirsttest.rb +30 -0
- data/ext/ruby/qttest/qttest.cpp +82 -0
- data/ext/ruby/qttest/qttest.rb +166 -0
- data/ext/ruby/qttest/qttesthandlers.cpp +35 -0
- data/ext/ruby/qtuitools/CMakeLists.txt +16 -0
- data/ext/ruby/qtuitools/qtuitools.cpp +82 -0
- data/ext/ruby/qtuitools/qtuitools.rb +17 -0
- data/ext/ruby/qtuitools/qtuitoolshandlers.cpp +31 -0
- data/ext/ruby/qtwebkit/CMakeLists.txt +17 -0
- data/ext/ruby/qtwebkit/qtwebkit.cpp +66 -0
- data/ext/ruby/qtwebkit/qtwebkit.rb +17 -0
- data/ext/ruby/qtwebkit/qtwebkithandlers.cpp +39 -0
- data/ext/smoke/CMakeLists.txt +35 -0
- data/ext/smoke/deptool/CMakeLists.txt +7 -0
- data/ext/smoke/deptool/main.cpp +128 -0
- data/ext/smoke/qt_smoke.h +16 -0
- data/ext/smoke/qtcore/CMakeLists.txt +88 -0
- data/ext/smoke/qtcore/QtGuess.txt +181 -0
- data/ext/smoke/qtcore/config.xml.cmake +10 -0
- data/ext/smoke/qtcore/qt-config.xml.cmake +21 -0
- data/ext/smoke/qtcore/qtcore_includes.h +1 -0
- data/ext/smoke/qtcore/smokeconfig.xml +189 -0
- data/ext/smoke/qtcore/tests/CMakeLists.txt +13 -0
- data/ext/smoke/qtcore/tests/test.cpp +846 -0
- data/ext/smoke/qtcore_smoke.h +16 -0
- data/ext/smoke/qtdbus/CMakeLists.txt +38 -0
- data/ext/smoke/qtdbus/config.xml.cmake +11 -0
- data/ext/smoke/qtdbus/qtdbus_includes.h +2 -0
- data/ext/smoke/qtdbus/smokeconfig.xml +63 -0
- data/ext/smoke/qtdbus_smoke.h +16 -0
- data/ext/smoke/qtgui/CMakeLists.txt +76 -0
- data/ext/smoke/qtgui/config.xml.cmake +11 -0
- data/ext/smoke/qtgui/qtgui_includes.h +7 -0
- data/ext/smoke/qtgui/smokeconfig.xml +490 -0
- data/ext/smoke/qtgui_smoke.h +16 -0
- data/ext/smoke/qtmultimedia/CMakeLists.txt +42 -0
- data/ext/smoke/qtmultimedia/config.xml.cmake +12 -0
- data/ext/smoke/qtmultimedia/qtmultimedia_includes.h +3 -0
- data/ext/smoke/qtmultimedia/smokeconfig.xml +50 -0
- data/ext/smoke/qtmultimedia_smoke.h +16 -0
- data/ext/smoke/qtnetwork/CMakeLists.txt +38 -0
- data/ext/smoke/qtnetwork/config.xml.cmake +11 -0
- data/ext/smoke/qtnetwork/qtnetwork_includes.h +2 -0
- data/ext/smoke/qtnetwork/smokeconfig.xml +76 -0
- data/ext/smoke/qtnetwork_smoke.h +16 -0
- data/ext/smoke/qtopengl/CMakeLists.txt +43 -0
- data/ext/smoke/qtopengl/config.xml.cmake +12 -0
- data/ext/smoke/qtopengl/qtopengl_includes.h +3 -0
- data/ext/smoke/qtopengl/smokeconfig.xml +56 -0
- data/ext/smoke/qtopengl_smoke.h +16 -0
- data/ext/smoke/qtscript/CMakeLists.txt +31 -0
- data/ext/smoke/qtscript/config.xml.cmake +11 -0
- data/ext/smoke/qtscript/qtscript_includes.h +14 -0
- data/ext/smoke/qtscript/smokeconfig.xml +39 -0
- data/ext/smoke/qtscript_smoke.h +16 -0
- data/ext/smoke/qtsql/CMakeLists.txt +41 -0
- data/ext/smoke/qtsql/config.xml.cmake +11 -0
- data/ext/smoke/qtsql/qtsql_includes.h +2 -0
- data/ext/smoke/qtsql/smokeconfig.xml +56 -0
- data/ext/smoke/qtsql_smoke.h +16 -0
- data/ext/smoke/qtsvg/CMakeLists.txt +43 -0
- data/ext/smoke/qtsvg/config.xml.cmake +12 -0
- data/ext/smoke/qtsvg/qtsvg_includes.h +3 -0
- data/ext/smoke/qtsvg/smokeconfig.xml +45 -0
- data/ext/smoke/qtsvg_smoke.h +16 -0
- data/ext/smoke/qttest/CMakeLists.txt +35 -0
- data/ext/smoke/qttest/config.xml.cmake +12 -0
- data/ext/smoke/qttest/qttest_includes.h +14 -0
- data/ext/smoke/qttest/smokeconfig.xml +36 -0
- data/ext/smoke/qttest_smoke.h +16 -0
- data/ext/smoke/qtuitools/CMakeLists.txt +30 -0
- data/ext/smoke/qtuitools/config.xml.cmake +12 -0
- data/ext/smoke/qtuitools/qtuitools_includes.h +1 -0
- data/ext/smoke/qtuitools/smokeconfig.xml +20 -0
- data/ext/smoke/qtuitools_smoke.h +16 -0
- data/ext/smoke/qtwebkit/CMakeLists.txt +36 -0
- data/ext/smoke/qtwebkit/config.xml.cmake +11 -0
- data/ext/smoke/qtwebkit/qtwebkit_includes.h +1 -0
- data/ext/smoke/qtwebkit/smokeconfig.xml +45 -0
- data/ext/smoke/qtwebkit_smoke.h +16 -0
- data/ext/smoke/qtxml/CMakeLists.txt +41 -0
- data/ext/smoke/qtxml/config.xml.cmake +11 -0
- data/ext/smoke/qtxml/qtxml_includes.h +2 -0
- data/ext/smoke/qtxml/smokeconfig.xml +70 -0
- data/ext/smoke/qtxml_smoke.h +16 -0
- data/ext/smoke/qtxmlpatterns/CMakeLists.txt +42 -0
- data/ext/smoke/qtxmlpatterns/config.xml.cmake +12 -0
- data/ext/smoke/qtxmlpatterns/qtxmlpatterns_includes.h +3 -0
- data/ext/smoke/qtxmlpatterns/smokeconfig.xml +80 -0
- data/ext/smoke/qtxmlpatterns_smoke.h +16 -0
- data/ext/smoke/smoke.h +557 -0
- data/ext/smoke/smokeapi/CMakeLists.txt +9 -0
- data/ext/smoke/smokeapi/main.cpp +309 -0
- data/ext/smoke/smokebase/CMakeLists.txt +11 -0
- data/ext/smoke/smokebase/smokebase.cpp +6 -0
- data/ext/smoke/solid_smoke.h +16 -0
- data/extconf.rb +231 -0
- data/lib/1.8/libqtruby4shared.dll +0 -0
- data/lib/1.8/libsmokebase.dll +0 -0
- data/lib/1.8/libsmokeqtcore.dll +0 -0
- data/lib/1.8/libsmokeqtgui.dll +0 -0
- data/lib/1.8/libsmokeqtmultimedia.dll +0 -0
- data/lib/1.8/libsmokeqtnetwork.dll +0 -0
- data/lib/1.8/libsmokeqtopengl.dll +0 -0
- data/lib/1.8/libsmokeqtscript.dll +0 -0
- data/lib/1.8/libsmokeqtsql.dll +0 -0
- data/lib/1.8/libsmokeqtsvg.dll +0 -0
- data/lib/1.8/libsmokeqttest.dll +0 -0
- data/lib/1.8/libsmokeqtuitools.dll +0 -0
- data/lib/1.8/libsmokeqtwebkit.dll +0 -0
- data/lib/1.8/libsmokeqtxml.dll +0 -0
- data/lib/1.8/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/1.8/qtruby4.so +0 -0
- data/lib/1.8/qtscript.so +0 -0
- data/lib/1.8/qttest.so +0 -0
- data/lib/1.8/qtuitools.so +0 -0
- data/lib/1.8/qtwebkit.so +0 -0
- data/lib/1.9/libqtruby4shared.dll +0 -0
- data/lib/1.9/libsmokebase.dll +0 -0
- data/lib/1.9/libsmokeqtcore.dll +0 -0
- data/lib/1.9/libsmokeqtgui.dll +0 -0
- data/lib/1.9/libsmokeqtmultimedia.dll +0 -0
- data/lib/1.9/libsmokeqtnetwork.dll +0 -0
- data/lib/1.9/libsmokeqtopengl.dll +0 -0
- data/lib/1.9/libsmokeqtscript.dll +0 -0
- data/lib/1.9/libsmokeqtsql.dll +0 -0
- data/lib/1.9/libsmokeqtsvg.dll +0 -0
- data/lib/1.9/libsmokeqttest.dll +0 -0
- data/lib/1.9/libsmokeqtuitools.dll +0 -0
- data/lib/1.9/libsmokeqtwebkit.dll +0 -0
- data/lib/1.9/libsmokeqtxml.dll +0 -0
- data/lib/1.9/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/1.9/qtruby4.so +0 -0
- data/lib/1.9/qtscript.so +0 -0
- data/lib/1.9/qttest.so +0 -0
- data/lib/1.9/qtuitools.so +0 -0
- data/lib/1.9/qtwebkit.so +0 -0
- data/lib/Qt.rb +1 -0
- data/lib/Qt/qtruby4.rb +3177 -0
- data/lib/Qt4.rb +20 -0
- data/lib/qtbindings_version.rb +2 -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 +18 -0
- metadata +1297 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../..)
|
2
|
+
|
3
|
+
set(generator_dump_SRC
|
4
|
+
generator_dump.cpp)
|
5
|
+
|
6
|
+
add_library(generator_dump MODULE ${generator_dump_SRC})
|
7
|
+
target_link_libraries(generator_dump ${QT_QTCORE_LIBRARY} smokegen)
|
8
|
+
set_target_properties(generator_dump PROPERTIES PREFIX "")
|
9
|
+
|
10
|
+
install(TARGETS generator_dump LIBRARY DESTINATION ${LIB_INSTALL_DIR}/smokegen)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/*
|
2
|
+
Dump all parsed classes to stdout.
|
3
|
+
Copyright (C) 2009 Arno Rehn <arno@arnorehn.de>
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License along
|
16
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#include <QFileInfo>
|
21
|
+
#include <QList>
|
22
|
+
|
23
|
+
#include <type.h>
|
24
|
+
|
25
|
+
#include <iostream>
|
26
|
+
|
27
|
+
extern "C" Q_DECL_EXPORT
|
28
|
+
void generate()
|
29
|
+
{
|
30
|
+
foreach (const QString& className, classes.keys()) {
|
31
|
+
std::cout << qPrintable(className);
|
32
|
+
if (classes[className].isForwardDecl())
|
33
|
+
std::cout << " [forward declaration]";
|
34
|
+
std::cout << std::endl;
|
35
|
+
}
|
36
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../..)
|
2
|
+
|
3
|
+
set(generator_smoke_SRC
|
4
|
+
generator_smoke.cpp
|
5
|
+
writeClasses.cpp
|
6
|
+
writeSmokeDataFile.cpp
|
7
|
+
helpers.cpp)
|
8
|
+
|
9
|
+
add_library(generator_smoke MODULE ${generator_smoke_SRC})
|
10
|
+
target_link_libraries(generator_smoke ${QT_QTCORE_LIBRARY} ${QT_QTXML_LIBRARY} smokegen)
|
11
|
+
set_target_properties(generator_smoke PROPERTIES PREFIX "")
|
12
|
+
|
13
|
+
install(TARGETS generator_smoke LIBRARY DESTINATION ${LIB_INSTALL_DIR}/smokegen/)
|
@@ -0,0 +1,233 @@
|
|
1
|
+
/*
|
2
|
+
Generator for the SMOKE sources
|
3
|
+
Copyright (C) 2009 Arno Rehn <arno@arnorehn.de>
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License along
|
16
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#include <QCoreApplication>
|
21
|
+
#include <QDir>
|
22
|
+
#include <QFileInfo>
|
23
|
+
#include <QHash>
|
24
|
+
#include <QSet>
|
25
|
+
#include <QString>
|
26
|
+
#include <QtDebug>
|
27
|
+
|
28
|
+
#include <QtXml>
|
29
|
+
|
30
|
+
#include <iostream>
|
31
|
+
|
32
|
+
#include <type.h>
|
33
|
+
|
34
|
+
#include "globals.h"
|
35
|
+
#include "../../options.h"
|
36
|
+
|
37
|
+
QDir Options::outputDir = QDir::current();
|
38
|
+
QList<QFileInfo> Options::headerList;
|
39
|
+
QStringList Options::classList;
|
40
|
+
|
41
|
+
int Options::parts = 20;
|
42
|
+
QString Options::module = "qt";
|
43
|
+
QStringList Options::parentModules;
|
44
|
+
QStringList Options::scalarTypes;
|
45
|
+
QStringList Options::voidpTypes;
|
46
|
+
bool Options::qtMode = false;
|
47
|
+
QList<QRegExp> Options::excludeExpressions;
|
48
|
+
QList<QRegExp> Options::includeFunctionNames;
|
49
|
+
QList<QRegExp> Options::includeFunctionSignatures;
|
50
|
+
|
51
|
+
static void showUsage()
|
52
|
+
{
|
53
|
+
std::cout <<
|
54
|
+
"Usage: generator -g smoke [smoke generator options] [other generator options] -- <headers>" << std::endl <<
|
55
|
+
" -m <module name> (default: 'qt')" << std::endl <<
|
56
|
+
" -p <parts> (default: 20)" << std::endl <<
|
57
|
+
" -pm <comma-seperated list of parent modules>" << std::endl <<
|
58
|
+
" -st <comma-seperated list of types that should be munged to scalars>" << std::endl <<
|
59
|
+
" -vt <comma-seperated list of types that should be mapped to Smoke::t_voidp>" << std::endl;
|
60
|
+
}
|
61
|
+
|
62
|
+
extern "C" Q_DECL_EXPORT
|
63
|
+
int generate()
|
64
|
+
{
|
65
|
+
Options::headerList = ParserOptions::headerList;
|
66
|
+
|
67
|
+
QFileInfo smokeConfig;
|
68
|
+
|
69
|
+
const QStringList& args = QCoreApplication::arguments();
|
70
|
+
for (int i = 0; i < args.count(); i++) {
|
71
|
+
if ((args[i] == "-m" || args[i] == "-p" || args[i] == "-pm" || args[i] == "-o" ||
|
72
|
+
args[i] == "-st" || args[i] == "-vt" || args[i] == "-smokeconfig") && i + 1 >= args.count())
|
73
|
+
{
|
74
|
+
qCritical() << "generator_smoke: not enough parameters for option" << args[i];
|
75
|
+
return EXIT_FAILURE;
|
76
|
+
} else if (args[i] == "-m") {
|
77
|
+
Options::module = args[++i];
|
78
|
+
} else if (args[i] == "-p") {
|
79
|
+
bool ok = false;
|
80
|
+
Options::parts = args[++i].toInt(&ok);
|
81
|
+
if (!ok) {
|
82
|
+
qCritical() << "generator_smoke: couldn't parse argument for option" << args[i - 1];
|
83
|
+
return EXIT_FAILURE;
|
84
|
+
}
|
85
|
+
} else if (args[i] == "-pm") {
|
86
|
+
Options::parentModules = args[++i].split(',');
|
87
|
+
} else if (args[i] == "-st") {
|
88
|
+
Options::scalarTypes = args[++i].split(',');
|
89
|
+
} else if (args[i] == "-vt") {
|
90
|
+
Options::voidpTypes = args[++i].split(',');
|
91
|
+
} else if (args[i] == "-smokeconfig") {
|
92
|
+
smokeConfig = QFileInfo(args[++i]);
|
93
|
+
} else if (args[i] == "-o") {
|
94
|
+
Options::outputDir = QDir(args[++i]);
|
95
|
+
} else if (args[i] == "-h" || args[i] == "--help") {
|
96
|
+
showUsage();
|
97
|
+
return EXIT_SUCCESS;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
if (smokeConfig.exists()) {
|
102
|
+
QFile file(smokeConfig.filePath());
|
103
|
+
file.open(QIODevice::ReadOnly);
|
104
|
+
QDomDocument doc;
|
105
|
+
doc.setContent(file.readAll());
|
106
|
+
file.close();
|
107
|
+
QDomElement root = doc.documentElement();
|
108
|
+
QDomNode node = root.firstChild();
|
109
|
+
while (!node.isNull()) {
|
110
|
+
QDomElement elem = node.toElement();
|
111
|
+
if (elem.isNull()) {
|
112
|
+
node = node.nextSibling();
|
113
|
+
continue;
|
114
|
+
}
|
115
|
+
if (elem.tagName() == "outputDir") {
|
116
|
+
Options::outputDir = QDir(elem.text());
|
117
|
+
} else if (elem.tagName() == "moduleName") {
|
118
|
+
Options::module = elem.text();
|
119
|
+
} else if (elem.tagName() == "parts") {
|
120
|
+
Options::parts = elem.text().toInt();
|
121
|
+
} else if (elem.tagName() == "parentModules") {
|
122
|
+
QDomNode parent = elem.firstChild();
|
123
|
+
while (!parent.isNull()) {
|
124
|
+
QDomElement elem = parent.toElement();
|
125
|
+
if (elem.isNull()) {
|
126
|
+
parent = parent.nextSibling();
|
127
|
+
continue;
|
128
|
+
}
|
129
|
+
if (elem.tagName() == "module") {
|
130
|
+
Options::parentModules << elem.text();
|
131
|
+
}
|
132
|
+
parent = parent.nextSibling();
|
133
|
+
}
|
134
|
+
} else if (elem.tagName() == "scalarTypes") {
|
135
|
+
QDomNode typeName = elem.firstChild();
|
136
|
+
while (!typeName.isNull()) {
|
137
|
+
QDomElement elem = typeName.toElement();
|
138
|
+
if (elem.isNull()) {
|
139
|
+
typeName = typeName.nextSibling();
|
140
|
+
continue;
|
141
|
+
}
|
142
|
+
if (elem.tagName() == "typeName") {
|
143
|
+
Options::scalarTypes << elem.text();
|
144
|
+
}
|
145
|
+
typeName = typeName.nextSibling();
|
146
|
+
}
|
147
|
+
} else if (elem.tagName() == "voidpTypes") {
|
148
|
+
QDomNode typeName = elem.firstChild();
|
149
|
+
while (!typeName.isNull()) {
|
150
|
+
QDomElement elem = typeName.toElement();
|
151
|
+
if (elem.isNull()) {
|
152
|
+
typeName = typeName.nextSibling();
|
153
|
+
continue;
|
154
|
+
}
|
155
|
+
if (elem.tagName() == "typeName") {
|
156
|
+
Options::voidpTypes << elem.text();
|
157
|
+
}
|
158
|
+
typeName = typeName.nextSibling();
|
159
|
+
}
|
160
|
+
} else if (elem.tagName() == "classList") {
|
161
|
+
QDomNode klass = elem.firstChild();
|
162
|
+
while (!klass.isNull()) {
|
163
|
+
QDomElement elem = klass.toElement();
|
164
|
+
if (elem.isNull()) {
|
165
|
+
klass = klass.nextSibling();
|
166
|
+
continue;
|
167
|
+
}
|
168
|
+
if (elem.tagName() == "class") {
|
169
|
+
Options::classList << elem.text();
|
170
|
+
}
|
171
|
+
klass = klass.nextSibling();
|
172
|
+
}
|
173
|
+
} else if (elem.tagName() == "exclude") {
|
174
|
+
QDomNode typeName = elem.firstChild();
|
175
|
+
while (!typeName.isNull()) {
|
176
|
+
QDomElement elem = typeName.toElement();
|
177
|
+
if (elem.isNull()) {
|
178
|
+
typeName = typeName.nextSibling();
|
179
|
+
continue;
|
180
|
+
}
|
181
|
+
if (elem.tagName() == "signature") {
|
182
|
+
Options::excludeExpressions << QRegExp(elem.text());
|
183
|
+
}
|
184
|
+
typeName = typeName.nextSibling();
|
185
|
+
}
|
186
|
+
} else if (elem.tagName() == "functions") {
|
187
|
+
QDomNode function = elem.firstChild();
|
188
|
+
while (!function.isNull()) {
|
189
|
+
QDomElement elem = function.toElement();
|
190
|
+
if (elem.isNull()) {
|
191
|
+
function = function.nextSibling();
|
192
|
+
continue;
|
193
|
+
}
|
194
|
+
if (elem.tagName() == "name") {
|
195
|
+
Options::includeFunctionNames << QRegExp(elem.text());
|
196
|
+
} else if (elem.tagName() == "signature") {
|
197
|
+
Options::includeFunctionSignatures << QRegExp(elem.text());
|
198
|
+
}
|
199
|
+
function = function.nextSibling();
|
200
|
+
}
|
201
|
+
}
|
202
|
+
node = node.nextSibling();
|
203
|
+
}
|
204
|
+
} else {
|
205
|
+
qWarning() << "Couldn't find config file" << smokeConfig.filePath();
|
206
|
+
}
|
207
|
+
|
208
|
+
if (!Options::outputDir.exists()) {
|
209
|
+
qWarning() << "output directoy" << Options::outputDir.path() << "doesn't exist; creating it...";
|
210
|
+
QDir::current().mkpath(Options::outputDir.path());
|
211
|
+
}
|
212
|
+
|
213
|
+
Options::qtMode = ParserOptions::qtMode;
|
214
|
+
|
215
|
+
Options::voidpTypes << "long long" << "long long int" << "unsigned long long" << "unsigned long long int";
|
216
|
+
|
217
|
+
// Fill the type map. It maps some long integral types to shorter forms as used in SMOKE.
|
218
|
+
Util::typeMap["long int"] = "long";
|
219
|
+
Util::typeMap["short int"] = "short";
|
220
|
+
Util::typeMap["long double"] = "double";
|
221
|
+
Util::typeMap["wchar_t"] = "int"; // correct?
|
222
|
+
|
223
|
+
qDebug() << "Generating SMOKE sources...";
|
224
|
+
|
225
|
+
SmokeDataFile smokeData;
|
226
|
+
smokeData.write();
|
227
|
+
SmokeClassFiles classFiles(&smokeData);
|
228
|
+
classFiles.write();
|
229
|
+
|
230
|
+
qDebug() << "Done.";
|
231
|
+
|
232
|
+
return EXIT_SUCCESS;
|
233
|
+
}
|
@@ -0,0 +1,138 @@
|
|
1
|
+
/*
|
2
|
+
Generator for the SMOKE sources
|
3
|
+
Copyright (C) 2009 Arno Rehn <arno@arnorehn.de>
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License along
|
16
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#ifndef GLOBALS_H
|
21
|
+
#define GLOBALS_H
|
22
|
+
|
23
|
+
#include <QMap>
|
24
|
+
#include <QSet>
|
25
|
+
#include <QString>
|
26
|
+
#include <QStringList>
|
27
|
+
|
28
|
+
template<typename T>
|
29
|
+
class QStack;
|
30
|
+
|
31
|
+
class QDir;
|
32
|
+
class QFileInfo;
|
33
|
+
class QString;
|
34
|
+
class QStringList;
|
35
|
+
class QTextStream;
|
36
|
+
|
37
|
+
class Class;
|
38
|
+
class Function;
|
39
|
+
class Member;
|
40
|
+
class Method;
|
41
|
+
class Field;
|
42
|
+
class Type;
|
43
|
+
|
44
|
+
struct Options
|
45
|
+
{
|
46
|
+
static QDir outputDir;
|
47
|
+
static int parts;
|
48
|
+
static QString module;
|
49
|
+
static QStringList parentModules;
|
50
|
+
static QStringList scalarTypes;
|
51
|
+
static QStringList voidpTypes;
|
52
|
+
static QList<QFileInfo> headerList;
|
53
|
+
static QStringList classList;
|
54
|
+
static bool qtMode;
|
55
|
+
|
56
|
+
static QList<QRegExp> excludeExpressions;
|
57
|
+
static QList<QRegExp> includeFunctionNames;
|
58
|
+
static QList<QRegExp> includeFunctionSignatures;
|
59
|
+
|
60
|
+
static bool typeExcluded(const QString& typeName);
|
61
|
+
static bool functionNameIncluded(const QString& fnName);
|
62
|
+
static bool functionSignatureIncluded(const QString& sig);
|
63
|
+
};
|
64
|
+
|
65
|
+
struct SmokeDataFile
|
66
|
+
{
|
67
|
+
SmokeDataFile();
|
68
|
+
|
69
|
+
void write();
|
70
|
+
bool isClassUsed(const Class* klass);
|
71
|
+
QString getTypeFlags(const Type *type, int *classIdx);
|
72
|
+
|
73
|
+
QMap<QString, int> classIndex;
|
74
|
+
QHash<const Member*, int> methodIdx;
|
75
|
+
QHash<Type*, int> typeIndex;
|
76
|
+
QSet<Class*> externalClasses;
|
77
|
+
QSet<Type*> usedTypes;
|
78
|
+
QStringList includedClasses;
|
79
|
+
QHash<const Class*, QSet<const Method*> > declaredVirtualMethods;
|
80
|
+
};
|
81
|
+
|
82
|
+
struct SmokeClassFiles
|
83
|
+
{
|
84
|
+
SmokeClassFiles(SmokeDataFile *data);
|
85
|
+
void write();
|
86
|
+
void write(const QList<QString>& keys);
|
87
|
+
|
88
|
+
private:
|
89
|
+
QString generateMethodBody(const QString& indent, const QString& className, const QString& smokeClassName, const Method& meth, int index, bool dynamicDispatch, QSet< QString >& includes);
|
90
|
+
void generateMethod(QTextStream& out, const QString& className, const QString& smokeClassName, const Method& meth, int index, QSet<QString>& includes);
|
91
|
+
void generateGetAccessor(QTextStream& out, const QString& className, const Field& field, const Type* type, int index);
|
92
|
+
void generateSetAccessor(QTextStream& out, const QString& className, const Field& field, const Type* type, int index);
|
93
|
+
void generateEnumMemberCall(QTextStream& out, const QString& className, const QString& member, int index);
|
94
|
+
void generateVirtualMethod(QTextStream& out, const Method& meth, QSet<QString>& includes);
|
95
|
+
|
96
|
+
void writeClass(QTextStream& out, const Class* klass, const QString& className, QSet<QString>& includes);
|
97
|
+
|
98
|
+
SmokeDataFile *m_smokeData;
|
99
|
+
};
|
100
|
+
|
101
|
+
struct Util
|
102
|
+
{
|
103
|
+
static QHash<QString, QString> typeMap;
|
104
|
+
static QHash<const Method*, const Function*> globalFunctionMap;
|
105
|
+
static QHash<const Method*, const Field*> fieldAccessors;
|
106
|
+
|
107
|
+
static bool isVirtualInheritancePath(const Class* desc, const Class* super);
|
108
|
+
static QList<const Class*> superClassList(const Class* klass);
|
109
|
+
static QList<const Class*> descendantsList(const Class* klass);
|
110
|
+
|
111
|
+
static void preparse(QSet<Type*> *usedTypes, QSet<const Class*> *superClasses, const QList<QString>& keys);
|
112
|
+
|
113
|
+
static bool canClassBeInstanciated(const Class* klass);
|
114
|
+
static bool canClassBeCopied(const Class* klass);
|
115
|
+
static bool hasClassVirtualDestructor(const Class* klass);
|
116
|
+
static bool hasClassPublicDestructor(const Class* klass);
|
117
|
+
static const Method* findDestructor(const Class* klass);
|
118
|
+
|
119
|
+
static bool derivesFromInvalid(const Class* klass);
|
120
|
+
|
121
|
+
static void checkForAbstractClass(Class* klass);
|
122
|
+
static void addDefaultConstructor(Class* klass);
|
123
|
+
static void addCopyConstructor(Class* klass);
|
124
|
+
static void addDestructor(Class* klass);
|
125
|
+
static void addOverloads(const Method& meth);
|
126
|
+
static void addAccessorMethods(const Field& field, QSet<Type*> *usedTypes);
|
127
|
+
|
128
|
+
static QChar munge(const Type *type);
|
129
|
+
static QString mungedName(const Method&);
|
130
|
+
|
131
|
+
static QString stackItemField(const Type* type);
|
132
|
+
static QString assignmentString(const Type* type, const QString& var);
|
133
|
+
static QList<const Method*> collectVirtualMethods(const Class* klass);
|
134
|
+
static const Method* isVirtualOverriden(const Method& meth, const Class* klass);
|
135
|
+
static QList<const Method*> virtualMethodsForClass(const Class* klass);
|
136
|
+
};
|
137
|
+
|
138
|
+
#endif
|
@@ -0,0 +1,773 @@
|
|
1
|
+
/*
|
2
|
+
Generator for the SMOKE sources
|
3
|
+
Copyright (C) 2009 Arno Rehn <arno@arnorehn.de>
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License along
|
16
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#include <QHash>
|
21
|
+
#include <QList>
|
22
|
+
#include <QStack>
|
23
|
+
|
24
|
+
#include <type.h>
|
25
|
+
|
26
|
+
#include "globals.h"
|
27
|
+
#include "../../options.h"
|
28
|
+
|
29
|
+
QHash<QString, QString> Util::typeMap;
|
30
|
+
QHash<const Method*, const Function*> Util::globalFunctionMap;
|
31
|
+
QHash<const Method*, const Field*> Util::fieldAccessors;
|
32
|
+
|
33
|
+
// looks up the inheritance path from desc to super and sets 'virt' to true if it encounters a virtual base
|
34
|
+
static bool isVirtualInheritancePathPrivate(const Class* desc, const Class* super, bool *virt)
|
35
|
+
{
|
36
|
+
foreach (const Class::BaseClassSpecifier bspec, desc->baseClasses()) {
|
37
|
+
if (bspec.baseClass == super || isVirtualInheritancePathPrivate(bspec.baseClass, super, virt)) {
|
38
|
+
if (bspec.isVirtual)
|
39
|
+
*virt = true;
|
40
|
+
return true;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return false;
|
44
|
+
}
|
45
|
+
|
46
|
+
bool Util::isVirtualInheritancePath(const Class* desc, const Class* super)
|
47
|
+
{
|
48
|
+
bool isVirtual = false;
|
49
|
+
isVirtualInheritancePathPrivate(desc, super, &isVirtual);
|
50
|
+
return isVirtual;
|
51
|
+
}
|
52
|
+
|
53
|
+
QList<const Class*> Util::superClassList(const Class* klass)
|
54
|
+
{
|
55
|
+
static QHash<const Class*, QList<const Class*> > superClassCache;
|
56
|
+
|
57
|
+
QList<const Class*> ret;
|
58
|
+
if (superClassCache.contains(klass))
|
59
|
+
return superClassCache[klass];
|
60
|
+
foreach (const Class::BaseClassSpecifier& base, klass->baseClasses()) {
|
61
|
+
ret << base.baseClass;
|
62
|
+
ret += superClassList(base.baseClass);
|
63
|
+
}
|
64
|
+
// cache
|
65
|
+
superClassCache[klass] = ret;
|
66
|
+
return ret;
|
67
|
+
}
|
68
|
+
|
69
|
+
QList<const Class*> Util::descendantsList(const Class* klass)
|
70
|
+
{
|
71
|
+
static QHash<const Class*, QList<const Class*> > descendantsClassCache;
|
72
|
+
|
73
|
+
QList<const Class*> ret;
|
74
|
+
if (descendantsClassCache.contains(klass))
|
75
|
+
return descendantsClassCache[klass];
|
76
|
+
for (QHash<QString, Class>::const_iterator iter = classes.constBegin(); iter != classes.constEnd(); iter++) {
|
77
|
+
if (superClassList(&iter.value()).contains(klass))
|
78
|
+
ret << &iter.value();
|
79
|
+
}
|
80
|
+
// cache
|
81
|
+
descendantsClassCache[klass] = ret;
|
82
|
+
return ret;
|
83
|
+
}
|
84
|
+
|
85
|
+
bool operator==(const Field& lhs, const Field& rhs)
|
86
|
+
{
|
87
|
+
return (lhs.name() == rhs.name() && lhs.declaringType() == rhs.declaringType() && lhs.type() == rhs.type());
|
88
|
+
}
|
89
|
+
|
90
|
+
bool operator==(const EnumMember& lhs, const EnumMember& rhs)
|
91
|
+
{
|
92
|
+
return (lhs.name() == rhs.name() && lhs.declaringType() == rhs.declaringType() && lhs.type() == rhs.type());
|
93
|
+
}
|
94
|
+
|
95
|
+
void Util::preparse(QSet<Type*> *usedTypes, QSet<const Class*> *superClasses, const QList<QString>& keys)
|
96
|
+
{
|
97
|
+
Class& globalSpace = classes["QGlobalSpace"];
|
98
|
+
globalSpace.setName("QGlobalSpace");
|
99
|
+
globalSpace.setKind(Class::Kind_Class);
|
100
|
+
globalSpace.setIsNameSpace(true);
|
101
|
+
|
102
|
+
// add all functions as methods to a class called 'QGlobalSpace' or a class that represents a namespace
|
103
|
+
for (QHash<QString, Function>::const_iterator it = functions.constBegin(); it != functions.constEnd(); it++) {
|
104
|
+
const Function& fn = it.value();
|
105
|
+
|
106
|
+
QString fnString = fn.toString();
|
107
|
+
|
108
|
+
// gcc doesn't like this function... for whatever reason
|
109
|
+
if (fn.name() == "_IO_ftrylockfile"
|
110
|
+
// functions in named namespaces are covered by the class list - only check for top-level functions here
|
111
|
+
|| (fn.nameSpace().isEmpty() && !Options::functionNameIncluded(fn.qualifiedName()) && !Options::functionSignatureIncluded(fnString))
|
112
|
+
|| Options::typeExcluded(fnString))
|
113
|
+
{
|
114
|
+
// we don't want that function...
|
115
|
+
continue;
|
116
|
+
}
|
117
|
+
|
118
|
+
Class* parent = &globalSpace;
|
119
|
+
if (!fn.nameSpace().isEmpty()) {
|
120
|
+
parent = &classes[fn.nameSpace()];
|
121
|
+
if (parent->name().isEmpty()) {
|
122
|
+
parent->setName(fn.nameSpace());
|
123
|
+
parent->setKind(Class::Kind_Class);
|
124
|
+
parent->setIsNameSpace(true);
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
Method meth = Method(parent, fn.name(), fn.type(), Access_public, fn.parameters());
|
129
|
+
meth.setFlag(Method::Static);
|
130
|
+
parent->appendMethod(meth);
|
131
|
+
// map this method to the function, so we can later retrieve the header it was defined in
|
132
|
+
globalFunctionMap[&parent->methods().last()] = &fn;
|
133
|
+
|
134
|
+
int methIndex = parent->methods().length() - 1;
|
135
|
+
addOverloads(meth);
|
136
|
+
// handle the methods appended by addOverloads()
|
137
|
+
for (int i = parent->methods().length() - 1; i > methIndex; --i)
|
138
|
+
globalFunctionMap[&parent->methods()[i]] = &fn;
|
139
|
+
|
140
|
+
(*usedTypes) << meth.type();
|
141
|
+
foreach (const Parameter& param, meth.parameters())
|
142
|
+
(*usedTypes) << param.type();
|
143
|
+
}
|
144
|
+
|
145
|
+
// all enums that don't have a parent are put under QGlobalSpace, too
|
146
|
+
for (QHash<QString, Enum>::iterator it = enums.begin(); it != enums.end(); it++) {
|
147
|
+
Enum& e = it.value();
|
148
|
+
if (!e.parent()) {
|
149
|
+
Class* parent = &globalSpace;
|
150
|
+
if (!e.nameSpace().isEmpty()) {
|
151
|
+
parent = &classes[e.nameSpace()];
|
152
|
+
if (parent->name().isEmpty()) {
|
153
|
+
parent->setName(e.nameSpace());
|
154
|
+
parent->setKind(Class::Kind_Class);
|
155
|
+
parent->setIsNameSpace(true);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
Type *t = 0;
|
160
|
+
if (e.name().isEmpty()) {
|
161
|
+
// unnamed enum
|
162
|
+
Type longType = Type("long");
|
163
|
+
longType.setIsIntegral(true);
|
164
|
+
t = Type::registerType(longType);
|
165
|
+
} else {
|
166
|
+
t = Type::registerType(Type(&e));
|
167
|
+
}
|
168
|
+
(*usedTypes) << t;
|
169
|
+
parent->appendChild(&e);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
foreach (const QString& key, keys) {
|
174
|
+
Class& klass = classes[key];
|
175
|
+
foreach (const Class::BaseClassSpecifier base, klass.baseClasses()) {
|
176
|
+
superClasses->insert(base.baseClass);
|
177
|
+
}
|
178
|
+
if (!klass.isNameSpace()) {
|
179
|
+
addDefaultConstructor(&klass);
|
180
|
+
addCopyConstructor(&klass);
|
181
|
+
addDestructor(&klass);
|
182
|
+
checkForAbstractClass(&klass);
|
183
|
+
foreach (const Method& m, klass.methods()) {
|
184
|
+
if (m.access() == Access_private)
|
185
|
+
continue;
|
186
|
+
if ((m.type()->getClass() && m.type()->getClass()->access() == Access_private)
|
187
|
+
|| Options::typeExcluded(m.toString(false, true)))
|
188
|
+
{
|
189
|
+
klass.methodsRef().removeOne(m);
|
190
|
+
continue;
|
191
|
+
}
|
192
|
+
addOverloads(m);
|
193
|
+
(*usedTypes) << m.type();
|
194
|
+
foreach (const Parameter& param, m.parameters())
|
195
|
+
(*usedTypes) << param.type();
|
196
|
+
}
|
197
|
+
foreach (const Field& f, klass.fields()) {
|
198
|
+
if (f.access() == Access_private)
|
199
|
+
continue;
|
200
|
+
if (Options::typeExcluded(f.toString(false, true))) {
|
201
|
+
klass.fieldsRef().removeOne(f);
|
202
|
+
continue;
|
203
|
+
}
|
204
|
+
}
|
205
|
+
foreach (const Field& f, klass.fields()) {
|
206
|
+
if (f.access() == Access_private)
|
207
|
+
continue;
|
208
|
+
addAccessorMethods(f, usedTypes);
|
209
|
+
}
|
210
|
+
}
|
211
|
+
foreach (BasicTypeDeclaration* decl, klass.children()) {
|
212
|
+
Enum* e = 0;
|
213
|
+
if ((e = dynamic_cast<Enum*>(decl))) {
|
214
|
+
Type *t = 0;
|
215
|
+
if (e->name().isEmpty()) {
|
216
|
+
// unnamed enum
|
217
|
+
Type longType = Type("long");
|
218
|
+
longType.setIsIntegral(true);
|
219
|
+
t = Type::registerType(longType);
|
220
|
+
} else {
|
221
|
+
t = Type::registerType(Type(e));
|
222
|
+
}
|
223
|
+
(*usedTypes) << t;
|
224
|
+
foreach (const EnumMember& member, e->members()) {
|
225
|
+
if (Options::typeExcluded(member.toString())) {
|
226
|
+
e->membersRef().removeOne(member);
|
227
|
+
}
|
228
|
+
}
|
229
|
+
}
|
230
|
+
|
231
|
+
}
|
232
|
+
|
233
|
+
}
|
234
|
+
}
|
235
|
+
|
236
|
+
bool Util::canClassBeInstanciated(const Class* klass)
|
237
|
+
{
|
238
|
+
static QHash<const Class*, bool> cache;
|
239
|
+
if (cache.contains(klass))
|
240
|
+
return cache[klass];
|
241
|
+
|
242
|
+
bool ctorFound = false, publicCtorFound = false, privatePureVirtualsFound = false;
|
243
|
+
foreach (const Method& meth, klass->methods()) {
|
244
|
+
if (meth.isConstructor()) {
|
245
|
+
ctorFound = true;
|
246
|
+
if (meth.access() != Access_private) {
|
247
|
+
// this class can be instanciated
|
248
|
+
publicCtorFound = true;
|
249
|
+
}
|
250
|
+
} else if ((meth.flags() & Method::PureVirtual) && meth.access() == Access_private) {
|
251
|
+
privatePureVirtualsFound = true;
|
252
|
+
}
|
253
|
+
}
|
254
|
+
|
255
|
+
// The class can be instanciated if it has a public constructor or no constructor at all
|
256
|
+
// because then it has a default one generated by the compiler.
|
257
|
+
// If it has private pure virtuals, then it can't be instanciated either.
|
258
|
+
bool ret = ((publicCtorFound || !ctorFound) && !privatePureVirtualsFound);
|
259
|
+
cache[klass] = ret;
|
260
|
+
return ret;
|
261
|
+
}
|
262
|
+
|
263
|
+
bool Util::canClassBeCopied(const Class* klass)
|
264
|
+
{
|
265
|
+
static QHash<const Class*, bool> cache;
|
266
|
+
if (cache.contains(klass))
|
267
|
+
return cache[klass];
|
268
|
+
|
269
|
+
bool privateCopyCtorFound = false;
|
270
|
+
foreach (const Method& meth, klass->methods()) {
|
271
|
+
if (meth.access() != Access_private)
|
272
|
+
continue;
|
273
|
+
if (meth.isConstructor() && meth.parameters().count() == 1) {
|
274
|
+
const Type* type = meth.parameters()[0].type();
|
275
|
+
// c'tor should be Foo(const Foo& copy)
|
276
|
+
if (type->isConst() && type->isRef() && type->getClass() == klass) {
|
277
|
+
privateCopyCtorFound = true;
|
278
|
+
break;
|
279
|
+
}
|
280
|
+
}
|
281
|
+
}
|
282
|
+
|
283
|
+
bool parentCanBeCopied = true;
|
284
|
+
foreach (const Class::BaseClassSpecifier& base, klass->baseClasses()) {
|
285
|
+
if (!canClassBeCopied(base.baseClass)) {
|
286
|
+
parentCanBeCopied = false;
|
287
|
+
break;
|
288
|
+
}
|
289
|
+
}
|
290
|
+
|
291
|
+
// if the parent can be copied and we didn't find a private copy c'tor, the class is copiable
|
292
|
+
bool ret = (parentCanBeCopied && !privateCopyCtorFound);
|
293
|
+
cache[klass] = ret;
|
294
|
+
return ret;
|
295
|
+
}
|
296
|
+
|
297
|
+
bool Util::hasClassVirtualDestructor(const Class* klass)
|
298
|
+
{
|
299
|
+
static QHash<const Class*, bool> cache;
|
300
|
+
if (cache.contains(klass))
|
301
|
+
return cache[klass];
|
302
|
+
|
303
|
+
bool virtualDtorFound = false;
|
304
|
+
foreach (const Method& meth, klass->methods()) {
|
305
|
+
if (meth.isDestructor() && meth.flags() & Method::Virtual) {
|
306
|
+
virtualDtorFound = true;
|
307
|
+
break;
|
308
|
+
}
|
309
|
+
}
|
310
|
+
|
311
|
+
bool superClassHasVirtualDtor = false;
|
312
|
+
foreach (const Class::BaseClassSpecifier& bspec, klass->baseClasses()) {
|
313
|
+
if (hasClassVirtualDestructor(bspec.baseClass)) {
|
314
|
+
superClassHasVirtualDtor = true;
|
315
|
+
break;
|
316
|
+
}
|
317
|
+
}
|
318
|
+
|
319
|
+
// if the superclass has a virtual d'tor, then the descendants have one automatically, too
|
320
|
+
bool ret = (virtualDtorFound || superClassHasVirtualDtor);
|
321
|
+
cache[klass] = ret;
|
322
|
+
return ret;
|
323
|
+
}
|
324
|
+
|
325
|
+
bool Util::hasClassPublicDestructor(const Class* klass)
|
326
|
+
{
|
327
|
+
static QHash<const Class*, bool> cache;
|
328
|
+
if (cache.contains(klass))
|
329
|
+
return cache[klass];
|
330
|
+
|
331
|
+
if (klass->isNameSpace()) {
|
332
|
+
cache[klass] = false;
|
333
|
+
return false;
|
334
|
+
}
|
335
|
+
|
336
|
+
bool publicDtorFound = true;
|
337
|
+
foreach (const Method& meth, klass->methods()) {
|
338
|
+
if (meth.isDestructor()) {
|
339
|
+
if (meth.access() != Access_public)
|
340
|
+
publicDtorFound = false;
|
341
|
+
// a class has only one destructor, so break here
|
342
|
+
break;
|
343
|
+
}
|
344
|
+
}
|
345
|
+
|
346
|
+
cache[klass] = publicDtorFound;
|
347
|
+
return publicDtorFound;
|
348
|
+
}
|
349
|
+
|
350
|
+
const Method* Util::findDestructor(const Class* klass)
|
351
|
+
{
|
352
|
+
foreach (const Method& meth, klass->methods()) {
|
353
|
+
if (meth.isDestructor()) {
|
354
|
+
return &meth;
|
355
|
+
}
|
356
|
+
}
|
357
|
+
const Method* dtor = 0;
|
358
|
+
foreach (const Class::BaseClassSpecifier& bspec, klass->baseClasses()) {
|
359
|
+
if ((dtor = findDestructor(bspec.baseClass))) {
|
360
|
+
return dtor;
|
361
|
+
}
|
362
|
+
}
|
363
|
+
return 0;
|
364
|
+
}
|
365
|
+
|
366
|
+
void Util::checkForAbstractClass(Class* klass)
|
367
|
+
{
|
368
|
+
QList<const Method*> list;
|
369
|
+
|
370
|
+
bool hasPrivatePureVirtuals = false;
|
371
|
+
foreach (const Method& meth, klass->methods()) {
|
372
|
+
if ((meth.flags() & Method::PureVirtual) && meth.access() == Access_private)
|
373
|
+
hasPrivatePureVirtuals = true;
|
374
|
+
if (meth.isConstructor())
|
375
|
+
list << &meth;
|
376
|
+
}
|
377
|
+
|
378
|
+
// abstract classes can't be instanciated - remove the constructors
|
379
|
+
if (hasPrivatePureVirtuals) {
|
380
|
+
foreach (const Method* ctor, list) {
|
381
|
+
klass->methodsRef().removeOne(*ctor);
|
382
|
+
}
|
383
|
+
}
|
384
|
+
}
|
385
|
+
|
386
|
+
void Util::addDefaultConstructor(Class* klass)
|
387
|
+
{
|
388
|
+
foreach (const Method& meth, klass->methods()) {
|
389
|
+
// if the class already has a constructor or if it has pure virtuals, there's nothing to do for us
|
390
|
+
if (meth.isConstructor())
|
391
|
+
return;
|
392
|
+
else if (meth.isDestructor() && meth.access() == Access_private)
|
393
|
+
return;
|
394
|
+
}
|
395
|
+
|
396
|
+
Type t = Type(klass);
|
397
|
+
t.setPointerDepth(1);
|
398
|
+
Method meth = Method(klass, klass->name(), Type::registerType(t));
|
399
|
+
meth.setIsConstructor(true);
|
400
|
+
klass->appendMethod(meth);
|
401
|
+
}
|
402
|
+
|
403
|
+
void Util::addCopyConstructor(Class* klass)
|
404
|
+
{
|
405
|
+
foreach (const Method& meth, klass->methods()) {
|
406
|
+
if (meth.isConstructor() && meth.parameters().count() == 1) {
|
407
|
+
const Type* type = meth.parameters()[0].type();
|
408
|
+
// found a copy c'tor? then there's nothing to do
|
409
|
+
if (type->isRef() && type->getClass() == klass)
|
410
|
+
return;
|
411
|
+
} else if (meth.isDestructor() && meth.access() == Access_private) {
|
412
|
+
// private destructor, so we can't create instances of that class
|
413
|
+
return;
|
414
|
+
}
|
415
|
+
}
|
416
|
+
|
417
|
+
// if the parent can't be copied, a copy c'tor is of no use
|
418
|
+
foreach (const Class::BaseClassSpecifier& base, klass->baseClasses()) {
|
419
|
+
if (!canClassBeCopied(base.baseClass))
|
420
|
+
return;
|
421
|
+
}
|
422
|
+
|
423
|
+
Type t = Type(klass);
|
424
|
+
t.setPointerDepth(1);
|
425
|
+
Method meth = Method(klass, klass->name(), Type::registerType(t));
|
426
|
+
meth.setIsConstructor(true);
|
427
|
+
// parameter is a constant reference to another object of the same types
|
428
|
+
Type paramType = Type(klass, true); paramType.setIsRef(true);
|
429
|
+
meth.appendParameter(Parameter("copy", Type::registerType(paramType)));
|
430
|
+
klass->appendMethod(meth);
|
431
|
+
}
|
432
|
+
|
433
|
+
void Util::addDestructor(Class* klass)
|
434
|
+
{
|
435
|
+
foreach (const Method& meth, klass->methods()) {
|
436
|
+
// we already have a destructor
|
437
|
+
if (meth.isDestructor())
|
438
|
+
return;
|
439
|
+
}
|
440
|
+
|
441
|
+
Method meth = Method(klass, "~" + klass->name(), const_cast<Type*>(Type::Void));
|
442
|
+
meth.setIsDestructor(true);
|
443
|
+
|
444
|
+
const Method* dtor = findDestructor(klass);
|
445
|
+
if (dtor && dtor->hasExceptionSpec()) {
|
446
|
+
meth.setHasExceptionSpec(true);
|
447
|
+
foreach (const Type& t, dtor->exceptionTypes()) {
|
448
|
+
meth.appendExceptionType(t);
|
449
|
+
}
|
450
|
+
}
|
451
|
+
|
452
|
+
klass->appendMethod(meth);
|
453
|
+
}
|
454
|
+
|
455
|
+
QChar Util::munge(const Type *type) {
|
456
|
+
if (type->getTypedef()) {
|
457
|
+
Type resolved = type->getTypedef()->resolve();
|
458
|
+
return munge(&resolved);
|
459
|
+
}
|
460
|
+
|
461
|
+
if (type->pointerDepth() > 1 || (type->getClass() && type->getClass()->isTemplate() && (!Options::qtMode || (Options::qtMode && type->getClass()->name() != "QFlags"))) ||
|
462
|
+
(Options::voidpTypes.contains(type->name()) && !Options::scalarTypes.contains(type->name())) )
|
463
|
+
{
|
464
|
+
// QString and QStringList are both mapped to Smoke::t_voidp, but QString is a scalar as well
|
465
|
+
// TODO: fix this - neither QStringList nor QString should be mapped to Smoke::t_voidp or munged as ? or $
|
466
|
+
|
467
|
+
// reference to array or hash or unknown
|
468
|
+
return '?';
|
469
|
+
} else if (type->isIntegral() || type->getEnum() || Options::scalarTypes.contains(type->name()) ||
|
470
|
+
(Options::qtMode && !type->isRef() && type->pointerDepth() == 0 &&
|
471
|
+
(type->getClass() && type->getClass()->isTemplate() && type->getClass()->name() == "QFlags")))
|
472
|
+
{
|
473
|
+
// plain scalar
|
474
|
+
return '$';
|
475
|
+
} else if (type->getClass()) {
|
476
|
+
// object
|
477
|
+
return '#';
|
478
|
+
} else {
|
479
|
+
// unknown
|
480
|
+
return '?';
|
481
|
+
}
|
482
|
+
}
|
483
|
+
|
484
|
+
QString Util::mungedName(const Method& meth) {
|
485
|
+
QString ret = meth.name();
|
486
|
+
foreach (const Parameter& param, meth.parameters()) {
|
487
|
+
const Type* type = param.type();
|
488
|
+
ret += munge(type);
|
489
|
+
}
|
490
|
+
return ret;
|
491
|
+
}
|
492
|
+
|
493
|
+
QString Util::stackItemField(const Type* type)
|
494
|
+
{
|
495
|
+
if (type->getTypedef()) {
|
496
|
+
Type resolved = type->getTypedef()->resolve();
|
497
|
+
return stackItemField(&resolved);
|
498
|
+
}
|
499
|
+
|
500
|
+
if (Options::qtMode && !type->isRef() && type->pointerDepth() == 0 &&
|
501
|
+
type->getClass() && type->getClass()->isTemplate() && type->getClass()->name() == "QFlags")
|
502
|
+
{
|
503
|
+
return "s_uint";
|
504
|
+
}
|
505
|
+
|
506
|
+
if (type->pointerDepth() > 0 || type->isRef() || type->isFunctionPointer() || type->isArray() || Options::voidpTypes.contains(type->name())
|
507
|
+
|| (!type->isIntegral() && !type->getEnum()))
|
508
|
+
{
|
509
|
+
return "s_class";
|
510
|
+
}
|
511
|
+
|
512
|
+
if (type->getEnum())
|
513
|
+
return "s_enum";
|
514
|
+
|
515
|
+
QString typeName = type->name();
|
516
|
+
// replace the unsigned stuff, look the type up in Util::typeMap and if
|
517
|
+
// necessary, add a 'u' for unsigned types at the beginning again
|
518
|
+
bool _unsigned = false;
|
519
|
+
if (typeName.startsWith("unsigned ")) {
|
520
|
+
typeName.replace("unsigned ", "");
|
521
|
+
_unsigned = true;
|
522
|
+
}
|
523
|
+
typeName.replace("signed ", "");
|
524
|
+
typeName = Util::typeMap.value(typeName, typeName);
|
525
|
+
if (_unsigned)
|
526
|
+
typeName.prepend('u');
|
527
|
+
return "s_" + typeName;
|
528
|
+
}
|
529
|
+
|
530
|
+
QString Util::assignmentString(const Type* type, const QString& var)
|
531
|
+
{
|
532
|
+
if (type->getTypedef()) {
|
533
|
+
Type resolved = type->getTypedef()->resolve();
|
534
|
+
return assignmentString(&resolved, var);
|
535
|
+
}
|
536
|
+
|
537
|
+
if (type->pointerDepth() > 0 || type->isFunctionPointer()) {
|
538
|
+
return "(void*)" + var;
|
539
|
+
} else if (type->isRef()) {
|
540
|
+
return "(void*)&" + var;
|
541
|
+
} else if (type->isIntegral() && !Options::voidpTypes.contains(type->name())) {
|
542
|
+
return var;
|
543
|
+
} else if (type->getEnum()) {
|
544
|
+
return var;
|
545
|
+
} else if (Options::qtMode && type->getClass() && type->getClass()->isTemplate() && type->getClass()->name() == "QFlags")
|
546
|
+
{
|
547
|
+
return "(uint)" + var;
|
548
|
+
} else {
|
549
|
+
QString ret = "(void*)new " + type->toString();
|
550
|
+
ret += '(' + var + ')';
|
551
|
+
return ret;
|
552
|
+
}
|
553
|
+
return QString();
|
554
|
+
}
|
555
|
+
|
556
|
+
QList<const Method*> Util::collectVirtualMethods(const Class* klass)
|
557
|
+
{
|
558
|
+
QList<const Method*> methods;
|
559
|
+
foreach (const Method& meth, klass->methods()) {
|
560
|
+
if ((meth.flags() & Method::Virtual || meth.flags() & Method::PureVirtual)
|
561
|
+
&& !meth.isDestructor() && meth.access() != Access_private)
|
562
|
+
{
|
563
|
+
methods << &meth;
|
564
|
+
}
|
565
|
+
}
|
566
|
+
foreach (const Class::BaseClassSpecifier& baseClass, klass->baseClasses()) {
|
567
|
+
methods += collectVirtualMethods(baseClass.baseClass);
|
568
|
+
}
|
569
|
+
return methods;
|
570
|
+
}
|
571
|
+
|
572
|
+
// don't make this public - it's just a utility function for the next method and probably not what you would expect it to be
|
573
|
+
static bool operator==(const Method& rhs, const Method& lhs)
|
574
|
+
{
|
575
|
+
// These have to be equal for methods to be the same. Return types don't have an effect, ignore them.
|
576
|
+
bool ok = (rhs.name() == lhs.name() && rhs.isConst() == lhs.isConst() && rhs.parameters().count() == lhs.parameters().count());
|
577
|
+
if (!ok)
|
578
|
+
return false;
|
579
|
+
|
580
|
+
// now check the parameter types for equality
|
581
|
+
for (int i = 0; i < rhs.parameters().count(); i++) {
|
582
|
+
if (rhs.parameters()[i].type() != lhs.parameters()[i].type())
|
583
|
+
return false;
|
584
|
+
}
|
585
|
+
|
586
|
+
return true;
|
587
|
+
}
|
588
|
+
|
589
|
+
void Util::addAccessorMethods(const Field& field, QSet<Type*> *usedTypes)
|
590
|
+
{
|
591
|
+
Class* klass = field.getClass();
|
592
|
+
Type* type = field.type();
|
593
|
+
if (type->getClass() && type->pointerDepth() == 0) {
|
594
|
+
Type newType = *type;
|
595
|
+
newType.setIsRef(true);
|
596
|
+
type = Type::registerType(newType);
|
597
|
+
}
|
598
|
+
(*usedTypes) << type;
|
599
|
+
Method getter = Method(klass, field.name(), type, field.access());
|
600
|
+
getter.setIsConst(true);
|
601
|
+
if (field.flags() & Field::Static)
|
602
|
+
getter.setFlag(Method::Static);
|
603
|
+
klass->appendMethod(getter);
|
604
|
+
fieldAccessors[&klass->methods().last()] = &field;
|
605
|
+
|
606
|
+
// constant field? (i.e. no setter method)
|
607
|
+
if (field.type()->isConst() && field.type()->pointerDepth() == 0)
|
608
|
+
return;
|
609
|
+
|
610
|
+
// foo => setFoo
|
611
|
+
QString newName = field.name();
|
612
|
+
newName[0] = newName[0].toUpper();
|
613
|
+
Method setter = Method(klass, "set" + newName, const_cast<Type*>(Type::Void), field.access());
|
614
|
+
if (field.flags() & Field::Static)
|
615
|
+
setter.setFlag(Method::Static);
|
616
|
+
|
617
|
+
// reset
|
618
|
+
type = field.type();
|
619
|
+
// to avoid copying around more stuff than necessary, convert setFoo(Bar) to setFoo(const Bar&)
|
620
|
+
if (type->pointerDepth() == 0 && type->getClass()) {
|
621
|
+
Type newType = *type;
|
622
|
+
newType.setIsRef(true);
|
623
|
+
newType.setIsConst(true);
|
624
|
+
type = Type::registerType(newType);
|
625
|
+
}
|
626
|
+
(*usedTypes) << type;
|
627
|
+
setter.appendParameter(Parameter(QString(), type));
|
628
|
+
if (klass->methods().contains(setter))
|
629
|
+
return;
|
630
|
+
klass->appendMethod(setter);
|
631
|
+
fieldAccessors[&klass->methods().last()] = &field;
|
632
|
+
}
|
633
|
+
|
634
|
+
void Util::addOverloads(const Method& meth)
|
635
|
+
{
|
636
|
+
ParameterList params;
|
637
|
+
Class* klass = meth.getClass();
|
638
|
+
|
639
|
+
for (int i = 0; i < meth.parameters().count(); i++) {
|
640
|
+
const Parameter& param = meth.parameters()[i];
|
641
|
+
if (!param.isDefault()) {
|
642
|
+
params << param;
|
643
|
+
continue;
|
644
|
+
}
|
645
|
+
Method overload = meth;
|
646
|
+
if (meth.flags() & Method::PureVirtual) {
|
647
|
+
overload.setFlag(Method::DynamicDispatch);
|
648
|
+
}
|
649
|
+
overload.removeFlag(Method::Virtual);
|
650
|
+
overload.removeFlag(Method::PureVirtual);
|
651
|
+
overload.setParameterList(params);
|
652
|
+
if (klass->methods().contains(overload)) {
|
653
|
+
// we already have that, skip it
|
654
|
+
params << param;
|
655
|
+
continue;
|
656
|
+
}
|
657
|
+
|
658
|
+
QStringList remainingDefaultValues;
|
659
|
+
for (int j = i; j < meth.parameters().count(); j++) {
|
660
|
+
const Parameter defParam = meth.parameters()[j];
|
661
|
+
QString cast = "(";
|
662
|
+
cast += defParam.type()->toString() + ')';
|
663
|
+
cast += defParam.defaultValue();
|
664
|
+
remainingDefaultValues << cast;
|
665
|
+
}
|
666
|
+
overload.setRemainingDefaultValues(remainingDefaultValues);
|
667
|
+
klass->appendMethod(overload);
|
668
|
+
|
669
|
+
params << param;
|
670
|
+
}
|
671
|
+
}
|
672
|
+
|
673
|
+
// checks if method meth is overriden in class klass or any of its superclasses
|
674
|
+
const Method* Util::isVirtualOverriden(const Method& meth, const Class* klass)
|
675
|
+
{
|
676
|
+
// is the method virtual at all?
|
677
|
+
if (!(meth.flags() & Method::Virtual) && !(meth.flags() & Method::PureVirtual))
|
678
|
+
return 0;
|
679
|
+
|
680
|
+
// if the method is defined in klass, it can't be overriden there or in any parent class
|
681
|
+
if (meth.getClass() == klass)
|
682
|
+
return 0;
|
683
|
+
|
684
|
+
foreach (const Method& m, klass->methods()) {
|
685
|
+
if (!(m.flags() & Method::Static) && m == meth)
|
686
|
+
// the method m overrides meth
|
687
|
+
return &m;
|
688
|
+
}
|
689
|
+
|
690
|
+
foreach (const Class::BaseClassSpecifier& base, klass->baseClasses()) {
|
691
|
+
// we reached the class in which meth was defined and we still didn't find any overrides => return
|
692
|
+
if (base.baseClass == meth.getClass())
|
693
|
+
return 0;
|
694
|
+
|
695
|
+
// recurse into the base classes
|
696
|
+
const Method* m = 0;
|
697
|
+
if ((m = isVirtualOverriden(meth, base.baseClass)))
|
698
|
+
return m;
|
699
|
+
}
|
700
|
+
|
701
|
+
return 0;
|
702
|
+
}
|
703
|
+
|
704
|
+
static bool qListContainsMethodPointer(const QList<const Method*> list, const Method* ptr) {
|
705
|
+
foreach (const Method* meth, list) {
|
706
|
+
if (*meth == *ptr)
|
707
|
+
return true;
|
708
|
+
}
|
709
|
+
return false;
|
710
|
+
}
|
711
|
+
|
712
|
+
QList<const Method*> Util::virtualMethodsForClass(const Class* klass)
|
713
|
+
{
|
714
|
+
static QHash<const Class*, QList<const Method*> > cache;
|
715
|
+
|
716
|
+
// virtual method callbacks for classes that can't be instanciated aren't useful
|
717
|
+
if (!Util::canClassBeInstanciated(klass))
|
718
|
+
return QList<const Method*>();
|
719
|
+
|
720
|
+
if (cache.contains(klass))
|
721
|
+
return cache[klass];
|
722
|
+
|
723
|
+
QList<const Method*> ret;
|
724
|
+
|
725
|
+
foreach (const Method* meth, Util::collectVirtualMethods(klass)) {
|
726
|
+
// this is a synthesized overload, skip it.
|
727
|
+
if (!meth->remainingDefaultValues().isEmpty())
|
728
|
+
continue;
|
729
|
+
if (meth->getClass() == klass) {
|
730
|
+
// this method can't be overriden, because it's defined in the class for which this method was called
|
731
|
+
ret << meth;
|
732
|
+
continue;
|
733
|
+
}
|
734
|
+
// Check if the method is overriden, so the callback will always point to the latest definition of the virtual method.
|
735
|
+
const Method* override = 0;
|
736
|
+
if ((override = Util::isVirtualOverriden(*meth, klass))) {
|
737
|
+
// If the method was overriden and put under private access, skip it. If we already have the method, skip it as well.
|
738
|
+
if (override->access() == Access_private || qListContainsMethodPointer(ret, override))
|
739
|
+
continue;
|
740
|
+
ret << override;
|
741
|
+
} else if (!qListContainsMethodPointer(ret, meth)) {
|
742
|
+
ret << meth;
|
743
|
+
}
|
744
|
+
}
|
745
|
+
|
746
|
+
cache[klass] = ret;
|
747
|
+
return ret;
|
748
|
+
}
|
749
|
+
|
750
|
+
bool Options::typeExcluded(const QString& typeName)
|
751
|
+
{
|
752
|
+
foreach (const QRegExp& exp, Options::excludeExpressions) {
|
753
|
+
if (exp.exactMatch(typeName))
|
754
|
+
return true;
|
755
|
+
}
|
756
|
+
return false;
|
757
|
+
}
|
758
|
+
|
759
|
+
bool Options::functionNameIncluded(const QString& fnName) {
|
760
|
+
foreach (const QRegExp& exp, Options::includeFunctionNames) {
|
761
|
+
if (exp.exactMatch(fnName))
|
762
|
+
return true;
|
763
|
+
}
|
764
|
+
return false;
|
765
|
+
}
|
766
|
+
|
767
|
+
bool Options::functionSignatureIncluded(const QString& sig) {
|
768
|
+
foreach (const QRegExp& exp, Options::includeFunctionNames) {
|
769
|
+
if (exp.exactMatch(sig))
|
770
|
+
return true;
|
771
|
+
}
|
772
|
+
return false;
|
773
|
+
}
|