From d16c565ca6a55788435c52ad45647eda67854d80 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Tue, 18 Sep 2012 20:32:53 +0200 Subject: [PATCH] Move opengl/wid/net example docs to proper folders. Change-Id: I846439a9cf7ad965ed27a00f98dbc4ff97abe73b Reviewed-by: Jerome Pasion Reviewed-by: Martin Smith --- doc/src/examples/bearermonitor.qdoc | 2 +- doc/src/examples/books.qdoc | 2 +- doc/src/examples/codecs.qdoc | 2 +- doc/src/examples/completer.qdoc | 2 +- doc/src/examples/complexpingpong.qdoc | 2 +- doc/src/examples/contiguouscache.qdoc | 2 +- doc/src/examples/cube.qdoc | 178 ------------------ .../images/blockingfortuneclient-example.png | Bin .../doc}/images/broadcastreceiver-example.png | Bin .../doc}/images/broadcastsender-example.png | Bin .../doc}/images/fortuneclient-example.png | Bin .../doc}/images/fortuneserver-example.png | Bin .../doc}/images/googlesuggest-example.png | Bin .../network/doc}/images/http-example.png | Bin .../network/doc}/images/loopback-example.png | Bin .../doc}/images/multicastreceiver-example.png | Bin .../doc}/images/multicastsender-example.png | Bin .../doc}/images/network-chat-example.png | Bin .../doc}/images/securesocketclient.png | Bin .../doc}/images/securesocketclient2.png | Bin .../images/threadedfortuneserver-example.png | Bin .../network/doc}/images/torrent-example.png | Bin .../doc/src}/blockingfortuneclient.qdoc | 50 ++--- .../network/doc/src}/broadcastreceiver.qdoc | 2 +- .../network/doc/src}/broadcastsender.qdoc | 2 +- .../network/doc/src}/fortuneclient.qdoc | 32 ++-- .../network/doc/src}/fortuneserver.qdoc | 24 +-- .../network/doc/src}/googlesuggest.qdoc | 28 +-- .../network/doc/src}/http.qdoc | 2 +- .../network/doc/src}/loopback.qdoc | 2 +- .../network/doc/src}/multicastreceiver.qdoc | 2 +- .../network/doc/src}/multicastsender.qdoc | 2 +- .../network/doc/src}/network-chat.qdoc | 2 +- .../network/doc/src}/securesocketclient.qdoc | 2 +- .../doc/src}/threadedfortuneserver.qdoc | 24 +-- .../network/doc/src}/torrent.qdoc | 2 +- .../opengl/doc}/images/2dpainting-example.png | Bin .../opengl/doc}/images/cube.png | Bin .../opengl/doc}/images/cube_faces.png | Bin .../images/framebufferobject2-example.png | Bin .../opengl/doc}/images/grabber-example.png | Bin .../opengl/doc}/images/hellogl-es-example.png | Bin .../opengl/doc}/images/hellogl-example.png | Bin .../doc}/images/overpainting-example.png | Bin .../opengl/doc}/images/pbuffers-example.png | Bin .../opengl/doc}/images/pbuffers2-example.png | Bin .../doc}/images/samplebuffers-example.png | Bin .../opengl/doc}/images/textures-example.png | Bin .../opengl/doc/src}/2dpainting.qdoc | 32 ++-- examples/opengl/doc/src/cube.qdoc | 178 ++++++++++++++++++ .../opengl/doc/src}/framebufferobject2.qdoc | 2 +- .../opengl/doc/src}/grabber.qdoc | 2 +- .../opengl/doc/src}/hellogl.qdoc | 52 ++--- .../opengl/doc/src}/hellogl_es.qdoc | 24 +-- .../opengl/doc/src}/overpainting.qdoc | 34 ++-- .../opengl/doc/src}/pbuffers.qdoc | 2 +- .../opengl/doc/src}/pbuffers2.qdoc | 2 +- .../opengl/doc/src}/samplebuffers.qdoc | 2 +- .../opengl/doc/src}/textures.qdoc | 2 +- .../sql/doc}/images/cachedtable-example.png | Bin .../sql/doc}/images/drilldown-example.png | Bin .../sql/doc}/images/masterdetail-example.png | Bin .../sql/doc}/images/querymodel-example.png | Bin .../images/relationaltablemodel-example.png | Bin .../sql/doc}/images/sql-widget-mapper.png | Bin .../sql/doc}/images/sqlbrowser-demo.png | Bin .../sql/doc}/images/tablemodel-example.png | Bin .../images/widgetmapper-sql-mapping-table.png | Bin .../doc}/images/widgetmapper-sql-mapping.png | Bin .../sql/doc/src}/cachedtable.qdoc | 20 +- .../sql/doc/src}/drilldown.qdoc | 68 +++---- .../sql/doc/src}/masterdetail.qdoc | 2 +- .../sql/doc/src}/querymodel.qdoc | 2 +- .../sql/doc/src}/relationaltablemodel.qdoc | 2 +- .../sql/doc/src}/sqlbrowser.qdoc | 2 +- .../sql/doc/src}/sqlwidgetmapper.qdoc | 22 +-- .../sql/doc/src}/tablemodel.qdoc | 2 +- .../tools/doc/src}/customcompleter.qdoc | 2 +- .../tools/doc/src}/customtype.qdoc | 0 .../doc/images/itemviewspuzzle-example.png | Bin 0 -> 211091 bytes .../widgets/doc/src/addressbook-fr.qdoc | 2 +- .../widgets/doc/src/addressbook-tutorial.qdoc | 4 +- .../widgets/doc/{ => src}/addressbook.qdoc | 0 examples/widgets/doc/{ => src}/affine.qdoc | 0 .../widgets/doc/{ => src}/analogclock.qdoc | 0 .../widgets/doc/{ => src}/animatedtiles.qdoc | 0 .../widgets/doc/{ => src}/appchooser.qdoc | 0 .../widgets/doc/{ => src}/application.qdoc | 0 .../widgets/doc/src}/applicationicon.qdoc | 4 +- .../widgets/doc/{ => src}/basicdrawing.qdoc | 0 .../doc/{ => src}/basicgraphicslayouts.qdoc | 0 .../widgets/doc/{ => src}/basiclayouts.qdoc | 0 .../doc/{ => src}/basicsortfiltermodel.qdoc | 0 .../widgets/doc/{ => src}/blurpicker.qdoc | 0 .../widgets/doc/{ => src}/borderlayout.qdoc | 0 examples/widgets/doc/{ => src}/boxes.qdoc | 0 .../widgets/doc/{ => src}/calculator.qdoc | 0 examples/widgets/doc/{ => src}/calendar.qdoc | 0 .../widgets/doc/{ => src}/calendarwidget.qdoc | 0 .../widgets/doc/{ => src}/charactermap.qdoc | 0 examples/widgets/doc/{ => src}/chart.qdoc | 0 examples/widgets/doc/{ => src}/chip.qdoc | 0 .../widgets/doc/{ => src}/classwizard.qdoc | 0 .../widgets/doc/{ => src}/codeeditor.qdoc | 0 .../doc/{ => src}/coloreditorfactory.qdoc | 0 .../doc/{ => src}/combowidgetmapper.qdoc | 0 .../widgets/doc/{ => src}/composition.qdoc | 0 .../doc/{ => src}/concentriccircles.qdoc | 0 .../widgets/doc/{ => src}/configdialog.qdoc | 0 .../doc/{ => src}/customsortfiltermodel.qdoc | 0 examples/widgets/doc/{ => src}/deform.qdoc | 0 .../widgets/doc/{ => src}/diagramscene.qdoc | 0 .../widgets/doc/{ => src}/digitalclock.qdoc | 0 examples/widgets/doc/{ => src}/dirview.qdoc | 0 .../widgets/doc/{ => src}/dockwidgets.qdoc | 0 .../doc/{ => src}/draganddroppuzzle.qdoc | 2 +- .../widgets/doc/{ => src}/dragdroprobot.qdoc | 0 .../widgets/doc/src}/draggableicons.qdoc | 10 +- .../widgets/doc/src}/draggabletext.qdoc | 0 .../widgets/doc/{ => src}/dynamiclayouts.qdoc | 0 examples/widgets/doc/{ => src}/easing.qdoc | 0 .../doc/{ => src}/editabletreemodel.qdoc | 0 .../widgets/doc/{ => src}/elasticnodes.qdoc | 0 .../widgets/doc/{ => src}/elidedlabel.qdoc | 0 .../doc/{ => src}/embeddeddialogs.qdoc | 0 .../doc/{ => src}/eventtransitions.qdoc | 0 examples/widgets/doc/{ => src}/extension.qdoc | 0 examples/widgets/doc/{ => src}/factorial.qdoc | 0 .../widgets/doc/{ => src}/fademessage.qdoc | 0 examples/widgets/doc/{ => src}/fetchmore.qdoc | 0 examples/widgets/doc/{ => src}/findfiles.qdoc | 0 .../widgets/doc/{ => src}/flowlayout.qdoc | 0 .../widgets/doc/{ => src}/fontsampler.qdoc | 0 .../widgets/doc/{ => src}/frozencolumn.qdoc | 0 examples/widgets/doc/{ => src}/gradients.qdoc | 0 examples/widgets/doc/{ => src}/groupbox.qdoc | 0 examples/widgets/doc/{ => src}/icons.qdoc | 0 .../doc/{ => src}/imagecomposition.qdoc | 0 .../widgets/doc/{ => src}/imageviewer.qdoc | 0 examples/widgets/doc/{ => src}/interview.qdoc | 0 .../doc/{ => src}/itemviewspuzzle.qdoc | 0 .../widgets/doc/{ => src}/licensewizard.qdoc | 0 examples/widgets/doc/{ => src}/lighting.qdoc | 0 examples/widgets/doc/{ => src}/lineedits.qdoc | 0 .../widgets/doc/{ => src}/mainwindow.qdoc | 0 examples/widgets/doc/{ => src}/mdi.qdoc | 0 examples/widgets/doc/{ => src}/menus.qdoc | 0 .../widgets/doc/{ => src}/moveblocks.qdoc | 0 examples/widgets/doc/{ => src}/movie.qdoc | 0 examples/widgets/doc/{ => src}/orderform.qdoc | 0 .../widgets/doc/{ => src}/padnavigator.qdoc | 0 .../widgets/doc/{ => src}/painterpaths.qdoc | 0 .../widgets/doc/{ => src}/pathstroke.qdoc | 0 examples/widgets/doc/{ => src}/pingpong.qdoc | 0 examples/widgets/doc/{ => src}/pixelator.qdoc | 0 .../widgets/doc/{ => src}/recentfiles.qdoc | 0 examples/widgets/doc/{ => src}/rogue.qdoc | 0 .../widgets/doc/{ => src}/screenshot.qdoc | 0 examples/widgets/doc/{ => src}/scribble.qdoc | 0 examples/widgets/doc/{ => src}/sdi.qdoc | 0 .../widgets/doc/{ => src}/shapedclock.qdoc | 0 .../widgets/doc/{ => src}/simpledommodel.qdoc | 0 .../doc/{ => src}/simpletreemodel.qdoc | 0 .../doc/{ => src}/simplewidgetmapper.qdoc | 0 examples/widgets/doc/{ => src}/sipdialog.qdoc | 0 examples/widgets/doc/{ => src}/sliders.qdoc | 0 .../doc/{ => src}/spinboxdelegate.qdoc | 0 examples/widgets/doc/{ => src}/spinboxes.qdoc | 0 .../widgets/doc/{ => src}/spreadsheet.qdoc | 0 .../doc/{ => src}/standarddialogs.qdoc | 0 .../widgets/doc/{ => src}/stardelegate.qdoc | 0 examples/widgets/doc/{ => src}/states.qdoc | 0 examples/widgets/doc/{ => src}/stickman.qdoc | 0 examples/widgets/doc/{ => src}/styles.qdoc | 0 .../widgets/doc/{ => src}/stylesheet.qdoc | 0 examples/widgets/doc/{ => src}/sub-attaq.qdoc | 0 .../doc/{ => src}/syntaxhighlighter.qdoc | 0 examples/widgets/doc/{ => src}/tabdialog.qdoc | 0 examples/widgets/doc/{ => src}/tablet.qdoc | 0 examples/widgets/doc/{ => src}/tetrix.qdoc | 0 examples/widgets/doc/{ => src}/textedit.qdoc | 0 examples/widgets/doc/{ => src}/tooltips.qdoc | 0 .../widgets/doc/{ => src}/trafficlight.qdoc | 0 .../doc/{ => src}/transformations.qdoc | 0 .../widgets/doc/{ => src}/trivialwizard.qdoc | 0 .../widgets/doc/{ => src}/twowaybutton.qdoc | 0 examples/widgets/doc/{ => src}/wiggly.qdoc | 0 .../widgets/doc/{ => src}/windowflags.qdoc | 0 .../xml/doc}/images/saxbookmarks-example.png | Bin .../xml/doc/src}/saxbookmarks.qdoc | 2 +- src/network/doc/qtnetwork.qdocconf | 8 +- src/opengl/doc/qtopengl.qdocconf | 8 +- src/sql/doc/qtsql.qdocconf | 8 +- src/widgets/doc/qtwidgets.qdocconf | 2 +- src/xml/doc/qtxml.qdocconf | 8 +- 195 files changed, 439 insertions(+), 439 deletions(-) delete mode 100644 doc/src/examples/cube.qdoc rename {doc/src => examples/network/doc}/images/blockingfortuneclient-example.png (100%) rename {doc/src => examples/network/doc}/images/broadcastreceiver-example.png (100%) rename {doc/src => examples/network/doc}/images/broadcastsender-example.png (100%) rename {doc/src => examples/network/doc}/images/fortuneclient-example.png (100%) rename {doc/src => examples/network/doc}/images/fortuneserver-example.png (100%) rename {doc/src => examples/network/doc}/images/googlesuggest-example.png (100%) rename {doc/src => examples/network/doc}/images/http-example.png (100%) rename {doc/src => examples/network/doc}/images/loopback-example.png (100%) rename {doc/src => examples/network/doc}/images/multicastreceiver-example.png (100%) rename {doc/src => examples/network/doc}/images/multicastsender-example.png (100%) rename {doc/src => examples/network/doc}/images/network-chat-example.png (100%) rename {doc/src => examples/network/doc}/images/securesocketclient.png (100%) rename {doc/src => examples/network/doc}/images/securesocketclient2.png (100%) rename {doc/src => examples/network/doc}/images/threadedfortuneserver-example.png (100%) rename {doc/src => examples/network/doc}/images/torrent-example.png (100%) rename {doc/src/examples => examples/network/doc/src}/blockingfortuneclient.qdoc (82%) rename {doc/src/examples => examples/network/doc/src}/broadcastreceiver.qdoc (96%) rename {doc/src/examples => examples/network/doc/src}/broadcastsender.qdoc (96%) rename {doc/src/examples => examples/network/doc/src}/fortuneclient.qdoc (86%) rename {doc/src/examples => examples/network/doc/src}/fortuneserver.qdoc (84%) rename {doc/src/examples => examples/network/doc/src}/googlesuggest.qdoc (88%) rename {doc/src/examples => examples/network/doc/src}/http.qdoc (97%) rename {doc/src/examples => examples/network/doc/src}/loopback.qdoc (97%) rename {doc/src/examples => examples/network/doc/src}/multicastreceiver.qdoc (96%) rename {doc/src/examples => examples/network/doc/src}/multicastsender.qdoc (96%) rename {doc/src/examples => examples/network/doc/src}/network-chat.qdoc (96%) rename {doc/src/examples => examples/network/doc/src}/securesocketclient.qdoc (96%) rename {doc/src/examples => examples/network/doc/src}/threadedfortuneserver.qdoc (80%) rename {doc/src/examples => examples/network/doc/src}/torrent.qdoc (98%) rename {doc/src => examples/opengl/doc}/images/2dpainting-example.png (100%) rename {doc/src => examples/opengl/doc}/images/cube.png (100%) rename {doc/src => examples/opengl/doc}/images/cube_faces.png (100%) rename {doc/src => examples/opengl/doc}/images/framebufferobject2-example.png (100%) rename {doc/src => examples/opengl/doc}/images/grabber-example.png (100%) rename {doc/src => examples/opengl/doc}/images/hellogl-es-example.png (100%) rename {doc/src => examples/opengl/doc}/images/hellogl-example.png (100%) rename {doc/src => examples/opengl/doc}/images/overpainting-example.png (100%) rename {doc/src => examples/opengl/doc}/images/pbuffers-example.png (100%) rename {doc/src => examples/opengl/doc}/images/pbuffers2-example.png (100%) rename {doc/src => examples/opengl/doc}/images/samplebuffers-example.png (100%) rename {doc/src => examples/opengl/doc}/images/textures-example.png (100%) rename {doc/src/examples => examples/opengl/doc/src}/2dpainting.qdoc (90%) create mode 100644 examples/opengl/doc/src/cube.qdoc rename {doc/src/examples => examples/opengl/doc/src}/framebufferobject2.qdoc (96%) rename {doc/src/examples => examples/opengl/doc/src}/grabber.qdoc (97%) rename {doc/src/examples => examples/opengl/doc/src}/hellogl.qdoc (89%) rename {doc/src/examples => examples/opengl/doc/src}/hellogl_es.qdoc (86%) rename {doc/src/examples => examples/opengl/doc/src}/overpainting.qdoc (91%) rename {doc/src/examples => examples/opengl/doc/src}/pbuffers.qdoc (97%) rename {doc/src/examples => examples/opengl/doc/src}/pbuffers2.qdoc (97%) rename {doc/src/examples => examples/opengl/doc/src}/samplebuffers.qdoc (96%) rename {doc/src/examples => examples/opengl/doc/src}/textures.qdoc (97%) rename {doc/src => examples/sql/doc}/images/cachedtable-example.png (100%) rename {doc/src => examples/sql/doc}/images/drilldown-example.png (100%) rename {doc/src => examples/sql/doc}/images/masterdetail-example.png (100%) rename {doc/src => examples/sql/doc}/images/querymodel-example.png (100%) rename {doc/src => examples/sql/doc}/images/relationaltablemodel-example.png (100%) rename {doc/src => examples/sql/doc}/images/sql-widget-mapper.png (100%) rename {doc/src => examples/sql/doc}/images/sqlbrowser-demo.png (100%) rename {doc/src => examples/sql/doc}/images/tablemodel-example.png (100%) rename {doc/src => examples/sql/doc}/images/widgetmapper-sql-mapping-table.png (100%) rename {doc/src => examples/sql/doc}/images/widgetmapper-sql-mapping.png (100%) rename {doc/src/examples => examples/sql/doc/src}/cachedtable.qdoc (93%) rename {doc/src/examples => examples/sql/doc/src}/drilldown.qdoc (92%) rename {doc/src/examples => examples/sql/doc/src}/masterdetail.qdoc (97%) rename {doc/src/examples => examples/sql/doc/src}/querymodel.qdoc (97%) rename {doc/src/examples => examples/sql/doc/src}/relationaltablemodel.qdoc (96%) rename {doc/src/examples => examples/sql/doc/src}/sqlbrowser.qdoc (97%) rename {doc/src/examples => examples/sql/doc/src}/sqlwidgetmapper.qdoc (89%) rename {doc/src/examples => examples/sql/doc/src}/tablemodel.qdoc (97%) rename {doc/src/examples => examples/tools/doc/src}/customcompleter.qdoc (99%) rename {doc/src/examples => examples/tools/doc/src}/customtype.qdoc (100%) create mode 100644 examples/widgets/doc/images/itemviewspuzzle-example.png rename {src => examples}/widgets/doc/src/addressbook-fr.qdoc (99%) rename src/widgets/doc/src/addressbook.qdoc => examples/widgets/doc/src/addressbook-tutorial.qdoc (99%) rename examples/widgets/doc/{ => src}/addressbook.qdoc (100%) rename examples/widgets/doc/{ => src}/affine.qdoc (100%) rename examples/widgets/doc/{ => src}/analogclock.qdoc (100%) rename examples/widgets/doc/{ => src}/animatedtiles.qdoc (100%) rename examples/widgets/doc/{ => src}/appchooser.qdoc (100%) rename examples/widgets/doc/{ => src}/application.qdoc (100%) rename {doc/src/examples => examples/widgets/doc/src}/applicationicon.qdoc (94%) rename examples/widgets/doc/{ => src}/basicdrawing.qdoc (100%) rename examples/widgets/doc/{ => src}/basicgraphicslayouts.qdoc (100%) rename examples/widgets/doc/{ => src}/basiclayouts.qdoc (100%) rename examples/widgets/doc/{ => src}/basicsortfiltermodel.qdoc (100%) rename examples/widgets/doc/{ => src}/blurpicker.qdoc (100%) rename examples/widgets/doc/{ => src}/borderlayout.qdoc (100%) rename examples/widgets/doc/{ => src}/boxes.qdoc (100%) rename examples/widgets/doc/{ => src}/calculator.qdoc (100%) rename examples/widgets/doc/{ => src}/calendar.qdoc (100%) rename examples/widgets/doc/{ => src}/calendarwidget.qdoc (100%) rename examples/widgets/doc/{ => src}/charactermap.qdoc (100%) rename examples/widgets/doc/{ => src}/chart.qdoc (100%) rename examples/widgets/doc/{ => src}/chip.qdoc (100%) rename examples/widgets/doc/{ => src}/classwizard.qdoc (100%) rename examples/widgets/doc/{ => src}/codeeditor.qdoc (100%) rename examples/widgets/doc/{ => src}/coloreditorfactory.qdoc (100%) rename examples/widgets/doc/{ => src}/combowidgetmapper.qdoc (100%) rename examples/widgets/doc/{ => src}/composition.qdoc (100%) rename examples/widgets/doc/{ => src}/concentriccircles.qdoc (100%) rename examples/widgets/doc/{ => src}/configdialog.qdoc (100%) rename examples/widgets/doc/{ => src}/customsortfiltermodel.qdoc (100%) rename examples/widgets/doc/{ => src}/deform.qdoc (100%) rename examples/widgets/doc/{ => src}/diagramscene.qdoc (100%) rename examples/widgets/doc/{ => src}/digitalclock.qdoc (100%) rename examples/widgets/doc/{ => src}/dirview.qdoc (100%) rename examples/widgets/doc/{ => src}/dockwidgets.qdoc (100%) rename examples/widgets/doc/{ => src}/draganddroppuzzle.qdoc (97%) rename examples/widgets/doc/{ => src}/dragdroprobot.qdoc (100%) rename {doc/src/examples => examples/widgets/doc/src}/draggableicons.qdoc (90%) rename {doc/src/examples => examples/widgets/doc/src}/draggabletext.qdoc (100%) rename examples/widgets/doc/{ => src}/dynamiclayouts.qdoc (100%) rename examples/widgets/doc/{ => src}/easing.qdoc (100%) rename examples/widgets/doc/{ => src}/editabletreemodel.qdoc (100%) rename examples/widgets/doc/{ => src}/elasticnodes.qdoc (100%) rename examples/widgets/doc/{ => src}/elidedlabel.qdoc (100%) rename examples/widgets/doc/{ => src}/embeddeddialogs.qdoc (100%) rename examples/widgets/doc/{ => src}/eventtransitions.qdoc (100%) rename examples/widgets/doc/{ => src}/extension.qdoc (100%) rename examples/widgets/doc/{ => src}/factorial.qdoc (100%) rename examples/widgets/doc/{ => src}/fademessage.qdoc (100%) rename examples/widgets/doc/{ => src}/fetchmore.qdoc (100%) rename examples/widgets/doc/{ => src}/findfiles.qdoc (100%) rename examples/widgets/doc/{ => src}/flowlayout.qdoc (100%) rename examples/widgets/doc/{ => src}/fontsampler.qdoc (100%) rename examples/widgets/doc/{ => src}/frozencolumn.qdoc (100%) rename examples/widgets/doc/{ => src}/gradients.qdoc (100%) rename examples/widgets/doc/{ => src}/groupbox.qdoc (100%) rename examples/widgets/doc/{ => src}/icons.qdoc (100%) rename examples/widgets/doc/{ => src}/imagecomposition.qdoc (100%) rename examples/widgets/doc/{ => src}/imageviewer.qdoc (100%) rename examples/widgets/doc/{ => src}/interview.qdoc (100%) rename examples/widgets/doc/{ => src}/itemviewspuzzle.qdoc (100%) rename examples/widgets/doc/{ => src}/licensewizard.qdoc (100%) rename examples/widgets/doc/{ => src}/lighting.qdoc (100%) rename examples/widgets/doc/{ => src}/lineedits.qdoc (100%) rename examples/widgets/doc/{ => src}/mainwindow.qdoc (100%) rename examples/widgets/doc/{ => src}/mdi.qdoc (100%) rename examples/widgets/doc/{ => src}/menus.qdoc (100%) rename examples/widgets/doc/{ => src}/moveblocks.qdoc (100%) rename examples/widgets/doc/{ => src}/movie.qdoc (100%) rename examples/widgets/doc/{ => src}/orderform.qdoc (100%) rename examples/widgets/doc/{ => src}/padnavigator.qdoc (100%) rename examples/widgets/doc/{ => src}/painterpaths.qdoc (100%) rename examples/widgets/doc/{ => src}/pathstroke.qdoc (100%) rename examples/widgets/doc/{ => src}/pingpong.qdoc (100%) rename examples/widgets/doc/{ => src}/pixelator.qdoc (100%) rename examples/widgets/doc/{ => src}/recentfiles.qdoc (100%) rename examples/widgets/doc/{ => src}/rogue.qdoc (100%) rename examples/widgets/doc/{ => src}/screenshot.qdoc (100%) rename examples/widgets/doc/{ => src}/scribble.qdoc (100%) rename examples/widgets/doc/{ => src}/sdi.qdoc (100%) rename examples/widgets/doc/{ => src}/shapedclock.qdoc (100%) rename examples/widgets/doc/{ => src}/simpledommodel.qdoc (100%) rename examples/widgets/doc/{ => src}/simpletreemodel.qdoc (100%) rename examples/widgets/doc/{ => src}/simplewidgetmapper.qdoc (100%) rename examples/widgets/doc/{ => src}/sipdialog.qdoc (100%) rename examples/widgets/doc/{ => src}/sliders.qdoc (100%) rename examples/widgets/doc/{ => src}/spinboxdelegate.qdoc (100%) rename examples/widgets/doc/{ => src}/spinboxes.qdoc (100%) rename examples/widgets/doc/{ => src}/spreadsheet.qdoc (100%) rename examples/widgets/doc/{ => src}/standarddialogs.qdoc (100%) rename examples/widgets/doc/{ => src}/stardelegate.qdoc (100%) rename examples/widgets/doc/{ => src}/states.qdoc (100%) rename examples/widgets/doc/{ => src}/stickman.qdoc (100%) rename examples/widgets/doc/{ => src}/styles.qdoc (100%) rename examples/widgets/doc/{ => src}/stylesheet.qdoc (100%) rename examples/widgets/doc/{ => src}/sub-attaq.qdoc (100%) rename examples/widgets/doc/{ => src}/syntaxhighlighter.qdoc (100%) rename examples/widgets/doc/{ => src}/tabdialog.qdoc (100%) rename examples/widgets/doc/{ => src}/tablet.qdoc (100%) rename examples/widgets/doc/{ => src}/tetrix.qdoc (100%) rename examples/widgets/doc/{ => src}/textedit.qdoc (100%) rename examples/widgets/doc/{ => src}/tooltips.qdoc (100%) rename examples/widgets/doc/{ => src}/trafficlight.qdoc (100%) rename examples/widgets/doc/{ => src}/transformations.qdoc (100%) rename examples/widgets/doc/{ => src}/trivialwizard.qdoc (100%) rename examples/widgets/doc/{ => src}/twowaybutton.qdoc (100%) rename examples/widgets/doc/{ => src}/wiggly.qdoc (100%) rename examples/widgets/doc/{ => src}/windowflags.qdoc (100%) rename {doc/src => examples/xml/doc}/images/saxbookmarks-example.png (100%) rename {doc/src/examples => examples/xml/doc/src}/saxbookmarks.qdoc (97%) diff --git a/doc/src/examples/bearermonitor.qdoc b/doc/src/examples/bearermonitor.qdoc index 07c142a0e6c..419fd872671 100644 --- a/doc/src/examples/bearermonitor.qdoc +++ b/doc/src/examples/bearermonitor.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/bearermonitor + \example bearermonitor \title Bearer Monitor Example The Bearer Monitor example shows how to use the Bearer Management API. diff --git a/doc/src/examples/books.qdoc b/doc/src/examples/books.qdoc index 2b6ce1e45b2..135cecafea3 100644 --- a/doc/src/examples/books.qdoc +++ b/doc/src/examples/books.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/books + \example books \title Books The Books example shows how Qt's SQL classes can be used with the model/view diff --git a/doc/src/examples/codecs.qdoc b/doc/src/examples/codecs.qdoc index e54981abb3c..84b80b63f67 100644 --- a/doc/src/examples/codecs.qdoc +++ b/doc/src/examples/codecs.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example tools/codecs + \example codecs \title Codecs Example The Codecs example demonstrates the principles behind importing and exporting text diff --git a/doc/src/examples/completer.qdoc b/doc/src/examples/completer.qdoc index df832de4d63..0e635e3fb00 100644 --- a/doc/src/examples/completer.qdoc +++ b/doc/src/examples/completer.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example tools/completer + \example completer \title Completer Example The Completer example shows how to provide string-completion facilities diff --git a/doc/src/examples/complexpingpong.qdoc b/doc/src/examples/complexpingpong.qdoc index 0c6880826f8..00e648b8fd4 100644 --- a/doc/src/examples/complexpingpong.qdoc +++ b/doc/src/examples/complexpingpong.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example dbus/complexpingpong + \example complexpingpong \title Complex Ping Pong Example The Complex Ping Pong example improves on the \l{D-Bus Ping Pong Example} by providing diff --git a/doc/src/examples/contiguouscache.qdoc b/doc/src/examples/contiguouscache.qdoc index 02f333054ef..b187997bf0f 100644 --- a/doc/src/examples/contiguouscache.qdoc +++ b/doc/src/examples/contiguouscache.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example tools/contiguouscache + \example contiguouscache \title Contiguous Cache Example The Contiguous Cache example shows how to use QContiguousCache to manage memory usage for diff --git a/doc/src/examples/cube.qdoc b/doc/src/examples/cube.qdoc deleted file mode 100644 index ec40be0f45d..00000000000 --- a/doc/src/examples/cube.qdoc +++ /dev/null @@ -1,178 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example opengl/cube - \group all-examples - \title Cube OpenGL ES 2.0 example - - The Cube OpenGL ES 2.0 example shows how to write mouse rotateable - textured 3D cube using OpenGL ES 2.0 with Qt. It shows how to handle - polygon geometries efficiently and how to write simple vertex and - fragment shader for programmable graphics pipeline. In addition it - shows how to use quaternions for representing 3D object orientation. - - This example has been written for OpenGL ES 2.0 but it works also on - desktop OpenGL because this example is simple enough and for the - most parts desktop OpenGL API is same. It compiles also without OpenGL - support but then it just shows a label stating that OpenGL support is - required. - - \image cube.png Screenshot of the Cube example running on N900 - - The example consist of two classes: - - \list - \li \c MainWidget extends QGLWidget and contains OpenGL ES 2.0 - initialization and drawing and mouse and timer event handling - \li \c GeometryEngine handles polygon geometries. Transfers polygon geometry - to vertex buffer objects and draws geometries from vertex buffer objects. - \endlist - - We'll start by initializing OpenGL ES 2.0 in \c MainWidget. - - \tableofcontents - - \section1 Initializing OpenGL ES 2.0 - - Since OpenGL ES 2.0 doesn't support fixed graphics pipeline anymore it has to - be implemented by ourselves. This makes graphics pipeline very flexible but - in the same time it becomes more difficult because user has to implement graphics - pipeline to get even the simplest example running. It also makes graphics pipeline - more efficient because user can decide what kind of pipeline is needed for the - application. - - First we have to implement vertex shader. It gets vertex data and - model-view-projection matrix (MVP) as parameters. It transforms vertex position - using MVP matrix to screen space and passes texture coordinate to - fragment shader. Texture coordinate will be automatically interpolated on polygon - faces. - - \snippet examples/opengl/cube/vshader.glsl 0 - - After that we need to implement second part of the graphics pipeline - fragment - shader. For this exercise we need to implement fragment shader that handles - texturing. It gets interpolated texture coordinate as a parameter and looks up - fragment color from the given texture. - - \snippet examples/opengl/cube/fshader.glsl 0 - - Using \c QGLShaderProgram we can compile, link and bind shader code to - graphics pipeline. This code uses Qt Resource files to access shader source code. - - \snippet examples/opengl/cube/mainwidget.cpp 3 - - The following code enables depth buffering and back face culling. - - \snippet examples/opengl/cube/mainwidget.cpp 2 - - \section1 Loading textures from Qt Resource files - - \c QGLWidget interface implements methods for loading textures from QImage to GL - texture memory. We still need to use OpenGL provided functions for specifying - the GL texture unit and configuring texture filtering options. - - \snippet examples/opengl/cube/mainwidget.cpp 4 - - \section1 Cube Geometry - - There are many ways to render polygons in OpenGL but the most efficient way is - to use only triangle strip primitives and render vertices from graphics hardware - memory. OpenGL has a mechanism to create buffer objects to this memory area and - transfer vertex data to these buffers. In OpenGL terminology these are referred - as Vertex Buffer Objects (VBO). - - \image cube_faces.png Cube faces and vertices - - This is how cube faces break down to triangles. Vertices are ordered this way - to get vertex ordering correct using triangle strips. OpenGL determines triangle - front and back face based on vertex ordering. By default OpenGL uses - counter-clockwise order for front faces. This information is used by back face - culling which improves rendering performance by not rendering back faces of the - triangles. This way graphics pipeline can omit rendering sides of the triangle that - aren't facing towards screen. - - Creating vertex buffer objects and transferring data to them is quite simple using - OpenGL provided functions. - - \snippet examples/opengl/cube/geometryengine.cpp 0 - - \snippet examples/opengl/cube/geometryengine.cpp 1 - - Drawing primitives from VBOs and telling programmable graphics pipeline how to - locate vertex data requires few steps. First we need to bind VBOs to be used. - After that we bind shader program attribute names and configure what - kind of data it has in the bound VBO. Finally we'll draw triangle - strip primitives using indices from the other VBO. - - \snippet examples/opengl/cube/geometryengine.cpp 2 - - \section1 Perspective projection - - Using \c QMatrix4x4 helper methods it's really easy to calculate perpective - projection matrix. This matrix is used to project vertices to screen space. - - \snippet examples/opengl/cube/mainwidget.cpp 5 - - \section1 Orientation of the 3D object - - Quaternions are handy way to represent orientation of the 3D object. Quaternions - involve quite complex mathematics but fortunately all the necessary mathematics - behind quaternions is implemented in \c QQuaternion. That allows us to store - cube orientation in quaternion and rotating cube around given axis is quite - simple. - - The following code calculates rotation axis and angular speed based on mouse events. - - \snippet examples/opengl/cube/mainwidget.cpp 0 - - \c QBasicTimer is used to animate scene and update cube orientation. Rotations - can be concatenated simply by multiplying quaternions. - - \snippet examples/opengl/cube/mainwidget.cpp 1 - - Model-view matrix is calculated using the quaternion and by moving world by Z axis. - This matrix is multiplied with the projection matrix to get MVP matrix for shader - program. - - \snippet examples/opengl/cube/mainwidget.cpp 6 - -*/ diff --git a/doc/src/images/blockingfortuneclient-example.png b/examples/network/doc/images/blockingfortuneclient-example.png similarity index 100% rename from doc/src/images/blockingfortuneclient-example.png rename to examples/network/doc/images/blockingfortuneclient-example.png diff --git a/doc/src/images/broadcastreceiver-example.png b/examples/network/doc/images/broadcastreceiver-example.png similarity index 100% rename from doc/src/images/broadcastreceiver-example.png rename to examples/network/doc/images/broadcastreceiver-example.png diff --git a/doc/src/images/broadcastsender-example.png b/examples/network/doc/images/broadcastsender-example.png similarity index 100% rename from doc/src/images/broadcastsender-example.png rename to examples/network/doc/images/broadcastsender-example.png diff --git a/doc/src/images/fortuneclient-example.png b/examples/network/doc/images/fortuneclient-example.png similarity index 100% rename from doc/src/images/fortuneclient-example.png rename to examples/network/doc/images/fortuneclient-example.png diff --git a/doc/src/images/fortuneserver-example.png b/examples/network/doc/images/fortuneserver-example.png similarity index 100% rename from doc/src/images/fortuneserver-example.png rename to examples/network/doc/images/fortuneserver-example.png diff --git a/doc/src/images/googlesuggest-example.png b/examples/network/doc/images/googlesuggest-example.png similarity index 100% rename from doc/src/images/googlesuggest-example.png rename to examples/network/doc/images/googlesuggest-example.png diff --git a/doc/src/images/http-example.png b/examples/network/doc/images/http-example.png similarity index 100% rename from doc/src/images/http-example.png rename to examples/network/doc/images/http-example.png diff --git a/doc/src/images/loopback-example.png b/examples/network/doc/images/loopback-example.png similarity index 100% rename from doc/src/images/loopback-example.png rename to examples/network/doc/images/loopback-example.png diff --git a/doc/src/images/multicastreceiver-example.png b/examples/network/doc/images/multicastreceiver-example.png similarity index 100% rename from doc/src/images/multicastreceiver-example.png rename to examples/network/doc/images/multicastreceiver-example.png diff --git a/doc/src/images/multicastsender-example.png b/examples/network/doc/images/multicastsender-example.png similarity index 100% rename from doc/src/images/multicastsender-example.png rename to examples/network/doc/images/multicastsender-example.png diff --git a/doc/src/images/network-chat-example.png b/examples/network/doc/images/network-chat-example.png similarity index 100% rename from doc/src/images/network-chat-example.png rename to examples/network/doc/images/network-chat-example.png diff --git a/doc/src/images/securesocketclient.png b/examples/network/doc/images/securesocketclient.png similarity index 100% rename from doc/src/images/securesocketclient.png rename to examples/network/doc/images/securesocketclient.png diff --git a/doc/src/images/securesocketclient2.png b/examples/network/doc/images/securesocketclient2.png similarity index 100% rename from doc/src/images/securesocketclient2.png rename to examples/network/doc/images/securesocketclient2.png diff --git a/doc/src/images/threadedfortuneserver-example.png b/examples/network/doc/images/threadedfortuneserver-example.png similarity index 100% rename from doc/src/images/threadedfortuneserver-example.png rename to examples/network/doc/images/threadedfortuneserver-example.png diff --git a/doc/src/images/torrent-example.png b/examples/network/doc/images/torrent-example.png similarity index 100% rename from doc/src/images/torrent-example.png rename to examples/network/doc/images/torrent-example.png diff --git a/doc/src/examples/blockingfortuneclient.qdoc b/examples/network/doc/src/blockingfortuneclient.qdoc similarity index 82% rename from doc/src/examples/blockingfortuneclient.qdoc rename to examples/network/doc/src/blockingfortuneclient.qdoc index 6c3be78859d..90bf4393549 100644 --- a/doc/src/examples/blockingfortuneclient.qdoc +++ b/examples/network/doc/src/blockingfortuneclient.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/blockingfortuneclient + \example blockingfortuneclient \title Blocking Fortune Client Example The Blocking Fortune Client example shows how to create a client for a @@ -53,7 +53,7 @@ \endlist The implementation is very similar to the - \l{network/fortuneclient}{Fortune Client} example, but instead of having + \l{fortuneclient}{Fortune Client} example, but instead of having QTcpSocket as a member of the main class, doing asynchronous networking in the main thread, we will do all network operations in a separate thread and use QTcpSocket's blocking API. @@ -69,7 +69,7 @@ We will start with the FortuneThread class, which handles the network code. - \snippet examples/network/blockingfortuneclient/fortunethread.h 0 + \snippet blockingfortuneclient/fortunethread.h 0 FortuneThread is a QThread subclass that provides an API for scheduling requests for fortunes, and it has signals for delivering fortunes and @@ -83,15 +83,15 @@ FortuneThread's data members from different threads concurrently, we use QMutex to synchronize access. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 2 + \snippet blockingfortuneclient/fortunethread.cpp 2 The requestNewFortune() function stores the host name and port of the fortune server as member data, and we lock the mutex with QMutexLocker to protect this data. We then start the thread, unless it is already running. We will come back to the QWaitCondition::wakeOne() call later. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 4 - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 5 + \snippet blockingfortuneclient/fortunethread.cpp 4 + \snippet blockingfortuneclient/fortunethread.cpp 5 In the run() function, we start by acquiring the mutex lock, fetching the host name and port from the member data, and then releasing the lock @@ -104,7 +104,7 @@ The run() function now enters a loop: - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 6 + \snippet blockingfortuneclient/fortunethread.cpp 6 The loop will continue requesting fortunes for as long as \e quit is false. We start our first request by creating a QTcpSocket on the stack, @@ -114,7 +114,7 @@ \l{QTcpSocket::connected()}{connected()} or \l{QTcpSocket::error()}{error()}. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 8 + \snippet blockingfortuneclient/fortunethread.cpp 8 But since we are running in a non-GUI thread, we do not have to worry about blocking the user interface. So instead of entering an event loop, @@ -129,8 +129,8 @@ After this statement, we have a connected socket to work with. Now it's time to see what the fortune server has sent us. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 9 - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 10 + \snippet blockingfortuneclient/fortunethread.cpp 9 + \snippet blockingfortuneclient/fortunethread.cpp 10 This step is to read the size of the packet. Although we are only reading two bytes here, and the \c while loop may seem to overdo it, we present this @@ -140,43 +140,43 @@ we abort the operation. After this statement, we know that we have received enough data. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 11 + \snippet blockingfortuneclient/fortunethread.cpp 11 Now we can create a QDataStream object, passing the socket to QDataStream's constructor, and as in the other client examples we set the stream protocol version to QDataStream::Qt_4_0, and read the size of the packet. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 12 - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 13 + \snippet blockingfortuneclient/fortunethread.cpp 12 + \snippet blockingfortuneclient/fortunethread.cpp 13 Again, we'll use a loop that waits for more data by calling QTcpSocket::waitForReadyRead(). In this loop, we're waiting until QTcpSocket::bytesAvailable() returns the full packet size. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 14 + \snippet blockingfortuneclient/fortunethread.cpp 14 Now that we have all the data that we need, we can use QDataStream to read the fortune string from the packet. The resulting fortune is delivered by emitting newFortune(). - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 15 + \snippet blockingfortuneclient/fortunethread.cpp 15 The final part of our loop is that we acquire the mutex so that we can safely read from our member data. We then let the thread go to sleep by calling QWaitCondition::wait(). At this point, we can go back to requestNewFortune() and look closed at the call to wakeOne(): - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 1 + \snippet blockingfortuneclient/fortunethread.cpp 1 \dots - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 3 + \snippet blockingfortuneclient/fortunethread.cpp 3 What happened here was that because the thread falls asleep waiting for a new request, we needed to wake it up again when a new request arrives. QWaitCondition is often used in threads to signal a wakeup call like this. - \snippet examples/network/blockingfortuneclient/fortunethread.cpp 0 + \snippet blockingfortuneclient/fortunethread.cpp 0 Finishing off the FortuneThread walkthrough, this is the destructor that sets \e quit to true, wakes up the thread and waits for the thread to exit @@ -185,30 +185,30 @@ Now for the BlockingClient class: - \snippet examples/network/blockingfortuneclient/blockingclient.h 0 + \snippet blockingfortuneclient/blockingclient.h 0 BlockingClient is very similar to the Client class in the - \l{network/fortuneclient}{Fortune Client} example, but in this class + \l{fortuneclient}{Fortune Client} example, but in this class we store a FortuneThread member instead of a pointer to a QTcpSocket. When the user clicks the "Get Fortune" button, the same slot is called, but its implementation is slightly different: - \snippet examples/network/blockingfortuneclient/blockingclient.cpp 0 - \snippet examples/network/blockingfortuneclient/blockingclient.cpp 1 + \snippet blockingfortuneclient/blockingclient.cpp 0 + \snippet blockingfortuneclient/blockingclient.cpp 1 We connect our FortuneThread's two signals newFortune() and error() (which are somewhat similar to QTcpSocket::readyRead() and QTcpSocket::error() in the previous example) to requestNewFortune() and displayError(). - \snippet examples/network/blockingfortuneclient/blockingclient.cpp 2 + \snippet blockingfortuneclient/blockingclient.cpp 2 The requestNewFortune() slot calls FortuneThread::requestNewFortune(), which \e shedules the request. When the thread has received a new fortune and emits newFortune(), our showFortune() slot is called: - \snippet examples/network/blockingfortuneclient/blockingclient.cpp 3 + \snippet blockingfortuneclient/blockingclient.cpp 3 \codeline - \snippet examples/network/blockingfortuneclient/blockingclient.cpp 4 + \snippet blockingfortuneclient/blockingclient.cpp 4 Here, we simply display the fortune we received as the argument. diff --git a/doc/src/examples/broadcastreceiver.qdoc b/examples/network/doc/src/broadcastreceiver.qdoc similarity index 96% rename from doc/src/examples/broadcastreceiver.qdoc rename to examples/network/doc/src/broadcastreceiver.qdoc index ec8bbd7cc43..61abcca15f4 100644 --- a/doc/src/examples/broadcastreceiver.qdoc +++ b/examples/network/doc/src/broadcastreceiver.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/broadcastreceiver + \example broadcastreceiver \title Broadcast Receiver Example The Broadcast Receiver example shows how to receive information that is broadcasted diff --git a/doc/src/examples/broadcastsender.qdoc b/examples/network/doc/src/broadcastsender.qdoc similarity index 96% rename from doc/src/examples/broadcastsender.qdoc rename to examples/network/doc/src/broadcastsender.qdoc index 91a30807124..79127efbfba 100644 --- a/doc/src/examples/broadcastsender.qdoc +++ b/examples/network/doc/src/broadcastsender.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/broadcastsender + \example broadcastsender \title Broadcast Sender Example The Broadcast Sender example shows how to broadcast information to multiple clients diff --git a/doc/src/examples/fortuneclient.qdoc b/examples/network/doc/src/fortuneclient.qdoc similarity index 86% rename from doc/src/examples/fortuneclient.qdoc rename to examples/network/doc/src/fortuneclient.qdoc index 3b436828995..ccf5d8f1504 100644 --- a/doc/src/examples/fortuneclient.qdoc +++ b/examples/network/doc/src/fortuneclient.qdoc @@ -26,19 +26,19 @@ ****************************************************************************/ /*! - \example network/fortuneclient + \example fortuneclient \title Fortune Client Example The Fortune Client example shows how to create a client for a simple network service using QTcpSocket. It is intended to be run alongside the - \l{network/fortuneserver}{Fortune Server} example or - the \l{network/threadedfortuneserver}{Threaded Fortune Server} example. + \l{fortuneserver}{Fortune Server} example or + the \l{threadedfortuneserver}{Threaded Fortune Server} example. \image fortuneclient-example.png Screenshot of the Fortune Client example This example uses a simple QDataStream-based data transfer protocol to request a line of text from a fortune server (from the - \l{network/fortuneserver}{Fortune Server} example). The client requests a + \l{fortuneserver}{Fortune Server} example). The client requests a fortune by simply connecting to the server. The server then responds with a 16-bit (quint16) integer containing the length of the fortune text, followed by a QString. @@ -62,12 +62,12 @@ \endlist In this example, we will demonstrate the asynchronous approach. The - \l{network/blockingfortuneclient}{Blocking Fortune Client} example + \l{blockingfortuneclient}{Blocking Fortune Client} example illustrates the synchronous approach. Our class contains some data and a few private slots: - \snippet examples/network/fortuneclient/client.h 0 + \snippet fortuneclient/client.h 0 Other than the widgets that make up the GUI, the data members include a QTcpSocket pointer, a copy of the fortune text currently displayed, and @@ -77,23 +77,23 @@ widget as parent, so that we won't have to worry about deleting the socket: - \snippet examples/network/fortuneclient/client.cpp 0 + \snippet fortuneclient/client.cpp 0 \dots - \snippet examples/network/fortuneclient/client.cpp 1 + \snippet fortuneclient/client.cpp 1 The only QTcpSocket signals we need in this example are QTcpSocket::readyRead(), signifying that data has been received, and QTcpSocket::error(), which we will use to catch any connection errors: \dots - \snippet examples/network/fortuneclient/client.cpp 3 + \snippet fortuneclient/client.cpp 3 \dots - \snippet examples/network/fortuneclient/client.cpp 5 + \snippet fortuneclient/client.cpp 5 Clicking the \uicontrol{Get Fortune} button will invoke the \c requestNewFortune() slot: - \snippet examples/network/fortuneclient/client.cpp 6 + \snippet fortuneclient/client.cpp 6 In this slot, we initialize \c blockSize to 0, preparing to read a new block of data. Because we allow the user to click \uicontrol{Get Fortune} before the @@ -119,7 +119,7 @@ Let's go through the \l{QTcpSocket::error()}{error()} case first: - \snippet examples/network/fortuneclient/client.cpp 13 + \snippet fortuneclient/client.cpp 13 We pop up all errors in a dialog using QMessageBox::information(). QTcpSocket::RemoteHostClosedError is silently @@ -129,9 +129,9 @@ Now for the \l{QTcpSocket::readyRead()}{readyRead()} alternative. This signal is connected to \c Client::readFortune(): - \snippet examples/network/fortuneclient/client.cpp 8 + \snippet fortuneclient/client.cpp 8 \codeline - \snippet examples/network/fortuneclient/client.cpp 10 + \snippet fortuneclient/client.cpp 10 The protocol is based on QDataStream, so we start by creating a stream object, passing the socket to QDataStream's constructor. We then @@ -148,9 +148,9 @@ with the size of the packet, so first we need to ensure that we can read the size, then we will wait until QTcpSocket has received the full packet. - \snippet examples/network/fortuneclient/client.cpp 11 + \snippet fortuneclient/client.cpp 11 \codeline - \snippet examples/network/fortuneclient/client.cpp 12 + \snippet fortuneclient/client.cpp 12 We proceed by using QDataStream's streaming operator to read the fortune from the socket into a QString. Once read, we can call QLabel::setText() diff --git a/doc/src/examples/fortuneserver.qdoc b/examples/network/doc/src/fortuneserver.qdoc similarity index 84% rename from doc/src/examples/fortuneserver.qdoc rename to examples/network/doc/src/fortuneserver.qdoc index 1f6def6c206..0bc50283c37 100644 --- a/doc/src/examples/fortuneserver.qdoc +++ b/examples/network/doc/src/fortuneserver.qdoc @@ -26,45 +26,45 @@ ****************************************************************************/ /*! - \example network/fortuneserver + \example fortuneserver \title Fortune Server Example The Fortune Server example shows how to create a server for a simple network service. It is intended to be run alongside the - \l{network/fortuneclient}{Fortune Client} example or the - \l{network/blockingfortuneclient}{Blocking Fortune Client} example. + \l{fortuneclient}{Fortune Client} example or the + \l{blockingfortuneclient}{Blocking Fortune Client} example. \image fortuneserver-example.png Screenshot of the Fortune Server example This example uses QTcpServer to accept incoming TCP connections, and a simple QDataStream based data transfer protocol to write a fortune to the - connecting client (from the \l{network/fortuneclient}{Fortune Client} + connecting client (from the \l{fortuneclient}{Fortune Client} example), before closing the connection. - \snippet examples/network/fortuneserver/server.h 0 + \snippet fortuneserver/server.h 0 The server is implemented using a simple class with only one slot, for handling incoming connections. - \snippet examples/network/fortuneserver/server.cpp 1 + \snippet fortuneserver/server.cpp 1 In its constructor, our Server object calls QTcpServer::listen() to set up a QTcpServer to listen on all addresses, on an arbitrary port. In then displays the port QTcpServer picked in a label, so that user knows which port the fortune client should connect to. - \snippet examples/network/fortuneserver/server.cpp 2 + \snippet fortuneserver/server.cpp 2 Our server generates a list of random fortunes that is can send to connecting clients. - \snippet examples/network/fortuneserver/server.cpp 3 + \snippet fortuneserver/server.cpp 3 When a client connects to our server, QTcpServer will emit QTcpServer::newConnection(). In turn, this will invoke our sendFortune() slot: - \snippet examples/network/fortuneserver/server.cpp 4 + \snippet fortuneserver/server.cpp 4 The purpose of this slot is to select a random line from our list of fortunes, encode it into a QByteArray using QDataStream, and then write it @@ -75,7 +75,7 @@ we can communicate with clients from future versions of Qt. (See QDataStream::setVersion().) - \snippet examples/network/fortuneserver/server.cpp 6 + \snippet fortuneserver/server.cpp 6 At the start of our QByteArray, we reserve space for a 16 bit integer that will contain the total size of the data block we are sending. We continue @@ -84,14 +84,14 @@ total size of the array. By doing this, we provide a way for clients to verify how much data they can expect before reading the whole packet. - \snippet examples/network/fortuneserver/server.cpp 7 + \snippet fortuneserver/server.cpp 7 We then call QTcpServer::newPendingConnection(), which returns the QTcpSocket representing the server side of the connection. By connecting QTcpSocket::disconnected() to QObject::deleteLater(), we ensure that the socket will be deleted after disconnecting. - \snippet examples/network/fortuneserver/server.cpp 8 + \snippet fortuneserver/server.cpp 8 The encoded fortune is written using QTcpSocket::write(), and we finally call QTcpSocket::disconnectFromHost(), which will close the connection diff --git a/doc/src/examples/googlesuggest.qdoc b/examples/network/doc/src/googlesuggest.qdoc similarity index 88% rename from doc/src/examples/googlesuggest.qdoc rename to examples/network/doc/src/googlesuggest.qdoc index 3af12456b07..b083f0cd585 100644 --- a/doc/src/examples/googlesuggest.qdoc +++ b/examples/network/doc/src/googlesuggest.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/googlesuggest + \example googlesuggest \title Google Suggest Example The Google Suggest example demonstrates how to use the QNetworkAccessManager @@ -48,7 +48,7 @@ This class implements an event filter and a number of functions to display the search results and to determent when and how to perform the search. - \snippet examples/network/googlesuggest/googlesuggest.h 1 + \snippet googlesuggest/googlesuggest.h 1 The class connects to a QLineEdit and uses a QTreeWidget to display the results. A QTimer controls the start of the network requests that are @@ -60,7 +60,7 @@ queries. This is the basis for the query. The letters typed into the search box will be added to the query to perform the search itself. - \snippet examples/network/googlesuggest/googlesuggest.cpp 1 + \snippet googlesuggest/googlesuggest.cpp 1 In the constructor, we set the parent of this GSuggestCompletion instance to be the QLineEdit passed in. For simplicity, the QLineEdit is also stored @@ -84,12 +84,12 @@ Finally, we connect the networkManagers \c finished() signal with the \c handleNetworkData() slot to handle the incoming data. - \snippet examples/network/googlesuggest/googlesuggest.cpp 2 + \snippet googlesuggest/googlesuggest.cpp 2 Since the QTreeWidget popup has been instantiated as a toplevel widget, the destructor has to delete it explicitly from memory to avoid a memory leak. - \snippet examples/network/googlesuggest/googlesuggest.cpp 3 + \snippet googlesuggest/googlesuggest.cpp 3 The event filter handles mouse press and key press events that are delivered to the popup. For mouse press events we just hide the popup and @@ -106,13 +106,13 @@ popup is hidden. This way the user's typing will not be interrupted by the popping up of the completion list. - \snippet examples/network/googlesuggest/googlesuggest.cpp 4 + \snippet googlesuggest/googlesuggest.cpp 4 The \c showCompletion() function populates the QTreeWidget with the results returned from the query. It takes two QStringLists, one with the suggested search terms and the other with the corresponding number of hits. - \snippet examples/network/googlesuggest/googlesuggest.cpp 5 + \snippet googlesuggest/googlesuggest.cpp 5 A QTreeWidgetItem is created for each index in the list and inserted into the QTreeWidget. Finally, we adjust position and size of the popup to make @@ -124,24 +124,24 @@ make the \c editor QLineEdit emit the returnPressed() signal, to which the application can connect to open the respective web page. - \snippet examples/network/googlesuggest/googlesuggest.cpp 6 + \snippet googlesuggest/googlesuggest.cpp 6 The \c autoSuggest() slot is called when the timer times out, and uses the text in the editor to build the complete search query. The query is then passed to the QNetworkAccessManager's \c get() function to start the request. - \snippet examples/network/googlesuggest/googlesuggest.cpp 7 + \snippet googlesuggest/googlesuggest.cpp 7 The function \c preventSuggest() stops the timer to prevent further requests from being started. - \snippet examples/network/googlesuggest/googlesuggest.cpp 8 + \snippet googlesuggest/googlesuggest.cpp 8 When the network request is finished, the QNetworkAccessManager delivers the data received from the server through the networkReply object. - \snippet examples/network/googlesuggest/googlesuggest.cpp 9 + \snippet googlesuggest/googlesuggest.cpp 9 To extract the data from the reply we use the \c readAll() function, which is inherited from QIODevice and returns a QByteArray. Since this data is @@ -160,14 +160,14 @@ A \c GSuggestCompletion member provides the SearchBox with the request functionality and the suggestions returned from the Google search engine. - \snippet examples/network/googlesuggest/searchbox.h 1 + \snippet googlesuggest/searchbox.h 1 \section1 SearchBox Class Implementation The search box constructor instantiates the GSuggestCompletion object and connects the returnPressed() signal to the doSearch() slot. - \snippet examples/network/googlesuggest/searchbox.cpp 1 + \snippet googlesuggest/searchbox.cpp 1 The function \c doSearch() stops the completer from sending any further queries to the search engine. @@ -175,6 +175,6 @@ Further, the function extracts the selected search phrase and opens it in the default web browser using QDesktopServices. - \snippet examples/network/googlesuggest/searchbox.cpp 2 + \snippet googlesuggest/searchbox.cpp 2 */ diff --git a/doc/src/examples/http.qdoc b/examples/network/doc/src/http.qdoc similarity index 97% rename from doc/src/examples/http.qdoc rename to examples/network/doc/src/http.qdoc index 7ca474b385c..6b30a83c964 100644 --- a/doc/src/examples/http.qdoc +++ b/examples/network/doc/src/http.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/http + \example http \title HTTP Example The HTTP example demonstrates a simple HTTP client that shows how to fetch files diff --git a/doc/src/examples/loopback.qdoc b/examples/network/doc/src/loopback.qdoc similarity index 97% rename from doc/src/examples/loopback.qdoc rename to examples/network/doc/src/loopback.qdoc index 5f684447cab..ecae81307bb 100644 --- a/doc/src/examples/loopback.qdoc +++ b/examples/network/doc/src/loopback.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/loopback + \example loopback \title Loopback Example The Loopback example shows how to communicate between simple clients and servers on a local diff --git a/doc/src/examples/multicastreceiver.qdoc b/examples/network/doc/src/multicastreceiver.qdoc similarity index 96% rename from doc/src/examples/multicastreceiver.qdoc rename to examples/network/doc/src/multicastreceiver.qdoc index 7e306d232ca..e36e01a38c5 100644 --- a/doc/src/examples/multicastreceiver.qdoc +++ b/examples/network/doc/src/multicastreceiver.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/multicastreceiver + \example multicastreceiver \title Multicast Receiver Example The Multicast Receiever example shows how to receive information that is diff --git a/doc/src/examples/multicastsender.qdoc b/examples/network/doc/src/multicastsender.qdoc similarity index 96% rename from doc/src/examples/multicastsender.qdoc rename to examples/network/doc/src/multicastsender.qdoc index 687f760a384..a1d70caf864 100644 --- a/doc/src/examples/multicastsender.qdoc +++ b/examples/network/doc/src/multicastsender.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/multicastsender + \example multicastsender \title Multicast Sender Example The Multicast Sender example shows how to send information to multiple diff --git a/doc/src/examples/network-chat.qdoc b/examples/network/doc/src/network-chat.qdoc similarity index 96% rename from doc/src/examples/network-chat.qdoc rename to examples/network/doc/src/network-chat.qdoc index e79a521c3dc..3e0d7540b9a 100644 --- a/doc/src/examples/network-chat.qdoc +++ b/examples/network/doc/src/network-chat.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/network-chat + \example network-chat \title Network Chat Example The Network Chat example demonstrates a stateful peer-to-peer Chat client diff --git a/doc/src/examples/securesocketclient.qdoc b/examples/network/doc/src/securesocketclient.qdoc similarity index 96% rename from doc/src/examples/securesocketclient.qdoc rename to examples/network/doc/src/securesocketclient.qdoc index 11d9aaefccf..b740af3531d 100644 --- a/doc/src/examples/securesocketclient.qdoc +++ b/examples/network/doc/src/securesocketclient.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/securesocketclient + \example securesocketclient \title Secure Socket Client Example The Secure Socket Client example shows how to use QSslSocket to diff --git a/doc/src/examples/threadedfortuneserver.qdoc b/examples/network/doc/src/threadedfortuneserver.qdoc similarity index 80% rename from doc/src/examples/threadedfortuneserver.qdoc rename to examples/network/doc/src/threadedfortuneserver.qdoc index 6b84be85c8e..33b6892363d 100644 --- a/doc/src/examples/threadedfortuneserver.qdoc +++ b/examples/network/doc/src/threadedfortuneserver.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/threadedfortuneserver + \example threadedfortuneserver \title Threaded Fortune Server Example The Threaded Fortune Server example shows how to create a server for a @@ -36,25 +36,25 @@ \image threadedfortuneserver-example.png The implementation of this example is similar to that of the - \l{network/fortuneserver}{Fortune Server} example, but here we will + \l{fortuneserver}{Fortune Server} example, but here we will implement a subclass of QTcpServer that starts each connection in a different thread. For this we need two classes: FortuneServer, a QTcpServer subclass, and FortuneThread, which inherits QThread. - \snippet examples/network/threadedfortuneserver/fortuneserver.h 0 + \snippet threadedfortuneserver/fortuneserver.h 0 FortuneServer inherits QTcpServer and reimplements QTcpServer::incomingConnection(). We also use it for storing the list of random fortunes. - \snippet examples/network/threadedfortuneserver/fortuneserver.cpp 0 + \snippet threadedfortuneserver/fortuneserver.cpp 0 We use FortuneServer's constructor to simply generate the list of fortunes. - \snippet examples/network/threadedfortuneserver/fortuneserver.cpp 1 + \snippet threadedfortuneserver/fortuneserver.cpp 1 Our implementation of QTcpServer::incomingConnection() creates a FortuneThread object, passing the incoming socket descriptor and a random @@ -63,18 +63,18 @@ gets deleted once it has finished. We can then call QThread::start(), which starts the thread. - \snippet examples/network/threadedfortuneserver/fortunethread.h 0 + \snippet threadedfortuneserver/fortunethread.h 0 Moving on to the FortuneThread class, this is a QThread subclass whose job is to write the fortune to the connected socket. The class reimplements QThread::run(), and it has a signal for reporting errors. - \snippet examples/network/threadedfortuneserver/fortunethread.cpp 0 + \snippet threadedfortuneserver/fortunethread.cpp 0 FortuneThread's constructor simply stores the socket descriptor and fortune text, so that they are available for run() later on. - \snippet examples/network/threadedfortuneserver/fortunethread.cpp 1 + \snippet threadedfortuneserver/fortunethread.cpp 1 The first thing our run() function does is to create a QTcpSocket object on the stack. What's worth noticing is that we are creating this object @@ -83,19 +83,19 @@ to our socket from the main thread while we are accessing it from FortuneThread::run(). - \snippet examples/network/threadedfortuneserver/fortunethread.cpp 2 + \snippet threadedfortuneserver/fortunethread.cpp 2 The socket is initialized by calling QTcpSocket::setSocketDescriptor(), passing our socket descriptor as an argument. We expect this to succeed, but just to be sure, (although unlikely, the system may run out of resources,) we catch the return value and report any error. - \snippet examples/network/threadedfortuneserver/fortunethread.cpp 3 + \snippet threadedfortuneserver/fortunethread.cpp 3 - As with the \l{network/fortuneserver}{Fortune Server} example, we encode + As with the \l{fortuneserver}{Fortune Server} example, we encode the fortune into a QByteArray using QDataStream. - \snippet examples/network/threadedfortuneserver/fortunethread.cpp 4 + \snippet threadedfortuneserver/fortunethread.cpp 4 But unlike the previous example, we finish off by calling QTcpSocket::waitForDisconnected(), which blocks the calling thread until diff --git a/doc/src/examples/torrent.qdoc b/examples/network/doc/src/torrent.qdoc similarity index 98% rename from doc/src/examples/torrent.qdoc rename to examples/network/doc/src/torrent.qdoc index 9e9750e8425..a13d447277b 100644 --- a/doc/src/examples/torrent.qdoc +++ b/examples/network/doc/src/torrent.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example network/torrent + \example torrent \title Torrent Example The Torrent example is a functional BitTorrent client that diff --git a/doc/src/images/2dpainting-example.png b/examples/opengl/doc/images/2dpainting-example.png similarity index 100% rename from doc/src/images/2dpainting-example.png rename to examples/opengl/doc/images/2dpainting-example.png diff --git a/doc/src/images/cube.png b/examples/opengl/doc/images/cube.png similarity index 100% rename from doc/src/images/cube.png rename to examples/opengl/doc/images/cube.png diff --git a/doc/src/images/cube_faces.png b/examples/opengl/doc/images/cube_faces.png similarity index 100% rename from doc/src/images/cube_faces.png rename to examples/opengl/doc/images/cube_faces.png diff --git a/doc/src/images/framebufferobject2-example.png b/examples/opengl/doc/images/framebufferobject2-example.png similarity index 100% rename from doc/src/images/framebufferobject2-example.png rename to examples/opengl/doc/images/framebufferobject2-example.png diff --git a/doc/src/images/grabber-example.png b/examples/opengl/doc/images/grabber-example.png similarity index 100% rename from doc/src/images/grabber-example.png rename to examples/opengl/doc/images/grabber-example.png diff --git a/doc/src/images/hellogl-es-example.png b/examples/opengl/doc/images/hellogl-es-example.png similarity index 100% rename from doc/src/images/hellogl-es-example.png rename to examples/opengl/doc/images/hellogl-es-example.png diff --git a/doc/src/images/hellogl-example.png b/examples/opengl/doc/images/hellogl-example.png similarity index 100% rename from doc/src/images/hellogl-example.png rename to examples/opengl/doc/images/hellogl-example.png diff --git a/doc/src/images/overpainting-example.png b/examples/opengl/doc/images/overpainting-example.png similarity index 100% rename from doc/src/images/overpainting-example.png rename to examples/opengl/doc/images/overpainting-example.png diff --git a/doc/src/images/pbuffers-example.png b/examples/opengl/doc/images/pbuffers-example.png similarity index 100% rename from doc/src/images/pbuffers-example.png rename to examples/opengl/doc/images/pbuffers-example.png diff --git a/doc/src/images/pbuffers2-example.png b/examples/opengl/doc/images/pbuffers2-example.png similarity index 100% rename from doc/src/images/pbuffers2-example.png rename to examples/opengl/doc/images/pbuffers2-example.png diff --git a/doc/src/images/samplebuffers-example.png b/examples/opengl/doc/images/samplebuffers-example.png similarity index 100% rename from doc/src/images/samplebuffers-example.png rename to examples/opengl/doc/images/samplebuffers-example.png diff --git a/doc/src/images/textures-example.png b/examples/opengl/doc/images/textures-example.png similarity index 100% rename from doc/src/images/textures-example.png rename to examples/opengl/doc/images/textures-example.png diff --git a/doc/src/examples/2dpainting.qdoc b/examples/opengl/doc/src/2dpainting.qdoc similarity index 90% rename from doc/src/examples/2dpainting.qdoc rename to examples/opengl/doc/src/2dpainting.qdoc index d2d19b6e3b5..7239ddbf3d4 100644 --- a/doc/src/examples/2dpainting.qdoc +++ b/examples/opengl/doc/src/2dpainting.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/2dpainting + \example 2dpainting \title 2D Painting Example The 2D Painting example shows how QPainter and QGLWidget can be used @@ -66,7 +66,7 @@ The \c Helper class is minimal: - \snippet examples/opengl/2dpainting/helper.h 0 + \snippet 2dpainting/helper.h 0 Apart from the constructor, it only provides a \c paint() function to paint using a painter supplied by one of our widget subclasses. @@ -76,7 +76,7 @@ The constructor of the class sets up the resources it needs to paint content onto a widget: - \snippet examples/opengl/2dpainting/helper.cpp 0 + \snippet 2dpainting/helper.cpp 0 The actual painting is performed in the \c paint() function. This takes a QPainter that has already been set up to paint onto a paint device @@ -84,7 +84,7 @@ about the region to be painted, and a measure of the elapsed time (in milliseconds) since the paint device was last updated. - \snippet examples/opengl/2dpainting/helper.cpp 1 + \snippet 2dpainting/helper.cpp 1 We begin painting by filling in the region contained in the paint event before translating the origin of the coordinate system so that the rest @@ -95,13 +95,13 @@ animate them so that they appear to move outward and around the coordinate system's origin: - \snippet examples/opengl/2dpainting/helper.cpp 2 + \snippet 2dpainting/helper.cpp 2 Since the coordinate system is rotated many times during this process, we \l{QPainter::save()}{save()} the QPainter's state beforehand and \l{QPainter::restore()}{restore()} it afterwards. - \snippet examples/opengl/2dpainting/helper.cpp 3 + \snippet 2dpainting/helper.cpp 3 We draw some text at the origin to complete the effect. @@ -110,7 +110,7 @@ The \c Widget class provides a basic custom widget that we use to display the simple animation painted by the \c Helper class. - \snippet examples/opengl/2dpainting/widget.h 0 + \snippet 2dpainting/widget.h 0 Apart from the constructor, it only contains a \l{QWidget::paintEvent()}{paintEvent()} function, that lets us draw @@ -125,12 +125,12 @@ \c Helper object supplied and calling the base class's constructor, and enforces a fixed size for the widget: - \snippet examples/opengl/2dpainting/widget.cpp 0 + \snippet 2dpainting/widget.cpp 0 The \c animate() slot is called whenever a timer, which we define later, times out: - \snippet examples/opengl/2dpainting/widget.cpp 1 + \snippet 2dpainting/widget.cpp 1 Here, we determine the interval that has elapsed since the timer last timed out, and we add it to any existing value before repainting the @@ -142,14 +142,14 @@ to implement a paint event that sets up a QPainter for the widget and calls the helper's \c paint() function: - \snippet examples/opengl/2dpainting/widget.cpp 2 + \snippet 2dpainting/widget.cpp 2 \section1 GLWidget Class Definition The \c GLWidget class definition is basically the same as the \c Widget class except that it is derived from QGLWidget. - \snippet examples/opengl/2dpainting/glwidget.h 0 + \snippet 2dpainting/glwidget.h 0 Again, the member variables record the \c Helper used to paint the widget and the elapsed time since the previous update. @@ -158,7 +158,7 @@ The constructor differs a little from the \c Widget class's constructor: - \snippet examples/opengl/2dpainting/glwidget.cpp 0 + \snippet 2dpainting/glwidget.cpp 0 As well as initializing the \c elapsed member variable and storing the \c Helper object used to paint the widget, the base class's constructor @@ -169,11 +169,11 @@ The \c animate() slot is exactly the same as that provided by the \c Widget class: - \snippet examples/opengl/2dpainting/glwidget.cpp 1 + \snippet 2dpainting/glwidget.cpp 1 The \c paintEvent() is almost the same as that found in the \c Widget class: - \snippet examples/opengl/2dpainting/glwidget.cpp 2 + \snippet 2dpainting/glwidget.cpp 2 Since anti-aliasing will be enabled if available, we only need to set up a QPainter on the widget and call the helper's \c paint() function to display @@ -183,7 +183,7 @@ The \c Window class has a basic, minimal definition: - \snippet examples/opengl/2dpainting/window.h 0 + \snippet 2dpainting/window.h 0 It contains a single \c Helper object that will be shared between all widgets. @@ -193,7 +193,7 @@ The constructor does all the work, creating a widget of each type and inserting them with labels into a layout: - \snippet examples/opengl/2dpainting/window.cpp 0 + \snippet 2dpainting/window.cpp 0 A timer with a 50 millisecond time out is constructed for animation purposes, and connected to the \c animate() slots of the \c Widget and \c GLWidget objects. diff --git a/examples/opengl/doc/src/cube.qdoc b/examples/opengl/doc/src/cube.qdoc new file mode 100644 index 00000000000..578c0c9ef98 --- /dev/null +++ b/examples/opengl/doc/src/cube.qdoc @@ -0,0 +1,178 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example cube + \group all-examples + \title Cube OpenGL ES 2.0 example + + The Cube OpenGL ES 2.0 example shows how to write mouse rotateable + textured 3D cube using OpenGL ES 2.0 with Qt. It shows how to handle + polygon geometries efficiently and how to write simple vertex and + fragment shader for programmable graphics pipeline. In addition it + shows how to use quaternions for representing 3D object orientation. + + This example has been written for OpenGL ES 2.0 but it works also on + desktop OpenGL because this example is simple enough and for the + most parts desktop OpenGL API is same. It compiles also without OpenGL + support but then it just shows a label stating that OpenGL support is + required. + + \image cube.png Screenshot of the Cube example running on N900 + + The example consist of two classes: + + \list + \li \c MainWidget extends QGLWidget and contains OpenGL ES 2.0 + initialization and drawing and mouse and timer event handling + \li \c GeometryEngine handles polygon geometries. Transfers polygon geometry + to vertex buffer objects and draws geometries from vertex buffer objects. + \endlist + + We'll start by initializing OpenGL ES 2.0 in \c MainWidget. + + \tableofcontents + + \section1 Initializing OpenGL ES 2.0 + + Since OpenGL ES 2.0 doesn't support fixed graphics pipeline anymore it has to + be implemented by ourselves. This makes graphics pipeline very flexible but + in the same time it becomes more difficult because user has to implement graphics + pipeline to get even the simplest example running. It also makes graphics pipeline + more efficient because user can decide what kind of pipeline is needed for the + application. + + First we have to implement vertex shader. It gets vertex data and + model-view-projection matrix (MVP) as parameters. It transforms vertex position + using MVP matrix to screen space and passes texture coordinate to + fragment shader. Texture coordinate will be automatically interpolated on polygon + faces. + + \snippet cube/vshader.glsl 0 + + After that we need to implement second part of the graphics pipeline - fragment + shader. For this exercise we need to implement fragment shader that handles + texturing. It gets interpolated texture coordinate as a parameter and looks up + fragment color from the given texture. + + \snippet cube/fshader.glsl 0 + + Using \c QGLShaderProgram we can compile, link and bind shader code to + graphics pipeline. This code uses Qt Resource files to access shader source code. + + \snippet cube/mainwidget.cpp 3 + + The following code enables depth buffering and back face culling. + + \snippet cube/mainwidget.cpp 2 + + \section1 Loading textures from Qt Resource files + + \c QGLWidget interface implements methods for loading textures from QImage to GL + texture memory. We still need to use OpenGL provided functions for specifying + the GL texture unit and configuring texture filtering options. + + \snippet cube/mainwidget.cpp 4 + + \section1 Cube Geometry + + There are many ways to render polygons in OpenGL but the most efficient way is + to use only triangle strip primitives and render vertices from graphics hardware + memory. OpenGL has a mechanism to create buffer objects to this memory area and + transfer vertex data to these buffers. In OpenGL terminology these are referred + as Vertex Buffer Objects (VBO). + + \image cube_faces.png Cube faces and vertices + + This is how cube faces break down to triangles. Vertices are ordered this way + to get vertex ordering correct using triangle strips. OpenGL determines triangle + front and back face based on vertex ordering. By default OpenGL uses + counter-clockwise order for front faces. This information is used by back face + culling which improves rendering performance by not rendering back faces of the + triangles. This way graphics pipeline can omit rendering sides of the triangle that + aren't facing towards screen. + + Creating vertex buffer objects and transferring data to them is quite simple using + OpenGL provided functions. + + \snippet cube/geometryengine.cpp 0 + + \snippet cube/geometryengine.cpp 1 + + Drawing primitives from VBOs and telling programmable graphics pipeline how to + locate vertex data requires few steps. First we need to bind VBOs to be used. + After that we bind shader program attribute names and configure what + kind of data it has in the bound VBO. Finally we'll draw triangle + strip primitives using indices from the other VBO. + + \snippet cube/geometryengine.cpp 2 + + \section1 Perspective projection + + Using \c QMatrix4x4 helper methods it's really easy to calculate perpective + projection matrix. This matrix is used to project vertices to screen space. + + \snippet cube/mainwidget.cpp 5 + + \section1 Orientation of the 3D object + + Quaternions are handy way to represent orientation of the 3D object. Quaternions + involve quite complex mathematics but fortunately all the necessary mathematics + behind quaternions is implemented in \c QQuaternion. That allows us to store + cube orientation in quaternion and rotating cube around given axis is quite + simple. + + The following code calculates rotation axis and angular speed based on mouse events. + + \snippet cube/mainwidget.cpp 0 + + \c QBasicTimer is used to animate scene and update cube orientation. Rotations + can be concatenated simply by multiplying quaternions. + + \snippet cube/mainwidget.cpp 1 + + Model-view matrix is calculated using the quaternion and by moving world by Z axis. + This matrix is multiplied with the projection matrix to get MVP matrix for shader + program. + + \snippet cube/mainwidget.cpp 6 + +*/ diff --git a/doc/src/examples/framebufferobject2.qdoc b/examples/opengl/doc/src/framebufferobject2.qdoc similarity index 96% rename from doc/src/examples/framebufferobject2.qdoc rename to examples/opengl/doc/src/framebufferobject2.qdoc index 9be0557f164..44b6fc6018d 100644 --- a/doc/src/examples/framebufferobject2.qdoc +++ b/examples/opengl/doc/src/framebufferobject2.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/framebufferobject2 + \example framebufferobject2 \title Framebuffer Object 2 Example The Framebuffer Object 2 example demonstrates how to use the diff --git a/doc/src/examples/grabber.qdoc b/examples/opengl/doc/src/grabber.qdoc similarity index 97% rename from doc/src/examples/grabber.qdoc rename to examples/opengl/doc/src/grabber.qdoc index 8cdd9ef1a13..12e1483c9ac 100644 --- a/doc/src/examples/grabber.qdoc +++ b/examples/opengl/doc/src/grabber.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/grabber + \example grabber \title Grabber Example The Grabber examples shows how to retrieve the contents of an OpenGL framebuffer. diff --git a/doc/src/examples/hellogl.qdoc b/examples/opengl/doc/src/hellogl.qdoc similarity index 89% rename from doc/src/examples/hellogl.qdoc rename to examples/opengl/doc/src/hellogl.qdoc index f6f8591ad0f..2f866a3642f 100644 --- a/doc/src/examples/hellogl.qdoc +++ b/examples/opengl/doc/src/hellogl.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/hellogl + \example hellogl \title Hello GL Example The Hello GL example demonstrates the basic use of the OpenGL-related classes @@ -48,18 +48,18 @@ constructor, destructor, \l{QWidget::sizeHint()}{sizeHint()}, and \l{QWidget::minimumSizeHint()}{minimumSizeHint()} functions: - \snippet examples/opengl/hellogl/glwidget.h 0 + \snippet hellogl/glwidget.h 0 We use a destructor to ensure that any OpenGL-specific data structures are deleted when the widget is no longer needed (although in this case nothing needs cleaning up). - \snippet examples/opengl/hellogl/glwidget.h 1 + \snippet hellogl/glwidget.h 1 The signals and slots are used to allow other objects to interact with the 3D scene. - \snippet examples/opengl/hellogl/glwidget.h 2 + \snippet hellogl/glwidget.h 2 OpenGL initialization, viewport resizing, and painting are handled by reimplementing the QGLWidget::initializeGL(), QGLWidget::resizeGL(), and @@ -67,7 +67,7 @@ directly with the scene using the mouse, we reimplement QWidget::mousePressEvent() and QWidget::mouseMoveEvent(). - \snippet examples/opengl/hellogl/glwidget.h 3 + \snippet hellogl/glwidget.h 3 The rest of the class contains utility functions and variables that are used to construct and hold orientation information for the scene. The @@ -86,27 +86,27 @@ the pointer to the QtLogo object to null, and sets up some colors for later use. - \snippet examples/opengl/hellogl/glwidget.cpp 0 + \snippet hellogl/glwidget.cpp 0 We also implement a destructor to release OpenGL-related resources when the widget is deleted: - \snippet examples/opengl/hellogl/glwidget.cpp 1 + \snippet hellogl/glwidget.cpp 1 In this case nothing requires cleaning up. We provide size hint functions to ensure that the widget is shown at a reasonable size: - \snippet examples/opengl/hellogl/glwidget.cpp 2 + \snippet hellogl/glwidget.cpp 2 \codeline - \snippet examples/opengl/hellogl/glwidget.cpp 3 - \snippet examples/opengl/hellogl/glwidget.cpp 4 + \snippet hellogl/glwidget.cpp 3 + \snippet hellogl/glwidget.cpp 4 The widget provides three slots that enable other components in the example to change the orientation of the scene: - \snippet examples/opengl/hellogl/glwidget.cpp 5 + \snippet hellogl/glwidget.cpp 5 In the above slot, the \c xRot variable is updated only if the new angle is different to the old one, the \c xRotationChanged() signal is emitted to @@ -124,7 +124,7 @@ certain rendering flags, and setting other properties used to customize the rendering process. - \snippet examples/opengl/hellogl/glwidget.cpp 6 + \snippet hellogl/glwidget.cpp 6 In this example, we reimplement the function to set the background color, create a QtLogo object instance which will contain all the geometry to @@ -143,7 +143,7 @@ based on the length of the smallest side of the widget to ensure that the scene is not distorted if the widget has sides of unequal length: - \snippet examples/opengl/hellogl/glwidget.cpp 8 + \snippet hellogl/glwidget.cpp 8 A discussion of the projection transformation used is outside the scope of this example. Please consult the OpenGL reference documentation for an @@ -156,7 +156,7 @@ decorated with pure OpenGL content, we reimplement QGLWidget::paintGL() \e instead of reimplementing QWidget::paintEvent(): - \snippet examples/opengl/hellogl/glwidget.cpp 7 + \snippet hellogl/glwidget.cpp 7 In this example, we clear the widget using the background color that we defined in the \l{QGLWidget::initializeGL()}{initializeGL()} function, @@ -172,13 +172,13 @@ The \l{QWidget::mousePressEvent()}{mousePressEvent()} function simply records the position of the mouse when a button is initially pressed: - \snippet examples/opengl/hellogl/glwidget.cpp 9 + \snippet hellogl/glwidget.cpp 9 The \l{QWidget::mouseMoveEvent()}{mouseMoveEvent()} function uses the previous location of the mouse cursor to determine how much the object in the scene should be rotated, and in which direction: - \snippet examples/opengl/hellogl/glwidget.cpp 10 + \snippet hellogl/glwidget.cpp 10 Since the user is expected to hold down the mouse button and drag the cursor to rotate the object, the cursor's position is updated every time @@ -189,14 +189,14 @@ This class encapsulates the OpenGL geometry data which will be rendered in the basic 3D scene. - \snippet examples/opengl/shared/qtlogo.h 0 + \snippet shared/qtlogo.h 0 The geometry is divided into a list of parts which may be rendered in different ways. The data itself is contained in a Geometry structure that includes the vertices, their lighting normals and index values which point into the vertices, grouping them into faces. - \snippet examples/opengl/shared/qtlogo.cpp 0 + \snippet shared/qtlogo.cpp 0 The data in the Geometry class is stored in QVector members which are convenient for use with OpenGL because they expose raw @@ -204,7 +204,7 @@ are included for adding new vertex data, either with smooth normals, or facetted normals; and for enabling the geometry ready for rendering. - \snippet examples/opengl/shared/qtlogo.cpp 1 + \snippet shared/qtlogo.cpp 1 The higher level Patch class has methods for accumulating the geometry one face at a time, and treating collections of faces or "patches" with @@ -212,14 +212,14 @@ may be added as triangles or quads, at the OpenGL level all data is treated as triangles for compatibility with OpenGL/ES. - \snippet examples/opengl/shared/qtlogo.cpp 2 + \snippet shared/qtlogo.cpp 2 Drawing a Patch is simply acheived by applying any transformation, and material effect, then drawing the data using the index range for the patch. The model-view matrix is saved and then restored so that any transformation does not affect other parts of the scene. - \snippet examples/opengl/shared/qtlogo.cpp 3 + \snippet shared/qtlogo.cpp 3 The geometry is built once on construction of the QtLogo, and it is paramaterized on a number of divisions - which controls how "chunky" the @@ -231,7 +231,7 @@ details) which only exist during the build phase, to assemble the parts of the scene. - \snippet examples/opengl/shared/qtlogo.cpp 4 + \snippet shared/qtlogo.cpp 4 Finally the complete QtLogo scene is simply drawn by enabling the data arrays and then iterating over the parts, calling draw() on each one. @@ -241,7 +241,7 @@ The \c Window class is used as a container for the \c GLWidget used to display the scene: - \snippet examples/opengl/hellogl/window.h 0 + \snippet hellogl/window.h 0 In addition, it contains sliders that are used to change the orientation of the object in the scene. @@ -251,7 +251,7 @@ The constructor constructs an instance of the \c GLWidget class and some sliders to manipulate its contents. - \snippet examples/opengl/hellogl/window.cpp 0 + \snippet hellogl/window.cpp 0 We connect the \l{QAbstractSlider::valueChanged()}{valueChanged()} signal from each of the sliders to the appropriate slots in \c{glWidget}. @@ -263,7 +263,7 @@ \l{QAbstractSlider::setValue()}{setValue()} slots in the corresponding sliders. - \snippet examples/opengl/hellogl/window.cpp 1 + \snippet hellogl/window.cpp 1 The sliders are placed horizontally in a layout alongside the \c GLWidget, and initialized with suitable default values. @@ -272,7 +272,7 @@ that it is set up with a suitable range, step value, tick interval, and page step value before returning it to the calling function: - \snippet examples/opengl/hellogl/window.cpp 2 + \snippet hellogl/window.cpp 2 \section1 Summary diff --git a/doc/src/examples/hellogl_es.qdoc b/examples/opengl/doc/src/hellogl_es.qdoc similarity index 86% rename from doc/src/examples/hellogl_es.qdoc rename to examples/opengl/doc/src/hellogl_es.qdoc index 212e760542d..8764eda4d61 100644 --- a/doc/src/examples/hellogl_es.qdoc +++ b/examples/opengl/doc/src/hellogl_es.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/hellogl_es + \example hellogl_es \title Hello GL ES Example The Hello GL ES example is the \l{Hello GL Example} ported to OpenGL ES. @@ -59,18 +59,18 @@ sides of the quad and hardcode a distance of 0.05f. We also compute the correct normal for each face and store them in another QList. - \snippet examples/opengl/hellogl_es/glwidget.cpp 0 + \snippet hellogl_es/glwidget.cpp 0 And then we convert the complete list of vertexes and the list of normals into the native OpenGL ES format that we can use with the OpenGL ES API. - \snippet examples/opengl/hellogl_es/glwidget.cpp 1 + \snippet hellogl_es/glwidget.cpp 1 In \c paintQtLogo() we draw the triangle array using OpenGL ES. We use q_vertexTypeEnum to abstract the fact that our vertex and normal arrays are either in float or in fixed point format. - \snippet examples/opengl/hellogl_es/glwidget.cpp 2 + \snippet hellogl_es/glwidget.cpp 2 \section1 Using QGLPainter @@ -78,42 +78,42 @@ the rasterizer and cache them in a QImage. This happends only once during the initialiazation. - \snippet examples/opengl/hellogl_es/bubble.cpp 0 + \snippet hellogl_es/bubble.cpp 0 For each bubble this QImage is then drawn to the QGLWidget by using the according QPainter with transparency enabled. - \snippet examples/opengl/hellogl_es/bubble.cpp 1 + \snippet hellogl_es/bubble.cpp 1 Another difference beetwen OpenGL and OpenGL ES is that OpenGL ES does not support glPushAttrib(GL_ALL_ATTRIB_BITS). So we have to restore all the OpenGL states ourselves, after we created the QPainter in GLWidget::paintGL(). - \snippet examples/opengl/hellogl_es/glwidget.cpp 3 + \snippet hellogl_es/glwidget.cpp 3 Setting up up the model view matrix and setting the right OpenGL states is done in the same way as for standard OpenGL. - \snippet examples/opengl/hellogl_es/glwidget.cpp 4 + \snippet hellogl_es/glwidget.cpp 4 Now we have to restore the OpenGL state for the QPainter. This is not done automatically for OpenGL ES. - \snippet examples/opengl/hellogl_es/glwidget.cpp 5 + \snippet hellogl_es/glwidget.cpp 5 Now we use the QPainter to draw the transparent bubbles. - \snippet examples/opengl/hellogl_es/glwidget.cpp 6 + \snippet hellogl_es/glwidget.cpp 6 In the end, we calculate the framerate and display it using the QPainter again. - \snippet examples/opengl/hellogl_es/glwidget.cpp 7 + \snippet hellogl_es/glwidget.cpp 7 After we finished all the drawing operations we swap the screen buffer. - \snippet examples/opengl/hellogl_es/glwidget.cpp 8 + \snippet hellogl_es/glwidget.cpp 8 \section1 Summary diff --git a/doc/src/examples/overpainting.qdoc b/examples/opengl/doc/src/overpainting.qdoc similarity index 91% rename from doc/src/examples/overpainting.qdoc rename to examples/opengl/doc/src/overpainting.qdoc index d20ee646983..e24af4c3cae 100644 --- a/doc/src/examples/overpainting.qdoc +++ b/examples/opengl/doc/src/overpainting.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/overpainting + \example overpainting \title Overpainting Example The Overpainting example shows how QPainter can be used @@ -62,11 +62,11 @@ class as a whole, we show the first few lines of the class and only discuss the changes we have made to the rest of it: - \snippet examples/opengl/overpainting/glwidget.h 0 + \snippet overpainting/glwidget.h 0 \dots - \snippet examples/opengl/overpainting/glwidget.h 1 + \snippet overpainting/glwidget.h 1 \dots - \snippet examples/opengl/overpainting/glwidget.h 4 + \snippet overpainting/glwidget.h 4 As usual, the widget uses \l{QGLWidget::initializeGL()}{initializeGL()} to set up geometry for our scene and perform OpenGL initialization tasks. @@ -94,7 +94,7 @@ relevant to this example. In the constructor, we initialize a QTimer to control the animation: - \snippet examples/opengl/overpainting/glwidget.cpp 0 + \snippet overpainting/glwidget.cpp 0 We turn off the widget's \l{QWidget::autoFillBackground}{autoFillBackground} property to instruct OpenGL not to paint a background for the widget when @@ -103,13 +103,13 @@ As in the \l{Hello GL Example}{Hello GL} example, the destructor is responsible for freeing any OpenGL-related resources: - \snippet examples/opengl/overpainting/glwidget.cpp 1 + \snippet overpainting/glwidget.cpp 1 The \c initializeGL() function is fairly minimal, only setting up the QtLogo object used in the scene. See the \l{Hello GL Example}{Hello GL} example for details of the QtLogo class. - \snippet examples/opengl/overpainting/glwidget.cpp 2 + \snippet overpainting/glwidget.cpp 2 To cooperate fully with QPainter, we defer matrix stack operations and attribute initialization until the widget needs to be updated. @@ -126,12 +126,12 @@ and other attributes. We use an OpenGL stack operation to preserve the original matrix state, allowing us to recover it later: - \snippet examples/opengl/overpainting/glwidget.cpp 4 + \snippet overpainting/glwidget.cpp 4 We define a color to use for the widget's background, and set up various attributes that define how the scene will be rendered. - \snippet examples/opengl/overpainting/glwidget.cpp 6 + \snippet overpainting/glwidget.cpp 6 We call the \c setupViewport() private function to set up the projection used for the scene. This is unnecessary in OpenGL @@ -144,21 +144,21 @@ an OpenGL call to paint it before positioning the object defined earlier in the scene: - \snippet examples/opengl/overpainting/glwidget.cpp 7 + \snippet overpainting/glwidget.cpp 7 Once the QtLogo object's draw method has been executed, the GL states we changed and the matrix stack needs to be restored to its original state at the start of this function before we can begin overpainting: - \snippet examples/opengl/overpainting/glwidget.cpp 8 + \snippet overpainting/glwidget.cpp 8 With the 3D graphics done, we construct a QPainter for use on the widget and simply overpaint the widget with 2D graphics; in this case, using a helper class to draw a number of translucent bubbles onto the widget, and calling \c drawInstructions() to overlay some instructions: - \snippet examples/opengl/overpainting/glwidget.cpp 10 + \snippet overpainting/glwidget.cpp 10 When QPainter::end() is called, suitable OpenGL-specific calls are made to write the scene, and its additional contents, onto the widget. @@ -173,14 +173,14 @@ sets up the dimensions of the viewport and defines a projection transformation: - \snippet examples/opengl/overpainting/glwidget.cpp 11 + \snippet overpainting/glwidget.cpp 11 Ideally, we want to arrange the 2D graphics to suit the widget's dimensions. To achieve this, we implement the \l{QWidget::showEvent()}{showEvent()} handler, creating new graphic elements (bubbles) if necessary at appropriate positions in the widget. - \snippet examples/opengl/overpainting/glwidget.cpp 12 + \snippet overpainting/glwidget.cpp 12 This function only has an effect if less than 20 bubbles have already been created. @@ -189,7 +189,7 @@ the \l{QTimer::timeout()}{timeout()} signal. This keeps the bubbles moving around. - \snippet examples/opengl/overpainting/glwidget.cpp 13 + \snippet overpainting/glwidget.cpp 13 We simply iterate over the bubbles in the \c bubbles list, updating the widget before and after each of them is moved. @@ -197,13 +197,13 @@ The \c setupViewport() function is called from \c paintEvent() and \c resizeGL(). - \snippet examples/opengl/overpainting/glwidget.cpp 14 + \snippet overpainting/glwidget.cpp 14 The \c drawInstructions() function is used to prepare some basic instructions that will be painted with the other 2D graphics over the 3D scene. - \snippet examples/opengl/overpainting/glwidget.cpp 15 + \snippet overpainting/glwidget.cpp 15 \section1 Summary diff --git a/doc/src/examples/pbuffers.qdoc b/examples/opengl/doc/src/pbuffers.qdoc similarity index 97% rename from doc/src/examples/pbuffers.qdoc rename to examples/opengl/doc/src/pbuffers.qdoc index d87427b56a9..baa657e14ee 100644 --- a/doc/src/examples/pbuffers.qdoc +++ b/examples/opengl/doc/src/pbuffers.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/pbuffers + \example pbuffers \title Pixel Buffers Example The Pixel Buffers example demonstrates how to use the diff --git a/doc/src/examples/pbuffers2.qdoc b/examples/opengl/doc/src/pbuffers2.qdoc similarity index 97% rename from doc/src/examples/pbuffers2.qdoc rename to examples/opengl/doc/src/pbuffers2.qdoc index f05b2dd13bf..efa53b06cc1 100644 --- a/doc/src/examples/pbuffers2.qdoc +++ b/examples/opengl/doc/src/pbuffers2.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/pbuffers2 + \example pbuffers2 \title Pixel Buffers 2 Example The Pixel Buffers 2 example demonstrates how to use the diff --git a/doc/src/examples/samplebuffers.qdoc b/examples/opengl/doc/src/samplebuffers.qdoc similarity index 96% rename from doc/src/examples/samplebuffers.qdoc rename to examples/opengl/doc/src/samplebuffers.qdoc index 3b3c0c564bc..93d8b54b4a8 100644 --- a/doc/src/examples/samplebuffers.qdoc +++ b/examples/opengl/doc/src/samplebuffers.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/samplebuffers + \example samplebuffers \title Sample Buffers Example The Sample Buffers example demonstrates how to use and enable diff --git a/doc/src/examples/textures.qdoc b/examples/opengl/doc/src/textures.qdoc similarity index 97% rename from doc/src/examples/textures.qdoc rename to examples/opengl/doc/src/textures.qdoc index 79e664b3059..b7e694239d5 100644 --- a/doc/src/examples/textures.qdoc +++ b/examples/opengl/doc/src/textures.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example opengl/textures + \example textures \title Textures Example The Textures example demonstrates the use of Qt's image classes as textures in diff --git a/doc/src/images/cachedtable-example.png b/examples/sql/doc/images/cachedtable-example.png similarity index 100% rename from doc/src/images/cachedtable-example.png rename to examples/sql/doc/images/cachedtable-example.png diff --git a/doc/src/images/drilldown-example.png b/examples/sql/doc/images/drilldown-example.png similarity index 100% rename from doc/src/images/drilldown-example.png rename to examples/sql/doc/images/drilldown-example.png diff --git a/doc/src/images/masterdetail-example.png b/examples/sql/doc/images/masterdetail-example.png similarity index 100% rename from doc/src/images/masterdetail-example.png rename to examples/sql/doc/images/masterdetail-example.png diff --git a/doc/src/images/querymodel-example.png b/examples/sql/doc/images/querymodel-example.png similarity index 100% rename from doc/src/images/querymodel-example.png rename to examples/sql/doc/images/querymodel-example.png diff --git a/doc/src/images/relationaltablemodel-example.png b/examples/sql/doc/images/relationaltablemodel-example.png similarity index 100% rename from doc/src/images/relationaltablemodel-example.png rename to examples/sql/doc/images/relationaltablemodel-example.png diff --git a/doc/src/images/sql-widget-mapper.png b/examples/sql/doc/images/sql-widget-mapper.png similarity index 100% rename from doc/src/images/sql-widget-mapper.png rename to examples/sql/doc/images/sql-widget-mapper.png diff --git a/doc/src/images/sqlbrowser-demo.png b/examples/sql/doc/images/sqlbrowser-demo.png similarity index 100% rename from doc/src/images/sqlbrowser-demo.png rename to examples/sql/doc/images/sqlbrowser-demo.png diff --git a/doc/src/images/tablemodel-example.png b/examples/sql/doc/images/tablemodel-example.png similarity index 100% rename from doc/src/images/tablemodel-example.png rename to examples/sql/doc/images/tablemodel-example.png diff --git a/doc/src/images/widgetmapper-sql-mapping-table.png b/examples/sql/doc/images/widgetmapper-sql-mapping-table.png similarity index 100% rename from doc/src/images/widgetmapper-sql-mapping-table.png rename to examples/sql/doc/images/widgetmapper-sql-mapping-table.png diff --git a/doc/src/images/widgetmapper-sql-mapping.png b/examples/sql/doc/images/widgetmapper-sql-mapping.png similarity index 100% rename from doc/src/images/widgetmapper-sql-mapping.png rename to examples/sql/doc/images/widgetmapper-sql-mapping.png diff --git a/doc/src/examples/cachedtable.qdoc b/examples/sql/doc/src/cachedtable.qdoc similarity index 93% rename from doc/src/examples/cachedtable.qdoc rename to examples/sql/doc/src/cachedtable.qdoc index e3c0e40f8f4..863cbce61ec 100644 --- a/doc/src/examples/cachedtable.qdoc +++ b/examples/sql/doc/src/cachedtable.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/cachedtable + \example cachedtable \title Cached Table Example The Cached Table example shows how a table view can be used to access a database, @@ -45,7 +45,7 @@ The \c TableEditor class inherits QDialog making the table editor widget a top-level dialog window. - \snippet examples/sql/cachedtable/tableeditor.h 0 + \snippet cachedtable/tableeditor.h 0 The \c TableEditor constructor takes two arguments: The first is a pointer to the parent widget and is passed on to the base class @@ -73,14 +73,14 @@ Before we can use the \c TableEditor class, we must create a connection to the database containing the table we want to edit: - \snippet examples/sql/cachedtable/main.cpp 0 + \snippet cachedtable/main.cpp 0 The \c createConnection() function is a helper function provided for convenience. It is defined in the \c connection.h file which is located in the \c sql example directory (all the examples in the \c sql directory use this function to connect to a database). - \snippet examples/sql/connection.h 0 + \snippet connection.h 0 The \c createConnection function opens a connection to an in-memory SQLITE database and creates a test table. If you want @@ -93,7 +93,7 @@ constructor and the \c submit() slot. In the constructor we create and customize the data model and the various window elements: - \snippet examples/sql/cachedtable/tableeditor.cpp 0 + \snippet cachedtable/tableeditor.cpp 0 First we create the data model and set the SQL database table we want the model to operate on. Note that the @@ -116,7 +116,7 @@ the \l {QSqlQueryModel::setHeaderData()}{setHeaderData()} function that the model inherits from the QSqlQueryModel class. - \snippet examples/sql/cachedtable/tableeditor.cpp 1 + \snippet cachedtable/tableeditor.cpp 1 Then we create a table view. The QTableView class provides a default model/view implementation of a table view, i.e. it @@ -129,7 +129,7 @@ To make the view present our data, we pass our model to the view using the \l {QAbstractItemView::setModel()}{setModel()} function. - \snippet examples/sql/cachedtable/tableeditor.cpp 2 + \snippet cachedtable/tableeditor.cpp 2 The \c {TableEditor}'s buttons are regular QPushButton objects. We add them to a button box to ensure that the buttons are presented @@ -150,7 +150,7 @@ use. They exist as flags so you can OR them together in the constructor. - \snippet examples/sql/cachedtable/tableeditor.cpp 3 + \snippet cachedtable/tableeditor.cpp 3 We connect the \uicontrol Quit button to the table editor's \l {QWidget::close()}{close()} slot, and the \uicontrol Submit button to @@ -159,13 +159,13 @@ to our model's \l {QSqlTableModel::revertAll()}{revertAll()} slot, reverting all pending changes (i.e., restoring the original data). - \snippet examples/sql/cachedtable/tableeditor.cpp 4 + \snippet cachedtable/tableeditor.cpp 4 In the end we add the button box and the table view to a layout, install the layout on the table editor widget, and set the editor's window title. - \snippet examples/sql/cachedtable/tableeditor.cpp 5 + \snippet cachedtable/tableeditor.cpp 5 The \c submit() slot is called whenever the users hit the \uicontrol Submit button to save their changes. diff --git a/doc/src/examples/drilldown.qdoc b/examples/sql/doc/src/drilldown.qdoc similarity index 92% rename from doc/src/examples/drilldown.qdoc rename to examples/sql/doc/src/drilldown.qdoc index f8086c193e6..9a7d0d003bb 100644 --- a/doc/src/examples/drilldown.qdoc +++ b/examples/sql/doc/src/drilldown.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/drilldown + \example drilldown \title Drill Down Example The Drill Down example shows how to read data from a database as @@ -66,7 +66,7 @@ The \c InformationWindow class is a custom widget inheriting QWidget: - \snippet examples/sql/drilldown/informationwindow.h 0 + \snippet drilldown/informationwindow.h 0 When we create an information window, we pass the associated location ID, a parent, and a pointer to the database, to the @@ -81,14 +81,14 @@ we will emit a signal carrying the ID and file name as parameters whenever the users changes the associated image. - \snippet examples/sql/drilldown/informationwindow.h 1 + \snippet drilldown/informationwindow.h 1 Since we allow the users to alter some of the location data, we must provide functionality for reverting and submitting their changes. The \c enableButtons() slot is provided for convenience to enable and disable the various buttons when required. - \snippet examples/sql/drilldown/informationwindow.h 2 + \snippet drilldown/informationwindow.h 2 The \c createButtons() function is also a convenience function, provided to simplify the constructor. As mentioned above we store @@ -114,15 +114,15 @@ pointer to a QSqlRelationalTableModel object providing an editable data model (with foreign key support) for our database table. - \snippet examples/sql/drilldown/informationwindow.cpp 0 - \snippet examples/sql/drilldown/informationwindow.cpp 1 + \snippet drilldown/informationwindow.cpp 0 + \snippet drilldown/informationwindow.cpp 1 First we create the various widgets required to display the data contained in the database. Most of the widgets are created in a straight forward manner. But note the combobox displaying the name of the image file: - \snippet examples/sql/drilldown/informationwindow.cpp 2 + \snippet drilldown/informationwindow.cpp 2 In this example, the information about the offices are stored in a database table called "offices". When creating the model, @@ -143,7 +143,7 @@ column we want to be visible using the QComboBox::setModelColumn() function. - \snippet examples/sql/drilldown/informationwindow.cpp 3 + \snippet drilldown/informationwindow.cpp 3 Then we create the mapper. The QDataWidgetMapper class allows us to create data-aware widgets by mapping them to sections of an @@ -169,7 +169,7 @@ combobox functionality for fields that are foreign keys into other tables (like "imagefile" in our "trolltechoffices" table). - \snippet examples/sql/drilldown/informationwindow.cpp 4 + \snippet drilldown/informationwindow.cpp 4 Finally, we connect the "something's changed" signals in the editors to our custom \c enableButtons() slot, enabling the users @@ -182,7 +182,7 @@ our widget is in fact a window, with a window system frame and a title bar. - \snippet examples/sql/drilldown/informationwindow.cpp 5 + \snippet drilldown/informationwindow.cpp 5 When a window is created, it is not deleted until the main application exits (i.e., if the user closes the information @@ -192,7 +192,7 @@ determine whether a window already exists for a given location when the user requests information about it. - \snippet examples/sql/drilldown/informationwindow.cpp 6 + \snippet drilldown/informationwindow.cpp 6 The \c revert() slot is triggered whenever the user hits the \uicontrol Revert button. @@ -204,7 +204,7 @@ slot to reset the editor widgets, repopulating all widgets with the current data of the model. - \snippet examples/sql/drilldown/informationwindow.cpp 7 + \snippet drilldown/informationwindow.cpp 7 Likewise, the \c submit() slot is triggered whenever the users decide to submit their changes by pressing the \uicontrol Submit button. @@ -223,7 +223,7 @@ file names differ, we store the new file name and emit the \c imageChanged() signal. - \snippet examples/sql/drilldown/informationwindow.cpp 8 + \snippet drilldown/informationwindow.cpp 8 The \c createButtons() function is provided for convenience, i.e., to simplify the constructor. @@ -236,7 +236,7 @@ Submit and \uicontrol Revert buttons to the corresponding \c submit() and \c revert() slots. - \snippet examples/sql/drilldown/informationwindow.cpp 9 + \snippet drilldown/informationwindow.cpp 9 The QDialogButtonBox class is a widget that presents buttons in a layout that is appropriate to the current widget style. Dialogs @@ -258,7 +258,7 @@ the user has made wil be preserved until the user expliclity revert or submit them. - \snippet examples/sql/drilldown/informationwindow.cpp 10 + \snippet drilldown/informationwindow.cpp 10 The \c enableButtons() slot is called to enable the buttons whenever the user changes the presented data. Likewise, when the @@ -274,9 +274,9 @@ The \c View class represents the main application window and inherits QGraphicsView: - \snippet examples/sql/drilldown/view.h 0 + \snippet drilldown/view.h 0 \codeline - \snippet examples/sql/drilldown/view.h 1 + \snippet drilldown/view.h 1 The QGraphicsView class is part of the \l {Graphics View Framework} which we will use to display the images of Nokia's @@ -293,7 +293,7 @@ {InformationWindow}'s \c imageChanged() signal that is emitted whenever the user changes a location's image. - \snippet examples/sql/drilldown/view.h 2 + \snippet drilldown/view.h 2 The \c addItems() function is a convenience function provided to simplify the constructor. It is called only once, creating the @@ -307,7 +307,7 @@ latter function is in turn called from our custom \c mouseReleaseEvent() implementation. - \snippet examples/sql/drilldown/view.h 3 + \snippet drilldown/view.h 3 Finally we declare a QSqlRelationalTableModel pointer. As previously mentioned, the QSqlRelationalTableModel class provides @@ -328,7 +328,7 @@ names of the available image files, we only have to create a QSqlRelationalTableModel object for the office table: - \snippet examples/sql/drilldown/view.cpp 0 + \snippet drilldown/view.cpp 0 The reason is that once we have a model with the office details, we can create a relation to the available image files using @@ -344,7 +344,7 @@ {QSqlRelationalTableModel::}{select()} function to populate our model. - \snippet examples/sql/drilldown/view.cpp 1 + \snippet drilldown/view.cpp 1 Then we create the contents of our view, i.e., the scene and its items. The location labels are regular QGraphicsTextItem objects, @@ -356,7 +356,7 @@ Finally, we set the main application widget's size constraints and window title. - \snippet examples/sql/drilldown/view.cpp 3 + \snippet drilldown/view.cpp 3 The \c addItems() function is called only once, i.e., when creating the main application window. For each row in the database @@ -377,7 +377,7 @@ events). Please see the \l{Graphics View Framework} documentation and the \l{Graphics View Examples} for more details. - \snippet examples/sql/drilldown/view.cpp 5 + \snippet drilldown/view.cpp 5 We reimplement QGraphicsView's \l {QGraphicsView::}{mouseReleaseEvent()} event handler to respond to @@ -390,7 +390,7 @@ of a given type. Note that if the event is not related to any of our image items, we pass it on to the base class implementation. - \snippet examples/sql/drilldown/view.cpp 6 + \snippet drilldown/view.cpp 6 The \c showInformation() function is given an \c ImageItem object as argument, and starts off by extracting the item's location @@ -407,14 +407,14 @@ this widget's \c updateImage() slot, before we give it a suitable position and add it to the list of existing windows. - \snippet examples/sql/drilldown/view.cpp 7 + \snippet drilldown/view.cpp 7 The \c updateImage() slot takes a location ID and the name of an image files as arguments. It filters out the image items, and updates the one that correspond to the given location ID, with the provided image file. - \snippet examples/sql/drilldown/view.cpp 8 + \snippet drilldown/view.cpp 8 The \c findWindow() function simply searches through the list of existing windows, returning a pointer to the window that matches @@ -428,7 +428,7 @@ image items. It inherits QGraphicsPixmapItem and reimplements its hover event handlers: - \snippet examples/sql/drilldown/imageitem.h 0 + \snippet drilldown/imageitem.h 0 In addition, we implement a public \c id() function to be able to identify the associated location and a public \c adjust() function @@ -456,7 +456,7 @@ constructor's arguments (the pixmap, parent and scene) on to the base class constructor: - \snippet examples/sql/drilldown/imageitem.cpp 0 + \snippet drilldown/imageitem.cpp 0 Then we store the ID for future reference, and ensure that our item will accept hover events. Hover events are delivered when @@ -482,9 +482,9 @@ Finally, we call \c adjust() to ensure that the item is given the preferred size. - \snippet examples/sql/drilldown/imageitem.cpp 1 + \snippet drilldown/imageitem.cpp 1 \codeline - \snippet examples/sql/drilldown/imageitem.cpp 2 + \snippet drilldown/imageitem.cpp 2 Whenever the mouse cursor enters or leave the image item, the corresponding event handlers are triggered: We first set the time @@ -503,7 +503,7 @@ item stack once the animation is completed. Finally, if the time line is not already running, we start it. - \snippet examples/sql/drilldown/imageitem.cpp 3 + \snippet drilldown/imageitem.cpp 3 When the time line is running, it triggers the \c setFrame() slot whenever the current frame changes due to the connection we @@ -520,11 +520,11 @@ In the end, only the following convenience functions remain: - \snippet examples/sql/drilldown/imageitem.cpp 4 + \snippet drilldown/imageitem.cpp 4 \codeline - \snippet examples/sql/drilldown/imageitem.cpp 5 + \snippet drilldown/imageitem.cpp 5 \codeline - \snippet examples/sql/drilldown/imageitem.cpp 6 + \snippet drilldown/imageitem.cpp 6 The \c adjust() function defines and applies a transformation matrix, ensuring that our image item appears with the preferred diff --git a/doc/src/examples/masterdetail.qdoc b/examples/sql/doc/src/masterdetail.qdoc similarity index 97% rename from doc/src/examples/masterdetail.qdoc rename to examples/sql/doc/src/masterdetail.qdoc index 2b9e270b03d..c8ec68f6396 100644 --- a/doc/src/examples/masterdetail.qdoc +++ b/examples/sql/doc/src/masterdetail.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/masterdetail + \example masterdetail \title Master Detail Example The Master Detail Example shows how to present data from different diff --git a/doc/src/examples/querymodel.qdoc b/examples/sql/doc/src/querymodel.qdoc similarity index 97% rename from doc/src/examples/querymodel.qdoc rename to examples/sql/doc/src/querymodel.qdoc index 88ac0d72973..2d1f3c90b11 100644 --- a/doc/src/examples/querymodel.qdoc +++ b/examples/sql/doc/src/querymodel.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/querymodel + \example querymodel \title Query Model Example The Query Model example shows how to make customized versions of diff --git a/doc/src/examples/relationaltablemodel.qdoc b/examples/sql/doc/src/relationaltablemodel.qdoc similarity index 96% rename from doc/src/examples/relationaltablemodel.qdoc rename to examples/sql/doc/src/relationaltablemodel.qdoc index b1b9492a23a..619554ff91b 100644 --- a/doc/src/examples/relationaltablemodel.qdoc +++ b/examples/sql/doc/src/relationaltablemodel.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/relationaltablemodel + \example relationaltablemodel \title Relational Table Model Example The Relational Table Model example shows how to use table views with a relational diff --git a/doc/src/examples/sqlbrowser.qdoc b/examples/sql/doc/src/sqlbrowser.qdoc similarity index 97% rename from doc/src/examples/sqlbrowser.qdoc rename to examples/sql/doc/src/sqlbrowser.qdoc index 81cf2d049d8..302964cf751 100644 --- a/doc/src/examples/sqlbrowser.qdoc +++ b/examples/sql/doc/src/sqlbrowser.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/sqlbrowser + \example sqlbrowser \title SQL Browser The SQL Browser example shows how a data browser can be used to visualize diff --git a/doc/src/examples/sqlwidgetmapper.qdoc b/examples/sql/doc/src/sqlwidgetmapper.qdoc similarity index 89% rename from doc/src/examples/sqlwidgetmapper.qdoc rename to examples/sql/doc/src/sqlwidgetmapper.qdoc index b9ea28849e7..cc1c51c97fb 100644 --- a/doc/src/examples/sqlwidgetmapper.qdoc +++ b/examples/sql/doc/src/sqlwidgetmapper.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/sqlwidgetmapper + \example sqlwidgetmapper \title SQL Widget Mapper Example The SQL Widget Mapper example shows how to use a map information from a @@ -50,7 +50,7 @@ The class provides a constructor, a slot to keep the buttons up to date, and a private function to set up the model: - \snippet examples/sql/sqlwidgetmapper/window.h Window definition + \snippet sqlwidgetmapper/window.h Window definition In addition to the QDataWidgetMapper object and the controls used to make up the user interface, we use a QStandardItemModel to hold our data and @@ -67,7 +67,7 @@ we create a SQLite database containing a "person" table with primary key, name, address and type fields. - \snippet examples/sql/sqlwidgetmapper/window.cpp Set up the main table + \snippet sqlwidgetmapper/window.cpp Set up the main table On each row of the table, we insert default values for these fields, including values for the address types that correspond to the address @@ -78,7 +78,7 @@ We create an "addresstype" table containing the identifiers used in the "person" table and the corresponding strings: - \snippet examples/sql/sqlwidgetmapper/window.cpp Set up the address type table + \snippet sqlwidgetmapper/window.cpp Set up the address type table The "typeid" field in the "person" table is related to the contents of the "addresstype" table via a relation in a QSqlRelationalTableModel. @@ -98,7 +98,7 @@ In the first part, we set up the model used to hold the data, then we set up the widgets used for the user interface: - \snippet examples/sql/sqlwidgetmapper/window.cpp Set up widgets + \snippet sqlwidgetmapper/window.cpp Set up widgets We obtain a model for the combo box from the main model, based on the relation we set up for the "typeid" field. The call to the combo box's @@ -113,7 +113,7 @@ Next, we set up the widget mapper, relating each input widget to a field in the model: - \snippet examples/sql/sqlwidgetmapper/window.cpp Set up the mapper + \snippet sqlwidgetmapper/window.cpp Set up the mapper For the combo box, we already know the index of the field in the model from the \c{setupModel()} function. We use a QSqlRelationalDelegate as @@ -127,12 +127,12 @@ The rest of the constructor is very similar to that of the \l{Simple Widget Mapper Example}: - \snippet examples/sql/sqlwidgetmapper/window.cpp Set up connections and layouts + \snippet sqlwidgetmapper/window.cpp Set up connections and layouts We show the implementation of the \c{updateButtons()} slot for completeness: - \snippet examples/sql/sqlwidgetmapper/window.cpp Slot for updating the buttons + \snippet sqlwidgetmapper/window.cpp Slot for updating the buttons \omit \section1 Delegate Class Definition and Implementation @@ -140,7 +140,7 @@ The delegate we use to mediate interaction between the widget mapper and the input widgets is a small QItemDelegate subclass: - \snippet examples/sql/sqlwidgetmapper/delegate.h Delegate class definition + \snippet sqlwidgetmapper/delegate.h Delegate class definition This provides implementations of the two standard functions used to pass data between editor widgets and the model (see the \l{Delegate Classes} @@ -153,7 +153,7 @@ referred to by the model index supplied and processes it according to the presence of a \c currentIndex property in the editor widget: - \snippet examples/sql/sqlwidgetmapper/delegate.cpp setEditorData implementation + \snippet sqlwidgetmapper/delegate.cpp setEditorData implementation If, like QComboBox, the editor widget has this property, it is set using the value from the model. Since we are passing around QVariant values, @@ -168,7 +168,7 @@ process, taking the value stored in the widget's \c currentIndex property and storing it back in the model: - \snippet examples/sql/sqlwidgetmapper/delegate.cpp setModelData implementation + \snippet sqlwidgetmapper/delegate.cpp setModelData implementation \endomit \section1 Summary and Further Reading diff --git a/doc/src/examples/tablemodel.qdoc b/examples/sql/doc/src/tablemodel.qdoc similarity index 97% rename from doc/src/examples/tablemodel.qdoc rename to examples/sql/doc/src/tablemodel.qdoc index c0b0d596b55..1a08048dd9c 100644 --- a/doc/src/examples/tablemodel.qdoc +++ b/examples/sql/doc/src/tablemodel.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example sql/tablemodel + \example tablemodel \title Table Model Example The Table Model example shows how to use a specialized SQL table model with table diff --git a/doc/src/examples/customcompleter.qdoc b/examples/tools/doc/src/customcompleter.qdoc similarity index 99% rename from doc/src/examples/customcompleter.qdoc rename to examples/tools/doc/src/customcompleter.qdoc index b46d747e029..98a95e47a4f 100644 --- a/doc/src/examples/customcompleter.qdoc +++ b/examples/tools/doc/src/customcompleter.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example tools/customcompleter + \example customcompleter \title Custom Completer Example The Custom Completer example shows how to provide string-completion diff --git a/doc/src/examples/customtype.qdoc b/examples/tools/doc/src/customtype.qdoc similarity index 100% rename from doc/src/examples/customtype.qdoc rename to examples/tools/doc/src/customtype.qdoc diff --git a/examples/widgets/doc/images/itemviewspuzzle-example.png b/examples/widgets/doc/images/itemviewspuzzle-example.png new file mode 100644 index 0000000000000000000000000000000000000000..05ae28be81851d268a477564526587e66fbd0525 GIT binary patch literal 211091 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

&?zOOGszOC#pK1&XVYMwJnNhf#MJ~%WOH7lnd+Q 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 nT~%_L-E