summaryrefslogtreecommitdiffstats
path: root/doc/src
diff options
context:
space:
mode:
authorCasper van Donderen <casper.vandonderen@nokia.com>2012-03-20 19:37:07 +0100
committerQt by Nokia <qt-info@nokia.com>2012-04-19 07:34:53 +0200
commit0bc02fd0d61d1e4aed9b39890d28975dff30e822 (patch)
treee967ab719c7f8df24c35b088bd48e0f5b0942148 /doc/src
parent7f0c130be963de90d1baeb037820b17a4f298700 (diff)
Doc: Prepare for building modular QtCore docs.
This change fixes most qdoc errors in QtCore. There are about 900 left. The main thing this change does is moving documentation from qtcore from /doc/src to /src/corelib/doc. Other issues resolved are mis-use of qdoc commands. Change-Id: I002d01edfb13575e8bf27ce91596a577a92562d1 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/corelib/containers.qdoc803
-rw-r--r--doc/src/corelib/implicit-sharing.qdoc138
-rw-r--r--doc/src/corelib/json.qdoc118
-rw-r--r--doc/src/corelib/objectmodel/metaobjects.qdoc137
-rw-r--r--doc/src/corelib/objectmodel/object.qdoc124
-rw-r--r--doc/src/corelib/objectmodel/objecttrees.qdoc102
-rw-r--r--doc/src/corelib/objectmodel/properties.qdoc273
-rw-r--r--doc/src/corelib/objectmodel/signalsandslots.qdoc468
-rw-r--r--doc/src/corelib/qtcore.qdoc42
-rw-r--r--doc/src/corelib/threads-basics.qdoc572
-rw-r--r--doc/src/corelib/threads.qdoc705
-rw-r--r--doc/src/images/abstract-connections.pngbin19849 -> 0 bytes
-rw-r--r--doc/src/images/brush-styles.pngbin13980 -> 0 bytes
-rw-r--r--doc/src/images/cursor-arrow.pngbin171 -> 0 bytes
-rw-r--r--doc/src/images/cursor-busy.pngbin201 -> 0 bytes
-rw-r--r--doc/src/images/cursor-closedhand.pngbin147 -> 0 bytes
-rw-r--r--doc/src/images/cursor-cross.pngbin130 -> 0 bytes
-rw-r--r--doc/src/images/cursor-forbidden.pngbin199 -> 0 bytes
-rw-r--r--doc/src/images/cursor-hand.pngbin159 -> 0 bytes
-rw-r--r--doc/src/images/cursor-hsplit.pngbin155 -> 0 bytes
-rw-r--r--doc/src/images/cursor-ibeam.pngbin124 -> 0 bytes
-rw-r--r--doc/src/images/cursor-openhand.pngbin160 -> 0 bytes
-rw-r--r--doc/src/images/cursor-sizeall.pngbin174 -> 0 bytes
-rw-r--r--doc/src/images/cursor-sizeb.pngbin161 -> 0 bytes
-rw-r--r--doc/src/images/cursor-sizef.pngbin161 -> 0 bytes
-rw-r--r--doc/src/images/cursor-sizeh.pngbin145 -> 0 bytes
-rw-r--r--doc/src/images/cursor-sizev.pngbin141 -> 0 bytes
-rw-r--r--doc/src/images/cursor-uparrow.pngbin132 -> 0 bytes
-rw-r--r--doc/src/images/cursor-vsplit.pngbin161 -> 0 bytes
-rw-r--r--doc/src/images/cursor-wait.pngbin172 -> 0 bytes
-rw-r--r--doc/src/images/cursor-whatsthis.pngbin191 -> 0 bytes
-rw-r--r--doc/src/images/javaiterators1.pngbin1062 -> 0 bytes
-rw-r--r--doc/src/images/javaiterators2.pngbin2011 -> 0 bytes
-rw-r--r--doc/src/images/modelindex-no-parent.pngbin7407 -> 0 bytes
-rw-r--r--doc/src/images/modelview-begin-append-columns.pngbin12798 -> 0 bytes
-rw-r--r--doc/src/images/modelview-begin-append-rows.pngbin8967 -> 0 bytes
-rw-r--r--doc/src/images/modelview-begin-insert-columns.pngbin14476 -> 0 bytes
-rw-r--r--doc/src/images/modelview-begin-insert-rows.pngbin12565 -> 0 bytes
-rw-r--r--doc/src/images/modelview-begin-remove-columns.pngbin14518 -> 0 bytes
-rw-r--r--doc/src/images/modelview-begin-remove-rows.pngbin10896 -> 0 bytes
-rw-r--r--doc/src/images/modelview-move-rows-1.pngbin19709 -> 0 bytes
-rw-r--r--doc/src/images/modelview-move-rows-2.pngbin19385 -> 0 bytes
-rw-r--r--doc/src/images/modelview-move-rows-3.pngbin9281 -> 0 bytes
-rw-r--r--doc/src/images/modelview-move-rows-4.pngbin9381 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inback.pngbin2808 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inbounce.pngbin3154 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-incirc.pngbin2605 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-incubic.pngbin2722 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inelastic.pngbin3304 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inexpo.pngbin2675 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutback.pngbin3241 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutbounce.pngbin3386 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutcirc.pngbin2843 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutcubic.pngbin2931 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutelastic.pngbin3461 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutexpo.pngbin3004 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutquad.pngbin2893 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutquart.pngbin2925 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutquint.pngbin2823 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inoutsine.pngbin2891 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inquad.pngbin2733 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inquart.pngbin2727 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-inquint.pngbin2630 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-insine.pngbin2567 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-linear.pngbin2318 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outback.pngbin2852 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outbounce.pngbin3360 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outcirc.pngbin2796 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outcubic.pngbin2792 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outelastic.pngbin3423 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outexpo.pngbin2803 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinback.pngbin3026 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinbounce.pngbin3629 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outincirc.pngbin2822 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outincubic.pngbin2872 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinelastic.pngbin3941 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinexpo.pngbin2923 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinquad.pngbin2858 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinquart.pngbin2830 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinquint.pngbin2724 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outinsine.pngbin2817 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outquad.pngbin2760 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outquart.pngbin2764 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outquint.pngbin2687 -> 0 bytes
-rw-r--r--doc/src/images/qeasingcurve-outsine.pngbin2773 -> 0 bytes
-rw-r--r--doc/src/images/qimage-scaling.pngbin34785 -> 0 bytes
-rw-r--r--doc/src/images/qline-coordinates.pngbin9459 -> 0 bytes
-rw-r--r--doc/src/images/qline-point.pngbin8484 -> 0 bytes
-rw-r--r--doc/src/images/qlinef-angle-identicaldirection.pngbin6004 -> 0 bytes
-rw-r--r--doc/src/images/qlinef-angle-oppositedirection.pngbin5834 -> 0 bytes
-rw-r--r--doc/src/images/qlinef-bounded.pngbin4183 -> 0 bytes
-rw-r--r--doc/src/images/qlinef-normalvector.pngbin9432 -> 0 bytes
-rw-r--r--doc/src/images/qlinef-unbounded.pngbin3992 -> 0 bytes
-rw-r--r--doc/src/images/qpen-bevel.pngbin11527 -> 0 bytes
-rw-r--r--doc/src/images/qpen-custom.pngbin6254 -> 0 bytes
-rw-r--r--doc/src/images/qpen-dash.pngbin8221 -> 0 bytes
-rw-r--r--doc/src/images/qpen-dashdot.pngbin5961 -> 0 bytes
-rw-r--r--doc/src/images/qpen-dashdotdot.pngbin5999 -> 0 bytes
-rw-r--r--doc/src/images/qpen-dot.pngbin5386 -> 0 bytes
-rw-r--r--doc/src/images/qpen-flat.pngbin1885 -> 0 bytes
-rw-r--r--doc/src/images/qpen-miter.pngbin11734 -> 0 bytes
-rw-r--r--doc/src/images/qpen-roundcap.pngbin1920 -> 0 bytes
-rw-r--r--doc/src/images/qpen-roundjoin.pngbin11878 -> 0 bytes
-rw-r--r--doc/src/images/qpen-solid.pngbin7416 -> 0 bytes
-rw-r--r--doc/src/images/qpen-square.pngbin2651 -> 0 bytes
-rw-r--r--doc/src/images/qrect-coordinates.pngbin22218 -> 0 bytes
-rw-r--r--doc/src/images/qrect-diagram-one.pngbin9616 -> 0 bytes
-rw-r--r--doc/src/images/qrect-diagram-three.pngbin9458 -> 0 bytes
-rw-r--r--doc/src/images/qrect-diagram-two.pngbin9378 -> 0 bytes
-rw-r--r--doc/src/images/qrect-diagram-zero.pngbin5198 -> 0 bytes
-rw-r--r--doc/src/images/qrect-intersect.pngbin8742 -> 0 bytes
-rw-r--r--doc/src/images/qrect-unite.pngbin4626 -> 0 bytes
-rw-r--r--doc/src/images/qrectf-coordinates.pngbin21749 -> 0 bytes
-rw-r--r--doc/src/images/qrectf-diagram-one.pngbin9594 -> 0 bytes
-rw-r--r--doc/src/images/qrectf-diagram-three.pngbin9392 -> 0 bytes
-rw-r--r--doc/src/images/qrectf-diagram-two.pngbin9387 -> 0 bytes
-rw-r--r--doc/src/images/qsortfilterproxymodel-sorting.pngbin11005 -> 0 bytes
-rw-r--r--doc/src/images/qurl-authority.pngbin5099 -> 0 bytes
-rw-r--r--doc/src/images/qurl-authority2.pngbin2350 -> 0 bytes
-rw-r--r--doc/src/images/qurl-authority3.pngbin3552 -> 0 bytes
-rw-r--r--doc/src/images/qurl-fragment.pngbin2333 -> 0 bytes
-rw-r--r--doc/src/images/qurl-ftppath.pngbin1974 -> 0 bytes
-rw-r--r--doc/src/images/qurl-mailtopath.pngbin1679 -> 0 bytes
-rw-r--r--doc/src/images/qurl-querystring.pngbin2955 -> 0 bytes
-rw-r--r--doc/src/images/stliterators1.pngbin1671 -> 0 bytes
-rw-r--r--doc/src/images/thread_clock.pngbin5964 -> 0 bytes
-rw-r--r--doc/src/images/threadsandobjects.pngbin66096 -> 0 bytes
-rw-r--r--doc/src/images/threadvisual-example.pngbin16823 -> 0 bytes
-rw-r--r--doc/src/network/files-and-resources/datastreamformat.qdoc373
-rw-r--r--doc/src/snippets/buffer/buffer.cpp124
-rw-r--r--doc/src/snippets/code/doc_src_containers.cpp275
-rw-r--r--doc/src/snippets/code/doc_src_groups.cpp66
-rw-r--r--doc/src/snippets/code/doc_src_objecttrees.cpp60
-rw-r--r--doc/src/snippets/code/doc_src_properties.cpp132
-rw-r--r--doc/src/snippets/code/doc_src_qalgorithms.cpp354
-rw-r--r--doc/src/snippets/code/doc_src_qcache.cpp57
-rw-r--r--doc/src/snippets/code/doc_src_qiterator.cpp420
-rw-r--r--doc/src/snippets/code/doc_src_qnamespace.cpp59
-rw-r--r--doc/src/snippets/code/doc_src_qnamespace.qdoc43
-rw-r--r--doc/src/snippets/code/doc_src_qpair.cpp55
-rw-r--r--doc/src/snippets/code/doc_src_qplugin.cpp64
-rw-r--r--doc/src/snippets/code/doc_src_qplugin.pro44
-rw-r--r--doc/src/snippets/code/doc_src_qset.cpp166
-rw-r--r--doc/src/snippets/code/doc_src_qtcore.cpp43
-rw-r--r--doc/src/snippets/code/doc_src_qvarlengtharray.cpp78
-rw-r--r--doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp75
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp53
-rw-r--r--doc/src/snippets/code/src_corelib_global_qglobal.cpp585
-rw-r--r--doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp120
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdatastream.cpp121
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdir.cpp175
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdiriterator.cpp52
-rw-r--r--doc/src/snippets/code/src_corelib_io_qfile.cpp75
-rw-r--r--doc/src/snippets/code/src_corelib_io_qfileinfo.cpp146
-rw-r--r--doc/src/snippets/code/src_corelib_io_qiodevice.cpp99
-rw-r--r--doc/src/snippets/code/src_corelib_io_qprocess.cpp134
-rw-r--r--doc/src/snippets/code/src_corelib_io_qsettings.cpp316
-rw-r--r--doc/src/snippets/code/src_corelib_io_qtemporarydir.cpp53
-rw-r--r--doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp53
-rw-r--r--doc/src/snippets/code/src_corelib_io_qtextstream.cpp129
-rw-r--r--doc/src/snippets/code/src_corelib_io_qurl.cpp87
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp43
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp99
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp126
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp136
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp114
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp108
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qobject.cpp493
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp61
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qtimer.cpp52
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qvariant.cpp136
-rw-r--r--doc/src/snippets/code/src_corelib_mimetype_qmimedatabase.cpp47
-rw-r--r--doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp84
-rw-r--r--doc/src/snippets/code/src_corelib_plugin_quuid.cpp44
-rw-r--r--doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp55
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qatomic.cpp98
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qmutex.cpp193
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp61
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp109
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp73
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qthread.cpp56
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp89
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qbitarray.cpp176
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qbytearray.cpp421
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qdatetime.cpp146
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp44
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qhash.cpp299
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp204
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlistdata.cpp267
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlocale.cpp95
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qmap.cpp313
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qpoint.cpp149
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qrect.cpp50
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qregexp.cpp224
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qregularexpression.cpp289
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp138
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qsize.cpp136
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qstring.cpp94
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qtimeline.cpp55
-rw-r--r--doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp67
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp148
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qidentityproxymodel.cpp64
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp50
-rw-r--r--doc/src/snippets/file/file.cpp123
-rw-r--r--doc/src/snippets/fileinfo/main.cpp92
-rw-r--r--doc/src/snippets/ntfsp.cpp50
-rw-r--r--doc/src/snippets/process/process.cpp76
-rw-r--r--doc/src/snippets/qdebug/qdebugsnippet.cpp73
-rw-r--r--doc/src/snippets/qdir-listfiles/main.cpp62
-rw-r--r--doc/src/snippets/qdir-namefilters/main.cpp65
-rw-r--r--doc/src/snippets/qelapsedtimer/main.cpp111
-rw-r--r--doc/src/snippets/qlogging/qloggingsnippet.cpp54
-rw-r--r--doc/src/snippets/qmetaobject-invokable/main.cpp52
-rw-r--r--doc/src/snippets/qmetaobject-invokable/qmetaobject-invokable.pro3
-rw-r--r--doc/src/snippets/qmetaobject-invokable/window.cpp57
-rw-r--r--doc/src/snippets/qmetaobject-invokable/window.h58
-rw-r--r--doc/src/snippets/qprocess-environment/main.cpp73
-rw-r--r--doc/src/snippets/qprocess/qprocess-simpleexecution.cpp66
-rw-r--r--doc/src/snippets/qsignalmapper/buttonwidget.cpp66
-rw-r--r--doc/src/snippets/qsignalmapper/buttonwidget.h67
-rw-r--r--doc/src/snippets/qsortfilterproxymodel-details/main.cpp99
-rw-r--r--doc/src/snippets/qstack/main.cpp55
-rw-r--r--doc/src/snippets/qstring/main.cpp997
-rw-r--r--doc/src/snippets/qstring/stringbuilder.cpp62
-rw-r--r--doc/src/snippets/qstringlist/main.cpp170
-rw-r--r--doc/src/snippets/qstringlistmodel/main.cpp66
-rw-r--r--doc/src/snippets/qtcast/qtcast.cpp79
-rw-r--r--doc/src/snippets/qxmlstreamwriter/main.cpp76
-rw-r--r--doc/src/snippets/settings/settings.cpp184
-rw-r--r--doc/src/snippets/sharedemployee/employee.h94
-rw-r--r--doc/src/snippets/sharedemployee/main.cpp50
-rw-r--r--doc/src/snippets/signalmapper/filereader.cpp107
-rw-r--r--doc/src/snippets/signalsandslots/lcdnumber.h88
-rw-r--r--doc/src/snippets/signalsandslots/signalsandslots.cpp84
-rw-r--r--doc/src/snippets/signalsandslots/signalsandslots.h89
-rw-r--r--doc/src/snippets/streaming/main.cpp108
-rw-r--r--doc/src/snippets/streaming/streaming.pro2
-rw-r--r--doc/src/snippets/threads/threads.cpp117
-rw-r--r--doc/src/snippets/threads/threads.h51
-rw-r--r--doc/src/snippets/timers/timers.cpp78
240 files changed, 0 insertions, 17678 deletions
diff --git a/doc/src/corelib/containers.qdoc b/doc/src/corelib/containers.qdoc
deleted file mode 100644
index b63cc9df28..0000000000
--- a/doc/src/corelib/containers.qdoc
+++ /dev/null
@@ -1,803 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \group tools
- \title Non-GUI Classes
- \ingroup groups
-
- \brief Collection classes such as list, queue, stack and string, along
- with other classes that can be used without needing QApplication.
-
- The non-GUI classes are general-purpose collection and string classes
- that may be used independently of the GUI classes.
-
- In particular, these classes do not depend on QApplication at all,
- and so can be used in non-GUI programs.
-
-*/
-
-/*!
- \page containers.html
- \title Container Classes
- \ingroup technology-apis
- \ingroup groups
- \ingroup qt-basic-concepts
- \keyword container class
- \keyword container classes
-
- \brief Qt's template-based container classes.
-
- \tableofcontents
-
- \section1 Introduction
-
- The Qt library provides a set of general purpose template-based
- container classes. These classes can be used to store items of a
- specified type. For example, if you need a resizable array of
- \l{QString}s, use QVector<QString>.
-
- These container classes are designed to be lighter, safer, and
- easier to use than the STL containers. If you are unfamiliar with
- the STL, or prefer to do things the "Qt way", you can use these
- classes instead of the STL classes.
-
- The container classes are \l{implicitly shared}, they are
- \l{reentrant}, and they are optimized for speed, low memory
- consumption, and minimal inline code expansion, resulting in
- smaller executables. In addition, they are \l{thread-safe}
- in situations where they are used as read-only containers
- by all threads used to access them.
-
- For traversing the items stored in a container, you can use one
- of two types of iterators: \l{Java-style iterators} and
- \l{STL-style iterators}. The Java-style iterators are easier to
- use and provide high-level functionality, whereas the STL-style
- iterators are slightly more efficient and can be used together
- with Qt's and STL's \l{generic algorithms}.
-
- Qt also offers a \l{foreach} keyword that make it very
- easy to iterate over all the items stored in a container.
-
- \section1 The Container Classes
-
- Qt provides the following sequential containers: QList,
- QLinkedList, QVector, QStack, and QQueue. For most
- applications, QList is the best type to use. Although it is
- implemented as an array-list, it provides very fast prepends and
- appends. If you really need a linked-list, use QLinkedList; if you
- want your items to occupy consecutive memory locations, use QVector.
- QStack and QQueue are convenience classes that provide LIFO and
- FIFO semantics.
-
- Qt also provides these associative containers: QMap,
- QMultiMap, QHash, QMultiHash, and QSet. The "Multi" containers
- conveniently support multiple values associated with a single
- key. The "Hash" containers provide faster lookup by using a hash
- function instead of a binary search on a sorted set.
-
- As special cases, the QCache and QContiguousCache classes provide
- efficient hash-lookup of objects in a limited cache storage.
-
- \table
- \header \li Class \li Summary
-
- \row \li \l{QList}<T>
- \li This is by far the most commonly used container class. It
- stores a list of values of a given type (T) that can be accessed
- by index. Internally, the QList is implemented using an array,
- ensuring that index-based access is very fast.
-
- Items can be added at either end of the list using
- QList::append() and QList::prepend(), or they can be inserted in
- the middle using QList::insert(). More than any other container
- class, QList is highly optimized to expand to as little code as
- possible in the executable. QStringList inherits from
- QList<QString>.
-
- \row \li \l{QLinkedList}<T>
- \li This is similar to QList, except that it uses
- iterators rather than integer indexes to access items. It also
- provides better performance than QList when inserting in the
- middle of a huge list, and it has nicer iterator semantics.
- (Iterators pointing to an item in a QLinkedList remain valid as
- long as the item exists, whereas iterators to a QList can become
- invalid after any insertion or removal.)
-
- \row \li \l{QVector}<T>
- \li This stores an array of values of a given type at adjacent
- positions in memory. Inserting at the front or in the middle of
- a vector can be quite slow, because it can lead to large numbers
- of items having to be moved by one position in memory.
-
- \row \li \l{QStack}<T>
- \li This is a convenience subclass of QVector that provides
- "last in, first out" (LIFO) semantics. It adds the following
- functions to those already present in QVector:
- \l{QStack::push()}{push()}, \l{QStack::pop()}{pop()},
- and \l{QStack::top()}{top()}.
-
- \row \li \l{QQueue}<T>
- \li This is a convenience subclass of QList that provides
- "first in, first out" (FIFO) semantics. It adds the following
- functions to those already present in QList:
- \l{QQueue::enqueue()}{enqueue()},
- \l{QQueue::dequeue()}{dequeue()}, and \l{QQueue::head()}{head()}.
-
- \row \li \l{QSet}<T>
- \li This provides a single-valued mathematical set with fast
- lookups.
-
- \row \li \l{QMap}<Key, T>
- \li This provides a dictionary (associative array) that maps keys
- of type Key to values of type T. Normally each key is associated
- with a single value. QMap stores its data in Key order; if order
- doesn't matter QHash is a faster alternative.
-
- \row \li \l{QMultiMap}<Key, T>
- \li This is a convenience subclass of QMap that provides a nice
- interface for multi-valued maps, i.e. maps where one key can be
- associated with multiple values.
-
- \row \li \l{QHash}<Key, T>
- \li This has almost the same API as QMap, but provides
- significantly faster lookups. QHash stores its data in an
- arbitrary order.
-
- \row \li \l{QMultiHash}<Key, T>
- \li This is a convenience subclass of QHash that
- provides a nice interface for multi-valued hashes.
-
- \endtable
-
- Containers can be nested. For example, it is perfectly possible
- to use a QMap<QString, QList<int> >, where the key type is
- QString and the value type QList<int>. The only pitfall is that
- you must insert a space between the closing angle brackets (>);
- otherwise the C++ compiler will misinterpret the two >'s as a
- right-shift operator (>>) and report a syntax error.
-
- The containers are defined in individual header files with the
- same name as the container (e.g., \c <QLinkedList>). For
- convenience, the containers are forward declared in \c
- <QtContainerFwd>.
-
- \keyword assignable data type
- \keyword assignable data types
-
- The values stored in the various containers can be of any
- \e{assignable data type}. To qualify, a type must provide a
- default constructor, a copy constructor, and an assignment
- operator. This covers most data types you are likely to want to
- store in a container, including basic types such as \c int and \c
- double, pointer types, and Qt data types such as QString, QDate,
- and QTime, but it doesn't cover QObject or any QObject subclass
- (QWidget, QDialog, QTimer, etc.). If you attempt to instantiate a
- QList<QWidget>, the compiler will complain that QWidget's copy
- constructor and assignment operators are disabled. If you want to
- store these kinds of objects in a container, store them as
- pointers, for example as QList<QWidget *>.
-
- Here's an example custom data type that meets the requirement of
- an assignable data type:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 0
-
- If we don't provide a copy constructor or an assignment operator,
- C++ provides a default implementation that performs a
- member-by-member copy. In the example above, that would have been
- sufficient. Also, if you don't provide any constructors, C++
- provides a default constructor that initializes its member using
- default constructors. Although it doesn't provide any
- explicit constructors or assignment operator, the following data
- type can be stored in a container:
-
- \snippet doc/src/snippets/streaming/main.cpp 0
-
- Some containers have additional requirements for the data types
- they can store. For example, the Key type of a QMap<Key, T> must
- provide \c operator<(). Such special requirements are documented
- in a class's detailed description. In some cases, specific
- functions have special requirements; these are described on a
- per-function basis. The compiler will always emit an error if a
- requirement isn't met.
-
- Qt's containers provide operator<<() and operator>>() so that they
- can easily be read and written using a QDataStream. This means
- that the data types stored in the container must also support
- operator<<() and operator>>(). Providing such support is
- straightforward; here's how we could do it for the Movie struct
- above:
-
- \snippet doc/src/snippets/streaming/main.cpp 1
- \codeline
- \snippet doc/src/snippets/streaming/main.cpp 2
-
- \keyword default-constructed values
-
- The documentation of certain container class functions refer to
- \e{default-constructed values}; for example, QVector
- automatically initializes its items with default-constructed
- values, and QMap::value() returns a default-constructed value if
- the specified key isn't in the map. For most value types, this
- simply means that a value is created using the default
- constructor (e.g. an empty string for QString). But for primitive
- types like \c{int} and \c{double}, as well as for pointer types,
- the C++ language doesn't specify any initialization; in those
- cases, Qt's containers automatically initialize the value to 0.
-
- \section1 The Iterator Classes
-
- Iterators provide a uniform means to access items in a container.
- Qt's container classes provide two types of iterators: Java-style
- iterators and STL-style iterators. Iterators of both types are
- invalidated when the data in the container is modified or detached
- from \l{Implicit Sharing}{implicitly shared copies} due to a call
- to a non-const member function.
-
- \section2 Java-Style Iterators
-
- The Java-style iterators are new in Qt 4 and are the standard
- ones used in Qt applications. They are more convenient to use than
- the STL-style iterators, at the price of being slightly less
- efficient. Their API is modelled on Java's iterator classes.
-
- For each container class, there are two Java-style iterator data
- types: one that provides read-only access and one that provides
- read-write access.
-
- \table
- \header \li Containers \li Read-only iterator
- \li Read-write iterator
- \row \li QList<T>, QQueue<T> \li QListIterator<T>
- \li QMutableListIterator<T>
- \row \li QLinkedList<T> \li QLinkedListIterator<T>
- \li QMutableLinkedListIterator<T>
- \row \li QVector<T>, QStack<T> \li QVectorIterator<T>
- \li QMutableVectorIterator<T>
- \row \li QSet<T> \li QSetIterator<T>
- \li QMutableSetIterator<T>
- \row \li QMap<Key, T>, QMultiMap<Key, T> \li QMapIterator<Key, T>
- \li QMutableMapIterator<Key, T>
- \row \li QHash<Key, T>, QMultiHash<Key, T> \li QHashIterator<Key, T>
- \li QMutableHashIterator<Key, T>
- \endtable
-
- In this discussion, we will concentrate on QList and QMap. The
- iterator types for QLinkedList, QVector, and QSet have exactly
- the same interface as QList's iterators; similarly, the iterator
- types for QHash have the same interface as QMap's iterators.
-
- Unlike STL-style iterators (covered \l{STL-style
- iterators}{below}), Java-style iterators point \e between items
- rather than directly \e at items. For this reason, they are
- either pointing to the very beginning of the container (before
- the first item), at the very end of the container (after the last
- item), or between two items. The diagram below shows the valid
- iterator positions as red arrows for a list containing four
- items:
-
- \img javaiterators1.png
-
- Here's a typical loop for iterating through all the elements of a
- QList<QString> in order and printing them to the console:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 1
-
- It works as follows: The QList to iterate over is passed to the
- QListIterator constructor. At that point, the iterator is located
- just in front of the first item in the list (before item "A").
- Then we call \l{QListIterator::hasNext()}{hasNext()} to
- check whether there is an item after the iterator. If there is, we
- call \l{QListIterator::next()}{next()} to jump over that
- item. The next() function returns the item that it jumps over. For
- a QList<QString>, that item is of type QString.
-
- Here's how to iterate backward in a QList:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 2
-
- The code is symmetric with iterating forward, except that we
- start by calling \l{QListIterator::toBack()}{toBack()}
- to move the iterator after the last item in the list.
-
- The diagram below illustrates the effect of calling
- \l{QListIterator::next()}{next()} and
- \l{QListIterator::previous()}{previous()} on an iterator:
-
- \img javaiterators2.png
-
- The following table summarizes the QListIterator API:
-
- \table
- \header \li Function \li Behavior
- \row \li \l{QListIterator::toFront()}{toFront()}
- \li Moves the iterator to the front of the list (before the first item)
- \row \li \l{QListIterator::toBack()}{toBack()}
- \li Moves the iterator to the back of the list (after the last item)
- \row \li \l{QListIterator::hasNext()}{hasNext()}
- \li Returns true if the iterator isn't at the back of the list
- \row \li \l{QListIterator::next()}{next()}
- \li Returns the next item and advances the iterator by one position
- \row \li \l{QListIterator::peekNext()}{peekNext()}
- \li Returns the next item without moving the iterator
- \row \li \l{QListIterator::hasPrevious()}{hasPrevious()}
- \li Returns true if the iterator isn't at the front of the list
- \row \li \l{QListIterator::previous()}{previous()}
- \li Returns the previous item and moves the iterator back by one position
- \row \li \l{QListIterator::peekPrevious()}{peekPrevious()}
- \li Returns the previous item without moving the iterator
- \endtable
-
- QListIterator provides no functions to insert or remove items
- from the list as we iterate. To accomplish this, you must use
- QMutableListIterator. Here's an example where we remove all
- odd numbers from a QList<int> using QMutableListIterator:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 3
-
- The next() call in the loop is made every time. It jumps over the
- next item in the list. The
- \l{QMutableListIterator::remove()}{remove()} function removes the
- last item that we jumped over from the list. The call to
- \l{QMutableListIterator::remove()}{remove()} does not invalidate
- the iterator, so it is safe to continue using it. This works just
- as well when iterating backward:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 4
-
- If we just want to modify the value of an existing item, we can
- use \l{QMutableListIterator::setValue()}{setValue()}. In the code
- below, we replace any value larger than 128 with 128:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 5
-
- Just like \l{QMutableListIterator::remove()}{remove()},
- \l{QMutableListIterator::setValue()}{setValue()} operates on the
- last item that we jumped over. If we iterate forward, this is the
- item just before the iterator; if we iterate backward, this is
- the item just after the iterator.
-
- The \l{QMutableListIterator::next()}{next()} function returns a
- non-const reference to the item in the list. For simple
- operations, we don't even need
- \l{QMutableListIterator::setValue()}{setValue()}:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 6
-
- As mentioned above, QLinkedList's, QVector's, and QSet's iterator
- classes have exactly the same API as QList's. We will now turn to
- QMapIterator, which is somewhat different because it iterates on
- (key, value) pairs.
-
- Like QListIterator, QMapIterator provides
- \l{QMapIterator::toFront()}{toFront()},
- \l{QMapIterator::toBack()}{toBack()},
- \l{QMapIterator::hasNext()}{hasNext()},
- \l{QMapIterator::next()}{next()},
- \l{QMapIterator::peekNext()}{peekNext()},
- \l{QMapIterator::hasPrevious()}{hasPrevious()},
- \l{QMapIterator::previous()}{previous()}, and
- \l{QMapIterator::peekPrevious()}{peekPrevious()}. The key and
- value components are extracted by calling key() and value() on
- the object returned by next(), peekNext(), previous(), or
- peekPrevious().
-
- The following example removes all (capital, country) pairs where
- the capital's name ends with "City":
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 7
-
- QMapIterator also provides a key() and a value() function that
- operate directly on the iterator and that return the key and
- value of the last item that the iterator jumped above. For
- example, the following code copies the contents of a QMap into a
- QHash:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 8
-
- If we want to iterate through all the items with the same
- value, we can use \l{QMapIterator::findNext()}{findNext()}
- or \l{QMapIterator::findPrevious()}{findPrevious()}.
- Here's an example where we remove all the items with a particular
- value:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 9
-
- \section2 STL-Style Iterators
-
- STL-style iterators have been available since the release of Qt
- 2.0. They are compatible with Qt's and STL's \l{generic
- algorithms} and are optimized for speed.
-
- For each container class, there are two STL-style iterator types:
- one that provides read-only access and one that provides
- read-write access. Read-only iterators should be used wherever
- possible because they are faster than read-write iterators.
-
- \table
- \header \li Containers \li Read-only iterator
- \li Read-write iterator
- \row \li QList<T>, QQueue<T> \li QList<T>::const_iterator
- \li QList<T>::iterator
- \row \li QLinkedList<T> \li QLinkedList<T>::const_iterator
- \li QLinkedList<T>::iterator
- \row \li QVector<T>, QStack<T> \li QVector<T>::const_iterator
- \li QVector<T>::iterator
- \row \li QSet<T> \li QSet<T>::const_iterator
- \li QSet<T>::iterator
- \row \li QMap<Key, T>, QMultiMap<Key, T> \li QMap<Key, T>::const_iterator
- \li QMap<Key, T>::iterator
- \row \li QHash<Key, T>, QMultiHash<Key, T> \li QHash<Key, T>::const_iterator
- \li QHash<Key, T>::iterator
- \endtable
-
- The API of the STL iterators is modelled on pointers in an array.
- For example, the \c ++ operator advances the iterator to the next
- item, and the \c * operator returns the item that the iterator
- points to. In fact, for QVector and QStack, which store their
- items at adjacent memory positions, the
- \l{QVector::iterator}{iterator} type is just a typedef for \c{T *},
- and the \l{QVector::iterator}{const_iterator} type is
- just a typedef for \c{const T *}.
-
- In this discussion, we will concentrate on QList and QMap. The
- iterator types for QLinkedList, QVector, and QSet have exactly
- the same interface as QList's iterators; similarly, the iterator
- types for QHash have the same interface as QMap's iterators.
-
- Here's a typical loop for iterating through all the elements of a
- QList<QString> in order and converting them to lowercase:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 10
-
- Unlike \l{Java-style iterators}, STL-style iterators point
- directly at items. The begin() function of a container returns an
- iterator that points to the first item in the container. The
- end() function of a container returns an iterator to the
- imaginary item one position past the last item in the container.
- end() marks an invalid position; it must never be dereferenced.
- It is typically used in a loop's break condition. If the list is
- empty, begin() equals end(), so we never execute the loop.
-
- The diagram below shows the valid iterator positions as red
- arrows for a vector containing four items:
-
- \img stliterators1.png
-
- Iterating backward with an STL-style iterator requires us to
- decrement the iterator \e before we access the item. This
- requires a \c while loop:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 11
-
- In the code snippets so far, we used the unary \c * operator to
- retrieve the item (of type QString) stored at a certain iterator
- position, and we then called QString::toLower() on it. Most C++
- compilers also allow us to write \c{i->toLower()}, but some
- don't.
-
- For read-only access, you can use const_iterator, constBegin(),
- and constEnd(). For example:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 12
-
- The following table summarizes the STL-style iterators' API:
-
- \table
- \header \li Expression \li Behavior
- \row \li \c{*i} \li Returns the current item
- \row \li \c{++i} \li Advances the iterator to the next item
- \row \li \c{i += n} \li Advances the iterator by \c n items
- \row \li \c{--i} \li Moves the iterator back by one item
- \row \li \c{i -= n} \li Moves the iterator back by \c n items
- \row \li \c{i - j} \li Returns the number of items between iterators \c i and \c j
- \endtable
-
- The \c{++} and \c{--} operators are available both as prefix
- (\c{++i}, \c{--i}) and postfix (\c{i++}, \c{i--}) operators. The
- prefix versions modify the iterators and return a reference to
- the modified iterator; the postfix versions take a copy of the
- iterator before they modify it, and return that copy. In
- expressions where the return value is ignored, we recommend that
- you use the prefix operators (\c{++i}, \c{--i}), as these are
- slightly faster.
-
- For non-const iterator types, the return value of the unary \c{*}
- operator can be used on the left side of the assignment operator.
-
- For QMap and QHash, the \c{*} operator returns the value
- component of an item. If you want to retrieve the key, call key()
- on the iterator. For symmetry, the iterator types also provide a
- value() function to retrieve the value. For example, here's how
- we would print all items in a QMap to the console:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 13
-
- Thanks to \l{implicit sharing}, it is very inexpensive for a
- function to return a container per value. The Qt API contains
- dozens of functions that return a QList or QStringList per value
- (e.g., QSplitter::sizes()). If you want to iterate over these
- using an STL iterator, you should always take a copy of the
- container and iterate over the copy. For example:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 14
-
- This problem doesn't occur with functions that return a const or
- non-const reference to a container.
-
- \l{Implicit sharing} has another consequence on STL-style
- iterators: You must not take a copy of a container while
- non-const iterators are active on that container. Java-style
- iterators don't suffer from that limitation.
-
- \keyword foreach
- \section1 The foreach Keyword
-
- If you just want to iterate over all the items in a container
- in order, you can use Qt's \c foreach keyword. The keyword is a
- Qt-specific addition to the C++ language, and is implemented
- using the preprocessor.
-
- Its syntax is: \c foreach (\e variable, \e container) \e
- statement. For example, here's how to use \c foreach to iterate
- over a QLinkedList<QString>:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 15
-
- The \c foreach code is significantly shorter than the equivalent
- code that uses iterators:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 16
-
- Unless the data type contains a comma (e.g., \c{QPair<int,
- int>}), the variable used for iteration can be defined within the
- \c foreach statement:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 17
-
- And like any other C++ loop construct, you can use braces around
- the body of a \c foreach loop, and you can use \c break to leave
- the loop:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 18
-
- With QMap and QHash, \c foreach accesses the value component of
- the (key, value) pairs. If you want to iterate over both the keys
- and the values, you can use iterators (which are fastest), or you
- can write code like this:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 19
-
- For a multi-valued map:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 20
-
- Qt automatically takes a copy of the container when it enters a
- \c foreach loop. If you modify the container as you are
- iterating, that won't affect the loop. (If you do not modify the
- container, the copy still takes place, but thanks to \l{implicit
- sharing} copying a container is very fast.)
-
- Since foreach creates a copy of the container, using a non-const
- reference for the variable does not allow you to modify the original
- container. It only affects the copy, which is probably not what you
- want.
-
- In addition to \c foreach, Qt also provides a \c forever
- pseudo-keyword for infinite loops:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 21
-
- If you're worried about namespace pollution, you can disable
- these macros by adding the following line to your \c .pro file:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 22
-
- \section1 Other Container-Like Classes
-
- Qt includes three template classes that resemble containers in
- some respects. These classes don't provide iterators and cannot
- be used with the \c foreach keyword.
-
- \list
- \li QVarLengthArray<T, Prealloc> provides a low-level
- variable-length array. It can be used instead of QVector in
- places where speed is particularly important.
-
- \li QCache<Key, T> provides a cache to store objects of a certain
- type T associated with keys of type Key.
-
- \li QContiguousCache<T> provides an efficient way of caching data
- that is typically accessed in a contiguous way.
-
- \li QPair<T1, T2> stores a pair of elements.
- \endlist
-
- Additional non-template types that compete with Qt's template
- containers are QBitArray, QByteArray, QString, and QStringList.
-
- \section1 Algorithmic Complexity
-
- Algorithmic complexity is concerned about how fast (or slow) each
- function is as the number of items in the container grow. For
- example, inserting an item in the middle of a QLinkedList is an
- extremely fast operation, irrespective of the number of items
- stored in the QLinkedList. On the other hand, inserting an item
- in the middle of a QVector is potentially very expensive if the
- QVector contains many items, since half of the items must be
- moved one position in memory.
-
- To describe algorithmic complexity, we use the following
- terminology, based on the "big Oh" notation:
-
- \keyword constant time
- \keyword logarithmic time
- \keyword linear time
- \keyword linear-logarithmic time
- \keyword quadratic time
-
- \list
- \li \b{Constant time:} O(1). A function is said to run in constant
- time if it requires the same amount of time no matter how many
- items are present in the container. One example is
- QLinkedList::insert().
-
- \li \b{Logarithmic time:} O(log \e n). A function that runs in
- logarithmic time is a function whose running time is
- proportional to the logarithm of the number of items in the
- container. One example is qBinaryFind().
-
- \li \b{Linear time:} O(\e n). A function that runs in linear time
- will execute in a time directly proportional to the number of
- items stored in the container. One example is
- QVector::insert().
-
- \li \b{Linear-logarithmic time:} O(\e{n} log \e n). A function
- that runs in linear-logarithmic time is asymptotically slower
- than a linear-time function, but faster than a quadratic-time
- function.
-
- \li \b{Quadratic time:} O(\e{n}\unicode{178}). A quadratic-time function
- executes in a time that is proportional to the square of the
- number of items stored in the container.
- \endlist
-
- The following table summarizes the algorithmic complexity of Qt's
- sequential container classes:
-
- \table
- \header \li \li Index lookup \li Insertion \li Prepending \li Appending
- \row \li QLinkedList<T> \li O(\e n) \li O(1) \li O(1) \li O(1)
- \row \li QList<T> \li O(1) \li O(n) \li Amort. O(1) \li Amort. O(1)
- \row \li QVector<T> \li O(1) \li O(n) \li O(n) \li Amort. O(1)
- \endtable
-
- In the table, "Amort." stands for "amortized behavior". For
- example, "Amort. O(1)" means that if you call the function
- only once, you might get O(\e n) behavior, but if you call it
- multiple times (e.g., \e n times), the average behavior will be
- O(1).
-
- The following table summarizes the algorithmic complexity of Qt's
- associative containers and sets:
-
- \table
- \header \li{1,2} \li{2,1} Key lookup \li{2,1} Insertion
- \header \li Average \li Worst case \li Average \li Worst case
- \row \li QMap<Key, T> \li O(log \e n) \li O(log \e n) \li O(log \e n) \li O(log \e n)
- \row \li QMultiMap<Key, T> \li O(log \e n) \li O(log \e n) \li O(log \e n) \li O(log \e n)
- \row \li QHash<Key, T> \li Amort. O(1) \li O(\e n) \li Amort. O(1) \li O(\e n)
- \row \li QSet<Key> \li Amort. O(1) \li O(\e n) \li Amort. O(1) \li O(\e n)
- \endtable
-
- With QVector, QHash, and QSet, the performance of appending items
- is amortized O(log \e n). It can be brought down to O(1) by
- calling QVector::reserve(), QHash::reserve(), or QSet::reserve()
- with the expected number of items before you insert the items.
- The next section discusses this topic in more depth.
-
- \section1 Growth Strategies
-
- QVector<T>, QString, and QByteArray store their items
- contiguously in memory; QList<T> maintains an array of pointers
- to the items it stores to provide fast index-based access (unless
- T is a pointer type or a basic type of the size of a pointer, in
- which case the value itself is stored in the array); QHash<Key,
- T> keeps a hash table whose size is proportional to the number
- of items in the hash. To avoid reallocating the data every single
- time an item is added at the end of the container, these classes
- typically allocate more memory than necessary.
-
- Consider the following code, which builds a QString from another
- QString:
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 23
-
- We build the string \c out dynamically by appending one character
- to it at a time. Let's assume that we append 15000 characters to
- the QString string. Then the following 18 reallocations (out of a
- possible 15000) occur when QString runs out of space: 4, 8, 12,
- 16, 20, 52, 116, 244, 500, 1012, 2036, 4084, 6132, 8180, 10228,
- 12276, 14324, 16372. At the end, the QString has 16372 Unicode
- characters allocated, 15000 of which are occupied.
-
- The values above may seem a bit strange, but here are the guiding
- principles:
- \list
- \li QString allocates 4 characters at a time until it reaches size 20.
- \li From 20 to 4084, it advances by doubling the size each time.
- More precisely, it advances to the next power of two, minus
- 12. (Some memory allocators perform worst when requested exact
- powers of two, because they use a few bytes per block for
- book-keeping.)
- \li From 4084 on, it advances by blocks of 2048 characters (4096
- bytes). This makes sense because modern operating systems
- don't copy the entire data when reallocating a buffer; the
- physical memory pages are simply reordered, and only the data
- on the first and last pages actually needs to be copied.
- \endlist
-
- QByteArray and QList<T> use more or less the same algorithm as
- QString.
-
- QVector<T> also uses that algorithm for data types that can be
- moved around in memory using memcpy() (including the basic C++
- types, the pointer types, and Qt's \l{shared classes}) but uses a
- different algorithm for data types that can only be moved by
- calling the copy constructor and a destructor. Since the cost of
- reallocating is higher in that case, QVector<T> reduces the
- number of reallocations by always doubling the memory when
- running out of space.
-
- QHash<Key, T> is a totally different case. QHash's internal hash
- table grows by powers of two, and each time it grows, the items
- are relocated in a new bucket, computed as qHash(\e key) %
- QHash::capacity() (the number of buckets). This remark applies to
- QSet<T> and QCache<Key, T> as well.
-
- For most applications, the default growing algorithm provided by
- Qt does the trick. If you need more control, QVector<T>,
- QHash<Key, T>, QSet<T>, QString, and QByteArray provide a trio of
- functions that allow you to check and specify how much memory to
- use to store the items:
-
- \list
- \li \l{QString::capacity()}{capacity()} returns the
- number of items for which memory is allocated (for QHash and
- QSet, the number of buckets in the hash table).
- \li \l{QString::reserve()}{reserve}(\e size) explicitly
- preallocates memory for \e size items.
- \li \l{QString::squeeze()}{squeeze()} frees any memory
- not required to store the items.
- \endlist
-
- If you know approximately how many items you will store in a
- container, you can start by calling reserve(), and when you are
- done populating the container, you can call squeeze() to release
- the extra preallocated memory.
-*/
diff --git a/doc/src/corelib/implicit-sharing.qdoc b/doc/src/corelib/implicit-sharing.qdoc
deleted file mode 100644
index e652e21253..0000000000
--- a/doc/src/corelib/implicit-sharing.qdoc
+++ /dev/null
@@ -1,138 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/* TODO: Move some of the documentation from QSharedDataPointer into this
- document. */
-
-/*!
- \group shared
- \title Implicitly Shared Classes
-*/
-
-/*!
- \page implicit-sharing.html
- \title Implicit Sharing
- \ingroup qt-basic-concepts
-
- \brief Reference counting for fast copying.
-
- \keyword implicit data sharing
- \keyword implicit sharing
- \keyword implicitly shared
- \keyword reference counting
- \keyword shared implicitly
- \keyword shared classes
-
- Many C++ classes in Qt use implicit data sharing to maximize
- resource usage and minimize copying. Implicitly shared classes are
- both safe and efficient when passed as arguments, because only a
- pointer to the data is passed around, and the data is copied only
- if and when a function writes to it, i.e., \e {copy-on-write}.
-
- \tableofcontents
-
- \section1 Overview
-
- A shared class consists of a pointer to a shared data block that
- contains a reference count and the data.
-
- When a shared object is created, it sets the reference count to 1. The
- reference count is incremented whenever a new object references the
- shared data, and decremented when the object dereferences the shared
- data. The shared data is deleted when the reference count becomes
- zero.
-
- \keyword deep copy
- \keyword shallow copy
-
- When dealing with shared objects, there are two ways of copying an
- object. We usually speak about \e deep and \e shallow copies. A deep
- copy implies duplicating an object. A shallow copy is a reference
- copy, i.e. just a pointer to a shared data block. Making a deep copy
- can be expensive in terms of memory and CPU. Making a shallow copy is
- very fast, because it only involves setting a pointer and incrementing
- the reference count.
-
- Object assignment (with operator=()) for implicitly shared objects is
- implemented using shallow copies.
-
- The benefit of sharing is that a program does not need to duplicate
- data unnecessarily, which results in lower memory use and less copying
- of data. Objects can easily be assigned, sent as function arguments,
- and returned from functions.
-
- Implicit sharing takes place behind the scenes; the programmer
- does not need to worry about it. Even in multithreaded
- applications, implicit sharing takes place, as explained in
- \l{Thread-Support in Qt Modules#Threads and Implicitly Shared Classes}
- {Threads and Implicitly Shared Classes}.
-
- When implementing your own implicitly shared classes, use the
- QSharedData and QSharedDataPointer classes.
-
- \section1 Implicit Sharing in Detail
-
- Implicit sharing automatically detaches the object from a shared
- block if the object is about to change and the reference count is
- greater than one. (This is often called \e {copy-on-write} or
- \e {value semantics}.)
-
- An implicitly shared class has total control of its internal data. In
- any member functions that modify its data, it automatically detaches
- before modifying the data.
-
- The QPen class, which uses implicit sharing, detaches from the shared
- data in all member functions that change the internal data.
-
- Code fragment:
- \snippet doc/src/snippets/code/doc_src_groups.cpp 0
-
-
- \section1 List of Classes
-
- The classes listed below automatically detach from common data if
- an object is about to be changed. The programmer will not even
- notice that the objects are shared. Thus you should treat
- separate instances of them as separate objects. They will always
- behave as separate objects but with the added benefit of sharing
- data whenever possible. For this reason, you can pass instances
- of these classes as arguments to functions by value without
- concern for the copying overhead.
-
- Example:
- \snippet doc/src/snippets/code/doc_src_groups.cpp 1
-
- In this example, \c p1 and \c p2 share data until QPainter::begin()
- is called for \c p2, because painting a pixmap will modify it.
-
- \warning Do not copy an implicitly shared container (QMap,
- QVector, etc.) while you are iterating over it using an non-const
- \l{STL-style iterator}.
-
- \keyword implicitly shared classes
- \annotatedlist shared
-*/
diff --git a/doc/src/corelib/json.qdoc b/doc/src/corelib/json.qdoc
deleted file mode 100644
index 88b5377074..0000000000
--- a/doc/src/corelib/json.qdoc
+++ /dev/null
@@ -1,118 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \group json
- \title JSON Classes
-*/
-
-/*!
- \page json.html
- \title JSON Support in Qt
- \ingroup qt-basic-concepts
- \brief An overview over the JSON support in Qt.
-
- \ingroup frameworks-technologies
-
- \keyword JSON
-
- Qt provides support for dealing with JSON data. JSON is a
- format to encode object data derived from Javascript, but
- now widely used as a data exchange format on the internet.
-
- The JSON support in Qt provides an easy to use C++ API to parse,
- modify and save JSON data. It also contains support for saving this
- data in a binary format that is directly mmap'able and very fast to
- access.
-
- More details about the JSON data format can be found at \link json.org
- and in \l{http://tools.ietf.org/html/rfc4627}{RFC-4627}.
-
- \tableofcontents
-
- \section1 Overview
-
- JSON is a format to store structured data. It has 6 basic data types:
-
- \list
- \li bool
- \li double
- \li string
- \li array
- \li object
- \li null
- \endlist
-
- Any value can be any of the above type. A boolean value is represented by the
- strings true or false in JSON. JSON doesn't explicitly specify the valid range
- for numbers, but the support in Qt is limited to the valid range and precision of
- doubles. A string can be any valid unicode string. An array is a list of values, and an
- object is a dictionary of key/value pairs. All keys in an object are strings, and
- an object cannot contain any duplicated keys.
-
- The text representation, of JSON encloses arrays in square brackets ([ ... ]) and
- objects in curly brackets ({ ... }). The different entries in arrays and objects
- are separated by commas. The separator between keys and values in an object is a
- colon (:).
-
- A simple JSON document encoding a person, its age, address and phone numbers could
- look like:
-
- \code
- {
- "FirstName": "John",
- "LastName": "Doe",
- "Age": 43,
- "Address": {
- "Street": "Downing Street 10",
- "City": "London",
- "Country": "Great Britain"
- },
- "Phone numbers": [
- "+44 1234567",
- "+44 2345678"
- ]
- }
- \endcode
-
- The above example consists of an object with 5 key/value pairs. Two of the values are strings,
- one is a number, one is another object and the last one an array.
-
- A valid JSON document is either an array or an object, so a document always starts
- with a square or curly bracket.
-
- The JSON support in Qt consists of a set of 4 classes.
-
-
- \section1 The JSON Classes
-
- The JSON support in Qt consists of these classes:
-
- \annotatedlist json
-
- All JSON classes are value based, implicitly shared classes.
-*/
diff --git a/doc/src/corelib/objectmodel/metaobjects.qdoc b/doc/src/corelib/objectmodel/metaobjects.qdoc
deleted file mode 100644
index c92f6f2f09..0000000000
--- a/doc/src/corelib/objectmodel/metaobjects.qdoc
+++ /dev/null
@@ -1,137 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \page metaobjects.html
- \title The Meta-Object System
- \brief An overview of Qt's meta-object system and introspection capabilities.
-
- \ingroup qt-basic-concepts
- \keyword meta-object
- \target Meta-Object System
-
- Qt's meta-object system provides the signals and slots mechanism for
- inter-object communication, run-time type information, and the dynamic
- property system.
-
- The meta-object system is based on three things:
-
- \list 1
- \li The \l QObject class provides a base class for objects that can
- take advantage of the meta-object system.
- \li The Q_OBJECT macro inside the private section of the class
- declaration is used to enable meta-object features, such as
- dynamic properties, signals, and slots.
- \li The \l{moc}{Meta-Object Compiler} (\c moc) supplies each
- QObject subclass with the necessary code to implement
- meta-object features.
- \endlist
-
- The \c moc tool reads a C++ source file. If it finds one or more
- class declarations that contain the Q_OBJECT macro, it
- produces another C++ source file which contains the meta-object
- code for each of those classes. This generated source file is
- either \c{#include}'d into the class's source file or, more
- usually, compiled and linked with the class's implementation.
-
- In addition to providing the \l{signals and slots} mechanism for
- communication between objects (the main reason for introducing
- the system), the meta-object code provides the following
- additional features:
-
- \list
- \li QObject::metaObject() returns the associated
- \l{QMetaObject}{meta-object} for the class.
- \li QMetaObject::className() returns the class name as a
- string at run-time, without requiring native run-time type information
- (RTTI) support through the C++ compiler.
- \li QObject::inherits() function returns whether an object is an
- instance of a class that inherits a specified class within the
- QObject inheritance tree.
- \li QObject::tr() and QObject::trUtf8() translate strings for
- \l{Internationalization with Qt}{internationalization}.
- \li QObject::setProperty() and QObject::property()
- dynamically set and get properties by name.
- \li QMetaObject::newInstance() constructs a new instance of the class.
- \endlist
-
- \target qobjectcast
- It is also possible to perform dynamic casts using qobject_cast()
- on QObject classes. The qobject_cast() function behaves similarly
- to the standard C++ \c dynamic_cast(), with the advantages
- that it doesn't require RTTI support and it works across dynamic
- library boundaries. It attempts to cast its argument to the pointer
- type specified in angle-brackets, returning a non-zero pointer if the
- object is of the correct type (determined at run-time), or 0
- if the object's type is incompatible.
-
- For example, let's assume \c MyWidget inherits from QWidget and
- is declared with the Q_OBJECT macro:
-
- \snippet doc/src/snippets/qtcast/qtcast.cpp 0
-
- The \c obj variable, of type \c{QObject *}, actually refers to a
- \c MyWidget object, so we can cast it appropriately:
-
- \snippet doc/src/snippets/qtcast/qtcast.cpp 1
-
- The cast from QObject to QWidget is successful, because the
- object is actually a \c MyWidget, which is a subclass of QWidget.
- Since we know that \c obj is a \c MyWidget, we can also cast it to
- \c{MyWidget *}:
-
- \snippet doc/src/snippets/qtcast/qtcast.cpp 2
-
- The cast to \c MyWidget is successful because qobject_cast()
- makes no distinction between built-in Qt types and custom types.
-
- \snippet doc/src/snippets/qtcast/qtcast.cpp 3
- \snippet doc/src/snippets/qtcast/qtcast.cpp 4
-
- The cast to QLabel, on the other hand, fails. The pointer is then
- set to 0. This makes it possible to handle objects of different
- types differently at run-time, based on the type:
-
- \snippet doc/src/snippets/qtcast/qtcast.cpp 5
- \snippet doc/src/snippets/qtcast/qtcast.cpp 6
-
- While it is possible to use QObject as a base class without the
- Q_OBJECT macro and without meta-object code, neither signals
- and slots nor the other features described here will be available
- if the Q_OBJECT macro is not used. From the meta-object
- system's point of view, a QObject subclass without meta code is
- equivalent to its closest ancestor with meta-object code. This
- means for example, that QMetaObject::className() will not return
- the actual name of your class, but the class name of this
- ancestor.
-
- Therefore, we strongly recommend that all subclasses of QObject
- use the Q_OBJECT macro regardless of whether or not they
- actually use signals, slots, and properties.
-
- \sa QMetaObject, {Qt's Property System}, {Signals and Slots}
-*/
diff --git a/doc/src/corelib/objectmodel/object.qdoc b/doc/src/corelib/objectmodel/object.qdoc
deleted file mode 100644
index 4e212b37dd..0000000000
--- a/doc/src/corelib/objectmodel/object.qdoc
+++ /dev/null
@@ -1,124 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \page object.html
- \title Object Model
- \ingroup qt-basic-concepts
- \brief A description of the powerful features made possible by Qt's dynamic object model.
-
- The standard C++ object model provides very efficient runtime
- support for the object paradigm. But its static nature is
- inflexibile in certain problem domains. Graphical user interface
- programming is a domain that requires both runtime efficiency and
- a high level of flexibility. Qt provides this, by combining the
- speed of C++ with the flexibility of the Qt Object Model.
-
- Qt adds these features to C++:
-
- \list
- \li a very powerful mechanism for seamless object
- communication called \l{signals and slots}
- \li queryable and designable \l{Qt's Property System}{object
- properties}
- \li powerful \l{The Event System}{events and event filters}
- \li contextual \l{i18n}{string translation for internationalization}
- \li sophisticated interval driven \l timers that make it possible
- to elegantly integrate many tasks in an event-driven GUI
- \li hierarchical and queryable \l{Object Trees & Ownership}{object
- trees} that organize object ownership in a natural way
- \li guarded pointers (QPointer) that are automatically
- set to 0 when the referenced object is destroyed, unlike normal C++
- pointers which become dangling pointers when their objects are destroyed
- \li a \l{metaobjects.html#qobjectcast}{dynamic cast} that works across
- library boundaries.
- \endlist
-
- Many of these Qt features are implemented with standard C++
- techniques, based on inheritance from QObject. Others, like the
- object communication mechanism and the dynamic property system,
- require the \l{Meta-Object System} provided
- by Qt's own \l{moc}{Meta-Object Compiler (moc)}.
-
- The meta-object system is a C++ extension that makes the language
- better suited to true component GUI programming. Although
- templates can be used to extend C++, the meta-object system
- provides benefits using standard C++ that cannot be achieved with
- templates; see \l{Why Doesn't Qt Use Templates for Signals and
- Slots?}
-
- \section1 Important Classes
-
- These classes form the basis of the Qt Object Model.
-
- \annotatedlist objectmodel
-
- \target Identity vs Value
- \section1 Qt Objects: Identity vs Value
-
- Some of the added features listed above for the Qt Object Model,
- require that we think of Qt Objects as identities, not values.
- Values are copied or assigned; identities are cloned. Cloning
- means to create a new identity, not an exact copy of the old
- one. For example, twins have different identities. They may look
- identical, but they have different names, different locations, and
- may have completely different social networks.
-
- Then cloning an identity is a more complex operation than copying
- or assigning a value. We can see what this means in the Qt Object
- Model.
-
- \b{A Qt Object...}
-
- \list
-
- \li might have a unique \l{QObject::objectName()}. If we copy a Qt
- Object, what name should we give the copy?
-
- \li has a location in an \l{Object Trees & Ownership}
- {object hierarchy}. If we copy a Qt Object, where should the copy
- be located?
-
- \li can be connected to other Qt Objects to emit signals to them or
- to receive signals emitted by them. If we copy a Qt Object, how
- should we transfer these connections to the copy?
-
- \li can have \l{Qt's Property System} {new properties} added to it
- at runtime that are not declared in the C++ class. If we copy a Qt
- Object, should the copy include the properties that were added to
- the original?
-
- \endlist
-
- For these reasons, Qt Objects should be treated as identities, not
- as values. Identities are cloned, not copied or assigned, and
- cloning an identity is a more complex operation than copying or
- assigning a value. Therefore, QObject and all subclasses of
- QObject (direct or indirect) have their \l{No copy constructor}
- {copy constructor and assignment operator} disabled.
-
- */
diff --git a/doc/src/corelib/objectmodel/objecttrees.qdoc b/doc/src/corelib/objectmodel/objecttrees.qdoc
deleted file mode 100644
index 3e51eeba83..0000000000
--- a/doc/src/corelib/objectmodel/objecttrees.qdoc
+++ /dev/null
@@ -1,102 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \page objecttrees.html
- \title Object Trees & Ownership
- \ingroup qt-basic-concepts
- \brief Information about the parent-child pattern used to describe
- object ownership in Qt.
-
- \section1 Overview
-
- \link QObject QObjects\endlink organize themselves in object trees.
- When you create a QObject with another object as parent, it's added to
- the parent's \link QObject::children() children() \endlink list, and
- is deleted when the parent is. It turns out that this approach fits
- the needs of GUI objects very well. For example, a \l QShortcut
- (keyboard shortcut) is a child of the relevant window, so when the
- user closes that window, the shorcut is deleted too.
-
- \l QWidget, the base class of everything that appears on the screen,
- extends the parent-child relationship. A child normally also becomes a
- child widget, i.e. it is displayed in its parent's coordinate system
- and is graphically clipped by its parent's boundaries. For example,
- when the application deletes a message box after it has been
- closed, the message box's buttons and label are also deleted, just as
- we'd want, because the buttons and label are children of the message
- box.
-
- You can also delete child objects yourself, and they will remove
- themselves from their parents. For example, when the user removes a
- toolbar it may lead to the application deleting one of its \l QToolBar
- objects, in which case the tool bar's \l QMainWindow parent would
- detect the change and reconfigure its screen space accordingly.
-
- The debugging functions \l QObject::dumpObjectTree() and \l
- QObject::dumpObjectInfo() are often useful when an application looks or
- acts strangely.
-
- \target note on the order of construction/destruction of QObjects
- \section1 Construction/Destruction Order of QObjects
-
- When \l {QObject} {QObjects} are created on the heap (i.e., created
- with \e new), a tree can be constructed from them in any order, and
- later, the objects in the tree can be destroyed in any order. When any
- QObject in the tree is deleted, if the object has a parent, the
- destructor automatically removes the object from its parent. If the
- object has children, the destructor automatically deletes each
- child. No QObject is deleted twice, regardless of the order of
- destruction.
-
- When \l {QObject} {QObjects} are created on the stack, the same
- behavior applies. Normally, the order of destruction still doesn't
- present a problem. Consider the following snippet:
-
- \snippet doc/src/snippets/code/doc_src_objecttrees.cpp 0
-
- The parent, \c window, and the child, \c quit, are both \l {QObject}
- {QObjects} because QPushButton inherits QWidget, and QWidget inherits
- QObject. This code is correct: the destructor of \c quit is \e not
- called twice because the C++ language standard \e {(ISO/IEC 14882:2003)}
- specifies that destructors of local objects are called in the reverse
- order of their constructors. Therefore, the destructor of
- the child, \c quit, is called first, and it removes itself from its
- parent, \c window, before the destructor of \c window is called.
-
- But now consider what happens if we swap the order of construction, as
- shown in this second snippet:
-
- \snippet doc/src/snippets/code/doc_src_objecttrees.cpp 1
-
- In this case, the order of destruction causes a problem. The parent's
- destructor is called first because it was created last. It then calls
- the destructor of its child, \c quit, which is incorrect because \c
- quit is a local variable. When \c quit subsequently goes out of scope,
- its destructor is called again, this time correctly, but the damage has
- already been done.
-*/
diff --git a/doc/src/corelib/objectmodel/properties.qdoc b/doc/src/corelib/objectmodel/properties.qdoc
deleted file mode 100644
index 4d090af8fc..0000000000
--- a/doc/src/corelib/objectmodel/properties.qdoc
+++ /dev/null
@@ -1,273 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \page properties.html
- \title The Property System
- \brief An overview of Qt's property system.
-
- \ingroup qt-basic-concepts
- \target Qt's Property System
-
- Qt provides a sophisticated property system similar to the ones
- supplied by some compiler vendors. However, as a compiler- and
- platform-independent library, Qt does not rely on non-standard
- compiler features like \c __property or \c [property]. The Qt
- solution works with \e any standard C++ compiler on every platform
- Qt supports. It is based on the \l {Meta-Object System} that also
- provides inter-object communication via \l{signals and slots}.
-
- \section1 Requirements for Declaring Properties
-
- To declare a property, use the \l {Q_PROPERTY()} {Q_PROPERTY()}
- macro in a class that inherits QObject.
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 0
-
- Here are some typical examples of property declarations taken from
- class QWidget.
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 1
-
- A property behaves like a class data member, but it has additional
- features accessible through the \l {Meta-Object System}.
-
- \list
-
- \li A \c READ accessor function is required. It is for reading the
- property value. Ideally, a const function is used for this purpose,
- and it must return either the property's type or a pointer or
- reference to that type. e.g., QWidget::focus is a read-only property
- with \c READ function, QWidget::hasFocus().
-
- \li A \c WRITE accessor function is optional. It is for setting the
- property value. It must return void and must take exactly one
- argument, either of the property's type or a pointer or reference
- to that type. e.g., QWidget::enabled has the \c WRITE function
- QWidget::setEnabled(). Read-only properties do not need \c WRITE
- functions. e.g., QWidget::focus has no \c WRITE function.
-
- \li A \c RESET function is optional. It is for setting the property
- back to its context specific default value. e.g., QWidget::cursor
- has the typical \c READ and \c WRITE functions, QWidget::cursor()
- and QWidget::setCursor(), and it also has a \c RESET function,
- QWidget::unsetCursor(), since no call to QWidget::setCursor() can
- mean \e {reset to the context specific cursor}. The \c RESET
- function must return void and take no parameters.
-
- \li A \c NOTIFY signal is optional. If defined, it should specify one
- existing signal in that class that is emitted whenever the value
- of the property changes.
-
- \li A \c REVISION number is optional. If included, it defines the
- the property and its notifier signal to be used in a particular
- revision of the API that is exposed to QML.
-
- \li The \c DESIGNABLE attribute indicates whether the property
- should be visible in the property editor of GUI design tool (e.g.,
- \l {Qt Designer}). Most properties are \c DESIGNABLE (default
- true). Instead of true or false, you can specify a boolean
- member function.
-
- \li The \c SCRIPTABLE attribute indicates whether this property
- should be accessible by a scripting engine (default true).
- Instead of true or false, you can specify a boolean member
- function.
-
- \li The \c STORED attribute indicates whether the property should
- be thought of as existing on its own or as depending on other
- values. It also indicates whether the property value must be saved
- when storing the object's state. Most properties are \c STORED
- (default true), but e.g., QWidget::minimumWidth() has \c STORED
- false, because its value is just taken from the width component
- of property QWidget::minimumSize(), which is a QSize.
-
- \li The \c USER attribute indicates whether the property is
- designated as the user-facing or user-editable property for the
- class. Normally, there is only one \c USER property per class
- (default false). e.g., QAbstractButton::checked is the user
- editable property for (checkable) buttons. Note that QItemDelegate
- gets and sets a widget's \c USER property.
-
- \li The presence of the \c CONSTANT attibute indicates that the property
- value is constant. For a given object instance, the READ method of a
- constant property must return the same value every time it is called. This
- constant value may be different for different instances of the object. A
- constant property cannot have a WRITE method or a NOTIFY signal.
-
- \li The presence of the \c FINAL attribute indicates that the property
- will not be overridden by a derived class. This can be used for performance
- optimizations in some cases, but is not enforced by moc. Care must be taken
- never to override a \c FINAL property.
-
- \endlist
-
- The \c READ, \c WRITE, and \c RESET functions can be inherited.
- They can also be virtual. When they are inherited in classes where
- multiple inheritance is used, they must come from the first
- inherited class.
-
- The property type can be any type supported by QVariant, or it can
- be a user-defined type. In this example, class QDate is considered
- to be a user-defined type.
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 2
-
- Because QDate is user-defined, you must include the \c{<QDate>}
- header file with the property declaration.
-
- For QMap, QList, and QValueList properties, the property value is
- a QVariant whose value is the entire list or map. Note that the
- Q_PROPERTY string cannot contain commas, because commas separate
- macro arguments. Therefore, you must use \c QMap as the property
- type instead of \c QMap<QString,QVariant>. For consistency, also
- use \c QList and \c QValueList instead of \c QList<QVariant> and
- \c QValueList<QVariant>.
-
- \section1 Reading and Writing Properties with the Meta-Object System
-
- A property can be read and written using the generic functions
- QObject::property() and QObject::setProperty(), without knowing
- anything about the owning class except the property's name. In
- the code snippet below, the call to QAbstractButton::setDown() and
- the call to QObject::setProperty() both set property "down".
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 3
-
- Accessing a property through its \c WRITE accessor is the better
- of the two, because it is faster and gives better diagnostics at
- compile time, but setting the property this way requires that you
- know about the class at compile time. Accessing properties by name
- lets you access classes you don't know about at compile time. You
- can \e discover a class's properties at run time by querying its
- QObject, QMetaObject, and \l {QMetaProperty} {QMetaProperties}.
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 4
-
- In the above snippet, QMetaObject::property() is used to get \l
- {QMetaProperty} {metadata} about each property defined in some
- unknown class. The property name is fetched from the metadata and
- passed to QObject::property() to get the \l {QVariant} {value} of
- the property in the current \l {QObject}{object}.
-
- \section1 A Simple Example
-
- Suppose we have a class MyClass, which is derived from QObject and
- which uses the Q_OBJECT macro in its private section. We want to
- declare a property in MyClass to keep track of a priorty
- value. The name of the property will be \e priority, and its type
- will be an enumeration type named \e Priority, which is defined in
- MyClass.
-
- We declare the property with the Q_PROPERTY() macro in the private
- section of the class. The required \c READ function is named \c
- priority, and we include a \c WRITE function named \c setPriority.
- The enumeration type must be registered with the \l {Meta-Object
- System} using the Q_ENUMS() macro. Registering an enumeration type
- makes the enumerator names available for use in calls to
- QObject::setProperty(). We must also provide our own declarations
- for the \c READ and \c WRITE functions. The declaration of MyClass
- then might look like this:
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 5
-
- The \c READ function is const and returns the property type. The
- \c WRITE function returns void and has exactly one parameter of
- the property type. The meta-object compiler enforces these
- requirements.
-
- Given a pointer to an instance of MyClass or a pointer to a
- QObject that is an instance of MyClass, we have two ways to set
- its priority property:
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 6
-
- In the example, the enumeration type that is the property type is
- declared in MyClass and registered with the \l{Meta-Object System}
- using the Q_ENUMS() macro. This makes the enumeration values
- available as strings for use as in the call to setProperty(). Had
- the enumeration type been declared in another class, its fully
- qualified name (i.e., OtherClass::Priority) would be required, and
- that other class would also have to inherit QObject and register
- the enumeration type there using the Q_ENUMS() macro.
-
- A similar macro, Q_FLAGS(), is also available. Like Q_ENUMS(), it
- registers an enumeration type, but it marks the type as being a
- set of \e flags, i.e. values that can be OR'd together. An I/O
- class might have enumeration values \c Read and \c Write and then
- QObject::setProperty() could accept \c{Read | Write}. Q_FLAGS()
- should be used to register this enumeration type.
-
- \section1 Dynamic Properties
-
- QObject::setProperty() can also be used to add \e new properties
- to an instance of a class at runtime. When it is called with a
- name and a value, if a property with the given name exists in the
- QObject, and if the given value is compatible with the property's
- type, the value is stored in the property, and true is returned.
- If the value is \e not compatible with the property's type, the
- property is \e not changed, and false is returned. But if the
- property with the given name doesn't exist in the QObject (i.e.,
- if it wasn't declared with Q_PROPERTY(), a new property with the
- given name and value is automatically added to the QObject, but
- false is still returned. This means that a return of false can't
- be used to determine whether a particular property was actually
- set, unless you know in advance that the property already exists
- in the QObject.
-
- Note that \e dynamic properties are added on a per instance basis,
- i.e., they are added to QObject, not QMetaObject. A property can
- be removed from an instance by passing the property name and an
- invalid QVariant value to QObject::setProperty(). The default
- constructor for QVariant constructs an invalid QVariant.
-
- Dynamic properties can be queried with QObject::property(), just
- like properties declared at compile time with Q_PROPERTY().
-
- \sa {Meta-Object System}, {Signals and Slots}
-
- \section1 Properties and Custom Types
-
- Custom types used by properties need to be registered using the
- Q_DECLARE_METATYPE() macro so that their values can be stored in
- QVariant objects. This makes them suitable for use with both
- static properties declared using the Q_PROPERTY() macro in class
- definitions and dynamic properties created at run-time.
-
- \sa Q_DECLARE_METATYPE(), QMetaType, QVariant
-
- \section1 Adding Additional Information to a Class
-
- Connected to the property system is an additional macro,
- Q_CLASSINFO(), that can be used to attach additional
- \e{name}--\e{value} pairs to a class's meta-object, for example:
-
- \snippet doc/src/snippets/code/doc_src_properties.cpp 7
-
- Like other meta-data, class information is accessible at run-time
- through the meta-object; see QMetaObject::classInfo() for details.
-*/
diff --git a/doc/src/corelib/objectmodel/signalsandslots.qdoc b/doc/src/corelib/objectmodel/signalsandslots.qdoc
deleted file mode 100644
index 9100980121..0000000000
--- a/doc/src/corelib/objectmodel/signalsandslots.qdoc
+++ /dev/null
@@ -1,468 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \page signalsandslots.html
- \title Signals & Slots
- \ingroup qt-basic-concepts
- \brief An overview of Qt's signals and slots inter-object
- communication mechanism.
-
- Signals and slots are used for communication between objects. The
- signals and slots mechanism is a central feature of Qt and
- probably the part that differs most from the features provided by
- other frameworks.
-
- \tableofcontents
-
- \section1 Introduction
-
- In GUI programming, when we change one widget, we often want
- another widget to be notified. More generally, we want objects of
- any kind to be able to communicate with one another. For example,
- if a user clicks a \gui{Close} button, we probably want the
- window's \l{QWidget::close()}{close()} function to be called.
-
- Older toolkits achieve this kind of communication using
- callbacks. A callback is a pointer to a function, so if you want
- a processing function to notify you about some event you pass a
- pointer to another function (the callback) to the processing
- function. The processing function then calls the callback when
- appropriate. Callbacks have two fundamental flaws: Firstly, they
- are not type-safe. We can never be certain that the processing
- function will call the callback with the correct arguments.
- Secondly, the callback is strongly coupled to the processing
- function since the processing function must know which callback
- to call.
-
- \section1 Signals and Slots
-
- In Qt, we have an alternative to the callback technique: We use
- signals and slots. A signal is emitted when a particular event
- occurs. Qt's widgets have many predefined signals, but we can
- always subclass widgets to add our own signals to them. A slot
- is a function that is called in response to a particular signal.
- Qt's widgets have many pre-defined slots, but it is common
- practice to subclass widgets and add your own slots so that you
- can handle the signals that you are interested in.
-
- \img abstract-connections.png
- \omit
- \caption An abstract view of some signals and slots connections
- \endomit
-
- The signals and slots mechanism is type safe: The signature of a
- signal must match the signature of the receiving slot. (In fact a
- slot may have a shorter signature than the signal it receives
- because it can ignore extra arguments.) Since the signatures are
- compatible, the compiler can help us detect type mismatches.
- Signals and slots are loosely coupled: A class which emits a
- signal neither knows nor cares which slots receive the signal.
- Qt's signals and slots mechanism ensures that if you connect a
- signal to a slot, the slot will be called with the signal's
- parameters at the right time. Signals and slots can take any
- number of arguments of any type. They are completely type safe.
-
- All classes that inherit from QObject or one of its subclasses
- (e.g., QWidget) can contain signals and slots. Signals are emitted by
- objects when they change their state in a way that may be interesting
- to other objects. This is all the object does to communicate. It
- does not know or care whether anything is receiving the signals it
- emits. This is true information encapsulation, and ensures that the
- object can be used as a software component.
-
- Slots can be used for receiving signals, but they are also normal
- member functions. Just as an object does not know if anything receives
- its signals, a slot does not know if it has any signals connected to
- it. This ensures that truly independent components can be created with
- Qt.
-
- You can connect as many signals as you want to a single slot, and a
- signal can be connected to as many slots as you need. It is even
- possible to connect a signal directly to another signal. (This will
- emit the second signal immediately whenever the first is emitted.)
-
- Together, signals and slots make up a powerful component programming
- mechanism.
-
- \section1 A Small Example
-
- A minimal C++ class declaration might read:
-
- \snippet doc/src/snippets/signalsandslots/signalsandslots.h 0
-
- A small QObject-based class might read:
-
- \snippet doc/src/snippets/signalsandslots/signalsandslots.h 1
- \codeline
- \snippet doc/src/snippets/signalsandslots/signalsandslots.h 2
- \snippet doc/src/snippets/signalsandslots/signalsandslots.h 3
-
- The QObject-based version has the same internal state, and provides
- public methods to access the state, but in addition it has support
- for component programming using signals and slots. This class can
- tell the outside world that its state has changed by emitting a
- signal, \c{valueChanged()}, and it has a slot which other objects
- can send signals to.
-
- All classes that contain signals or slots must mention
- Q_OBJECT at the top of their declaration. They must also derive
- (directly or indirectly) from QObject.
-
- Slots are implemented by the application programmer.
- Here is a possible implementation of the \c{Counter::setValue()}
- slot:
-
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 0
-
- The \c{emit} line emits the signal \c valueChanged() from the
- object, with the new value as argument.
-
- In the following code snippet, we create two \c Counter objects
- and connect the first object's \c valueChanged() signal to the
- second object's \c setValue() slot using QObject::connect():
-
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 1
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 2
- \codeline
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 3
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 4
-
- Calling \c{a.setValue(12)} makes \c{a} emit a
- \c{valueChanged(12)} signal, which \c{b} will receive in its
- \c{setValue()} slot, i.e. \c{b.setValue(12)} is called. Then
- \c{b} emits the same \c{valueChanged()} signal, but since no slot
- has been connected to \c{b}'s \c{valueChanged()} signal, the
- signal is ignored.
-
- Note that the \c{setValue()} function sets the value and emits
- the signal only if \c{value != m_value}. This prevents infinite
- looping in the case of cyclic connections (e.g., if
- \c{b.valueChanged()} were connected to \c{a.setValue()}).
-
- By default, for every connection you make, a signal is emitted;
- two signals are emitted for duplicate connections. You can break
- all of these connections with a single disconnect() call.
- If you pass the Qt::UniqueConnection \a type, the connection will only
- be made if it is not a duplicate. If there is already a duplicate
- (exact same signal to the exact same slot on the same objects),
- the connection will fail and connect will return false
-
- This example illustrates that objects can work together without needing to
- know any information about each other. To enable this, the objects only
- need to be connected together, and this can be achieved with some simple
- QObject::connect() function calls, or with \c{uic}'s
- \l{Using a Designer UI File in Your Application#Automatic Connections}
- {automatic connections} feature.
-
- \section1 Building the Example
-
- The C++ preprocessor changes or removes the \c{signals},
- \c{slots}, and \c{emit} keywords so that the compiler is
- presented with standard C++.
-
- By running the \l moc on class definitions that contain signals
- or slots, a C++ source file is produced which should be compiled
- and linked with the other object files for the application. If
- you use \l qmake, the makefile rules to automatically invoke \c
- moc will be added to your project's makefile.
-
- \section1 Signals
-
- Signals are emitted by an object when its internal state has changed
- in some way that might be interesting to the object's client or owner.
- Signals are public access functions and can be emitted from anywhere,
- but we recommend to only emit them from the class that defines the
- signal and its subclasses.
-
- When a signal is emitted, the slots connected to it are usually
- executed immediately, just like a normal function call. When this
- happens, the signals and slots mechanism is totally independent of
- any GUI event loop. Execution of the code following the \c emit
- statement will occur once all slots have returned. The situation is
- slightly different when using \l{Qt::ConnectionType}{queued
- connections}; in such a case, the code following the \c emit keyword
- will continue immediately, and the slots will be executed later.
-
- If several slots are connected to one signal, the slots will be
- executed one after the other, in the order they have been connected,
- when the signal is emitted.
-
- Signals are automatically generated by the \l moc and must not be
- implemented in the \c .cpp file. They can never have return types
- (i.e. use \c void).
-
- A note about arguments: Our experience shows that signals and slots
- are more reusable if they do not use special types. If
- QScrollBar::valueChanged() were to use a special type such as the
- hypothetical QScrollBar::Range, it could only be connected to
- slots designed specifically for QScrollBar. Connecting different
- input widgets together would be impossible.
-
- \section1 Slots
-
- A slot is called when a signal connected to it is emitted. Slots are
- normal C++ functions and can be called normally; their only special
- feature is that signals can be connected to them.
-
- Since slots are normal member functions, they follow the normal C++
- rules when called directly. However, as slots, they can be invoked
- by any component, regardless of its access level, via a signal-slot
- connection. This means that a signal emitted from an instance of an
- arbitrary class can cause a private slot to be invoked in an instance
- of an unrelated class.
-
- You can also define slots to be virtual, which we have found quite
- useful in practice.
-
- Compared to callbacks, signals and slots are slightly slower
- because of the increased flexibility they provide, although the
- difference for real applications is insignificant. In general,
- emitting a signal that is connected to some slots, is
- approximately ten times slower than calling the receivers
- directly, with non-virtual function calls. This is the overhead
- required to locate the connection object, to safely iterate over
- all connections (i.e. checking that subsequent receivers have not
- been destroyed during the emission), and to marshall any
- parameters in a generic fashion. While ten non-virtual function
- calls may sound like a lot, it's much less overhead than any \c
- new or \c delete operation, for example. As soon as you perform a
- string, vector or list operation that behind the scene requires
- \c new or \c delete, the signals and slots overhead is only
- responsible for a very small proportion of the complete function
- call costs. The same is true whenever you do a system call in a slot;
- or indirectly call more than ten functions.
- The simplicity and flexibility of the signals and slots mechanism is
- well worth the overhead, which your users won't even notice.
-
- Note that other libraries that define variables called \c signals
- or \c slots may cause compiler warnings and errors when compiled
- alongside a Qt-based application. To solve this problem, \c
- #undef the offending preprocessor symbol.
-
- \section1 Meta-Object Information
-
- The meta-object compiler (\l moc) parses the class declaration in
- a C++ file and generates C++ code that initializes the
- meta-object. The meta-object contains the names of all the signal
- and slot members, as well as pointers to these functions.
-
- The meta-object contains additional information such as the
- object's \link QObject::className() class name\endlink. You can
- also check if an object \link QObject::inherits()
- inherits\endlink a specific class, for example:
-
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 5
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 6
-
- The meta-object information is also used by qobject_cast<T>(), which
- is similar to QObject::inherits() but is less error-prone:
-
- \snippet doc/src/snippets/signalsandslots/signalsandslots.cpp 7
-
- See \l{Meta-Object System} for more information.
-
- \section1 A Real Example
-
- Here is a simple commented example of a widget.
-
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 0
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 1
- \codeline
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 2
- \codeline
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 3
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 4
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 5
-
- \c LcdNumber inherits QObject, which has most of the signal-slot
- knowledge, via QFrame and QWidget. It is somewhat similar to the
- built-in QLCDNumber widget.
-
- The Q_OBJECT macro is expanded by the preprocessor to declare
- several member functions that are implemented by the \c{moc}; if
- you get compiler errors along the lines of "undefined reference
- to vtable for \c{LcdNumber}", you have probably forgotten to
- \l{moc}{run the moc} or to include the moc output in the link
- command.
-
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 6
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 7
-
- It's not obviously relevant to the moc, but if you inherit
- QWidget you almost certainly want to have the \c parent argument
- in your constructor and pass it to the base class's constructor.
-
- Some destructors and member functions are omitted here; the \c
- moc ignores member functions.
-
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 8
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 9
-
- \c LcdNumber emits a signal when it is asked to show an impossible
- value.
-
- If you don't care about overflow, or you know that overflow
- cannot occur, you can ignore the \c overflow() signal, i.e. don't
- connect it to any slot.
-
- If on the other hand you want to call two different error
- functions when the number overflows, simply connect the signal to
- two different slots. Qt will call both (in the order they were connected).
-
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 10
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 11
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 12
- \codeline
- \snippet doc/src/snippets/signalsandslots/lcdnumber.h 13
-
- A slot is a receiving function used to get information about
- state changes in other widgets. \c LcdNumber uses it, as the code
- above indicates, to set the displayed number. Since \c{display()}
- is part of the class's interface with the rest of the program,
- the slot is public.
-
- Several of the example programs connect the
- \l{QScrollBar::valueChanged()}{valueChanged()} signal of a
- QScrollBar to the \c display() slot, so the LCD number
- continuously shows the value of the scroll bar.
-
- Note that \c display() is overloaded; Qt will select the
- appropriate version when you connect a signal to the slot. With
- callbacks, you'd have to find five different names and keep track
- of the types yourself.
-
- Some irrelevant member functions have been omitted from this
- example.
-
- \section1 Signals And Slots With Default Arguments
-
- The signatures of signals and slots may contain arguments, and the
- arguments can have default values. Consider QObject::destroyed():
-
- \code
- void destroyed(QObject* = 0);
- \endcode
-
- When a QObject is deleted, it emits this QObject::destroyed()
- signal. We want to catch this signal, wherever we might have a
- dangling reference to the deleted QObject, so we can clean it up.
- A suitable slot signature might be:
-
- \code
- void objectDestroyed(QObject* obj = 0);
- \endcode
-
- To connect the signal to the slot, we use QObject::connect().
- There are several ways to connect signal and slots. The first is to use
- function pointers:
- \code
- connect(sender, &QObject::destroyed, this, &MyObject::objectDestroyed);
- \endcode
-
- There are several advantages to using connect() with function pointers.
- First, it allows the compiler to check that the signal's arguments are
- compatible with the slot's arguments. Arguments can also be implicitly
- converted by the compiler, if needed.
-
- You can also connect to functors or C++11 lamdas:
-
- \code
- connect(sender, &QObject::destroyed, [=](){ this->m_objects.remove(sender); });
- \endcode
-
- Note that if your compiler does not support C++11 variadic templates,
- this syntax only works if the signal and slot have 6 arguments or less.
-
- The other way to connect a signal to a slot is to use QObject::connect()
- and the \c{SIGNAL} and \c{SLOT} macros.
- The rule about whether to
- include arguments or not in the \c{SIGNAL()} and \c{SLOT()}
- macros, if the arguments have default values, is that the
- signature passed to the \c{SIGNAL()} macro must \e not have fewer
- arguments than the signature passed to the \c{SLOT()} macro.
-
- All of these would work:
- \code
- connect(sender, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(Qbject*)));
- connect(sender, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed()));
- connect(sender, SIGNAL(destroyed()), this, SLOT(objectDestroyed()));
- \endcode
- But this one won't work:
- \code
- connect(sender, SIGNAL(destroyed()), this, SLOT(objectDestroyed(QObject*)));
- \endcode
-
- ...because the slot will be expecting a QObject that the signal
- will not send. This connection will report a runtime error.
-
- Note that signal and slot arguments are not checked by the compiler when
- using this QObject::connect() overload.
-
- \section1 Advanced Signals and Slots Usage
-
- For cases where you may require information on the sender of the
- signal, Qt provides the QObject::sender() function, which returns
- a pointer to the object that sent the signal.
-
- The QSignalMapper class is provided for situations where many
- signals are connected to the same slot and the slot needs to
- handle each signal differently.
-
- Suppose you have three push buttons that determine which file you
- will open: "Tax File", "Accounts File", or "Report File".
-
- In order to open the correct file, you use QSignalMapper::setMapping() to
- map all the clicked() signals to a QSignalMapper object. Then you connect
- the file's QPushButton::clicked() signal to the QSignalMapper::map() slot.
-
- \snippet doc/src/snippets/signalmapper/filereader.cpp 0
-
- Then, you connect the \l{QSignalMapper::}{mapped()} signal to
- \c{readFile()} where a different file will be opened, depending on
- which push button is pressed.
-
- \snippet doc/src/snippets/signalmapper/filereader.cpp 1
-
- \sa {Meta-Object System}, {Qt's Property System}
-
- \target 3rd Party Signals and Slots
- \section2 Using Qt with 3rd Party Signals and Slots
-
- It is possible to use Qt with a 3rd party signal/slot mechanism.
- You can even use both mechanisms in the same project. Just add the
- following line to your qmake project (.pro) file.
-
- \snippet doc/src/snippets/code/doc_src_containers.cpp 22
-
- It tells Qt not to define the moc keywords \c{signals}, \c{slots},
- and \c{emit}, because these names will be used by a 3rd party
- library, e.g. Boost. Then to continue using Qt signals and slots
- with the \c{no_keywords} flag, simply replace all uses of the Qt
- moc keywords in your sources with the corresponding Qt macros
- Q_SIGNALS (or Q_SIGNAL), Q_SLOTS (or Q_SLOT), and Q_EMIT.
-*/
diff --git a/doc/src/corelib/qtcore.qdoc b/doc/src/corelib/qtcore.qdoc
deleted file mode 100644
index 36d128e3df..0000000000
--- a/doc/src/corelib/qtcore.qdoc
+++ /dev/null
@@ -1,42 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \module QtCore
- \title QtCore Module
- \ingroup modules
-
- \keyword QtCore
-
- \brief The QtCore module contains core non-GUI functionality.
-
- All other Qt modules rely on this module. To include the
- definitions of the module's classes, use the following directive:
-
- \snippet doc/src/snippets/code/doc_src_qtcore.cpp 0
-*/
-
diff --git a/doc/src/corelib/threads-basics.qdoc b/doc/src/corelib/threads-basics.qdoc
deleted file mode 100644
index e54f8a7ccb..0000000000
--- a/doc/src/corelib/threads-basics.qdoc
+++ /dev/null
@@ -1,572 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \page thread-basics.html
- \ingroup tutorials
- \startpage {index.html}{Qt Reference Documentation}
-
- \title Threading Basics
- \brief An introduction to threads
-
- \section1 What Are Threads?
-
- Threads are about doing things in parallel, just like processes. So how do
- threads differ from processes? While you are making calculations on a
- spreadsheet, there may also be a media player running on the same desktop
- playing your favorite song. Here is an example of two processes working in
- parallel: one running the spreadsheet program; one running a media player.
- Multitasking is a well known term for this. A closer look at the media
- player reveals that there are again things going on in parallel within one
- single process. While the media player is sending music to the audio driver,
- the user interface with all its bells and whistles is being constantly
- updated. This is what threads are for \mdash concurrency within one single
- process.
-
- So how is concurrency implemented? Parallel work on single core CPUs is an
- illusion which is somewhat similar to the illusion of moving images in
- cinema.
- For processes, the illusion is produced by interrupting the processor's
- work on one process after a very short time. Then the processor moves on to
- the next process. In order to switch between processes, the current program
- counter is saved and the next processor's program counter is loaded. This
- is not sufficient because the same needs to be done with registers and
- certain architecture and OS specific data.
-
- Just as one CPU can power two or more processes, it is also possible to let
- the CPU run on two different code segments of one single process. When a
- process starts, it always executes one code segment and therefore the
- process is said to have one thread. However, the program may decide to
- start a second thread. Then, two different code sequences are processed
- simultaneously inside one process. Concurrency is achieved on single core
- CPUs by repeatedly saving program counters and registers then loading the
- next thread's program counters and registers. No cooperation from the
- program is required to cycle between the active threads. A thread may be in
- any state when the switch to the next thread occurs.
-
- The current trend in CPU design is to have several cores. A typical
- single-threaded application can make use of only one core. However, a
- program with multiple threads can be assigned to multiple cores, making
- things happen in a truly concurrent way. As a result, distributing work
- to more than one thread can make a program run much faster on multicore
- CPUs because additional cores can be used.
-
- \section2 GUI Thread and Worker Thread
-
- As mentioned, each program has one thread when it is started. This thread
- is called the "main thread" (also known as the "GUI thread" in Qt
- applications). The Qt GUI must run in this thread. All widgets and several
- related classes, for example QPixmap, don't work in secondary threads.
- A secondary thread is commonly referred to as a "worker thread" because it
- is used to offload processing work from the main thread.
-
- \section2 Simultaneous Access to Data
-
- Each thread has its own stack, which means each thread has its own call
- history and local variables. Unlike processes, threads share the same
- address space. The following diagram shows how the building blocks of
- threads are located in memory. Program counter and registers of inactive
- threads are typically kept in kernel space. There is a shared copy of the
- code and a separate stack for each thread.
-
- \image threadvisual-example.png "Thread visualization"
-
- If two threads have a pointer to the same object, it is possible that both
- threads will access that object at the same time and this can potentially
- destroy the object's integrity. It's easy to imagine the many things that
- can go wrong when two methods of the same object are executed
- simultaneously.
-
- Sometimes it is necessary to access one object from different threads;
- for example, when objects living in different threads need to communicate.
- Since threads use the same address space, it is easier and faster for
- threads to exchange data than it is for processes. Data does not have to be
- serialized and copied. Passing pointers is possible, but there must be a
- strict coordination of what thread touches which object. Simultaneous
- execution of operations on one object must be prevented. There are several
- ways of achieving this and some of them are described below.
-
- So what can be done safely? All objects created in a thread can be used
- safely within that thread provided that other threads don't have references
- to them and objects don't have implicit coupling with other threads. Such
- implicit coupling may happen when data is shared between instances as with
- static members, singletons or global data. Familiarize yourself with the
- concept of \l{Reentrancy and Thread-Safety}{thread safe and reentrant}
- classes and functions.
-
- \section1 Using Threads
-
- There are basically two use cases for threads:
-
- \list
- \li Make processing faster by making use of multicore processors.
- \li Keep the GUI thread or other time critical threads responsive by
- offloading long lasting processing or blocking calls to other threads.
- \endlist
-
- \section2 When to Use Alternatives to Threads
-
- Developers need to be very careful with threads. It is easy to start other
- threads, but very hard to ensure that all shared data remains consistent.
- Problems are often hard to find because they may only show up once in a
- while or only on specific hardware configurations. Before creating threads
- to solve certain problems, possible alternatives should be considered.
-
- \table
- \header
- \li Alternative
- \li Comment
- \row
- \li QEventLoop::processEvents()
- \li Calling QEventLoop::processEvents() repeatedly during a
- time-consuming calculation prevents GUI blocking. However, this
- solution doesn't scale well because the call to processEvents() may
- occur too often, or not often enough, depending on hardware.
- \row
- \li QTimer
- \li Background processing can sometimes be done conveniently using a
- timer to schedule execution of a slot at some point in the future.
- A timer with an interval of 0 will time out as soon as there are no
- more events to process.
- \row
- \li QSocketNotifier QNetworkAccessManager QIODevice::readyRead()
- \li This is an alternative to having one or multiple threads, each with
- a blocking read on a slow network connection. As long as the
- calculation in response to a chunk of network data can be executed
- quickly, this reactive design is better than synchronous waiting in
- threads. Reactive design is less error prone and energy efficient
- than threading. In many cases there are also performance benefits.
- \endtable
-
- In general, it is recommended to only use safe and tested paths and to
- avoid introducing ad-hoc threading concepts. QtConcurrent provides an easy
- interface for distributing work to all of the processor's cores. The
- threading code is completely hidden in the QtConcurrent framework, so you
- don't have to take care of the details. However, QtConcurrent can't be used
- when communication with the running thread is needed, and it shouldn't be
- used to handle blocking operations.
-
- \section2 Which Qt Thread Technology Should You Use?
-
- Sometimes you want to do more than just running a method in the context of
- another thread. You may want to have an object which lives in another
- thread that provides a service to the GUI thread. Maybe you want another
- thread to stay alive forever to poll hardware ports and send a signal to
- the GUI thread when something noteworthy has happened. Qt provides
- different solutions for developing threaded applications. The right
- solution depends on the purpose of the new thread as well as on the
- thread's lifetime.
-
- \table
- \header
- \li Lifetime of thread
- \li Development task
- \li Solution
- \row
- \li One call
- \li Run one method within another thread and quit the thread when the
- method is finished.
- \li Qt provides different solutions:
- \list
- \li Write a function and run it with QtConcurrent::run()
- \li Derive a class from QRunnable and run it in the global thread
- pool with QThreadPool::globalInstance()->start()
- \li Derive a class from QThread, reimplement the QThread::run()
- method and use QThread::start() to run it.
- \endlist
-
- \row
- \li One call
- \li Operations are to be performed on all items of a container.
- Processing should be performed using all available cores. A common
- example is to produce thumbnails from a list of images.
- \li QtConcurrent provides the \l{QtConcurrent::}{map()} function for
- applying operations on every container element,
- \l{QtConcurrent::}{filter()} for selecting container elements, and
- the option of specifying a reduce function for combining the
- remaining elements.
- \row
- \li One call
- \li A long running operation has to be put in another thread. During the
- course of processing, status information should be sent to the GUI
- thread.
- \li Use QThread, reimplement run and emit signals as needed. Connect the
- signals to the GUI thread's slots using queued signal/slot
- connections.
-
- \row
- \li Permanent
- \li Have an object living in another thread and let it perform different
- tasks upon request.
- This means communication to and from the worker thread is required.
- \li Derive a class from QObject and implement the necessary slots and
- signals, move the object to a thread with a running event loop and
- communicate with the object over queued signal/slot connections.
- \row
- \li Permanent
- \li Have an object living in another thread, let the object perform
- repeated tasks such as polling a port and enable communication with
- the GUI thread.
- \li Same as above but also use a timer in the worker thread to implement
- polling. However, the best solution for polling is to avoid it
- completely. Sometimes using QSocketNotifier is an alternative.
- \endtable
-
-
- \section1 Qt Thread Basics
-
- QThread is a very convenient cross platform abstraction of native platform
- threads. Starting a thread is very simple. Let us look at a short piece of
- code that generates another thread which says hello in that thread and then
- exits.
-
- \snippet examples/tutorials/threads/hellothread/hellothread.h 1
-
- We derive a class from QThread and reimplement the \l{QThread::}{run()}
- method.
-
- \snippet examples/tutorials/threads/hellothread/hellothread.cpp 1
-
- The run method contains the code that will be run in a separate thread. In
- this example, a message containing the thread ID will be printed.
- QThread::start() will call the method in another thread.
-
- \snippet examples/tutorials/threads/hellothread/main.cpp 1
-
- To start the thread, our thread object needs to be instantiated. The
- \l{QThread::}{start()} method creates a new thread and calls the
- reimplemented \l{QThread::}{run()} method in this new thread. Right after
- \l{QThread::}{start()} is called, two program counters walk through the
- program code. The main function starts with only the GUI thread running and
- it should terminate with only the GUI thread running. Exiting the program
- when another thread is still busy is a programming error, and therefore,
- wait is called which blocks the calling thread until the
- \l{QThread::}{run()} method has completed.
-
- This is the result of running the code:
-
- \badcode
- hello from GUI thread 3079423696
- hello from worker thread 3076111216
- \endcode
-
-
- \section2 QObject and Threads
-
- A QObject is said to have a \e{thread affinity} or, in other words, that it
- lives in a certain thread. This means that, at creation time, QObject saves
- a pointer to the current thread. This information becomes relevant when an
- event is posted with \l{QCoreApplication::}{postEvent()}. The event will be
- put in the corresponding thread's event loop. If the thread where the
- QObject lives doesn't have an event loop, the event will never be delivered.
-
- To start an event loop, \l{QThread::}{exec()} must be called inside
- \l{QThread::}{run()}. Thread affinity can be changed using
- \l{QObject::}{moveToThread()}.
-
- As mentioned above, developers must always be careful when calling objects'
- methods from other threads. Thread affinity does not change this situation.
- Qt documentation marks several methods as thread-safe.
- \l{QCoreApplication::}{postEvent()} is a noteworthy example. A thread-safe
- method may be called from different threads simultaneously.
-
- In cases where there is usually no concurrent access to methods, calling
- non-thread-safe methods of objects in other threads may work thousands
- of times before a concurrent access occurs, causing unexpected behavior.
- Writing test code does not entirely ensure thread correctness, but it is
- still important.
- On Linux, Valgrind and Helgrind can help detect threading errors.
-
- The anatomy of QThread is quite interesting:
-
- \list
- \li QThread does not live in the new thread where \l{QThread::}{run()} is
- executed. It lives in the old thread.
- \li Most QThread methods are the thread's control interface and are meant to
- be called from the old thread. Do not move this interface to the newly
- created thread using \l{QObject::}{moveToThread()}; i.e., calling
- \l{QObject::moveToThread()}{moveToThread(this)} is regarded as bad
- practice.
- \li \l{QThread::}{exec()} and the static methods
- \l{QThread::}{usleep()}, \l{QThread::}{msleep()},
- \l{QThread::}{sleep()} are meant to be called from the newly created
- thread.
- \li Additional members defined in the QThread subclass are
- accessible by both threads. The developer is responsible for
- coordinating access. A typical strategy is to set the members before
- \l{QThread::}{start()} is called. Once the worker thread is running,
- the main thread should not touch the additional members anymore. After
- the worker has terminated, the main thread can access the additional
- members again. This is a convenient strategy for passing parameters to a
- thread before it is started as well as for collecting the result once it
- has terminated.
- \endlist
-
- A QObject's parent must always be in the same thread. This has a surprising
- consequence for objects generated within the \l{QThread::}{run()} method:
-
- \code
- void HelloThread::run()
- {
- QObject *object1 = new QObject(this); //error, parent must be in the same thread
- QObject object2; // OK
- QSharedPointer <QObject> object3(new QObject); // OK
- }
- \endcode
-
- \section2 Using a Mutex to Protect the Integrity of Data
-
- A mutex is an object that has \l{QMutex::}{lock()} and \l{QMutex::}{unlock()}
- methods and remembers if it is already locked. A mutex is designed to be
- called from multiple threads. \l{QMutex::}{lock()} returns immediately if
- the mutex is not locked. The next call from another thread will find the
- mutex in a locked state and then \l{QMutex::}{lock()} will block the thread
- until the other thread calls \l{QMutex::}{unlock()}. This functionality can
- make sure that a code section will be executed by only one thread at a time.
-
- The following line sketches how a mutex can be used to make a method
- thread-safe:
-
- \code
- void Worker::work()
- {
- this->mutex.lock(); // first thread can pass, other threads will be blocked here
- doWork();
- this->mutex.unlock();
- }
- \endcode
-
- What happens if one thread does not unlock a mutex? The result can be a
- frozen application. In the example above, an exception might be thrown and
- \c{mutex.unlock()} will never be reached. To prevent problems like this,
- QMutexLocker should be used.
-
- \code
- void Worker::work()
- {
- QMutexLocker locker(&mutex); // Locks the mutex and unlocks when locker exits the scope
- doWork();
- }
- \endcode
-
- This looks easy, but mutexes introduce a new class of problems: deadlocks.
- A deadlock happens when a thread waits for a mutex to become unlocked, but
- the mutex remains locked because the owning thread is waiting for the first
- thread to unlock it. The result is a frozen application. Mutexes can be
- used to make a method thread safe. Most Qt methods aren't thread safe
- because there is always a performance penalty when using mutexes.
-
- It isn't always possible to lock and unlock a mutex in a method. Sometimes
- the need to lock spans several calls. For example, modifying a container
- with an iterator requires a sequence of several calls which should not be
- interrupted by other threads. In such a scenario, locking can be achieved
- with a mutex that is kept outside of the object to be manipulated. With an
- external mutex, the duration of locking can be adjusted to the needs of the
- operation. One disadvantage is that external mutexes aid locking, but do
- not enforce it because users of the object may forget to use it.
-
- \section2 Using the Event Loop to Prevent Data Corruption
-
- The event loops of Qt are a very valuable tool for inter-thread
- communication. Every thread may have its own event loop. A safe way of
- calling a slot in another thread is by placing that call in another
- thread's event loop. This ensures that the target object finishes the
- method that is currently running before another method is started.
-
- So how is it possible to put a method invocation in an event loop? Qt has
- two ways of doing this. One way is via queued signal-slot connections; the
- other way is to post an event with QCoreApplication::postEvent(). A queued
- signal-slot connection is a signal slot connection that is executed
- asynchronously. The internal implementation is based on posted events. The
- arguments of the signal are put into the event loop and the signal method
- returns immediately.
-
- The connected slot will be executed at a time which depends on what else is
- in the event loop.
-
- Communication via the event loop eliminates the deadlock problem we face
- when using mutexes. This is why we recommend using the event loop rather
- than locking an object using a mutex.
-
- \section2 Dealing with Asynchronous Execution
-
- One way to obtain a worker thread's result is by waiting for the thread
- to terminate. In many cases, however, a blocking wait isn't acceptable. The
- alternative to a blocking wait are asynchronous result deliveries with
- either posted events or queued signals and slots. This generates a certain
- overhead because an operation's result does not appear on the next source
- line, but in a slot located somewhere else in the source file. Qt
- developers are used to working with this kind of asynchronous behavior
- because it is much similar to the kind of event-driven programming used in
- GUI applications.
-
- \section1 Examples
-
- This tutorial comes with examples for Qt's three basic ways of working with
- threads. Two more examples show how to communicate with a running thread
- and how a QObject can be placed in another thread, providing service to the
- main thread.
-
- \list
- \li Using QThread as shown \l{Qt thread basics}{above}
- \li \l{Example 1: Using the Thread Pool}{Using the global QThreadPool}
- \li \l{Example 2: Using QtConcurrent}{Using QtConcurrent}
- \li \l{Example 3: Clock}{Communication with the GUI thread}
- \li \l{Example 4: A Permanent Thread}{A permanent QObject in another thread
- provides service to the main thread}
- \endlist
-
- The following examples can all be compiled and run independently. The source can
- be found in the examples directory: examples/tutorials/threads/
-
- \section2 Example 1: Using the Thread Pool
-
- Creating and destroying threads frequently can be expensive. To avoid the
- cost of thread creation, a thread pool can be used. A thread pool is a
- place where threads can be parked and fetched. We can write the same
- "hello thread" program as \l{Qt Thread Basics}{above} using the global
- thread pool. We derive a class from QRunnable. The code we want to run in
- another thread needs to be placed in the reimplemented QRunnable::run()
- method.
-
- \snippet examples/tutorials/threads/hellothreadpool/hellothreadpool.cpp 1
-
- We instantiate Work in main(), locate the global thread pool and use the
- QThreadPool::start() method. Now the thread pool runs our worker in another
- thread. Using the thread pool has a performance advantage because threads
- are not destroyed after they have finished running. They are kept in a pool
- and wait to be used again later.
-
- \section2 Example 2: Using QtConcurrent
-
- \snippet examples/tutorials/threads/helloconcurrent/helloconcurrent.cpp 1
-
- We write a global function hello() to implement the work. QtConcurrent::run()
- is used to run the function in another thread. The result is a QFuture.
- QFuture provides a method called \l{QFuture::}{waitForFinished()}, which
- blocks until the calculation is completed. The real power of QtConcurrent
- becomes visible when data can be made available in a container. QtConcurrent
- provides several functions that are able to process itemized data on all
- available cores simultaneously. The use of QtConcurrent is very similar to
- applying an STL algorithm to an STL container.
- \l{examples-threadandconcurrent.html}{QtConcurrent Map} is a very short and
- clear example about how a container of images can be scaled on all available
- cores. The image scaling example uses the blocking variants of the functions
- used. For every blocking function there is also a non-blocking, asynchronous
- counterpart. Getting results asynchronously is implemented with QFuture and
- QFutureWatcher.
-
- \section2 Example 3: Clock
-
- \image thread_clock.png "clock"
-
- We want to produce a clock application. The application has a GUI and a
- worker thread. The worker thread checks every 10 milliseconds what time it
- is. If the formatted time has changed, the result will be sent to the GUI
- thread where it is displayed.
-
- Of course, this is an overly complicated way of designing a clock and,
- actually, a separate thread is unnecessary. We would be better off placing
- the timer in the main thread because the calculation made in the timer slot
- is very short-lived. This example is purely for instructional use and shows
- how to communicate from a worker thread to a GUI thread. Note that
- communication in this direction is easy. We only need to add a signal
- to QThread and make a queued signal/slot connection to the main thread.
- Communication from the GUI to the worker thread is shown in the next
- example.
-
- \snippet examples/tutorials/threads/clock/main.cpp 1
-
- We've connected the \c clockThread with the label. The connection must be a
- queued signal-slot connection because we want to put the call in the event
- loop.
-
- \snippet examples/tutorials/threads/clock/clockthread.h 1
-
- We have derived a class from QThread and declared the \c sendTime() signal.
-
- \snippet examples/tutorials/threads/clock/clockthread.cpp 1
-
- The trickiest part of this example is that the timer is connected to its
- slot via a direct connection. A default connection would produce a queued
- signal-slot connection because the connected objects live in different
- threads; remember that QThread does not live in the thread it creates.
-
- Still it is safe to access ClockThread::timerHit() from the worker thread
- because ClockThread::timerHit() is private and only touches local variables
- and a private member that isn't touched by public methods.
- QDateTime::currentDateTime() isn't marked as thread-safe in Qt
- documentation, however we can get away with using it in this small
- example because we know that the QDateTime::currentDateTime() static
- method isn't used in any other threads.
-
- \section2 Example 4: A Permanent Thread
-
- This example shows how it is possible to have a QObject in a worker thread
- that accepts requests from the GUI thread, does polling using a timer and
- continuously reports results back to the GUI thread. The actual work
- including the polling must be implemented in a class derived from QObject.
- We have called this class \c WorkerObject in the code shown below. The
- thread-specific code is hidden in a class called \c Thread, derived from
- QThread.
- \c Thread has two additional public members. The \c launchWorker() member
- takes the worker object and moves it to another thread with a started event
- loop.
- The call blocks for a very short moment until the thread creation operation
- is completed, allowing the worker object to be used again on the next line.
- The \c Thread class's code is short but somewhat involved, so we only show
- how to use the class.
-
- \snippet examples/tutorials/threads/movedobject/main.cpp 1
-
- QMetaObject::invokeMethod() calls a slot via the event loop. The worker
- object's methods should not be called directly after the object has been
- moved to another thread. We let the worker thread do some work and polling,
- and use a timer to shut the application down after 3 seconds. Shutting the
- worker down needs some care. We call \c{Thread::stop()} to exit the event
- loop. We wait for the thread to terminate and, after this has occurred, we
- delete the worker.
-
- \section1 Digging Deeper
-
- Threading is a very complicated subject. Qt offers more classes for
- threading than we have presented in this tutorial. The following materials
- can help you go into the subject in more depth:
-
- \list
- \li Good video tutorials about threads with Qt can be found in the material
- from the \l{Training Day at Qt Developer Days 2009}.
- \li The \l{Thread Support in Qt} document is a good starting point into
- the reference documentation.
- \li Qt comes with several additional examples for
- \l{Threading and Concurrent Programming Examples}{QThread and QtConcurrent}.
- \li Several good books describe how to work with Qt threads. The most
- extensive coverage can be found in \e{Advanced Qt Programming} by Mark
- Summerfield, Prentice Hall - roughly 70 of 500 pages cover QThread and
- QtConcurrent.
- \endlist
-*/
diff --git a/doc/src/corelib/threads.qdoc b/doc/src/corelib/threads.qdoc
deleted file mode 100644
index 04a5379b2d..0000000000
--- a/doc/src/corelib/threads.qdoc
+++ /dev/null
@@ -1,705 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \group thread
- \title Threading Classes
-*/
-
-/*!
- \page threads.html
- \title Thread Support in Qt
- \ingroup qt-basic-concepts
- \brief A detailed discussion of thread handling in Qt.
-
- \ingroup frameworks-technologies
-
- \nextpage Starting Threads with QThread
-
- Qt provides thread support in the form of platform-independent
- threading classes, a thread-safe way of posting events, and
- signal-slot connections across threads. This makes it easy to
- develop portable multithreaded Qt applications and take advantage
- of multiprocessor machines. Multithreaded programming is also a
- useful paradigm for performing time-consuming operations without
- freezing the user interface of an application.
-
- Earlier versions of Qt offered an option to build the library
- without thread support. Since Qt 4.0, threads are always enabled.
-
- \section1 Topics:
-
- \list
- \li \l{Recommended Reading}
- \li \l{The Threading Classes}
- \li \l{Starting Threads with QThread}
- \li \l{Synchronizing Threads}
- \li \l{Reentrancy and Thread-Safety}
- \li \l{Threads and QObjects}
- \li \l{Concurrent Programming}
- \li \l{Thread-Support in Qt Modules}
- \endlist
-
- \section1 Recommended Reading
-
- This document is intended for an audience that has knowledge of,
- and experience with, multithreaded applications. If you are new
- to threading see our Recommended Reading list:
-
- \list
- \li \l{Threads Primer: A Guide to Multithreaded Programming}
- \li \l{Thread Time: The Multithreaded Programming Guide}
- \li \l{Pthreads Programming: A POSIX Standard for Better Multiprocessing}
- \li \l{Win32 Multithreaded Programming}
- \endlist
-
- \section1 The Threading Classes
-
- These classes are relevant to threaded applications.
-
- \annotatedlist thread
-
-\omit
- \list
- \li QThread provides the means to start a new thread.
- \li QThreadStorage provides per-thread data storage.
- \li QThreadPool manages a pool of threads that run QRunnable objects.
- \li QRunnable is an abstract class representing a runnable object.
- \li QMutex provides a mutual exclusion lock, or mutex.
- \li QMutexLocker is a convenience class that automatically locks
- and unlocks a QMutex.
- \li QReadWriteLock provides a lock that allows simultaneous read access.
- \li QReadLocker and QWriteLocker are convenience classes that automatically
- lock and unlock a QReadWriteLock.
- \li QSemaphore provides an integer semaphore (a generalization of a mutex).
- \li QWaitCondition provides a way for threads to go to sleep until
- woken up by another thread.
- \li QAtomicInt provides atomic operations on integers.
- \li QAtomicPointer provides atomic operations on pointers.
- \endlist
-\endomit
-
- \note Qt's threading classes are implemented with native threading APIs;
- e.g., Win32 and pthreads. Therefore, they can be used with threads of the
- same native API.
-*/
-
-/*!
- \page threads-starting.html
- \title Starting Threads with QThread
-
- \contentspage Thread Support in Qt
- \nextpage Synchronizing Threads
-
- A QThread instance represents a thread and provides the means to
- \l{QThread::start()}{start()} a thread, which will then execute the
- reimplementation of QThread::run(). The \c run() implementation is for a
- thread what the \c main() entry point is for the application. All code
- executed in a call stack that starts in the \c run() function is executed
- by the new thread, and the thread finishes when the function returns.
- QThread emits signals to indicate that the thread started or finished
- executing.
-
- \section1 Creating a Thread
-
- To create a thread, subclass QThread and reimplement its
- \l{QThread::run()}{run()} function. For example:
-
- \snippet doc/src/snippets/threads/threads.h 0
- \codeline
- \snippet doc/src/snippets/threads/threads.cpp 0
- \snippet doc/src/snippets/threads/threads.cpp 1
- \dots
- \snippet doc/src/snippets/threads/threads.cpp 2
-
- \section1 Starting a Thread
-
- Then, create an instance of the thread object and call
- QThread::start(). Note that you must create the QApplication (or
- QCoreApplication) object before you can create a QThread.
-
- The function will return immediately and the
- main thread will continue. The code that appears in the
- \l{QThread::run()}{run()} reimplementation will then be executed
- in a separate thread.
-
- Creating threads is explained in more detail in the QThread
- documentation.
-
- Note that QCoreApplication::exec() must always be called from the
- main thread (the thread that executes \c{main()}), not from a
- QThread. In GUI applications, the main thread is also called the
- GUI thread because it's the only thread that is allowed to
- perform GUI-related operations.
-*/
-
-/*!
- \page threads-synchronizing.html
- \title Synchronizing Threads
-
- \previouspage Starting Threads with QThread
- \contentspage Thread Support in Qt
- \nextpage Reentrancy and Thread-Safety
-
- The QMutex, QReadWriteLock, QSemaphore, and QWaitCondition
- classes provide means to synchronize threads. While the main idea
- with threads is that they should be as concurrent as possible,
- there are points where threads must stop and wait for other
- threads. For example, if two threads try to access the same
- global variable simultaneously, the results are usually
- undefined.
-
- QMutex provides a mutually exclusive lock, or mutex. At most one
- thread can hold the mutex at any time. If a thread tries to
- acquire the mutex while the mutex is already locked, the thread will
- be put to sleep until the thread that currently holds the mutex
- unlocks it. Mutexes are often used to protect accesses to shared
- data (i.e., data that can be accessed from multiple threads
- simultaneously). In the \l{Reentrancy and Thread-Safety} section
- below, we will use it to make a class thread-safe.
-
- QReadWriteLock is similar to QMutex, except that it distinguishes
- between "read" and "write" access to shared data and allows
- multiple readers to access the data simultaneously. Using
- QReadWriteLock instead of QMutex when it is possible can make
- multithreaded programs more concurrent.
-
- QSemaphore is a generalization of QMutex that protects a certain
- number of identical resources. In contrast, a mutex protects
- exactly one resource. The \l{threads/semaphores}{Semaphores}
- example shows a typical application of semaphores: synchronizing
- access to a circular buffer between a producer and a consumer.
-
- QWaitCondition allows a thread to wake up other threads when some
- condition has been met. One or many threads can block waiting for
- a QWaitCondition to set a condition with
- \l{QWaitCondition::wakeOne()}{wakeOne()} or
- \l{QWaitCondition::wakeAll()}{wakeAll()}. Use
- \l{QWaitCondition::wakeOne()}{wakeOne()} to wake one randomly
- selected event or \l{QWaitCondition::wakeAll()}{wakeAll()} to
- wake them all. The \l{threads/waitconditions}{Wait Conditions}
- example shows how to solve the producer-consumer problem using
- QWaitCondition instead of QSemaphore.
-
- Note that Qt's synchronization classes rely on the use of properly
- aligned pointers. For instance, you cannot use packed classes with
- MSVC.
-*/
-
-/*!
- \page threads-reentrancy.html
- \title Reentrancy and Thread-Safety
-
- \keyword reentrant
- \keyword thread-safe
-
- \previouspage Synchronizing Threads
- \contentspage Thread Support in Qt
- \nextpage Threads and QObjects
-
- Throughout the documentation, the terms \e{reentrant} and
- \e{thread-safe} are used to mark classes and functions to indicate
- how they can be used in multithread applications:
-
- \list
- \li A \e thread-safe function can be called simultaneously from
- multiple threads, even when the invocations use shared data,
- because all references to the shared data are serialized.
- \li A \e reentrant function can also be called simultaneously from
- multiple threads, but only if each invocation uses its own data.
- \endlist
-
- Hence, a \e{thread-safe} function is always \e{reentrant}, but a
- \e{reentrant} function is not always \e{thread-safe}.
-
- By extension, a class is said to be \e{reentrant} if its member
- functions can be called safely from multiple threads, as long as
- each thread uses a \e{different} instance of the class. The class
- is \e{thread-safe} if its member functions can be called safely
- from multiple threads, even if all the threads use the \e{same}
- instance of the class.
-
- \note Qt classes are only documented as \e{thread-safe} if they
- are intended to be used by multiple threads. If a function is not
- marked as thread-safe or reentrant, it should not be used from
- different threads. If a class is not marked as thread-safe or
- reentrant then a specific instance of that class should not be
- accessed from different threads.
-
- \section1 Reentrancy
-
- C++ classes are often reentrant, simply because they only access
- their own member data. Any thread can call a member function on an
- instance of a reentrant class, as long as no other thread can call
- a member function on the \e{same} instance of the class at the
- same time. For example, the \c Counter class below is reentrant:
-
- \snippet doc/src/snippets/threads/threads.cpp 3
- \snippet doc/src/snippets/threads/threads.cpp 4
-
- The class isn't thread-safe, because if multiple threads try to
- modify the data member \c n, the result is undefined. This is
- because the \c ++ and \c -- operators aren't always atomic.
- Indeed, they usually expand to three machine instructions:
-
- \list 1
- \li Load the variable's value in a register.
- \li Increment or decrement the register's value.
- \li Store the register's value back into main memory.
- \endlist
-
- If thread A and thread B load the variable's old value
- simultaneously, increment their register, and store it back, they
- end up overwriting each other, and the variable is incremented
- only once!
-
- \section1 Thread-Safety
-
- Clearly, the access must be serialized: Thread A must perform
- steps 1, 2, 3 without interruption (atomically) before thread B
- can perform the same steps; or vice versa. An easy way to make
- the class thread-safe is to protect all access to the data
- members with a QMutex:
-
- \snippet doc/src/snippets/threads/threads.cpp 5
- \snippet doc/src/snippets/threads/threads.cpp 6
-
- The QMutexLocker class automatically locks the mutex in its
- constructor and unlocks it when the destructor is invoked, at the
- end of the function. Locking the mutex ensures that access from
- different threads will be serialized. The \c mutex data member is
- declared with the \c mutable qualifier because we need to lock
- and unlock the mutex in \c value(), which is a const function.
-
- \section1 Notes on Qt Classes
-
- Many Qt classes are \e{reentrant}, but they are not made
- \e{thread-safe}, because making them thread-safe would incur the
- extra overhead of repeatedly locking and unlocking a QMutex. For
- example, QString is reentrant but not thread-safe. You can safely
- access \e{different} instances of QString from multiple threads
- simultaneously, but you can't safely access the \e{same} instance
- of QString from multiple threads simultaneously (unless you
- protect the accesses yourself with a QMutex).
-
- Some Qt classes and functions are thread-safe. These are mainly
- the thread-related classes (e.g. QMutex) and fundamental functions
- (e.g. QCoreApplication::postEvent()).
-
- \note Terminology in the multithreading domain isn't entirely
- standardized. POSIX uses definitions of reentrant and thread-safe
- that are somewhat different for its C APIs. When using other
- object-oriented C++ class libraries with Qt, be sure the
- definitions are understood.
-*/
-
-/*!
- \page threads-qobject.html
- \title Threads and QObjects
-
- \previouspage Reentrancy and Thread Safety
- \contentspage Thread Support in Qt
- \nextpage Concurrent Programming
-
- QThread inherits QObject. It emits signals to indicate that the
- thread started or finished executing, and provides a few slots as
- well.
-
- More interesting is that \l{QObject}s can be used in multiple
- threads, emit signals that invoke slots in other threads, and
- post events to objects that "live" in other threads. This is
- possible because each thread is allowed to have its own event
- loop.
-
- \section1 QObject Reentrancy
-
- QObject is reentrant. Most of its non-GUI subclasses, such as
- QTimer, QTcpSocket, QUdpSocket and QProcess, are also
- reentrant, making it possible to use these classes from multiple
- threads simultaneously. Note that these classes are designed to be
- created and used from within a single thread; creating an object
- in one thread and calling its functions from another thread is not
- guaranteed to work. There are three constraints to be aware of:
-
- \list
- \li \e{The child of a QObject must always be created in the thread
- where the parent was created.} This implies, among other
- things, that you should never pass the QThread object (\c
- this) as the parent of an object created in the thread (since
- the QThread object itself was created in another thread).
-
- \li \e{Event driven objects may only be used in a single thread.}
- Specifically, this applies to the \l{timers.html}{timer
- mechanism} and the \l{QtNetwork}{network module}. For example,
- you cannot start a timer or connect a socket in a thread that
- is not the \l{QObject::thread()}{object's thread}.
-
- \li \e{You must ensure that all objects created in a thread are
- deleted before you delete the QThread.} This can be done
- easily by creating the objects on the stack in your
- \l{QThread::run()}{run()} implementation.
- \endlist
-
- Although QObject is reentrant, the GUI classes, notably QWidget
- and all its subclasses, are not reentrant. They can only be used
- from the main thread. As noted earlier, QCoreApplication::exec()
- must also be called from that thread.
-
- In practice, the impossibility of using GUI classes in other
- threads than the main thread can easily be worked around by
- putting time-consuming operations in a separate worker thread and
- displaying the results on screen in the main thread when the
- worker thread is finished. This is the approach used for
- implementing the \l{threads/mandelbrot}{Mandelbrot} and
- the \l{network/blockingfortuneclient}{Blocking Fortune Client}
- example.
-
- \section1 Per-Thread Event Loop
-
- Each thread can have its own event loop. The initial thread
- starts its event loops using QCoreApplication::exec(); other
- threads can start an event loop using QThread::exec(). Like
- QCoreApplication, QThread provides an
- \l{QThread::exit()}{exit(int)} function and a
- \l{QThread::quit()}{quit()} slot.
-
- An event loop in a thread makes it possible for the thread to use
- certain non-GUI Qt classes that require the presence of an event
- loop (such as QTimer, QTcpSocket, and QProcess). It also makes it
- possible to connect signals from any threads to slots of a
- specific thread. This is explained in more detail in the
- \l{Signals and Slots Across Threads} section below.
-
- \image threadsandobjects.png Threads, objects, and event loops
-
- A QObject instance is said to \e live in the thread in which it
- is created. Events to that object are dispatched by that thread's
- event loop. The thread in which a QObject lives is available using
- QObject::thread().
-
- Note that for QObjects that are created before QApplication,
- QObject::thread() returns zero. This means that the main thread
- will only handle posted events for these objects; other event
- processing is not done at all for objects with no thread. Use the
- QObject::moveToThread() function to change the thread affinity for
- an object and its children (the object cannot be moved if it has a
- parent).
-
- Calling \c delete on a QObject from a thread other than the one
- that \e owns the object (or accessing the object in other ways) is
- unsafe, unless you guarantee that the object isn't processing
- events at that moment. Use QObject::deleteLater() instead, and a
- \l{QEvent::DeferredDelete}{DeferredDelete} event will be posted,
- which the event loop of the object's thread will eventually pick
- up. By default, the thread that \e owns a QObject is the thread
- that \e creates the QObject, but not after QObject::moveToThread()
- has been called.
-
- If no event loop is running, events won't be delivered to the
- object. For example, if you create a QTimer object in a thread but
- never call \l{QThread::exec()}{exec()}, the QTimer will never emit
- its \l{QTimer::timeout()}{timeout()} signal. Calling
- \l{QObject::deleteLater()}{deleteLater()} won't work
- either. (These restrictions apply to the main thread as well.)
-
- You can manually post events to any object in any thread at any
- time using the thread-safe function
- QCoreApplication::postEvent(). The events will automatically be
- dispatched by the event loop of the thread where the object was
- created.
-
- Event filters are supported in all threads, with the restriction
- that the monitoring object must live in the same thread as the
- monitored object. Similarly, QCoreApplication::sendEvent()
- (unlike \l{QCoreApplication::postEvent()}{postEvent()}) can only
- be used to dispatch events to objects living in the thread from
- which the function is called.
-
- \section1 Accessing QObject Subclasses from Other Threads
-
- QObject and all of its subclasses are not thread-safe. This
- includes the entire event delivery system. It is important to keep
- in mind that the event loop may be delivering events to your
- QObject subclass while you are accessing the object from another
- thread.
-
- If you are calling a function on an QObject subclass that doesn't
- live in the current thread and the object might receive events,
- you must protect all access to your QObject subclass's internal
- data with a mutex; otherwise, you may experience crashes or other
- undesired behavior.
-
- Like other objects, QThread objects live in the thread where the
- object was created -- \e not in the thread that is created when
- QThread::run() is called. It is generally unsafe to provide slots
- in your QThread subclass, unless you protect the member variables
- with a mutex.
-
- On the other hand, you can safely emit signals from your
- QThread::run() implementation, because signal emission is
- thread-safe.
-
- \section1 Signals and Slots Across Threads
-
- Qt supports these signal-slot connection types:
-
- \list
-
- \li \l{Qt::AutoConnection}{Auto Connection} (default) If the signal is
- emitted in the thread which the receiving object has affinity then
- the behavior is the same as the Direct Connection. Otherwise,
- the behavior is the same as the Queued Connection."
-
- \li \l{Qt::DirectConnection}{Direct Connection} The slot is invoked
- immediately, when the signal is emitted. The slot is executed
- in the emitter's thread, which is not necessarily the
- receiver's thread.
-
- \li \l{Qt::QueuedConnection}{Queued Connection} The slot is invoked
- when control returns to the event loop of the receiver's
- thread. The slot is executed in the receiver's thread.
-
- \li \l{Qt::BlockingQueuedConnection}{Blocking Queued Connection}
- The slot is invoked as for the Queued Connection, except the
- current thread blocks until the slot returns. \note Using this
- type to connect objects in the same thread will cause deadlock.
-
- \li \l{Qt::UniqueConnection}{Unique Connection} The behavior is the
- same as the Auto Connection, but the connection is made only if
- it does not duplicate an existing connection. i.e., if the same
- signal is already connected to the same slot for the same pair
- of objects, then the connection is not made and connect()
- returns false.
-
- \endlist
-
- The connection type can be specified by passing an additional
- argument to \l{QObject::connect()}{connect()}. Be aware that
- using direct connections when the sender and receiver live in
- different threads is unsafe if an event loop is running in the
- receiver's thread, for the same reason that calling any function
- on an object living in another thread is unsafe.
-
- QObject::connect() itself is thread-safe.
-
- The \l{threads/mandelbrot}{Mandelbrot} example uses a queued
- connection to communicate between a worker thread and the main
- thread. To avoid freezing the main thread's event loop (and, as a
- consequence, the application's user interface), all the
- Mandelbrot fractal computation is done in a separate worker
- thread. The thread emits a signal when it is done rendering the
- fractal.
-
- Similarly, the \l{network/blockingfortuneclient}{Blocking Fortune
- Client} example uses a separate thread for communicating with
- a TCP server asynchronously.
-*/
-
-/*!
- \page threads-qtconcurrent.html
- \title Concurrent Programming
-
- \previouspage Threads and QObjects
- \contentspage Thread Support in Qt
- \nextpage Thread-Support in Qt Modules
-
- \target qtconcurrent intro
-
- The QtConcurrent namespace provides high-level APIs that make it
- possible to write multi-threaded programs without using low-level
- threading primitives such as mutexes, read-write locks, wait
- conditions, or semaphores. Programs written with QtConcurrent
- automatically adjust the number of threads used according to the
- number of processor cores available. This means that applications
- written today will continue to scale when deployed on multi-core
- systems in the future.
-
- QtConcurrent includes functional programming style APIs for
- parallel list processing, including a MapReduce and FilterReduce
- implementation for shared-memory (non-distributed) systems, and
- classes for managing asynchronous computations in GUI
- applications:
-
- \list
-
- \li QtConcurrent::map() applies a function to every item in a container,
- modifying the items in-place.
-
- \li QtConcurrent::mapped() is like map(), except that it returns a new
- container with the modifications.
-
- \li QtConcurrent::mappedReduced() is like mapped(), except that the
- modified results are reduced or folded into a single result.
-
- \li QtConcurrent::filter() removes all items from a container based on the
- result of a filter function.
-
- \li QtConcurrent::filtered() is like filter(), except that it returns a new
- container with the filtered results.
-
- \li QtConcurrent::filteredReduced() is like filtered(), except that the
- filtered results are reduced or folded into a single result.
-
- \li QtConcurrent::run() runs a function in another thread.
-
- \li QFuture represents the result of an asynchronous computation.
-
- \li QFutureIterator allows iterating through results available via QFuture.
-
- \li QFutureWatcher allows monitoring a QFuture using signals-and-slots.
-
- \li QFutureSynchronizer is a convenience class that automatically
- synchronizes several QFutures.
-
- \endlist
-
- Qt Concurrent supports several STL-compatible container and iterator types,
- but works best with Qt containers that have random-access iterators, such as
- QList or QVector. The map and filter functions accept both containers and begin/end iterators.
-
- STL Iterator support overview:
-
- \table
- \header
- \li Iterator Type
- \li Example classes
- \li Support status
- \row
- \li Input Iterator
- \li
- \li Not Supported
- \row
- \li Output Iterator
- \li
- \li Not Supported
- \row
- \li Forward Iterator
- \li std::slist
- \li Supported
- \row
- \li Bidirectional Iterator
- \li QLinkedList, std::list
- \li Supported
- \row
- \li Random Access Iterator
- \li QList, QVector, std::vector
- \li Supported and Recommended
- \endtable
-
- Random access iterators can be faster in cases where Qt Concurrent is iterating
- over a large number of lightweight items, since they allow skipping to any point
- in the container. In addition, using random access iterators allows Qt Concurrent
- to provide progress information trough QFuture::progressValue() and QFutureWatcher::
- progressValueChanged().
-
- The non in-place modifying functions such as mapped() and filtered() makes a
- copy of the container when called. If you are using STL containers this copy operation
- might take some time, in this case we recommend specifying the begin and end iterators
- for the container instead.
-*/
-
-/*!
- \page threads-modules.html
- \title Thread-Support in Qt Modules
-
- \previouspage Concurrent Programming
- \contentspage Thread Support in Qt
-
- \section1 Threads and the SQL Module
-
- A connection can only be used from within the thread that created it.
- Moving connections between threads or creating queries from a different
- thread is not supported.
-
- In addition, the third party libraries used by the QSqlDrivers can impose
- further restrictions on using the SQL Module in a multithreaded program.
- Consult the manual of your database client for more information
-
- \section1 Painting in Threads
-
- QPainter can be used in a thread to paint onto QImage, QPrinter, and
- QPicture paint devices. Painting onto QPixmaps and QWidgets is \e not
- supported. On Mac OS X the automatic progress dialog will not be
- displayed if you are printing from outside the GUI thread.
-
- Any number of threads can paint at any given time, however only
- one thread at a time can paint on a given paint device. In other
- words, two threads can paint at the same time if each paints onto
- separate QImages, but the two threads cannot paint onto the same
- QImage at the same time.
-
- Note that on X11 systems without FontConfig support, Qt cannot
- render text outside of the GUI thread. You can use the
- QFontDatabase::supportsThreadedFontRendering() function to detect
- whether or not font rendering can be used outside the GUI thread.
-
- \section1 Threads and Rich Text Processing
-
- The QTextDocument, QTextCursor, and \link richtext.html all
- related classes\endlink are reentrant.
-
- Note that a QTextDocument instance created in the GUI thread may
- contain QPixmap image resources. Use QTextDocument::clone() to
- create a copy of the document, and pass the copy to another thread for
- further processing (such as printing).
-
- \section1 Threads and the SVG module
-
- The QSvgGenerator and QSvgRenderer classes in the QtSvg module
- are reentrant.
-
- \section1 Threads and Implicitly Shared Classes
-
- Qt uses an optimization called \l{implicit sharing} for many of
- its value class, notably QImage and QString. Beginning with Qt 4,
- implicit shared classes can safely be copied across threads, like
- any other value classes. They are fully
- \l{Reentrancy and Thread-Safety}{reentrant}. The implicit sharing
- is really \e implicit.
-
- In many people's minds, implicit sharing and multithreading are
- incompatible concepts, because of the way the reference counting
- is typically done. Qt, however, uses atomic reference counting to
- ensure the integrity of the shared data, avoiding potential
- corruption of the reference counter.
-
- Note that atomic reference counting does not guarantee
- \l{Reentrancy and Thread-Safety}{thread-safety}. Proper locking should be used
- when sharing an instance of an implicitly shared class between
- threads. This is the same requirement placed on all
- \l{Reentrancy and Thread-Safety}{reentrant} classes, shared or not. Atomic reference
- counting does, however, guarantee that a thread working on its
- own, local instance of an implicitly shared class is safe. We
- recommend using \l{Signals and Slots Across Threads}{signals and
- slots} to pass data between threads, as this can be done without
- the need for any explicit locking.
-
- To sum it up, implicitly shared classes in Qt 4 are really \e
- implicitly shared. Even in multithreaded applications, you can
- safely use them as if they were plain, non-shared, reentrant
- value-based classes.
-*/
diff --git a/doc/src/images/abstract-connections.png b/doc/src/images/abstract-connections.png
deleted file mode 100644
index 18d2f4e3b7..0000000000
--- a/doc/src/images/abstract-connections.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/brush-styles.png b/doc/src/images/brush-styles.png
deleted file mode 100644
index eecb006af1..0000000000
--- a/doc/src/images/brush-styles.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-arrow.png b/doc/src/images/cursor-arrow.png
deleted file mode 100644
index a69ef4eb61..0000000000
--- a/doc/src/images/cursor-arrow.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-busy.png b/doc/src/images/cursor-busy.png
deleted file mode 100644
index 53717e4992..0000000000
--- a/doc/src/images/cursor-busy.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-closedhand.png b/doc/src/images/cursor-closedhand.png
deleted file mode 100644
index b78dd1dac5..0000000000
--- a/doc/src/images/cursor-closedhand.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-cross.png b/doc/src/images/cursor-cross.png
deleted file mode 100644
index fe38e74480..0000000000
--- a/doc/src/images/cursor-cross.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-forbidden.png b/doc/src/images/cursor-forbidden.png
deleted file mode 100644
index 2b08c4e2a3..0000000000
--- a/doc/src/images/cursor-forbidden.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-hand.png b/doc/src/images/cursor-hand.png
deleted file mode 100644
index d2004aefa7..0000000000
--- a/doc/src/images/cursor-hand.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-hsplit.png b/doc/src/images/cursor-hsplit.png
deleted file mode 100644
index a5667e3ffb..0000000000
--- a/doc/src/images/cursor-hsplit.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-ibeam.png b/doc/src/images/cursor-ibeam.png
deleted file mode 100644
index 097fc5fa72..0000000000
--- a/doc/src/images/cursor-ibeam.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-openhand.png b/doc/src/images/cursor-openhand.png
deleted file mode 100644
index 9181c859ed..0000000000
--- a/doc/src/images/cursor-openhand.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-sizeall.png b/doc/src/images/cursor-sizeall.png
deleted file mode 100644
index 69f13eb347..0000000000
--- a/doc/src/images/cursor-sizeall.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-sizeb.png b/doc/src/images/cursor-sizeb.png
deleted file mode 100644
index f37d7b91e8..0000000000
--- a/doc/src/images/cursor-sizeb.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-sizef.png b/doc/src/images/cursor-sizef.png
deleted file mode 100644
index 3b127a05d3..0000000000
--- a/doc/src/images/cursor-sizef.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-sizeh.png b/doc/src/images/cursor-sizeh.png
deleted file mode 100644
index a9f40cbc3d..0000000000
--- a/doc/src/images/cursor-sizeh.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-sizev.png b/doc/src/images/cursor-sizev.png
deleted file mode 100644
index 1edbab27a5..0000000000
--- a/doc/src/images/cursor-sizev.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-uparrow.png b/doc/src/images/cursor-uparrow.png
deleted file mode 100644
index d3e70ef4c2..0000000000
--- a/doc/src/images/cursor-uparrow.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-vsplit.png b/doc/src/images/cursor-vsplit.png
deleted file mode 100644
index 1beda2570e..0000000000
--- a/doc/src/images/cursor-vsplit.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-wait.png b/doc/src/images/cursor-wait.png
deleted file mode 100644
index 69056c479e..0000000000
--- a/doc/src/images/cursor-wait.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/cursor-whatsthis.png b/doc/src/images/cursor-whatsthis.png
deleted file mode 100644
index b47601c378..0000000000
--- a/doc/src/images/cursor-whatsthis.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/javaiterators1.png b/doc/src/images/javaiterators1.png
deleted file mode 100644
index 7dfcde0188..0000000000
--- a/doc/src/images/javaiterators1.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/javaiterators2.png b/doc/src/images/javaiterators2.png
deleted file mode 100644
index c04e3ccf88..0000000000
--- a/doc/src/images/javaiterators2.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelindex-no-parent.png b/doc/src/images/modelindex-no-parent.png
deleted file mode 100644
index 9c6258e5d1..0000000000
--- a/doc/src/images/modelindex-no-parent.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-begin-append-columns.png b/doc/src/images/modelview-begin-append-columns.png
deleted file mode 100644
index 8d13b178d8..0000000000
--- a/doc/src/images/modelview-begin-append-columns.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-begin-append-rows.png b/doc/src/images/modelview-begin-append-rows.png
deleted file mode 100644
index 50d04c3e67..0000000000
--- a/doc/src/images/modelview-begin-append-rows.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-begin-insert-columns.png b/doc/src/images/modelview-begin-insert-columns.png
deleted file mode 100644
index 30eeb8280e..0000000000
--- a/doc/src/images/modelview-begin-insert-columns.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-begin-insert-rows.png b/doc/src/images/modelview-begin-insert-rows.png
deleted file mode 100644
index b4d6eda57d..0000000000
--- a/doc/src/images/modelview-begin-insert-rows.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-begin-remove-columns.png b/doc/src/images/modelview-begin-remove-columns.png
deleted file mode 100644
index aee60e01ec..0000000000
--- a/doc/src/images/modelview-begin-remove-columns.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-begin-remove-rows.png b/doc/src/images/modelview-begin-remove-rows.png
deleted file mode 100644
index 8e9518718e..0000000000
--- a/doc/src/images/modelview-begin-remove-rows.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-move-rows-1.png b/doc/src/images/modelview-move-rows-1.png
deleted file mode 100644
index b629a72dd4..0000000000
--- a/doc/src/images/modelview-move-rows-1.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-move-rows-2.png b/doc/src/images/modelview-move-rows-2.png
deleted file mode 100644
index 674ca18f78..0000000000
--- a/doc/src/images/modelview-move-rows-2.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-move-rows-3.png b/doc/src/images/modelview-move-rows-3.png
deleted file mode 100644
index 5445dd599c..0000000000
--- a/doc/src/images/modelview-move-rows-3.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/modelview-move-rows-4.png b/doc/src/images/modelview-move-rows-4.png
deleted file mode 100644
index ecd65bac6c..0000000000
--- a/doc/src/images/modelview-move-rows-4.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inback.png b/doc/src/images/qeasingcurve-inback.png
deleted file mode 100644
index 0064cb341c..0000000000
--- a/doc/src/images/qeasingcurve-inback.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inbounce.png b/doc/src/images/qeasingcurve-inbounce.png
deleted file mode 100644
index eaa64f8c41..0000000000
--- a/doc/src/images/qeasingcurve-inbounce.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-incirc.png b/doc/src/images/qeasingcurve-incirc.png
deleted file mode 100644
index 7bd0f09d41..0000000000
--- a/doc/src/images/qeasingcurve-incirc.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-incubic.png b/doc/src/images/qeasingcurve-incubic.png
deleted file mode 100644
index 1ac9eafba5..0000000000
--- a/doc/src/images/qeasingcurve-incubic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inelastic.png b/doc/src/images/qeasingcurve-inelastic.png
deleted file mode 100644
index f976b5a576..0000000000
--- a/doc/src/images/qeasingcurve-inelastic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inexpo.png b/doc/src/images/qeasingcurve-inexpo.png
deleted file mode 100644
index 1af3652985..0000000000
--- a/doc/src/images/qeasingcurve-inexpo.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutback.png b/doc/src/images/qeasingcurve-inoutback.png
deleted file mode 100644
index 480bc051ef..0000000000
--- a/doc/src/images/qeasingcurve-inoutback.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutbounce.png b/doc/src/images/qeasingcurve-inoutbounce.png
deleted file mode 100644
index de623091cf..0000000000
--- a/doc/src/images/qeasingcurve-inoutbounce.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutcirc.png b/doc/src/images/qeasingcurve-inoutcirc.png
deleted file mode 100644
index b4be8ac21e..0000000000
--- a/doc/src/images/qeasingcurve-inoutcirc.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutcubic.png b/doc/src/images/qeasingcurve-inoutcubic.png
deleted file mode 100644
index 49dfbef1b6..0000000000
--- a/doc/src/images/qeasingcurve-inoutcubic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutelastic.png b/doc/src/images/qeasingcurve-inoutelastic.png
deleted file mode 100644
index 5b0e54a019..0000000000
--- a/doc/src/images/qeasingcurve-inoutelastic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutexpo.png b/doc/src/images/qeasingcurve-inoutexpo.png
deleted file mode 100644
index 776984a113..0000000000
--- a/doc/src/images/qeasingcurve-inoutexpo.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutquad.png b/doc/src/images/qeasingcurve-inoutquad.png
deleted file mode 100644
index 264333085a..0000000000
--- a/doc/src/images/qeasingcurve-inoutquad.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutquart.png b/doc/src/images/qeasingcurve-inoutquart.png
deleted file mode 100644
index 31fc0c8852..0000000000
--- a/doc/src/images/qeasingcurve-inoutquart.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutquint.png b/doc/src/images/qeasingcurve-inoutquint.png
deleted file mode 100644
index 4d7a745be6..0000000000
--- a/doc/src/images/qeasingcurve-inoutquint.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inoutsine.png b/doc/src/images/qeasingcurve-inoutsine.png
deleted file mode 100644
index 012ff751c9..0000000000
--- a/doc/src/images/qeasingcurve-inoutsine.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inquad.png b/doc/src/images/qeasingcurve-inquad.png
deleted file mode 100644
index e697c208a5..0000000000
--- a/doc/src/images/qeasingcurve-inquad.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inquart.png b/doc/src/images/qeasingcurve-inquart.png
deleted file mode 100644
index 6d6517551e..0000000000
--- a/doc/src/images/qeasingcurve-inquart.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-inquint.png b/doc/src/images/qeasingcurve-inquint.png
deleted file mode 100644
index faaaea71fd..0000000000
--- a/doc/src/images/qeasingcurve-inquint.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-insine.png b/doc/src/images/qeasingcurve-insine.png
deleted file mode 100644
index 09449034b5..0000000000
--- a/doc/src/images/qeasingcurve-insine.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-linear.png b/doc/src/images/qeasingcurve-linear.png
deleted file mode 100644
index fb3aaf3541..0000000000
--- a/doc/src/images/qeasingcurve-linear.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outback.png b/doc/src/images/qeasingcurve-outback.png
deleted file mode 100644
index 83b3fa233f..0000000000
--- a/doc/src/images/qeasingcurve-outback.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outbounce.png b/doc/src/images/qeasingcurve-outbounce.png
deleted file mode 100644
index 27ac979642..0000000000
--- a/doc/src/images/qeasingcurve-outbounce.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outcirc.png b/doc/src/images/qeasingcurve-outcirc.png
deleted file mode 100644
index 00193700e0..0000000000
--- a/doc/src/images/qeasingcurve-outcirc.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outcubic.png b/doc/src/images/qeasingcurve-outcubic.png
deleted file mode 100644
index 45477c045a..0000000000
--- a/doc/src/images/qeasingcurve-outcubic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outelastic.png b/doc/src/images/qeasingcurve-outelastic.png
deleted file mode 100644
index 1d407ed845..0000000000
--- a/doc/src/images/qeasingcurve-outelastic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outexpo.png b/doc/src/images/qeasingcurve-outexpo.png
deleted file mode 100644
index 56851554ed..0000000000
--- a/doc/src/images/qeasingcurve-outexpo.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinback.png b/doc/src/images/qeasingcurve-outinback.png
deleted file mode 100644
index 4700ab02e8..0000000000
--- a/doc/src/images/qeasingcurve-outinback.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinbounce.png b/doc/src/images/qeasingcurve-outinbounce.png
deleted file mode 100644
index 12cc1a8bd4..0000000000
--- a/doc/src/images/qeasingcurve-outinbounce.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outincirc.png b/doc/src/images/qeasingcurve-outincirc.png
deleted file mode 100644
index c8a5c86a23..0000000000
--- a/doc/src/images/qeasingcurve-outincirc.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outincubic.png b/doc/src/images/qeasingcurve-outincubic.png
deleted file mode 100644
index 42af870d99..0000000000
--- a/doc/src/images/qeasingcurve-outincubic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinelastic.png b/doc/src/images/qeasingcurve-outinelastic.png
deleted file mode 100644
index 308be57900..0000000000
--- a/doc/src/images/qeasingcurve-outinelastic.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinexpo.png b/doc/src/images/qeasingcurve-outinexpo.png
deleted file mode 100644
index 0692baa264..0000000000
--- a/doc/src/images/qeasingcurve-outinexpo.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinquad.png b/doc/src/images/qeasingcurve-outinquad.png
deleted file mode 100644
index 9e3cd83896..0000000000
--- a/doc/src/images/qeasingcurve-outinquad.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinquart.png b/doc/src/images/qeasingcurve-outinquart.png
deleted file mode 100644
index 9a3c16f122..0000000000
--- a/doc/src/images/qeasingcurve-outinquart.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinquint.png b/doc/src/images/qeasingcurve-outinquint.png
deleted file mode 100644
index add9feb26f..0000000000
--- a/doc/src/images/qeasingcurve-outinquint.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outinsine.png b/doc/src/images/qeasingcurve-outinsine.png
deleted file mode 100644
index 4bc2aaf9e3..0000000000
--- a/doc/src/images/qeasingcurve-outinsine.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outquad.png b/doc/src/images/qeasingcurve-outquad.png
deleted file mode 100644
index c505ff9e7b..0000000000
--- a/doc/src/images/qeasingcurve-outquad.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outquart.png b/doc/src/images/qeasingcurve-outquart.png
deleted file mode 100644
index 6eac058d18..0000000000
--- a/doc/src/images/qeasingcurve-outquart.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outquint.png b/doc/src/images/qeasingcurve-outquint.png
deleted file mode 100644
index 77a9ad417f..0000000000
--- a/doc/src/images/qeasingcurve-outquint.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qeasingcurve-outsine.png b/doc/src/images/qeasingcurve-outsine.png
deleted file mode 100644
index d135b2f98c..0000000000
--- a/doc/src/images/qeasingcurve-outsine.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qimage-scaling.png b/doc/src/images/qimage-scaling.png
deleted file mode 100644
index fcd71448f0..0000000000
--- a/doc/src/images/qimage-scaling.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qline-coordinates.png b/doc/src/images/qline-coordinates.png
deleted file mode 100644
index ac4fb980ac..0000000000
--- a/doc/src/images/qline-coordinates.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qline-point.png b/doc/src/images/qline-point.png
deleted file mode 100644
index 3bc3664a20..0000000000
--- a/doc/src/images/qline-point.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qlinef-angle-identicaldirection.png b/doc/src/images/qlinef-angle-identicaldirection.png
deleted file mode 100644
index 18d632321b..0000000000
--- a/doc/src/images/qlinef-angle-identicaldirection.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qlinef-angle-oppositedirection.png b/doc/src/images/qlinef-angle-oppositedirection.png
deleted file mode 100644
index bf52cfe011..0000000000
--- a/doc/src/images/qlinef-angle-oppositedirection.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qlinef-bounded.png b/doc/src/images/qlinef-bounded.png
deleted file mode 100644
index 136dd50304..0000000000
--- a/doc/src/images/qlinef-bounded.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qlinef-normalvector.png b/doc/src/images/qlinef-normalvector.png
deleted file mode 100644
index b7d944f32f..0000000000
--- a/doc/src/images/qlinef-normalvector.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qlinef-unbounded.png b/doc/src/images/qlinef-unbounded.png
deleted file mode 100644
index 75ead98ff2..0000000000
--- a/doc/src/images/qlinef-unbounded.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-bevel.png b/doc/src/images/qpen-bevel.png
deleted file mode 100644
index 8a30779e3b..0000000000
--- a/doc/src/images/qpen-bevel.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-custom.png b/doc/src/images/qpen-custom.png
deleted file mode 100644
index a2a038abe0..0000000000
--- a/doc/src/images/qpen-custom.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-dash.png b/doc/src/images/qpen-dash.png
deleted file mode 100644
index 67082c3758..0000000000
--- a/doc/src/images/qpen-dash.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-dashdot.png b/doc/src/images/qpen-dashdot.png
deleted file mode 100644
index 64b384660f..0000000000
--- a/doc/src/images/qpen-dashdot.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-dashdotdot.png b/doc/src/images/qpen-dashdotdot.png
deleted file mode 100644
index ff1b2e69cd..0000000000
--- a/doc/src/images/qpen-dashdotdot.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-dot.png b/doc/src/images/qpen-dot.png
deleted file mode 100644
index 54e81c9469..0000000000
--- a/doc/src/images/qpen-dot.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-flat.png b/doc/src/images/qpen-flat.png
deleted file mode 100644
index 06e2195f73..0000000000
--- a/doc/src/images/qpen-flat.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-miter.png b/doc/src/images/qpen-miter.png
deleted file mode 100644
index 025e003979..0000000000
--- a/doc/src/images/qpen-miter.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-roundcap.png b/doc/src/images/qpen-roundcap.png
deleted file mode 100644
index 77b22b2bab..0000000000
--- a/doc/src/images/qpen-roundcap.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-roundjoin.png b/doc/src/images/qpen-roundjoin.png
deleted file mode 100644
index 155e2aa8cc..0000000000
--- a/doc/src/images/qpen-roundjoin.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-solid.png b/doc/src/images/qpen-solid.png
deleted file mode 100644
index e042b18017..0000000000
--- a/doc/src/images/qpen-solid.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qpen-square.png b/doc/src/images/qpen-square.png
deleted file mode 100644
index ebc5d1e329..0000000000
--- a/doc/src/images/qpen-square.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrect-coordinates.png b/doc/src/images/qrect-coordinates.png
deleted file mode 100644
index 2a2dae2d6c..0000000000
--- a/doc/src/images/qrect-coordinates.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrect-diagram-one.png b/doc/src/images/qrect-diagram-one.png
deleted file mode 100644
index a893be277a..0000000000
--- a/doc/src/images/qrect-diagram-one.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrect-diagram-three.png b/doc/src/images/qrect-diagram-three.png
deleted file mode 100644
index 84fb35be6c..0000000000
--- a/doc/src/images/qrect-diagram-three.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrect-diagram-two.png b/doc/src/images/qrect-diagram-two.png
deleted file mode 100644
index e19caacc34..0000000000
--- a/doc/src/images/qrect-diagram-two.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrect-diagram-zero.png b/doc/src/images/qrect-diagram-zero.png
deleted file mode 100644
index 90e3db0c41..0000000000
--- a/doc/src/images/qrect-diagram-zero.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrect-intersect.png b/doc/src/images/qrect-intersect.png
deleted file mode 100644
index db68cd53ad..0000000000
--- a/doc/src/images/qrect-intersect.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrect-unite.png b/doc/src/images/qrect-unite.png
deleted file mode 100644
index 3f6239f405..0000000000
--- a/doc/src/images/qrect-unite.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrectf-coordinates.png b/doc/src/images/qrectf-coordinates.png
deleted file mode 100644
index ccc6d82063..0000000000
--- a/doc/src/images/qrectf-coordinates.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrectf-diagram-one.png b/doc/src/images/qrectf-diagram-one.png
deleted file mode 100644
index 842289ce07..0000000000
--- a/doc/src/images/qrectf-diagram-one.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrectf-diagram-three.png b/doc/src/images/qrectf-diagram-three.png
deleted file mode 100644
index e05106a7e1..0000000000
--- a/doc/src/images/qrectf-diagram-three.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qrectf-diagram-two.png b/doc/src/images/qrectf-diagram-two.png
deleted file mode 100644
index 192d00df79..0000000000
--- a/doc/src/images/qrectf-diagram-two.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qsortfilterproxymodel-sorting.png b/doc/src/images/qsortfilterproxymodel-sorting.png
deleted file mode 100644
index de99d41272..0000000000
--- a/doc/src/images/qsortfilterproxymodel-sorting.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qurl-authority.png b/doc/src/images/qurl-authority.png
deleted file mode 100644
index 54de2a792e..0000000000
--- a/doc/src/images/qurl-authority.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qurl-authority2.png b/doc/src/images/qurl-authority2.png
deleted file mode 100644
index fe8d4d87b2..0000000000
--- a/doc/src/images/qurl-authority2.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qurl-authority3.png b/doc/src/images/qurl-authority3.png
deleted file mode 100644
index 242063e935..0000000000
--- a/doc/src/images/qurl-authority3.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qurl-fragment.png b/doc/src/images/qurl-fragment.png
deleted file mode 100644
index e93a252e7a..0000000000
--- a/doc/src/images/qurl-fragment.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qurl-ftppath.png b/doc/src/images/qurl-ftppath.png
deleted file mode 100644
index d88df4922b..0000000000
--- a/doc/src/images/qurl-ftppath.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qurl-mailtopath.png b/doc/src/images/qurl-mailtopath.png
deleted file mode 100644
index 34ec153b74..0000000000
--- a/doc/src/images/qurl-mailtopath.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/qurl-querystring.png b/doc/src/images/qurl-querystring.png
deleted file mode 100644
index 7c3309a5ac..0000000000
--- a/doc/src/images/qurl-querystring.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/stliterators1.png b/doc/src/images/stliterators1.png
deleted file mode 100644
index 6d71e4712f..0000000000
--- a/doc/src/images/stliterators1.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/thread_clock.png b/doc/src/images/thread_clock.png
deleted file mode 100644
index b8a8aa0a39..0000000000
--- a/doc/src/images/thread_clock.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/threadsandobjects.png b/doc/src/images/threadsandobjects.png
deleted file mode 100644
index 8357d2532a..0000000000
--- a/doc/src/images/threadsandobjects.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/images/threadvisual-example.png b/doc/src/images/threadvisual-example.png
deleted file mode 100644
index 2a49874719..0000000000
--- a/doc/src/images/threadvisual-example.png
+++ /dev/null
Binary files differ
diff --git a/doc/src/network/files-and-resources/datastreamformat.qdoc b/doc/src/network/files-and-resources/datastreamformat.qdoc
deleted file mode 100644
index 8ff31371a2..0000000000
--- a/doc/src/network/files-and-resources/datastreamformat.qdoc
+++ /dev/null
@@ -1,373 +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:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** 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$
-**
-****************************************************************************/
-
-/*!
- \page datastreamformat.html
- \title Serializing Qt Data Types
- \ingroup qt-network
- \brief Representations of data types that can be serialized by QDataStream.
-
- The \l QDataStream allows you to serialize some of the Qt data types.
- The table below lists the data types that QDataStream can serialize
- and how they are represented. The format described below is
- \l{QDataStream::setVersion()}{version 12}.
-
- It is always best to cast integers to a Qt integer type, such as
- qint16 or quint32, when reading and writing. This ensures that
- you always know exactly what size integers you are reading and
- writing, no matter what the underlying platform and architecture
- the application happens to be running on.
-
- \table
- \row \li bool
- \li \list
- \li boolean
- \endlist
- \row \li qint8
- \li \list
- \li signed byte
- \endlist
- \row \li qint16
- \li \list
- \li signed 16-bit integer
- \endlist
- \row \li qint32
- \li \list
- \li signed 32-bit integer
- \endlist
- \row \li qint64
- \li \list
- \li signed 64-bit integer
- \endlist
- \row \li quint8
- \li \list
- \li unsigned byte
- \endlist
- \row \li quint16
- \li \list
- \li unsigned 16-bit integer
- \endlist
- \row \li quint32
- \li \list
- \li unsigned 32-bit integer
- \endlist
- \row \li quint64
- \li \list
- \li unsigned 64-bit integer
- \endlist
- \row \li \c float
- \li \list
- \li 32-bit floating point number using the standard IEEE 754 format
- \endlist
- \row \li \c double
- \li \list
- \li 64-bit floating point number using the standard IEEE 754 format
- \endlist
- \row \li \c {const char *}
- \li \list
- \li The string length (quint32)
- \li The string bytes, excluding the terminating 0
- \endlist
- \row \li QBitArray
- \li \list
- \li The array size (quint32)
- \li The array bits, i.e. (size + 7)/8 bytes
- \endlist
- \row \li QBrush
- \li \list
- \li The brush style (quint8)
- \li The brush color (QColor)
- \li If style is CustomPattern, the brush pixmap (QPixmap)
- \endlist
- \row \li QByteArray
- \li \list
- \li If the byte array is null: 0xFFFFFFFF (quint32)
- \li Otherwise: the array size (quint32) followed by the array bytes, i.e. size bytes
- \endlist
- \row \li \l QColor
- \li \list
- \li Color spec (qint8)
- \li Alpha value (quint16)
- \li Red value (quint16)
- \li Green value (quint16)
- \li Blue value (quint16)
- \li Pad value (quint16)
- \endlist
- \row \li QCursor
- \li \list
- \li Shape ID (qint16)
- \li If shape is BitmapCursor: The bitmap (QPixmap), mask (QPixmap), and hot spot (QPoint)
- \endlist
- \row \li QDate
- \li \list
- \li Julian day (quint32)
- \endlist
- \row \li QDateTime
- \li \list
- \li Date (QDate)
- \li Time (QTime)
- \li 0 for Qt::LocalTime, 1 for Qt::UTC (quint8)
- \endlist
- \row \li QEasingCurve
- \li \list
- \li type (quint8)
- \li func (quint64)
- \li hasConfig (bool)
- \li If hasConfig is true then these fields follow:
- \li list
- \li period (double)
- \li amplitude (double)
- \li overshoot (double)
- \endlist
- \row \li QFont
- \li \list
- \li The family (QString)
- \li The point size (qint16)
- \li The style hint (quint8)
- \li The char set (quint8)
- \li The weight (quint8)
- \li The font bits (quint8)
- \endlist
- \row \li QHash<Key, T>
- \li \list
- \li The number of items (quint32)
- \li For all items, the key (Key) and value (T)
- \endlist
- \row \li QIcon
- \li \list
- \li The number of pixmap entries (quint32)
- \li For all pixmap entries:
- \list
- \li The pixmap (QPixmap)
- \li The file name (QString)
- \li The pixmap size (QSize)
- \li The \l{QIcon::Mode}{mode} (quint32)
- \li The \l{QIcon::State}{state} (quint32)
- \endlist
- \endlist
- \row \li QImage
- \li \list
- \li If the image is null a "null image" marker is saved;
- otherwise the image is saved in PNG or BMP format (depending
- on the stream version). If you want control of the format,
- stream the image into a QBuffer (using QImageIO) and stream
- that.
- \endlist
- \row \li QKeySequence
- \li \list
- \li A QList<int>, where each integer is a key in the key sequence
- \endlist
- \row \li QLinkedList<T>
- \li \list
- \li The number of items (quint32)
- \li The items (T)
- \endlist
- \row \li QList<T>
- \li \list
- \li The number of items (quint32)
- \li The items (T)
- \endlist
- \row \li QMap<Key, T>
- \li \list
- \li The number of items (quint32)
- \li For all items, the key (Key) and value (T)
- \endlist
- \row \li QMargins
- \li \list
- \li left (int)
- \li top (int)
- \li right (int)
- \li bottom (int)
- \endlist
- \row \li QMatrix
- \li \list
- \li m11 (double)
- \li m12 (double)
- \li m21 (double)
- \li m22 (double)
- \li dx (double)
- \li dy (double)
- \endlist
- \row \li QMatrix4x4
- \li \list
- \li m11 (double)
- \li m12 (double)
- \li m13 (double)
- \li m14 (double)
- \li m21 (double)
- \li m22 (double)
- \li m23 (double)
- \li m24 (double)
- \li m31 (double)
- \li m32 (double)
- \li m33 (double)
- \li m34 (double)
- \li m41 (double)
- \li m42 (double)
- \li m43 (double)
- \li m44 (double)
- \endlist
- \row \li QPair<T1, T2>
- \li \list
- \li first (T1)
- \li second (T2)
- \endlist
- \row \li QPalette
- \li The disabled, active, and inactive color groups, each of which consists
- of the following:
- \list
- \li foreground (QBrush)
- \li button (QBrush)
- \li light (QBrush)
- \li midlight (QBrush)
- \li dark (QBrush)
- \li mid (QBrush)
- \li text (QBrush)
- \li brightText (QBrush)
- \li buttonText (QBrush)
- \li base (QBrush)
- \li background (QBrush)
- \li shadow (QBrush)
- \li highlight (QBrush)
- \li highlightedText (QBrush)
- \li link (QBrush)
- \li linkVisited (QBrush)
- \endlist
- \row \li QPen
- \li \list
- \li The pen styles (quint8)
- \li The pen width (quint16)
- \li The pen color (QColor)
- \endlist
- \row \li QPicture
- \li \list
- \li The size of the picture data (quint32)
- \li The raw bytes of picture data (char)
- \endlist
- \row \li QPixmap
- \li \list
- \li Save it as a PNG image.
- \endlist
- \row \li QPoint
- \li \list
- \li The x coordinate (qint32)
- \li The y coordinate (qint32)
- \endlist
- \row \li QQuaternion
- \li \list
- \li The scalar component (double)
- \li The x coordinate (double)
- \li The y coordinate (double)
- \li The z coordinate (double)
- \endlist
- \row \li QRect
- \li \list
- \li left (qint32)
- \li top (qint32)
- \li right (qint32)
- \li bottom (qint32)
- \endlist
- \row \li QRegExp
- \li \list
- \li The regexp pattern (QString)
- \li Case sensitivity (quint8)
- \li Regular expression syntax (quint8)
- \li Minimal matching (quint8)
- \endlist
- \row \li QRegularExpression
- \li \list
- \li The regular expression pattern (QString)
- \li The pattern options (quint32)
- \endlist
- \row \li QRegion
- \li \list
- \li The size of the data, i.e. 8 + 16 * (number of rectangles) (quint32)
- \li 10 (qint32)
- \li The number of rectangles (quint32)
- \li The rectangles in sequential order (QRect)
- \endlist
- \row \li QSize
- \li \list
- \li width (qint32)
- \li height (qint32)
- \endlist
- \row \li QString
- \li \list
- \li If the string is null: 0xFFFFFFFF (quint32)
- \li Otherwise: The string length in bytes (quint32) followed by the data in UTF-16
- \endlist
- \row \li QTime
- \li \list
- \li Milliseconds since midnight (quint32)
- \endlist
- \row \li QTransform
- \li \list
- \li m11 (double)
- \li m12 (double)
- \li m13 (double)
- \li m21 (double)
- \li m22 (double)
- \li m23 (double)
- \li m31 (double)
- \li m32 (double)
- \li m33 (double)
- \endlist
- \row \li QUrl
- \li \list
- \li Holds an URL (QString)
- \endlist
- \row \li QVariant
- \li \list
- \li The type of the data (quint32)
- \li The null flag (qint8)
- \li The data of the specified type
- \endlist
- \row \li QVector2D
- \li \list
- \li the x coordinate (double)
- \li the y coordinate (double)
- \endlist
- \row \li QVector3D
- \li \list
- \li the x coordinate (double)
- \li the y coordinate (double)
- \li the z coordinate (double)
- \endlist
- \row \li QVector4D
- \li \list
- \li the x coordinate (double)
- \li the y coordinate (double)
- \li the z coordinate (double)
- \li the w coordinate (double)
- \endlist
- \row \li QVector<T>
- \li \list
- \li The number of items (quint32)
- \li The items (T)
- \endlist
- \endtable
-*/
diff --git a/doc/src/snippets/buffer/buffer.cpp b/doc/src/snippets/buffer/buffer.cpp
deleted file mode 100644
index 681fb56791..0000000000
--- a/doc/src/snippets/buffer/buffer.cpp
+++ /dev/null
@@ -1,124 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QBuffer>
-#include <QPalette>
-
-static void main_snippet()
-{
-//! [0]
- QBuffer buffer;
- char ch;
-
- buffer.open(QBuffer::ReadWrite);
- buffer.write("Qt rocks!");
- buffer.seek(0);
- buffer.getChar(&ch); // ch == 'Q'
- buffer.getChar(&ch); // ch == 't'
- buffer.getChar(&ch); // ch == ' '
- buffer.getChar(&ch); // ch == 'r'
-//! [0]
-}
-
-static void write_datastream_snippets()
-{
-//! [1]
- QByteArray byteArray;
- QBuffer buffer(&byteArray);
- buffer.open(QIODevice::WriteOnly);
-
- QDataStream out(&buffer);
- out << QApplication::palette();
-//! [1]
-}
-
-static void read_datastream_snippets()
-{
- QByteArray byteArray;
-
-//! [2]
- QPalette palette;
- QBuffer buffer(&byteArray);
- buffer.open(QIODevice::ReadOnly);
-
- QDataStream in(&buffer);
- in >> palette;
-//! [2]
-}
-
-static void bytearray_ptr_ctor_snippet()
-{
-//! [3]
- QByteArray byteArray("abc");
- QBuffer buffer(&byteArray);
- buffer.open(QIODevice::WriteOnly);
- buffer.seek(3);
- buffer.write("def", 3);
- buffer.close();
- // byteArray == "abcdef"
-//! [3]
-}
-
-static void setBuffer_snippet()
-{
-//! [4]
- QByteArray byteArray("abc");
- QBuffer buffer;
- buffer.setBuffer(&byteArray);
- buffer.open(QIODevice::WriteOnly);
- buffer.seek(3);
- buffer.write("def", 3);
- buffer.close();
- // byteArray == "abcdef"
-//! [4]
-}
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-
- main_snippet();
- bytearray_ptr_ctor_snippet();
- write_datastream_snippets();
- read_datastream_snippets();
- setBuffer_snippet();
- return 0;
-}
diff --git a/doc/src/snippets/code/doc_src_containers.cpp b/doc/src/snippets/code/doc_src_containers.cpp
deleted file mode 100644
index c74b0f79dc..0000000000
--- a/doc/src/snippets/code/doc_src_containers.cpp
+++ /dev/null
@@ -1,275 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-class Employee
-{
-public:
- Employee() {}
- Employee(const Employee &other);
-
- Employee &operator=(const Employee &other);
-
-private:
- QString myName;
- QDate myDateOfBirth;
-};
-//! [0]
-
-
-//! [1]
-QList<QString> list;
-list << "A" << "B" << "C" << "D";
-
-QListIterator<QString> i(list);
-while (i.hasNext())
- qDebug() << i.next();
-//! [1]
-
-
-//! [2]
-QListIterator<QString> i(list);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [2]
-
-
-//! [3]
-QMutableListIterator<int> i(list);
-while (i.hasNext()) {
- if (i.next() % 2 != 0)
- i.remove();
-}
-//! [3]
-
-
-//! [4]
-QMutableListIterator<int> i(list);
-i.toBack();
-while (i.hasPrevious()) {
- if (i.previous() % 2 != 0)
- i.remove();
-}
-//! [4]
-
-
-//! [5]
-QMutableListIterator<int> i(list);
-while (i.hasNext()) {
- if (i.next() > 128)
- i.setValue(128);
-}
-//! [5]
-
-
-//! [6]
-QMutableListIterator<int> i(list);
-while (i.hasNext())
- i.next() *= 2;
-//! [6]
-
-
-//! [7]
-QMap<QString, QString> map;
-map.insert("Paris", "France");
-map.insert("Guatemala City", "Guatemala");
-map.insert("Mexico City", "Mexico");
-map.insert("Moscow", "Russia");
-...
-
-QMutableMapIterator<QString, QString> i(map);
-while (i.hasNext()) {
- if (i.next().key().endsWith("City"))
- i.remove();
-}
-//! [7]
-
-
-//! [8]
-QMap<int, QWidget *> map;
-QHash<int, QWidget *> hash;
-
-QMapIterator<int, QWidget *> i(map);
-while (i.hasNext()) {
- i.next();
- hash.insert(i.key(), i.value());
-}
-//! [8]
-
-
-//! [9]
-QMutableMapIterator<int, QWidget *> i(map);
-while (i.findNext(widget))
- i.remove();
-//! [9]
-
-
-//! [10]
-QList<QString> list;
-list << "A" << "B" << "C" << "D";
-
-QList<QString>::iterator i;
-for (i = list.begin(); i != list.end(); ++i)
- *i = (*i).toLower();
-//! [10]
-
-
-//! [11]
-QList<QString> list;
-list << "A" << "B" << "C" << "D";
-
-QList<QString>::iterator i = list.end();
-while (i != list.begin()) {
- --i;
- *i = (*i).toLower();
-}
-//! [11]
-
-
-//! [12]
-QList<QString>::const_iterator i;
-for (i = list.constBegin(); i != list.constEnd(); ++i)
- qDebug() << *i;
-//! [12]
-
-
-//! [13]
-QMap<int, int> map;
-...
-QMap<int, int>::const_iterator i;
-for (i = map.constBegin(); i != map.constEnd(); ++i)
- qDebug() << i.key() << ":" << i.value();
-//! [13]
-
-
-//! [14]
-// RIGHT
-const QList<int> sizes = splitter->sizes();
-QList<int>::const_iterator i;
-for (i = sizes.begin(); i != sizes.end(); ++i)
- ...
-
-// WRONG
-QList<int>::const_iterator i;
-for (i = splitter->sizes().begin();
- i != splitter->sizes().end(); ++i)
- ...
-//! [14]
-
-
-//! [15]
-QLinkedList<QString> list;
-...
-QString str;
-foreach (str, list)
- qDebug() << str;
-//! [15]
-
-
-//! [16]
-QLinkedList<QString> list;
-...
-QLinkedListIterator<QString> i(list);
-while (i.hasNext())
- qDebug() << i.next();
-//! [16]
-
-
-//! [17]
-QLinkedList<QString> list;
-...
-foreach (const QString &str, list)
- qDebug() << str;
-//! [17]
-
-
-//! [18]
-QLinkedList<QString> list;
-...
-foreach (const QString &str, list) {
- if (str.isEmpty())
- break;
- qDebug() << str;
-}
-//! [18]
-
-
-//! [19]
-QMap<QString, int> map;
-...
-foreach (const QString &str, map.keys())
- qDebug() << str << ":" << map.value(str);
-//! [19]
-
-
-//! [20]
-QMultiMap<QString, int> map;
-...
-foreach (const QString &str, map.uniqueKeys()) {
- foreach (int i, map.values(str))
- qDebug() << str << ":" << i;
-}
-//! [20]
-
-
-//! [21]
-forever {
- ...
-}
-//! [21]
-
-
-//! [22]
-CONFIG += no_keywords
-//! [22]
-
-
-//! [23]
-QString onlyLetters(const QString &in)
-{
- QString out;
- for (int j = 0; j < in.size(); ++j) {
- if (in[j].isLetter())
- out += in[j];
- }
- return out;
-}
-//! [23]
diff --git a/doc/src/snippets/code/doc_src_groups.cpp b/doc/src/snippets/code/doc_src_groups.cpp
deleted file mode 100644
index abfbfc59c0..0000000000
--- a/doc/src/snippets/code/doc_src_groups.cpp
+++ /dev/null
@@ -1,66 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-void QPen::setStyle(Qt::PenStyle style)
-{
- detach(); // detach from common data
- d->style = style; // set the style member
-}
-
-void QPen::detach()
-{
- if (d->ref != 1) {
- ... // perform a deep copy
- }
-}
-//! [0]
-
-
-//! [1]
-QPixmap p1, p2;
-p1.load("image.bmp");
-p2 = p1; // p1 and p2 share data
-
-QPainter paint;
-paint.begin(&p2); // cuts p2 loose from p1
-paint.drawText(0,50, "Hi");
-paint.end();
-//! [1]
diff --git a/doc/src/snippets/code/doc_src_objecttrees.cpp b/doc/src/snippets/code/doc_src_objecttrees.cpp
deleted file mode 100644
index 62d556057b..0000000000
--- a/doc/src/snippets/code/doc_src_objecttrees.cpp
+++ /dev/null
@@ -1,60 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//![0]
-int main()
-{
- QWidget window;
- QPushButton quit("Quit", &window);
- ...
-}
-//![0]
-
-
-//![1]
-int main()
-{
- QPushButton quit("Quit");
- QWidget window;
-
- quit.setParent(&window);
- ...
-}
-//![1]
diff --git a/doc/src/snippets/code/doc_src_properties.cpp b/doc/src/snippets/code/doc_src_properties.cpp
deleted file mode 100644
index b88fc22084..0000000000
--- a/doc/src/snippets/code/doc_src_properties.cpp
+++ /dev/null
@@ -1,132 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-Q_PROPERTY(type name
- READ getFunction
- [WRITE setFunction]
- [RESET resetFunction]
- [NOTIFY notifySignal]
- [REVISION int]
- [DESIGNABLE bool]
- [SCRIPTABLE bool]
- [STORED bool]
- [USER bool]
- [CONSTANT]
- [FINAL])
-//! [0]
-
-
-//! [1]
-Q_PROPERTY(bool focus READ hasFocus)
-Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
-Q_PROPERTY(QCursor cursor READ cursor WRITE setCursor RESET unsetCursor)
-//! [1]
-
-
-//! [2]
-Q_PROPERTY(QDate date READ getDate WRITE setDate)
-//! [2]
-
-
-//! [3]
-QPushButton *button = new QPushButton;
-QObject *object = button;
-
-button->setDown(true);
-object->setProperty("down", true);
-//! [3]
-
-
-//! [4]
-QObject *object = ...
-const QMetaObject *metaobject = object->metaObject();
-int count = metaobject->propertyCount();
-for (int i=0; i<count; ++i) {
- QMetaProperty metaproperty = metaobject->property(i);
- const char *name = metaproperty.name();
- QVariant value = object->property(name);
- ...
-}
-//! [4]
-
-
-//! [5]
-class MyClass : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)
- Q_ENUMS(Priority)
-
-public:
- MyClass(QObject *parent = 0);
- ~MyClass();
-
- enum Priority { High, Low, VeryHigh, VeryLow };
-
- void setPriority(Priority priority)
- {
- m_priority = priority;
- emit priorityChanged(priority);
- }
- Priority priority() const
- { return m_priority; }
-
-signals:
- void priorityChanged(Priority);
-
-private:
- Priority m_priority;
-};
-//! [5]
-
-
-//! [6]
-MyClass *myinstance = new MyClass;
-QObject *object = myinstance;
-
-myinstance->setPriority(MyClass::VeryHigh);
-object->setProperty("priority", "VeryHigh");
-//! [6]
-
-
-//! [7]
-Q_CLASSINFO("Version", "3.0.0")
-//! [7]
diff --git a/doc/src/snippets/code/doc_src_qalgorithms.cpp b/doc/src/snippets/code/doc_src_qalgorithms.cpp
deleted file mode 100644
index 20e64b61fa..0000000000
--- a/doc/src/snippets/code/doc_src_qalgorithms.cpp
+++ /dev/null
@@ -1,354 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QStringList list;
-list << "one" << "two" << "three";
-
-qFill(list.begin(), list.end(), "eleven");
-// list: [ "eleven", "eleven", "eleven" ]
-//! [0]
-
-
-//! [1]
-qFill(list.begin() + 1, list.end(), "six");
-// list: [ "eleven", "six", "six" ]
-//! [1]
-
-
-//! [2]
-QChar resolveEntity(const QString &entity)
-{
- static const QLatin1String name_table[] = {
- "AElig", "Aacute", ..., "zwnj"
- };
- static const ushort value_table[] = {
- 0x0061, 0x00c1, ..., 0x200c
- };
- int N = sizeof(name_table) / sizeof(name_table[0]);
-
- const QLatin1String *name = qBinaryFind(name_table, name_table + N,
- entity);
- int index = name - name_table;
- if (index == N)
- return QChar();
-
- return QChar(value_table[index]);
-}
-//! [2]
-
-
-//! [3]
-QChar resolveEntity(const QString &entity)
-{
- static QMap<QString, int> entityMap;
-
- if (!entityMap) {
- entityMap.insert("AElig", 0x0061);
- entityMap.insert("Aacute", 0x00c1);
- ...
- entityMap.insert("zwnj", 0x200c);
- }
- return QChar(entityMap.value(entity));
-}
-//! [3]
-
-
-//! [4]
-QStringList list;
-list << "one" << "two" << "three";
-
-QVector<QString> vect1(3);
-qCopy(list.begin(), list.end(), vect1.begin());
-// vect: [ "one", "two", "three" ]
-
-QVector<QString> vect2(8);
-qCopy(list.begin(), list.end(), vect2.begin() + 2);
-// vect: [ "", "", "one", "two", "three", "", "", "" ]
-//! [4]
-
-
-//! [5]
-QStringList list;
-list << "one" << "two" << "three";
-
-QVector<QString> vect(5);
-qCopyBackward(list.begin(), list.end(), vect.end());
-// vect: [ "", "", "one", "two", "three" ]
-//! [5]
-
-
-//! [6]
-QStringList list;
-list << "one" << "two" << "three";
-
-QVector<QString> vect(3);
-vect[0] = "one";
-vect[1] = "two";
-vect[2] = "three";
-
-bool ret1 = qEqual(list.begin(), list.end(), vect.begin());
-// ret1 == true
-
-vect[2] = "seven";
-bool ret2 = qEqual(list.begin(), list.end(), vect.begin());
-// ret2 == false
-//! [6]
-
-
-//! [7]
-QStringList list;
-list << "one" << "two" << "three";
-
-qFill(list.begin(), list.end(), "eleven");
-// list: [ "eleven", "eleven", "eleven" ]
-
-qFill(list.begin() + 1, list.end(), "six");
-// list: [ "eleven", "six", "six" ]
-//! [7]
-
-
-//! [8]
-QStringList list;
-list << "one" << "two" << "three";
-
-QStringList::iterator i1 = qFind(list.begin(), list.end(), "two");
-// i1 == list.begin() + 1
-
-QStringList::iterator i2 = qFind(list.begin(), list.end(), "seventy");
-// i2 == list.end()
-//! [8]
-
-
-//! [9]
-QList<int> list;
-list << 3 << 3 << 6 << 6 << 6 << 8;
-
-int countOf6 = 0;
-qCount(list.begin(), list.end(), 6, countOf6);
-// countOf6 == 3
-
-int countOf7 = 0;
-qCount(list.begin(), list.end(), 7, countOf7);
-// countOf7 == 0
-//! [9]
-
-
-//! [10]
-double pi = 3.14;
-double e = 2.71;
-
-qSwap(pi, e);
-// pi == 2.71, e == 3.14
-//! [10]
-
-
-//! [11]
-QList<int> list;
-list << 33 << 12 << 68 << 6 << 12;
-qSort(list.begin(), list.end());
-// list: [ 6, 12, 12, 33, 68 ]
-//! [11]
-
-
-//! [12]
-bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
-{
- return s1.toLower() < s2.toLower();
-}
-
-int doSomething()
-{
- QStringList list;
- list << "AlPha" << "beTA" << "gamma" << "DELTA";
- qSort(list.begin(), list.end(), caseInsensitiveLessThan);
- // list: [ "AlPha", "beTA", "DELTA", "gamma" ]
-}
-//! [12]
-
-
-//! [13]
-QList<int> list;
-list << 33 << 12 << 68 << 6 << 12;
-qSort(list.begin(), list.end(), qGreater<int>());
-// list: [ 68, 33, 12, 12, 6 ]
-//! [13]
-
-
-//! [14]
-QStringList list;
-list << "AlPha" << "beTA" << "gamma" << "DELTA";
-
-QMap<QString, QString> map;
-foreach (const QString &str, list)
- map.insert(str.toLower(), str);
-
-list = map.values();
-//! [14]
-
-
-//! [15]
-QList<int> list;
-list << 33 << 12 << 68 << 6 << 12;
-qStableSort(list.begin(), list.end());
-// list: [ 6, 12, 12, 33, 68 ]
-//! [15]
-
-
-//! [16]
-bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
-{
- return s1.toLower() < s2.toLower();
-}
-
-int doSomething()
-{
- QStringList list;
- list << "AlPha" << "beTA" << "gamma" << "DELTA";
- qStableSort(list.begin(), list.end(), caseInsensitiveLessThan);
- // list: [ "AlPha", "beTA", "DELTA", "gamma" ]
-}
-//! [16]
-
-
-//! [17]
-QList<int> list;
-list << 33 << 12 << 68 << 6 << 12;
-qStableSort(list.begin(), list.end(), qGreater<int>());
-// list: [ 68, 33, 12, 12, 6 ]
-//! [17]
-
-
-//! [18]
-QList<int> list;
-list << 3 << 3 << 6 << 6 << 6 << 8;
-
-QList<int>::iterator i = qLowerBound(list.begin(), list.end(), 5);
-list.insert(i, 5);
-// list: [ 3, 3, 5, 6, 6, 6, 8 ]
-
-i = qLowerBound(list.begin(), list.end(), 12);
-list.insert(i, 12);
-// list: [ 3, 3, 5, 6, 6, 6, 8, 12 ]
-//! [18]
-
-
-//! [19]
-QVector<int> vect;
-vect << 3 << 3 << 6 << 6 << 6 << 8;
-QVector<int>::iterator begin6 =
- qLowerBound(vect.begin(), vect.end(), 6);
-QVector<int>::iterator end6 =
- qUpperBound(begin6, vect.end(), 6);
-
-QVector<int>::iterator i = begin6;
-while (i != end6) {
- *i = 7;
- ++i;
-}
-// vect: [ 3, 3, 7, 7, 7, 8 ]
-//! [19]
-
-
-//! [20]
-QList<int> list;
-list << 3 << 3 << 6 << 6 << 6 << 8;
-
-QList<int>::iterator i = qUpperBound(list.begin(), list.end(), 5);
-list.insert(i, 5);
-// list: [ 3, 3, 5, 6, 6, 6, 8 ]
-
-i = qUpperBound(list.begin(), list.end(), 12);
-list.insert(i, 12);
-// list: [ 3, 3, 5, 6, 6, 6, 8, 12 ]
-//! [20]
-
-
-//! [21]
-QVector<int> vect;
-vect << 3 << 3 << 6 << 6 << 6 << 8;
-QVector<int>::iterator begin6 =
- qLowerBound(vect.begin(), vect.end(), 6);
-QVector<int>::iterator end6 =
- qUpperBound(vect.begin(), vect.end(), 6);
-
-QVector<int>::iterator i = begin6;
-while (i != end6) {
- *i = 7;
- ++i;
-}
-// vect: [ 3, 3, 7, 7, 7, 8 ]
-//! [21]
-
-
-//! [22]
-QVector<int> vect;
-vect << 3 << 3 << 6 << 6 << 6 << 8;
-
-QVector<int>::iterator i =
- qBinaryFind(vect.begin(), vect.end(), 6);
-// i == vect.begin() + 2 (or 3 or 4)
-//! [22]
-
-
-//! [23]
-QList<Employee *> list;
-list.append(new Employee("Blackpool", "Stephen"));
-list.append(new Employee("Twist", "Oliver"));
-
-qDeleteAll(list.begin(), list.end());
-list.clear();
-//! [23]
-
-
-//! [24]
-QList<int> list;
-list << 33 << 12 << 68 << 6 << 12;
-qSort(list.begin(), list.end(), qLess<int>());
-// list: [ 6, 12, 12, 33, 68 ]
-//! [24]
-
-
-//! [25]
-QList<int> list;
-list << 33 << 12 << 68 << 6 << 12;
-qSort(list.begin(), list.end(), qGreater<int>());
-// list: [ 68, 33, 12, 12, 6 ]
-//! [25]
diff --git a/doc/src/snippets/code/doc_src_qcache.cpp b/doc/src/snippets/code/doc_src_qcache.cpp
deleted file mode 100644
index 0ba9e65531..0000000000
--- a/doc/src/snippets/code/doc_src_qcache.cpp
+++ /dev/null
@@ -1,57 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QCache<int, Employee> cache;
-//! [0]
-
-
-//! [1]
-Employee *employee = new Employee;
-employee->setId(37);
-employee->setName("Richard Schmit");
-...
-cache.insert(employee->id(), employee);
-//! [1]
-
-
-//! [2]
-QCache<int, MyDataStructure> cache(5000);
-//! [2]
diff --git a/doc/src/snippets/code/doc_src_qiterator.cpp b/doc/src/snippets/code/doc_src_qiterator.cpp
deleted file mode 100644
index b96f9065cb..0000000000
--- a/doc/src/snippets/code/doc_src_qiterator.cpp
+++ /dev/null
@@ -1,420 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QList<float> list;
-...
-QListIterator<float> i(list);
-while (i.hasNext())
- qDebug() << i.next();
-//! [0]
-
-
-//! [1]
-QListIterator<float> i(list);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [1]
-
-
-//! [2]
-QLinkedList<float> list;
-...
-QLinkedListIterator<float> i(list);
-while (i.hasNext())
- qDebug() << i.next();
-//! [2]
-
-
-//! [3]
-QLinkedListIterator<float> i(list);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [3]
-
-
-//! [4]
-QVector<float> vector;
-...
-QVectorIterator<float> i(vector);
-while (i.hasNext())
- qDebug() << i.next();
-//! [4]
-
-
-//! [5]
-QVectorIterator<float> i(vector);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [5]
-
-
-//! [6]
-QSet<QString> set;
-...
-QSetIterator<QString> i(set);
-while (i.hasNext())
- qDebug() << i.next();
-//! [6]
-
-
-//! [7]
-QSetIterator<QString> i(set);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [7]
-
-
-//! [8]
-QList<float> list;
-...
-QMutableListIterator<float> i(list);
-while (i.hasNext())
- qDebug() << i.next();
-//! [8]
-
-
-//! [9]
-QMutableListIterator<float> i(list);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [9]
-
-
-//! [10]
-QMutableListIterator<int> i(list);
-while (i.hasNext()) {
- int val = i.next();
- if (val < 0) {
- i.setValue(-val);
- } else if (val == 0) {
- i.remove();
- }
-}
-//! [10]
-
-
-//! [11]
-QLinkedList<float> list;
-...
-QMutableLinkedListIterator<float> i(list);
-while (i.hasNext())
- qDebug() << i.next();
-//! [11]
-
-
-//! [12]
-QMutableLinkedListIterator<float> i(list);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [12]
-
-
-//! [13]
-QMutableLinkedListIterator<int> i(list);
-while (i.hasNext()) {
- int val = i.next();
- if (val < 0) {
- i.setValue(-val);
- } else if (val == 0) {
- i.remove();
- }
-}
-//! [13]
-
-
-//! [14]
-QVector<float> vector;
-...
-QMutableVectorIterator<float> i(vector);
-while (i.hasNext())
- qDebug() << i.next();
-//! [14]
-
-
-//! [15]
-QMutableVectorIterator<float> i(vector);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [15]
-
-
-//! [16]
-QMutableVectorIterator<int> i(vector);
-while (i.hasNext()) {
- int val = i.next();
- if (val < 0) {
- i.setValue(-val);
- } else if (val == 0) {
- i.remove();
- }
-}
-//! [16]
-
-
-//! [17]
-QSet<float> set;
-...
-QMutableSetIterator<float> i(set);
-while (i.hasNext())
- qDebug() << i.next();
-//! [17]
-
-
-//! [18]
-QMutableSetIterator<float> i(set);
-i.toBack();
-while (i.hasPrevious())
- qDebug() << i.previous();
-//! [18]
-
-
-//! [19]
-QMutableListIterator<int> i(list);
-while (i.hasNext()) {
- int val = i.next();
- if (val < -32768 || val > 32767)
- i.remove();
-}
-//! [19]
-
-
-//! [20]
-QMutableLinkedListIterator<int> i(list);
-while (i.hasNext()) {
- int val = i.next();
- if (val < -32768 || val > 32767)
- i.remove();
-}
-//! [20]
-
-
-//! [21]
-QMutableVectorIterator<int> i(vector);
-while (i.hasNext()) {
- int val = i.next();
- if (val < -32768 || val > 32767)
- i.remove();
-}
-//! [21]
-
-
-//! [22]
-QMutableSetIterator<int> i(set);
-while (i.hasNext()) {
- int val = i.next();
- if (val < -32768 || val > 32767)
- i.remove();
-}
-//! [22]
-
-
-//! [23]
-QMutableListIterator<double> i(list);
-while (i.hasNext()) {
- double val = i.next();
- i.setValue(sqrt(val));
-}
-//! [23]
-
-
-//! [24]
-QMutableLinkedListIterator<double> i(list);
-while (i.hasNext()) {
- double val = i.next();
- i.setValue(sqrt(val));
-}
-//! [24]
-
-
-//! [25]
-QMutableVectorIterator<double> i(list);
-while (i.hasNext()) {
- double val = i.next();
- i.setValue(sqrt(val));
-}
-//! [25]
-
-
-//! [26]
-QMap<int, QWidget *> map;
-...
-QMapIterator<int, QWidget *> i(map);
-while (i.hasNext()) {
- i.next();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [26]
-
-
-//! [27]
-QMapIterator<int, QWidget *> i(map);
-i.toBack();
-while (i.hasPrevious()) {
- i.previous();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [27]
-
-
-//! [28]
-QMapIterator<int, QWidget *> i(map);
-while (i.findNext(widget)) {
- qDebug() << "Found widget " << widget << " under key "
- << i.key();
-}
-//! [28]
-
-
-//! [29]
-QHash<int, QWidget *> hash;
-...
-QHashIterator<int, QWidget *> i(hash);
-while (i.hasNext()) {
- i.next();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [29]
-
-
-//! [30]
-QHashIterator<int, QWidget *> i(hash);
-i.toBack();
-while (i.hasPrevious()) {
- i.previous();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [30]
-
-
-//! [31]
-QHashIterator<int, QWidget *> i(hash);
-while (i.findNext(widget)) {
- qDebug() << "Found widget " << widget << " under key "
- << i.key();
-}
-//! [31]
-
-
-//! [32]
-QMap<int, QWidget *> map;
-...
-QMutableMapIterator<int, QWidget *> i(map);
-while (i.hasNext()) {
- i.next();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [32]
-
-
-//! [33]
-QMutableMapIterator<int, QWidget *> i(map);
-i.toBack();
-while (i.hasPrevious()) {
- i.previous();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [33]
-
-
-//! [34]
-QMutableMapIterator<int, QWidget *> i(map);
-while (i.findNext(widget)) {
- qDebug() << "Found widget " << widget << " under key "
- << i.key();
-}
-//! [34]
-
-
-//! [35]
-QMutableMapIterator<QString, QString> i(map);
-while (i.hasNext()) {
- i.next();
- if (i.key() == i.value())
- i.remove();
-}
-//! [35]
-
-
-//! [36]
-QHash<int, QWidget *> hash;
-...
-QMutableHashIterator<QString, QWidget *> i(hash);
-while (i.hasNext()) {
- i.next();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [36]
-
-
-//! [37]
-QMutableHashIterator<int, QWidget *> i(hash);
-i.toBack();
-while (i.hasPrevious()) {
- i.previous();
- qDebug() << i.key() << ": " << i.value();
-}
-//! [37]
-
-
-//! [38]
-QMutableHashIterator<int, QWidget *> i(hash);
-while (i.findNext(widget)) {
- qDebug() << "Found widget " << widget << " under key "
- << i.key();
-}
-//! [38]
-
-
-//! [39]
-QMutableHashIterator<QString, QString> i(hash);
-while (i.hasNext()) {
- i.next();
- if (i.key() == i.value())
- i.remove();
-}
-//! [39]
diff --git a/doc/src/snippets/code/doc_src_qnamespace.cpp b/doc/src/snippets/code/doc_src_qnamespace.cpp
deleted file mode 100644
index ec80d011c9..0000000000
--- a/doc/src/snippets/code/doc_src_qnamespace.cpp
+++ /dev/null
@@ -1,59 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [1]
-enum CustomEventPriority
-{
- // An important event
- ImportantEventPriority = Qt::HighEventPriority,
-
- // A more important event
- MoreImportantEventPriority = ImportantEventPriority + 1,
-
- // A critical event
- CriticalEventPriority = 100 * MoreImportantEventPriority,
-
- // Not that important
- StatusEventPriority = Qt::LowEventPriority,
-
- // These are less important than Status events
- IdleProcessingDoneEventPriority = StatusEventPriority - 1
-};
-//! [1]
diff --git a/doc/src/snippets/code/doc_src_qnamespace.qdoc b/doc/src/snippets/code/doc_src_qnamespace.qdoc
deleted file mode 100644
index e67b83a292..0000000000
--- a/doc/src/snippets/code/doc_src_qnamespace.qdoc
+++ /dev/null
@@ -1,43 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QObject::connect: Cannot queue arguments of type 'MyType'
-//! [0]
diff --git a/doc/src/snippets/code/doc_src_qpair.cpp b/doc/src/snippets/code/doc_src_qpair.cpp
deleted file mode 100644
index a29b6d02b2..0000000000
--- a/doc/src/snippets/code/doc_src_qpair.cpp
+++ /dev/null
@@ -1,55 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QPair<QString, double> pair;
-//! [0]
-
-
-//! [1]
-pair.first = "pi";
-pair.second = 3.14159265358979323846;
-//! [1]
-
-
-//! [2]
-QList<QPair<int, double> > list;
-list.append(qMakePair(66, 3.14159));
-//! [2]
diff --git a/doc/src/snippets/code/doc_src_qplugin.cpp b/doc/src/snippets/code/doc_src_qplugin.cpp
deleted file mode 100644
index 1577b2fa61..0000000000
--- a/doc/src/snippets/code/doc_src_qplugin.cpp
+++ /dev/null
@@ -1,64 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-namespace Foo
-{
- struct MyInterface { ... };
-}
-
-Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")
-//! [0]
-
-
-//! [1]
-Q_EXPORT_PLUGIN2(pnp_extrafilters, ExtraFiltersPlugin)
-//! [1]
-
-
-//! [2]
-Q_IMPORT_PLUGIN(qjpeg)
-//! [2]
-
-
-//! [3]
-TEMPLATE = app
-QTPLUGIN += qjpeg qgif # image formats
-//! [3]
diff --git a/doc/src/snippets/code/doc_src_qplugin.pro b/doc/src/snippets/code/doc_src_qplugin.pro
deleted file mode 100644
index e5e5311e5d..0000000000
--- a/doc/src/snippets/code/doc_src_qplugin.pro
+++ /dev/null
@@ -1,44 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#! [3]
-TEMPLATE = app
-QTPLUGIN += qjpeg qgif # image formats
-#! [3]
diff --git a/doc/src/snippets/code/doc_src_qset.cpp b/doc/src/snippets/code/doc_src_qset.cpp
deleted file mode 100644
index cfd366f639..0000000000
--- a/doc/src/snippets/code/doc_src_qset.cpp
+++ /dev/null
@@ -1,166 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QSet<QString> set;
-//! [0]
-
-
-//! [1]
-set.insert("one");
-set.insert("three");
-set.insert("seven");
-//! [1]
-
-
-//! [2]
-set << "twelve" << "fifteen" << "nineteen";
-//! [2]
-
-
-//! [3]
-if (!set.contains("ninety-nine"))
- ...
-//! [3]
-
-
-//! [4]
-QSetIterator<QWidget *> i(set);
-while (i.hasNext())
- qDebug() << i.next();
-//! [4]
-
-
-//! [5]
-QSet<QWidget *>::const_iterator i = set.constBegin();
-while (i != set.constEnd()) {
- qDebug() << *i;
- ++i;
-}
-//! [5]
-
-
-//! [6]
-QSet<QString> set;
-...
-foreach (const QString &value, set)
- qDebug() << value;
-//! [6]
-
-
-//! [7]
-QSet<QString> set;
-set.reserve(20000);
-for (int i = 0; i < 20000; ++i)
- set.insert(values[i]);
-//! [7]
-
-
-//! [8]
-QSet<QString> set;
-set << "January" << "February" << ... << "December";
-
-QSet<QString>::iterator i;
-for (i = set.begin(); i != set.end(); ++i)
- qDebug() << *i;
-//! [8]
-
-
-//! [9]
-QSet<QString> set;
-set << "January" << "February" << ... << "December";
-
-QSet<QString>::iterator i = set.begin();
-while (i != set.end()) {
- if ((*i).startsWith('J')) {
- i = set.erase(i);
- } else {
- ++i;
- }
-}
-//! [9]
-
-
-//! [10]
-QSet<QString> set;
-...
-QSet<QString>::iterator it = qFind(set.begin(), set.end(), "Jeanette");
-if (it != set.end())
- cout << "Found Jeanette" << endl;
-//! [10]
-
-
-//! [11]
-QSet<QString> set;
-set << "January" << "February" << ... << "December";
-
-QSet<QString>::const_iterator i;
-for (i = set.begin(); i != set.end(); ++i)
- qDebug() << *i;
-//! [11]
-
-
-//! [12]
-QSet<QString> set;
-...
-QSet<QString>::iterator it = qFind(set.begin(), set.end(), "Jeanette");
-if (it != set.constEnd())
- cout << "Found Jeanette" << endl;
-//! [12]
-
-
-//! [13]
-QSet<QString> set;
-set << "red" << "green" << "blue" << ... << "black";
-
-QList<QString> list = set.toList();
-qSort(list);
-//! [13]
-
-
-//! [14]
-QStringList list;
-list << "Julia" << "Mike" << "Mike" << "Julia" << "Julia";
-
-QSet<QString> set = QSet<QString>::fromList(list);
-set.contains("Julia"); // returns true
-set.contains("Mike"); // returns true
-set.size(); // returns 2
-//! [14]
diff --git a/doc/src/snippets/code/doc_src_qtcore.cpp b/doc/src/snippets/code/doc_src_qtcore.cpp
deleted file mode 100644
index f00c96c6df..0000000000
--- a/doc/src/snippets/code/doc_src_qtcore.cpp
+++ /dev/null
@@ -1,43 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-#include <QtCore>
-//! [0]
diff --git a/doc/src/snippets/code/doc_src_qvarlengtharray.cpp b/doc/src/snippets/code/doc_src_qvarlengtharray.cpp
deleted file mode 100644
index 027faa41dc..0000000000
--- a/doc/src/snippets/code/doc_src_qvarlengtharray.cpp
+++ /dev/null
@@ -1,78 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-int myfunc(int n)
-{
- int table[n + 1]; // WRONG
- ...
- return table[n];
-}
-//! [0]
-
-
-//! [1]
-int myfunc(int n)
-{
- int *table = new int[n + 1];
- ...
- int ret = table[n];
- delete[] table;
- return ret;
-}
-//! [1]
-
-
-//! [2]
-int myfunc(int n)
-{
- QVarLengthArray<int, 1024> array(n + 1);
- ...
- return array[n];
-}
-//! [2]
-
-
-//! [3]
-QVarLengthArray<int> array(10);
-int *data = array.data();
-for (int i = 0; i < 10; ++i)
- data[i] = 2 * i;
-//! [3]
diff --git a/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp b/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp
deleted file mode 100644
index 78abd5ba28..0000000000
--- a/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp
+++ /dev/null
@@ -1,75 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QByteArray encodedString = "...";
-QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
-QString string = codec->toUnicode(encodedString);
-//! [0]
-
-
-//! [1]
-QString string = "...";
-QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
-QByteArray encodedString = codec->fromUnicode(string);
-//! [1]
-
-
-//! [2]
-QTextCodec *codec = QTextCodec::codecForName("Shift-JIS");
-QTextDecoder *decoder = codec->makeDecoder();
-
-QString string;
-while (new_data_available()) {
- QByteArray chunk = get_new_data();
- string += decoder->toUnicode(chunk);
-}
-delete decoder;
-//! [2]
-
-
-//! [3]
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- QTextCodec::setCodecForTr(QTextCodec::codecForName("eucKR"));
- ...
-}
-//! [3]
diff --git a/doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp b/doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp
deleted file mode 100644
index a8f9da3a7c..0000000000
--- a/doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp
+++ /dev/null
@@ -1,53 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-class HelloWorldTask : public QRunnable
-{
- void run()
- {
- qDebug() << "Hello world from thread" << QThread::currentThread();
- }
-}
-
-HelloWorldTask *hello = new HelloWorldTask();
-// QThreadPool takes ownership and deletes 'hello' automatically
-QThreadPool::globalInstance()->start(hello);
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_global_qglobal.cpp b/doc/src/snippets/code/src_corelib_global_qglobal.cpp
deleted file mode 100644
index 16f6783a52..0000000000
--- a/doc/src/snippets/code/src_corelib_global_qglobal.cpp
+++ /dev/null
@@ -1,585 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-label->setAlignment(Qt::AlignLeft | Qt::AlignTop);
-//! [0]
-
-
-//! [1]
-class MyClass
-{
-public:
- enum Option {
- NoOptions = 0x0,
- ShowTabs = 0x1,
- ShowAll = 0x2,
- SqueezeBlank = 0x4
- };
- Q_DECLARE_FLAGS(Options, Option)
- ...
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(MyClass::Options)
-//! [1]
-
-//! [meta-object flags]
-Q_FLAGS(Options)
-//! [meta-object flags]
-
-//! [2]
-typedef QFlags<Enum> Flags;
-//! [2]
-
-
-//! [3]
-int myValue = 10;
-int minValue = 2;
-int maxValue = 6;
-
-int boundedValue = qBound(minValue, myValue, maxValue);
-// boundedValue == 6
-//! [3]
-
-
-//! [4]
-if (!driver()->isOpen() || driver()->isOpenError()) {
- qWarning("QSqlQuery::exec: database not open");
- return false;
-}
-//! [4]
-
-
-//! [5]
-qint64 value = Q_INT64_C(932838457459459);
-//! [5]
-
-
-//! [6]
-quint64 value = Q_UINT64_C(932838457459459);
-//! [6]
-
-
-//! [7]
-void myMsgHandler(QtMsgType, const char *);
-//! [7]
-
-
-//! [8]
-qint64 value = Q_INT64_C(932838457459459);
-//! [8]
-
-
-//! [9]
-quint64 value = Q_UINT64_C(932838457459459);
-//! [9]
-
-
-//! [10]
-int absoluteValue;
-int myValue = -4;
-
-absoluteValue = qAbs(myValue);
-// absoluteValue == 4
-//! [10]
-
-
-//! [11]
-qreal valueA = 2.3;
-qreal valueB = 2.7;
-
-int roundedValueA = qRound(valueA);
-// roundedValueA = 2
-int roundedValueB = qRound(valueB);
-// roundedValueB = 3
-//! [11]
-
-
-//! [12]
-qreal valueA = 42949672960.3;
-qreal valueB = 42949672960.7;
-
-int roundedValueA = qRound(valueA);
-// roundedValueA = 42949672960
-int roundedValueB = qRound(valueB);
-// roundedValueB = 42949672961
-//! [12]
-
-
-//! [13]
-int myValue = 6;
-int yourValue = 4;
-
-int minValue = qMin(myValue, yourValue);
-// minValue == yourValue
-//! [13]
-
-
-//! [14]
-int myValue = 6;
-int yourValue = 4;
-
-int maxValue = qMax(myValue, yourValue);
-// maxValue == myValue
-//! [14]
-
-
-//! [15]
-int myValue = 10;
-int minValue = 2;
-int maxValue = 6;
-
-int boundedValue = qBound(minValue, myValue, maxValue);
-// boundedValue == 6
-//! [15]
-
-
-//! [16]
-#if QT_VERSION >= 0x040100
- QIcon icon = style()->standardIcon(QStyle::SP_TrashIcon);
-#else
- QPixmap pixmap = style()->standardPixmap(QStyle::SP_TrashIcon);
- QIcon icon(pixmap);
-#endif
-//! [16]
-
-
-//! [17]
-// File: div.cpp
-
-#include <QtGlobal>
-
-int divide(int a, int b)
-{
- Q_ASSERT(b != 0);
- return a / b;
-}
-//! [17]
-
-
-//! [18]
-ASSERT: "b == 0" in file div.cpp, line 7
-//! [18]
-
-
-//! [19]
-// File: div.cpp
-
-#include <QtGlobal>
-
-int divide(int a, int b)
-{
- Q_ASSERT_X(b != 0, "divide", "division by zero");
- return a / b;
-}
-//! [19]
-
-
-//! [20]
-ASSERT failure in divide: "division by zero", file div.cpp, line 7
-//! [20]
-
-
-//! [21]
-int *a;
-
-Q_CHECK_PTR(a = new int[80]); // WRONG!
-
-a = new (nothrow) int[80]; // Right
-Q_CHECK_PTR(a);
-//! [21]
-
-
-//! [22]
-template<typename TInputType>
-const TInputType &myMin(const TInputType &value1, const TInputType &value2)
-{
- qDebug() << Q_FUNC_INFO << "was called with value1:" << value1 << "value2:" << value2;
-
- if(value1 < value2)
- return value1;
- else
- return value2;
-}
-//! [22]
-
-
-//! [23]
-#include <qapplication.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const char *msg)
-{
- switch (type) {
- case QtDebugMsg:
- fprintf(stderr, "Debug: %s (%s:%u, %s)\n", msg, context.file, context.line, context.function);
- break;
- case QtWarningMsg:
- fprintf(stderr, "Warning: %s (%s:%u, %s)\n", msg, context.file, context.line, context.function);
- break;
- case QtCriticalMsg:
- fprintf(stderr, "Critical: %s (%s:%u, %s)\n", msg, context.file, context.line, context.function);
- break;
- case QtFatalMsg:
- fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", msg, context.file, context.line, context.function);
- abort();
- }
-}
-
-int main(int argc, char **argv)
-{
- qInstallMessageHandler(myMessageOutput);
- QApplication app(argc, argv);
- ...
- return app.exec();
-}
-//! [23]
-
-
-//! [24]
-qDebug("Items in list: %d", myList.size());
-//! [24]
-
-
-//! [25]
-qDebug() << "Brush:" << myQBrush << "Other value:" << i;
-//! [25]
-
-
-//! [26]
-void f(int c)
-{
- if (c > 200)
- qWarning("f: bad argument, c == %d", c);
-}
-//! [26]
-
-
-//! [27]
-qWarning() << "Brush:" << myQBrush << "Other value:"
-<< i;
-//! [27]
-
-
-//! [28]
-void load(const QString &fileName)
-{
- QFile file(fileName);
- if (!file.exists())
- qCritical("File '%s' does not exist!", qPrintable(fileName));
-}
-//! [28]
-
-
-//! [29]
-qCritical() << "Brush:" << myQBrush << "Other
-value:" << i;
-//! [29]
-
-
-//! [30]
-int divide(int a, int b)
-{
- if (b == 0) // program error
- qFatal("divide: cannot divide by zero");
- return a / b;
-}
-//! [30]
-
-
-//! [31]
-forever {
- ...
-}
-//! [31]
-
-
-//! [32]
-CONFIG += no_keywords
-//! [32]
-
-
-//! [33]
-CONFIG += no_keywords
-//! [33]
-
-
-//! [34]
-QString FriendlyConversation::greeting(int type)
-{
-static const char *greeting_strings[] = {
- QT_TR_NOOP("Hello"),
- QT_TR_NOOP("Goodbye")
-};
-return tr(greeting_strings[type]);
-}
-//! [34]
-
-
-//! [35]
-static const char *greeting_strings[] = {
- QT_TRANSLATE_NOOP("FriendlyConversation", "Hello"),
- QT_TRANSLATE_NOOP("FriendlyConversation", "Goodbye")
-};
-
-QString FriendlyConversation::greeting(int type)
-{
- return tr(greeting_strings[type]);
-}
-
-QString global_greeting(int type)
-{
- return qApp->translate("FriendlyConversation",
- greeting_strings[type]);
-}
-//! [35]
-
-
-//! [36]
-
-static { const char *source; const char *comment; } greeting_strings[] =
-{
- QT_TRANSLATE_NOOP3("FriendlyConversation", "Hello",
- "A really friendly hello"),
- QT_TRANSLATE_NOOP3("FriendlyConversation", "Goodbye",
- "A really friendly goodbye")
-};
-
-QString FriendlyConversation::greeting(int type)
-{
- return tr(greeting_strings[type].source,
- greeting_strings[type].comment);
-}
-
-QString global_greeting(int type)
-{
- return qApp->translate("FriendlyConversation",
- greeting_strings[type].source,
- greeting_strings[type].comment);
-}
-//! [36]
-
-
-//! [qttrid]
- //% "%n fooish bar(s) found.\n"
- //% "Do you want to continue?"
- QString text = qtTrId("qtn_foo_bar", n);
-//! [qttrid]
-
-
-//! [qttrid_noop]
-static const char * const ids[] = {
- //% "This is the first text."
- QT_TRID_NOOP("qtn_1st_text"),
- //% "This is the second text."
- QT_TRID_NOOP("qtn_2nd_text"),
- 0
-};
-
-void TheClass::addLabels()
-{
- for (int i = 0; ids[i]; ++i)
- new QLabel(qtTrId(ids[i]), this);
-}
-//! [qttrid_noop]
-
-
-//! [37]
-qWarning("%s: %s", qPrintable(key), qPrintable(value));
-//! [37]
-
-
-//! [38]
-struct Point2D
-{
- int x;
- int y;
-};
-
-Q_DECLARE_TYPEINFO(Point2D, Q_PRIMITIVE_TYPE);
-//! [38]
-
-
-//! [39]
-class Point2D
-{
-public:
- Point2D() { data = new int[2]; }
- Point2D(const Point2D &other) { ... }
- ~Point2D() { delete[] data; }
-
- Point2D &operator=(const Point2D &other) { ... }
-
- int x() const { return data[0]; }
- int y() const { return data[1]; }
-
-private:
- int *data;
-};
-
-Q_DECLARE_TYPEINFO(Point2D, Q_MOVABLE_TYPE);
-//! [39]
-
-
-//! [40]
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
-...
-#endif
-
-or
-
-#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
-...
-#endif
-
-//! [40]
-
-
-//! [41]
-
-#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
-...
-#endif
-
-//! [41]
-
-
-//! [42]
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
-...
-#endif
-
-//! [42]
-
-//! [begin namespace macro]
-namespace QT_NAMESPACE {
-//! [begin namespace macro]
-
-//! [end namespace macro]
-}
-//! [end namespace macro]
-
-//! [43]
-class MyClass : public QObject
-{
-
- private:
- Q_DISABLE_COPY(MyClass)
-};
-
-//! [43]
-
-//! [44]
-class MyClass : public QObject
-{
-
- private:
- MyClass(const MyClass &);
- MyClass &operator=(const MyClass &);
-};
-//! [44]
-
-//! [45]
- QWidget w = QWidget();
-//! [45]
-
-//! [46]
- // Instead of comparing with 0.0
- qFuzzyCompare(0.0,1.0e-200); // This will return false
- // Compare adding 1 to both values will fix the problem
- qFuzzyCompare(1 + 0.0, 1 + 1.0e-200); // This will return true
-//! [46]
-
-//! [47]
-CApaApplication *myApplicationFactory();
-//! [47]
-
-
-//! [49]
-void myMessageHandler(QtMsgType, const QMessageLogContext &, const char *);
-//! [49]
-
-//! [qlikely]
- // the condition inside the "if" will be successful most of the times
- for (int i = 1; i <= 365; i++) {
- if (Q_LIKELY(isWorkingDay(i))) {
- ...
- }
- ...
- }
-//! [qlikely]
-
-//! [qunlikely]
-bool readConfiguration(const QFile &file)
-{
- // We expect to be asked to read an existing file
- if (Q_UNLIKELY(!file.exists())) {
- qWarning() << "File not found";
- return false;
- }
-
- ...
- return true;
-}
-//! [qunlikely]
-
-//! [qunreachable-enum]
- enum Shapes {
- Rectangle,
- Triangle,
- Circle,
- NumShapes
- };
-//! [qunreachable-enum]
-
-//! [qunreachable-switch]
- switch (shape) {
- case Rectangle:
- return rectangle();
- case Triangle:
- return triangle();
- case Circle:
- return circle();
- case NumShapes:
- Q_UNREACHABLE();
- break;
- }
-//! [qunreachable-switch]
diff --git a/doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp b/doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp
deleted file mode 100644
index 8893fbd08c..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp
+++ /dev/null
@@ -1,120 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-class ZipEngineHandler : public QAbstractFileEngineHandler
-{
-public:
- QAbstractFileEngine *create(const QString &fileName) const;
-};
-
-QAbstractFileEngine *ZipEngineHandler::create(const QString &fileName) const
-{
- // ZipEngineHandler returns a ZipEngine for all .zip files
- return fileName.toLower().endsWith(".zip") ? new ZipEngine(fileName) : 0;
-}
-
-int main(int argc, char **argv)
-{
- QApplication app(argc, argv);
-
- ZipEngineHandler engine;
-
- MainWindow window;
- window.show();
-
- return app.exec();
-}
-//! [0]
-
-
-//! [1]
-QAbstractSocketEngine *ZipEngineHandler::create(const QString &fileName) const
-{
- // ZipEngineHandler returns a ZipEngine for all .zip files
- return fileName.toLower().endsWith(".zip") ? new ZipEngine(fileName) : 0;
-}
-//! [1]
-
-
-//! [2]
-QAbstractFileEngineIterator *
-CustomFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filterNames)
-{
- return new CustomFileEngineIterator(filters, filterNames);
-}
-//! [2]
-
-
-//! [3]
-class CustomIterator : public QAbstractFileEngineIterator
-{
-public:
- CustomIterator(const QStringList &nameFilters, QDir::Filters filters)
- : QAbstractFileEngineIterator(nameFilters, filters), index(0)
- {
- // In a real iterator, these entries are fetched from the
- // file system based on the value of path().
- entries << "entry1" << "entry2" << "entry3";
- }
-
- bool hasNext() const
- {
- return index < entries.size() - 1;
- }
-
- QString next()
- {
- if (!hasNext())
- return QString();
- ++index;
- return currentFilePath();
- }
-
- QString currentFileName()
- {
- return entries.at(index);
- }
-
-private:
- QStringList entries;
- int index;
-};
-//! [3]
diff --git a/doc/src/snippets/code/src_corelib_io_qdatastream.cpp b/doc/src/snippets/code/src_corelib_io_qdatastream.cpp
deleted file mode 100644
index af2d7d24bf..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qdatastream.cpp
+++ /dev/null
@@ -1,121 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-void wrapInFunction()
-{
-
-//! [0]
-QFile file("file.dat");
-file.open(QIODevice::WriteOnly);
-QDataStream out(&file); // we will serialize the data into the file
-out << QString("the answer is"); // serialize a string
-out << (qint32)42; // serialize an integer
-//! [0]
-
-
-//! [1]
-QFile file("file.dat");
-file.open(QIODevice::ReadOnly);
-QDataStream in(&file); // read the data serialized from the file
-QString str;
-qint32 a;
-in >> str >> a; // extract "the answer is" and 42
-//! [1]
-
-
-//! [2]
-stream.setVersion(QDataStream::Qt_4_0);
-//! [2]
-
-
-//! [3]
-QFile file("file.xxx");
-file.open(QIODevice::WriteOnly);
-QDataStream out(&file);
-
-// Write a header with a "magic number" and a version
-out << (quint32)0xA0B0C0D0;
-out << (qint32)123;
-
-out.setVersion(QDataStream::Qt_4_0);
-
-// Write the data
-out << lots_of_interesting_data;
-//! [3]
-
-
-//! [4]
-QFile file("file.xxx");
-file.open(QIODevice::ReadOnly);
-QDataStream in(&file);
-
-// Read and check the header
-quint32 magic;
-in >> magic;
-if (magic != 0xA0B0C0D0)
- return XXX_BAD_FILE_FORMAT;
-
-// Read the version
-qint32 version;
-in >> version;
-if (version < 100)
- return XXX_BAD_FILE_TOO_OLD;
-if (version > 123)
- return XXX_BAD_FILE_TOO_NEW;
-
-if (version <= 110)
- in.setVersion(QDataStream::Qt_3_2);
-else
- in.setVersion(QDataStream::Qt_4_0);
-
-// Read the data
-in >> lots_of_interesting_data;
-if (version >= 120)
- in >> data_new_in_XXX_version_1_2;
-in >> other_interesting_data;
-//! [4]
-
-
-//! [5]
-QDataStream out(file);
-out.setVersion(QDataStream::Qt_4_0);
-//! [5]
-
-}
diff --git a/doc/src/snippets/code/src_corelib_io_qdir.cpp b/doc/src/snippets/code/src_corelib_io_qdir.cpp
deleted file mode 100644
index 3c333e5642..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qdir.cpp
+++ /dev/null
@@ -1,175 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-void wrapInFunction()
-{
-
-//! [0]
-QDir("/home/user/Documents")
-QDir("C:/Documents and Settings")
-//! [0]
-
-
-//! [1]
-QDir("images/landscape.png")
-//! [1]
-
-
-//! [2]
-QDir("Documents/Letters/Applications").dirName() // "Applications"
-QDir().dirName() // "."
-//! [2]
-
-
-//! [3]
-QDir directory("Documents/Letters");
-QString path = directory.filePath("contents.txt");
-QString absolutePath = directory.absoluteFilePath("contents.txt");
-//! [3]
-
-
-//! [4]
-QDir dir("example");
-if (!dir.exists())
- qWarning("Cannot find the example directory");
-//! [4]
-
-
-//! [5]
-QDir dir = QDir::root(); // "/"
-if (!dir.cd("tmp")) { // "/tmp"
- qWarning("Cannot find the \"/tmp\" directory");
-} else {
- QFile file(dir.filePath("ex1.txt")); // "/tmp/ex1.txt"
- if (!file.open(QIODevice::ReadWrite))
- qWarning("Cannot create the file %s", file.name());
-}
-//! [5]
-
-
-//! [6]
-QString bin = "/local/bin"; // where /local/bin is a symlink to /usr/bin
-QDir binDir(bin);
-QString canonicalBin = binDir.canonicalPath();
-// canonicalBin now equals "/usr/bin"
-
-QString ls = "/local/bin/ls"; // where ls is the executable "ls"
-QDir lsDir(ls);
-QString canonicalLs = lsDir.canonicalPath();
-// canonicalLS now equals "/usr/bin/ls".
-//! [6]
-
-
-//! [7]
-QDir dir("/home/bob");
-QString s;
-
-s = dir.relativeFilePath("images/file.jpg"); // s is "images/file.jpg"
-s = dir.relativeFilePath("/home/mary/file.txt"); // s is "../mary/file.txt"
-//! [7]
-
-
-//! [8]
-QDir::setSearchPaths("icons", QStringList(QDir::homePath() + "/images"));
-QDir::setSearchPaths("docs", QStringList(":/embeddedDocuments"));
-...
-QPixmap pixmap("icons:undo.png"); // will look for undo.png in QDir::homePath() + "/images"
-QFile file("docs:design.odf"); // will look in the :/embeddedDocuments resource path
-//! [8]
-
-
-//! [9]
-QDir dir("/tmp/root_link");
-dir = dir.canonicalPath();
-if (dir.isRoot())
- qWarning("It is a root link");
-//! [9]
-
-
-//! [10]
-// The current directory is "/usr/local"
-QDir d1("/usr/local/bin");
-QDir d2("bin");
-if (d1 == d2)
- qDebug("They're the same");
-//! [10]
-
-
-//! [11]
-// The current directory is "/usr/local"
-QDir d1("/usr/local/bin");
-d1.setFilter(QDir::Executable);
-QDir d2("bin");
-if (d1 != d2)
- qDebug("They differ");
-//! [11]
-
-
-//! [12]
-C:/Documents and Settings/Username
-//! [12]
-
-
-//! [13]
-Q_INIT_RESOURCE(myapp);
-//! [13]
-
-
-//! [14]
-inline void initMyResource() { Q_INIT_RESOURCE(myapp); }
-
-namespace MyNamespace
-{
- ...
-
- void myFunction()
- {
- initMyResource();
- }
-}
-//! [14]
-
-
-//! [15]
-Q_CLEANUP_RESOURCE(myapp);
-//! [15]
-
-}
diff --git a/doc/src/snippets/code/src_corelib_io_qdiriterator.cpp b/doc/src/snippets/code/src_corelib_io_qdiriterator.cpp
deleted file mode 100644
index bf38bb1627..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qdiriterator.cpp
+++ /dev/null
@@ -1,52 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QDirIterator it("/etc", QDirIterator::Subdirectories);
-while (it.hasNext()) {
- qDebug() << it.next();
-
- // /etc/.
- // /etc/..
- // /etc/X11
- // /etc/X11/fs
- // ...
-}
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_io_qfile.cpp b/doc/src/snippets/code/src_corelib_io_qfile.cpp
deleted file mode 100644
index 7ad24b30f1..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qfile.cpp
+++ /dev/null
@@ -1,75 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QFile file;
-QDir::setCurrent("/tmp");
-file.setFileName("readme.txt");
-QDir::setCurrent("/home");
-file.open(QIODevice::ReadOnly); // opens "/home/readme.txt" under Unix
-//! [0]
-
-
-//! [1]
-QByteArray myEncoderFunc(const QString &fileName);
-//! [1]
-
-
-//! [2]
-QString myDecoderFunc(const QByteArray &localFileName);
-//! [2]
-
-
-//! [3]
-#include <stdio.h>
-
-void printError(const char* msg)
-{
- QFile file;
- file.open(stderr, QIODevice::WriteOnly);
- file.write(msg, qstrlen(msg)); // write to stderr
- file.close();
-}
-//! [3]
-
-
-//! [4]
-CONFIG += console
-//! [4]
diff --git a/doc/src/snippets/code/src_corelib_io_qfileinfo.cpp b/doc/src/snippets/code/src_corelib_io_qfileinfo.cpp
deleted file mode 100644
index f565786934..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qfileinfo.cpp
+++ /dev/null
@@ -1,146 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-//![newstuff]
- QFileInfo fi("c:/temp/foo"); => fi.absoluteFilePath() => "C:/temp/foo"
-//![newstuff]
-
-//! [0]
-#ifdef Q_OS_UNIX
-
-QFileInfo info1("/home/bob/bin/untabify");
-info1.isSymLink(); // returns true
-info1.absoluteFilePath(); // returns "/home/bob/bin/untabify"
-info1.size(); // returns 56201
-info1.symLinkTarget(); // returns "/opt/pretty++/bin/untabify"
-
-QFileInfo info2(info1.symLinkTarget());
-info2.isSymLink(); // returns false
-info2.absoluteFilePath(); // returns "/opt/pretty++/bin/untabify"
-info2.size(); // returns 56201
-
-#endif
-//! [0]
-
-
-//! [1]
-#ifdef Q_OS_WIN
-
-QFileInfo info1("C:\\Documents and Settings\\Bob\\untabify.lnk");
-info1.isSymLink(); // returns true
-info1.absoluteFilePath(); // returns "C:/Documents and Settings/Bob/untabify.lnk"
-info1.size(); // returns 743
-info1.symLinkTarget(); // returns "C:/Pretty++/untabify"
-
-QFileInfo info2(info1.symLinkTarget());
-info2.isSymLink(); // returns false
-info2.absoluteFilePath(); // returns "C:/Pretty++/untabify"
-info2.size(); // returns 63942
-
-#endif
-//! [1]
-
-
-//! [2]
-QString absolute = "/local/bin";
-QString relative = "local/bin";
-QFileInfo absFile(absolute);
-QFileInfo relFile(relative);
-
-QDir::setCurrent(QDir::rootPath());
-// absFile and relFile now point to the same file
-
-QDir::setCurrent("/tmp");
-// absFile now points to "/local/bin",
-// while relFile points to "/tmp/local/bin"
-//! [2]
-
-
-//! [3]
-QFileInfo fi("/tmp/archive.tar.gz");
-QString name = fi.fileName(); // name = "archive.tar.gz"
-//! [3]
-
-
-//! [4]
-QFileInfo fi("/Applications/Safari.app");
-QString bundle = fi.bundleName(); // name = "Safari"
-//! [4]
-
-
-//! [5]
-QFileInfo fi("/tmp/archive.tar.gz");
-QString base = fi.baseName(); // base = "archive"
-//! [5]
-
-
-//! [6]
-QFileInfo fi("/tmp/archive.tar.gz");
-QString base = fi.completeBaseName(); // base = "archive.tar"
-//! [6]
-
-
-//! [7]
-QFileInfo fi("/tmp/archive.tar.gz");
-QString ext = fi.completeSuffix(); // ext = "tar.gz"
-//! [7]
-
-
-//! [8]
-QFileInfo fi("/tmp/archive.tar.gz");
-QString ext = fi.suffix(); // ext = "gz"
-//! [8]
-
-
-//! [9]
-QFileInfo info(fileName);
-if (info.isSymLink())
- fileName = info.symLinkTarget();
-//! [9]
-
-
-//! [10]
-QFileInfo fi("/tmp/archive.tar.gz");
-if (fi.permission(QFile::WriteUser | QFile::ReadGroup))
- qWarning("I can change the file; my group can read the file");
-if (fi.permission(QFile::WriteGroup | QFile::WriteOther))
- qWarning("The group or others can change the file");
-//! [10]
diff --git a/doc/src/snippets/code/src_corelib_io_qiodevice.cpp b/doc/src/snippets/code/src_corelib_io_qiodevice.cpp
deleted file mode 100644
index 6018a21f89..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qiodevice.cpp
+++ /dev/null
@@ -1,99 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QProcess gzip;
-gzip.start("gzip", QStringList() << "-c");
-if (!gzip.waitForStarted())
- return false;
-
-gzip.write("uncompressed data");
-
-QByteArray compressed;
-while (gzip.waitForReadyRead())
- compressed += gzip.readAll();
-//! [0]
-
-
-//! [1]
-qint64 CustomDevice::bytesAvailable() const
-{
- return buffer.size() + QIODevice::bytesAvailable();
-}
-//! [1]
-
-
-//! [2]
-QFile file("box.txt");
-if (file.open(QFile::ReadOnly)) {
- char buf[1024];
- qint64 lineLength = file.readLine(buf, sizeof(buf));
- if (lineLength != -1) {
- // the line is available in buf
- }
-}
-//! [2]
-
-
-//! [3]
-bool CustomDevice::canReadLine() const
-{
- return buffer.contains('\n') || QIODevice::canReadLine();
-}
-//! [3]
-
-
-//! [4]
-bool isExeFile(QFile *file)
-{
- char buf[2];
- if (file->peek(buf, sizeof(buf)) == sizeof(buf))
- return (buf[0] == 'M' && buf[1] == 'Z');
- return false;
-}
-//! [4]
-
-
-//! [5]
-bool isExeFile(QFile *file)
-{
- return file->peek(2) == "MZ";
-}
-//! [5]
diff --git a/doc/src/snippets/code/src_corelib_io_qprocess.cpp b/doc/src/snippets/code/src_corelib_io_qprocess.cpp
deleted file mode 100644
index 16878f41e1..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qprocess.cpp
+++ /dev/null
@@ -1,134 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-void wrapInFunction()
-{
-
-//! [0]
-QProcess builder;
-builder.setProcessChannelMode(QProcess::MergedChannels);
-builder.start("make", QStringList() << "-j2");
-
-if (!builder.waitForFinished())
- qDebug() << "Make failed:" << builder.errorString();
-else
- qDebug() << "Make output:" << builder.readAll();
-//! [0]
-
-
-//! [1]
-QProcess more;
-more.start("more");
-more.write("Text to display");
-more.closeWriteChannel();
-// QProcess will emit readyRead() once "more" starts printing
-//! [1]
-
-
-//! [2]
-command1 | command2
-//! [2]
-
-
-//! [3]
-QProcess process1;
-QProcess process2;
-
-process1.setStandardOutputProcess(&process2);
-
-process1.start("command1");
-process2.start("command2");
-//! [3]
-
-
-//! [4]
-class SandboxProcess : public QProcess
-{
- ...
- protected:
- void setupChildProcess();
- ...
-};
-
-void SandboxProcess::setupChildProcess()
-{
- // Drop all privileges in the child process, and enter
- // a chroot jail.
-#if defined Q_OS_UNIX
- ::setgroups(0, 0);
- ::chroot("/etc/safe");
- ::chdir("/");
- ::setgid(safeGid);
- ::setuid(safeUid);
- ::umask(0);
-#endif
-}
-
-//! [4]
-
-
-//! [5]
-QProcess process;
-process.start("del /s *.txt");
-// same as process.start("del", QStringList() << "/s" << "*.txt");
-...
-//! [5]
-
-
-//! [6]
-QProcess process;
-process.start("dir \"My Documents\"");
-//! [6]
-
-
-//! [7]
-QProcess process;
-process.start("dir \"\"\"My Documents\"\"\"");
-//! [7]
-
-
-//! [8]
-QStringList environment = QProcess::systemEnvironment();
-// environment = {"PATH=/usr/bin:/usr/local/bin",
-// "USER=greg", "HOME=/home/greg"}
-//! [8]
-
-}
diff --git a/doc/src/snippets/code/src_corelib_io_qsettings.cpp b/doc/src/snippets/code/src_corelib_io_qsettings.cpp
deleted file mode 100644
index c9ce7561ff..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qsettings.cpp
+++ /dev/null
@@ -1,316 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QSettings settings("MySoft", "Star Runner");
-QColor color = settings.value("DataPump/bgcolor").value<QColor>();
-//! [0]
-
-
-//! [1]
-QSettings settings("MySoft", "Star Runner");
-QColor color = palette().background().color();
-settings.setValue("DataPump/bgcolor", color);
-//! [1]
-
-
-//! [2]
-QSettings settings("/home/petra/misc/myapp.ini",
- QSettings::IniFormat);
-//! [2]
-
-
-//! [3]
-QSettings settings("/Users/petra/misc/myapp.plist",
- QSettings::NativeFormat);
-//! [3]
-
-
-//! [4]
-QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Office",
- QSettings::NativeFormat);
-//! [4]
-
-
-//! [5]
-settings.setValue("11.0/Outlook/Security/DontTrustInstalledFiles", 0);
-//! [5]
-
-
-//! [6]
-settings.setValue("HKEY_CURRENT_USER\\MySoft\\Star Runner\\Galaxy", "Milkyway");
-settings.setValue("HKEY_CURRENT_USER\\MySoft\\Star Runner\\Galaxy\\Sun", "OurStar");
-settings.value("HKEY_CURRENT_USER\\MySoft\\Star Runner\\Galaxy\\Default"); // returns "Milkyway"
-//! [6]
-
-
-//! [7]
-#ifdef Q_WS_MAC
- QSettings settings("grenoullelogique.fr", "Squash");
-#else
- QSettings settings("Grenoulle Logique", "Squash");
-#endif
-//! [7]
-
-
-//! [8]
-pos = @Point(100 100)
-//! [8]
-
-
-//! [9]
-windir = C:\Windows
-//! [9]
-
-
-//! [10]
-QSettings settings("Moose Tech", "Facturo-Pro");
-//! [10]
-
-
-//! [11]
-QSettings settings("Moose Soft", "Facturo-Pro");
-//! [11]
-
-
-//! [12]
-QCoreApplication::setOrganizationName("Moose Soft");
-QCoreApplication::setApplicationName("Facturo-Pro");
-QSettings settings;
-//! [12]
-
-
-//! [13]
-settings.beginGroup("mainwindow");
-settings.setValue("size", win->size());
-settings.setValue("fullScreen", win->isFullScreen());
-settings.endGroup();
-
-settings.beginGroup("outputpanel");
-settings.setValue("visible", panel->isVisible());
-settings.endGroup();
-//! [13]
-
-
-//! [14]
-settings.beginGroup("alpha");
-// settings.group() == "alpha"
-
-settings.beginGroup("beta");
-// settings.group() == "alpha/beta"
-
-settings.endGroup();
-// settings.group() == "alpha"
-
-settings.endGroup();
-// settings.group() == ""
-//! [14]
-
-
-//! [15]
-struct Login {
- QString userName;
- QString password;
-};
-QList<Login> logins;
-...
-
-QSettings settings;
-int size = settings.beginReadArray("logins");
-for (int i = 0; i < size; ++i) {
- settings.setArrayIndex(i);
- Login login;
- login.userName = settings.value("userName").toString();
- login.password = settings.value("password").toString();
- logins.append(login);
-}
-settings.endArray();
-//! [15]
-
-
-//! [16]
-struct Login {
- QString userName;
- QString password;
-};
-QList<Login> logins;
-...
-
-QSettings settings;
-settings.beginWriteArray("logins");
-for (int i = 0; i < logins.size(); ++i) {
- settings.setArrayIndex(i);
- settings.setValue("userName", list.at(i).userName);
- settings.setValue("password", list.at(i).password);
-}
-settings.endArray();
-//! [16]
-
-
-//! [17]
-QSettings settings;
-settings.setValue("fridge/color", Qt::white);
-settings.setValue("fridge/size", QSize(32, 96));
-settings.setValue("sofa", true);
-settings.setValue("tv", false);
-
-QStringList keys = settings.allKeys();
-// keys: ["fridge/color", "fridge/size", "sofa", "tv"]
-//! [17]
-
-
-//! [18]
-settings.beginGroup("fridge");
-keys = settings.allKeys();
-// keys: ["color", "size"]
-//! [18]
-
-
-//! [19]
-QSettings settings;
-settings.setValue("fridge/color", Qt::white);
-settings.setValue("fridge/size", QSize(32, 96));
-settings.setValue("sofa", true);
-settings.setValue("tv", false);
-
-QStringList keys = settings.childKeys();
-// keys: ["sofa", "tv"]
-//! [19]
-
-
-//! [20]
-settings.beginGroup("fridge");
-keys = settings.childKeys();
-// keys: ["color", "size"]
-//! [20]
-
-
-//! [21]
-QSettings settings;
-settings.setValue("fridge/color", Qt::white);
-settings.setValue("fridge/size", QSize(32, 96));
-settings.setValue("sofa", true);
-settings.setValue("tv", false);
-
-QStringList groups = settings.childGroups();
-// groups: ["fridge"]
-//! [21]
-
-
-//! [22]
-settings.beginGroup("fridge");
-groups = settings.childGroups();
-// groups: []
-//! [22]
-
-
-//! [23]
-QSettings settings;
-settings.setValue("interval", 30);
-settings.value("interval").toInt(); // returns 30
-
-settings.setValue("interval", 6.55);
-settings.value("interval").toDouble(); // returns 6.55
-//! [23]
-
-
-//! [24]
-QSettings settings;
-settings.setValue("ape");
-settings.setValue("monkey", 1);
-settings.setValue("monkey/sea", 2);
-settings.setValue("monkey/doe", 4);
-
-settings.remove("monkey");
-QStringList keys = settings.allKeys();
-// keys: ["ape"]
-//! [24]
-
-
-//! [25]
-QSettings settings;
-settings.setValue("ape");
-settings.setValue("monkey", 1);
-settings.setValue("monkey/sea", 2);
-settings.setValue("monkey/doe", 4);
-
-settings.beginGroup("monkey");
-settings.remove("");
-settings.endGroup();
-
-QStringList keys = settings.allKeys();
-// keys: ["ape"]
-//! [25]
-
-
-//! [26]
-QSettings settings;
-settings.setValue("animal/snake", 58);
-settings.value("animal/snake", 1024).toInt(); // returns 58
-settings.value("animal/zebra", 1024).toInt(); // returns 1024
-settings.value("animal/zebra").toInt(); // returns 0
-//! [26]
-
-
-//! [27]
-bool myReadFunc(QIODevice &device, QSettings::SettingsMap &map);
-//! [27]
-
-
-//! [28]
-bool myWriteFunc(QIODevice &device, const QSettings::SettingsMap &map);
-//! [28]
-
-
-//! [29]
-bool readXmlFile(QIODevice &device, QSettings::SettingsMap &map);
-bool writeXmlFile(QIODevice &device, const QSettings::SettingsMap &map);
-
-int main(int argc, char *argv[])
-{
- const QSettings::Format XmlFormat =
- QSettings::registerFormat("xml", readXmlFile, writeXmlFile);
-
- QSettings settings(XmlFormat, QSettings::UserScope, "MySoft",
- "Star Runner");
-
- ...
-}
-//! [29]
diff --git a/doc/src/snippets/code/src_corelib_io_qtemporarydir.cpp b/doc/src/snippets/code/src_corelib_io_qtemporarydir.cpp
deleted file mode 100644
index 4e855f72f0..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qtemporarydir.cpp
+++ /dev/null
@@ -1,53 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-{
-//! [0]
- // Within a function/method...
-
- QTemporaryDir dir;
- if (dir.isValid()) {
- // dir.path() returns the unique directory path
- }
-
- // The QTemporaryDir destructor removes the temporary directory
- // as it goes out of scope.
-//! [0]
-}
diff --git a/doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp b/doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp
deleted file mode 100644
index 2db3aace56..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp
+++ /dev/null
@@ -1,53 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-{
-//! [0]
- // Within a function/method...
-
- QTemporaryFile file;
- if (file.open()) {
- // file.fileName() returns the unique file name
- }
-
- // The QTemporaryFile destructor removes the temporary file
- // as it goes out of scope.
-//! [0]
-}
diff --git a/doc/src/snippets/code/src_corelib_io_qtextstream.cpp b/doc/src/snippets/code/src_corelib_io_qtextstream.cpp
deleted file mode 100644
index c46cbb23d3..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qtextstream.cpp
+++ /dev/null
@@ -1,129 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QFile data("output.txt");
-if (data.open(QFile::WriteOnly | QFile::Truncate)) {
- QTextStream out(&data);
- out << "Result: " << qSetFieldWidth(10) << left << 3.14 << 2.7;
- // writes "Result: 3.14 2.7 "
-}
-//! [0]
-
-
-//! [1]
-QTextStream stream(stdin);
-QString line;
-do {
- line = stream.readLine();
-} while (!line.isNull());
-//! [1]
-
-
-//! [2]
-QTextStream in("0x50 0x20");
-int firstNumber, secondNumber;
-
-in >> firstNumber; // firstNumber == 80
-in >> dec >> secondNumber; // secondNumber == 0
-
-char ch;
-in >> ch; // ch == 'x'
-//! [2]
-
-
-//! [3]
-int main(int argc, char *argv[])
-{
- // read numeric arguments (123, 0x20, 4.5...)
- for (int i = 1; i < argc; ++i) {
- int number;
- QTextStream in(argv[i]);
- in >> number;
- ...
- }
-}
-//! [3]
-
-
-//! [4]
-QString str;
-QTextStream in(stdin);
-in >> str;
-//! [4]
-
-
-//! [5]
-QString s;
-QTextStream out(&s);
-out.setFieldWidth(10);
-out.setFieldAlignment(QTextStream::AlignCenter);
-out.setPadChar('-');
-out << "Qt" << "rocks!";
-//! [5]
-
-
-//! [6]
-----Qt------rocks!--
-//! [6]
-
-
-//! [7]
-QTextStream in(file);
-QChar ch1, ch2, ch3;
-in >> ch1 >> ch2 >> ch3;
-//! [7]
-
-
-//! [8]
-QTextStream out(stdout);
-out << "Qt rocks!" << endl;
-//! [8]
-
-
-//! [9]
-stream << '\n' << flush;
-//! [9]
-
-
-//! [10]
-QTextStream out(&file);
-out.setCodec("UTF-8");
-//! [10]
diff --git a/doc/src/snippets/code/src_corelib_io_qurl.cpp b/doc/src/snippets/code/src_corelib_io_qurl.cpp
deleted file mode 100644
index 8fd4b8ee9f..0000000000
--- a/doc/src/snippets/code/src_corelib_io_qurl.cpp
+++ /dev/null
@@ -1,87 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QUrl url("http://www.example.com/List of holidays.xml");
-// url.toEncoded() == "http://www.example.com/List%20of%20holidays.xml"
-//! [0]
-
-
-//! [1]
-QUrl url = QUrl::fromEncoded("http://qt.nokia.com/List%20of%20holidays.xml");
-//! [1]
-
-
-//! [2]
-bool checkUrl(const QUrl &url) {
- if (!url.isValid()) {
- qDebug(QString("Invalid URL: %1").arg(url.toString()));
- return false;
- }
-
- return true;
-}
-//! [2]
-
-
-//! [3]
-QTcpSocket sock;
-sock.connectToHost(url.host(), url.port(80));
-//! [3]
-
-
-//! [4]
-http://www.example.com/cgi-bin/drawgraph.cgi?type(pie)color(green)
-//! [4]
-
-
-//! [5]
-QUrl baseUrl("http://qt.nokia.com/support");
-QUrl relativeUrl("../products/solutions");
-qDebug(baseUrl.resolved(relativeUrl).toString());
-// prints "http://qt.nokia.com/products/solutions"
-//! [5]
-
-
-//! [6]
-QByteArray ba = QUrl::toPercentEncoding("{a fishy string?}", "{}", "s");
-qDebug(ba.constData());
-// prints "{a fi%73hy %73tring%3F}"
-//! [6]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp b/doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp
deleted file mode 100644
index eba007e947..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp
+++ /dev/null
@@ -1,43 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-bool myEventFilter(void *message);
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp b/doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp
deleted file mode 100644
index aa5b23265e..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp
+++ /dev/null
@@ -1,99 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-beginInsertRows(parent, 2, 4);
-//! [0]
-
-
-//! [1]
-beginInsertRows(parent, 4, 5);
-//! [1]
-
-
-//! [2]
-beginRemoveRows(parent, 2, 3);
-//! [2]
-
-
-//! [3]
-beginInsertColumns(parent, 4, 6);
-//! [3]
-
-
-//! [4]
-beginInsertColumns(parent, 6, 8);
-//! [4]
-
-
-//! [5]
-beginRemoveColumns(parent, 4, 6);
-//! [5]
-
-
-//! [6]
-beginMoveRows(sourceParent, 2, 4, destinationParent, 2);
-//! [6]
-
-
-//! [7]
-beginMoveRows(sourceParent, 2, 4, destinationParent, 6);
-//! [7]
-
-
-//! [8]
-beginMoveRows(parent, 2, 2, parent, 0);
-//! [8]
-
-
-//! [9]
-beginMoveRows(parent, 2, 2, parent, 4);
-//! [9]
-
-//! [10]
-myData.clear();
-reset();
-//! [10]
-
-//! [11]
-beginResetModel();
-myData.clear();
-endResetModel();
-//! [11]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp b/doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp
deleted file mode 100644
index 8023e6a218..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp
+++ /dev/null
@@ -1,126 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QMouseEvent event(QEvent::MouseButtonPress, pos, 0, 0, 0);
-QApplication::sendEvent(mainWindow, &event);
-//! [0]
-
-
-//! [1]
-QPushButton *quitButton = new QPushButton("Quit");
-connect(quitButton, SIGNAL(clicked()), &app, SLOT(quit()));
-//! [1]
-
-
-//! [2]
-foreach (const QString &path, app.libraryPaths())
- do_something(path);
-//! [2]
-
-
-//! [3]
-bool myEventFilter(void *message, long *result);
-//! [3]
-
-
-//! [4]
-static int *global_ptr = 0;
-
-static void cleanup_ptr()
-{
- delete [] global_ptr;
- global_ptr = 0;
-}
-
-void init_ptr()
-{
- global_ptr = new int[100]; // allocate data
- qAddPostRoutine(cleanup_ptr); // delete later
-}
-//! [4]
-
-
-//! [5]
-class MyPrivateInitStuff : public QObject
-{
-public:
- static MyPrivateInitStuff *initStuff(QObject *parent)
- {
- if (!p)
- p = new MyPrivateInitStuff(parent);
- return p;
- }
-
- ~MyPrivateInitStuff()
- {
- // cleanup goes here
- }
-
-private:
- MyPrivateInitStuff(QObject *parent)
- : QObject(parent)
- {
- // initialization goes here
- }
-
- MyPrivateInitStuff *p;
-};
-//! [5]
-
-
-//! [6]
-static inline QString tr(const char *sourceText,
- const char *comment = 0);
-static inline QString trUtf8(const char *sourceText,
- const char *comment = 0);
-//! [6]
-
-
-//! [7]
-class MyMfcView : public CView
-{
- Q_DECLARE_TR_FUNCTIONS(MyMfcView)
-
-public:
- MyMfcView();
- ...
-};
-//! [7]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp b/doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp
deleted file mode 100644
index 7c0c2c2122..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp
+++ /dev/null
@@ -1,136 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-void wrapInFunction()
-{
-
-//! [0]
-class MyClass : public QObject
-{
- Q_OBJECT
- Q_CLASSINFO("author", "Sabrina Schweinsteiger")
- Q_CLASSINFO("url", "http://doc.moosesoft.co.uk/1.0/")
-
-public:
- ...
-};
-//! [0]
-
-
-//! [1]
-QByteArray normType = QMetaObject::normalizedType(" int const *");
-// normType is now "const int*"
-//! [1]
-
-
-//! [2]
-QMetaObject::invokeMethod(pushButton, "animateClick",
- Qt::QueuedConnection);
-//! [2]
-
-
-//! [3]
-QMetaObject::invokeMethod: Unable to handle unregistered datatype 'MyType'
-//! [3]
-
-
-//! [4]
-QString retVal;
-QMetaObject::invokeMethod(obj, "compute", Qt::DirectConnection,
- Q_RETURN_ARG(QString, retVal),
- Q_ARG(QString, "sqrt"),
- Q_ARG(int, 42),
- Q_ARG(double, 9.7));
-//! [4]
-
-
-//! [5]
-class MyClass
-{
- Q_OBJECT
- Q_CLASSINFO("author", "Sabrina Schweinsteiger")
- Q_CLASSINFO("url", "http://doc.moosesoft.co.uk/1.0/")
-
-public:
- ...
-};
-//! [5]
-
-
-//! [propertyCount]
-const QMetaObject* metaObject = obj->metaObject();
-QStringList properties;
-for(int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i)
- properties << QString::fromLatin1(metaObject->property(i).name());
-//! [propertyCount]
-
-
-//! [methodCount]
-const QMetaObject* metaObject = obj->metaObject();
-QStringList methods;
-for(int i = metaObject->methodOffset(); i < metaObject->methodCount(); ++i)
- methods << QString::fromLatin1(metaObject->method(i).methodSignature());
-//! [methodCount]
-
-//! [6]
-int methodIndex = pushButton->metaObject()->indexOfMethod("animateClick()");
-QMetaMethod method = metaObject->method(methodIndex);
-method.invoke(pushButton, Qt::QueuedConnection);
-//! [6]
-
-//! [7]
-QMetaMethod::invoke: Unable to handle unregistered datatype 'MyType'
-//! [7]
-
-//! [8]
-QString retVal;
-QByteArray normalizedSignature = QMetaObject::normalizedSignature("compute(QString, int, double)");
-int methodIndex = obj->metaObject()->indexOfMethod(normalizedSignature);
-QMetaMethod method = metaObject->method(methodIndex);
-method.invoke(obj,
- Qt::DirectConnection,
- Q_RETURN_ARG(QString, retVal),
- Q_ARG(QString, "sqrt"),
- Q_ARG(int, 42),
- Q_ARG(double, 9.7));
-//! [8]
-
-}
diff --git a/doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp b/doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp
deleted file mode 100644
index d0a7a69884..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp
+++ /dev/null
@@ -1,114 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-struct MyStruct
-{
- int i;
- ...
-};
-
-Q_DECLARE_METATYPE(MyStruct)
-//! [0]
-
-
-//! [1]
-namespace MyNamespace
-{
- ...
-}
-
-Q_DECLARE_METATYPE(MyNamespace::MyStruct)
-//! [1]
-
-
-//! [2]
-MyStruct s;
-QVariant var;
-var.setValue(s); // copy s into the variant
-
-...
-
-// retrieve the value
-MyStruct s2 = var.value<MyStruct>();
-//! [2]
-
-
-//! [3]
-int id = QMetaType::type("MyClass");
-if (id != QMetaType::UnknownType) {
- void *myClassPtr = QMetaType::create(id);
- ...
- QMetaType::destroy(id, myClassPtr);
- myClassPtr = 0;
-}
-//! [3]
-
-
-//! [4]
-qRegisterMetaType<MyClass>("MyClass");
-//! [4]
-
-
-//! [5]
-qRegisterMetaTypeStreamOperators<MyClass>("MyClass");
-//! [5]
-
-
-//! [6]
-QDataStream &operator<<(QDataStream &out, const MyClass &myObj);
-QDataStream &operator>>(QDataStream &in, MyClass &myObj);
-//! [6]
-
-
-//! [7]
-int id = qRegisterMetaType<MyStruct>();
-//! [7]
-
-
-//! [8]
-int id = qMetaTypeId<QString>(); // id is now QMetaType::QString
-id = qMetaTypeId<MyStruct>(); // compile error if MyStruct not declared
-//! [8]
-
-//! [9]
-typedef QString CustomString;
-qRegisterMetaType<CustomString>("CustomString");
-//! [9]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp b/doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp
deleted file mode 100644
index de683cf463..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp
+++ /dev/null
@@ -1,108 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-void MyWidget::dragEnterEvent(QDragEnterEvent *event)
-{
- if (event->mimeData()->hasUrls())
- event->acceptProposedAction();
-}
-
-void MyWidget::dropEvent(QDropEvent *event)
-{
- if (event->mimeData()->hasUrls()) {
- foreach (QUrl url, event->mimeData()->urls()) {
- ...
- }
- }
-}
-//! [0]
-
-
-//! [1]
-QByteArray csvData = ...;
-
-QMimeData *mimeData = new QMimeData;
-mimeData->setData("text/csv", csvData);
-//! [1]
-
-
-//! [2]
-void MyWidget::dropEvent(QDropEvent *event)
-{
- const MyMimeData *myData =
- qobject_cast<const MyMimeData *>(event->mimeData());
- if (myData) {
- // access myData's data directly (not through QMimeData's API)
- }
-}
-//! [2]
-
-
-//! [3]
-application/x-qt-windows-mime;value="<custom type>"
-//! [3]
-
-
-//! [4]
-application/x-qt-windows-mime;value="FileGroupDescriptor"
-application/x-qt-windows-mime;value="FileContents"
-//! [4]
-
-
-//! [5]
-if (event->mimeData()->hasImage()) {
- QImage image = qvariant_cast<QImage>(event->mimeData()->imageData());
- ...
-}
-//! [5]
-
-
-//! [6]
-mimeData->setImageData(QImage("beautifulfjord.png"));
-//! [6]
-
-
-//! [7]
-if (event->mimeData()->hasColor()) {
- QColor color = qvariant_cast<QColor>(event->mimeData()->colorData());
- ...
-}
-//! [7]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qobject.cpp b/doc/src/snippets/code/src_corelib_kernel_qobject.cpp
deleted file mode 100644
index 5b27775322..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qobject.cpp
+++ /dev/null
@@ -1,493 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QLineEdit *lineEdit = static_cast<QLineEdit *>(
- qt_find_obj_child(myWidget, "QLineEdit", "my line edit"));
-if (lineEdit)
- lineEdit->setText("Default");
-//! [0]
-
-
-//! [1]
-QObject *obj = new QPushButton;
-obj->metaObject()->className(); // returns "QPushButton"
-
-QPushButton::staticMetaObject.className(); // returns "QPushButton"
-//! [1]
-
-
-//! [2]
-QPushButton::staticMetaObject.className(); // returns "QPushButton"
-
-QObject *obj = new QPushButton;
-obj->metaObject()->className(); // returns "QPushButton"
-//! [2]
-
-
-//! [3]
-QObject *obj = new QTimer; // QTimer inherits QObject
-
-QTimer *timer = qobject_cast<QTimer *>(obj);
-// timer == (QObject *)obj
-
-QAbstractButton *button = qobject_cast<QAbstractButton *>(obj);
-// button == 0
-//! [3]
-
-
-//! [4]
-QTimer *timer = new QTimer; // QTimer inherits QObject
-timer->inherits("QTimer"); // returns true
-timer->inherits("QObject"); // returns true
-timer->inherits("QAbstractButton"); // returns false
-
-// QVBoxLayout inherits QObject and QLayoutItem
-QVBoxLayout *layout = new QVBoxLayout;
-layout->inherits("QObject"); // returns true
-layout->inherits("QLayoutItem"); // returns true (even though QLayoutItem is not a QObject)
-//! [4]
-
-
-//! [5]
-qDebug("MyClass::setPrecision(): (%s) invalid precision %f",
- qPrintable(objectName()), newPrecision);
-//! [5]
-
-
-//! [6]
-class MainWindow : public QMainWindow
-{
-public:
- MainWindow();
-
-protected:
- bool eventFilter(QObject *obj, QEvent *ev);
-
-private:
- QTextEdit *textEdit;
-};
-
-MainWindow::MainWindow()
-{
- textEdit = new QTextEdit;
- setCentralWidget(textEdit);
-
- textEdit->installEventFilter(this);
-}
-
-bool MainWindow::eventFilter(QObject *obj, QEvent *event)
-{
- if (obj == textEdit) {
- if (event->type() == QEvent::KeyPress) {
- QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
- qDebug() << "Ate key press" << keyEvent->key();
- return true;
- } else {
- return false;
- }
- } else {
- // pass the event on to the parent class
- return QMainWindow::eventFilter(obj, event);
- }
-}
-//! [6]
-
-
-//! [7]
-myObject->moveToThread(QApplication::instance()->thread());
-//! [7]
-
-
-//! [8]
-class MyObject : public QObject
-{
- Q_OBJECT
-
-public:
- MyObject(QObject *parent = 0);
-
-protected:
- void timerEvent(QTimerEvent *event);
-};
-
-MyObject::MyObject(QObject *parent)
- : QObject(parent)
-{
- startTimer(50); // 50-millisecond timer
- startTimer(1000); // 1-second timer
- startTimer(60000); // 1-minute timer
-}
-
-void MyObject::timerEvent(QTimerEvent *event)
-{
- qDebug() << "Timer ID:" << event->timerId();
-}
-//! [8]
-
-
-//! [9]
-QList<QObject *> list = window()->queryList("QAbstractButton"));
-foreach (QObject *obj, list)
- static_cast<QAbstractButton *>(obj)->setEnabled(false);
-//! [9]
-
-
-//! [10]
-QPushButton *button = parentWidget->findChild<QPushButton *>("button1");
-//! [10]
-
-
-//! [11]
-QListWidget *list = parentWidget->findChild<QListWidget *>();
-//! [11]
-
-
-//! [12]
-QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname");
-//! [12]
-
-
-//! [13]
-QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>();
-//! [13]
-
-
-//! [14]
-monitoredObj->installEventFilter(filterObj);
-//! [14]
-
-
-//! [15]
-class KeyPressEater : public QObject
-{
- Q_OBJECT
- ...
-
-protected:
- bool eventFilter(QObject *obj, QEvent *event);
-};
-
-bool KeyPressEater::eventFilter(QObject *obj, QEvent *event)
-{
- if (event->type() == QEvent::KeyPress) {
- QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
- qDebug("Ate key press %d", keyEvent->key());
- return true;
- } else {
- // standard event processing
- return QObject::eventFilter(obj, event);
- }
-}
-//! [15]
-
-
-//! [16]
-KeyPressEater *keyPressEater = new KeyPressEater(this);
-QPushButton *pushButton = new QPushButton(this);
-QListView *listView = new QListView(this);
-
-pushButton->installEventFilter(keyPressEater);
-listView->installEventFilter(keyPressEater);
-//! [16]
-
-
-//! [17]
-MyWindow::MyWindow()
-{
- QLabel *senderLabel = new QLabel(tr("Name:"));
- QLabel *recipientLabel = new QLabel(tr("Name:", "recipient"));
-//! [17]
-}
-
-
-//! [18]
-int n = messages.count();
-showMessage(tr("%n message(s) saved", "", n));
-//! [18]
-
-
-//! [19]
-n == 1 ? tr("%n message saved") : tr("%n messages saved")
-//! [19]
-
-
-//! [20]
-label->setText(tr("F\374r \310lise"));
-//! [20]
-
-
-//! [21]
-if (receivers(SIGNAL(valueChanged(QByteArray))) > 0) {
- QByteArray data;
- get_the_value(&data); // expensive operation
- emit valueChanged(data);
-}
-//! [21]
-
-
-//! [22]
-QLabel *label = new QLabel;
-QScrollBar *scrollBar = new QScrollBar;
-QObject::connect(scrollBar, SIGNAL(valueChanged(int)),
- label, SLOT(setNum(int)));
-//! [22]
-
-
-//! [23]
-// WRONG
-QObject::connect(scrollBar, SIGNAL(valueChanged(int value)),
- label, SLOT(setNum(int value)));
-//! [23]
-
-
-//! [24]
-class MyWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- MyWidget();
-
-signals:
- void buttonClicked();
-
-private:
- QPushButton *myButton;
-};
-
-MyWidget::MyWidget()
-{
- myButton = new QPushButton(this);
- connect(myButton, SIGNAL(clicked()),
- this, SIGNAL(buttonClicked()));
-}
-//! [24]
-
-
-//! [25]
-QObject::connect: Cannot queue arguments of type 'MyType'
-(Make sure 'MyType' is registered using qRegisterMetaType().)
-//! [25]
-
-
-//! [26]
-disconnect(myObject, 0, 0, 0);
-//! [26]
-
-
-//! [27]
-myObject->disconnect();
-//! [27]
-
-
-//! [28]
-disconnect(myObject, SIGNAL(mySignal()), 0, 0);
-//! [28]
-
-
-//! [29]
-myObject->disconnect(SIGNAL(mySignal()));
-//! [29]
-
-
-//! [30]
-disconnect(myObject, 0, myReceiver, 0);
-//! [30]
-
-
-//! [31]
-myObject->disconnect(myReceiver);
-//! [31]
-
-
-//! [32]
-if (QLatin1String(signal) == SIGNAL(valueChanged(int))) {
- // signal is valueChanged(int)
-}
-//! [32]
-
-
-//! [33]
-void on_<object name>_<signal name>(<signal parameters>);
-//! [33]
-
-
-//! [34]
-void on_button1_clicked();
-//! [34]
-
-
-//! [35]
-class MyClass : public QObject
-{
- Q_OBJECT
- Q_CLASSINFO("Author", "Pierre Gendron")
- Q_CLASSINFO("URL", "http://www.my-organization.qc.ca")
-
-public:
- ...
-};
-//! [35]
-
-
-//! [36]
-Q_PROPERTY(type name
- READ getFunction
- [WRITE setFunction]
- [RESET resetFunction]
- [NOTIFY notifySignal]
- [DESIGNABLE bool]
- [SCRIPTABLE bool]
- [STORED bool]
- [USER bool]
- [CONSTANT]
- [FINAL])
-//! [36]
-
-
-//! [37]
-Q_PROPERTY(QString title READ title WRITE setTitle USER true)
-//! [37]
-
-
-//! [38]
-class MyClass : public QObject
-{
- Q_OBJECT
- Q_ENUMS(Priority)
-
-public:
- MyClass(QObject *parent = 0);
- ~MyClass();
-
- enum Priority { High, Low, VeryHigh, VeryLow };
- void setPriority(Priority priority);
- Priority priority() const;
-};
-//! [38]
-
-
-//! [39a]
-class QLibrary : public QObject
-{
- ...
- Q_FLAGS(LoadHint LoadHints)
- ...
-//! [39a]
-
-//! [39b]
- ...
-public:
- enum LoadHint {
- ResolveAllSymbolsHint = 0x01,
- ExportExternalSymbolsHint = 0x02,
- LoadArchiveMemberHint = 0x04
- };
- Q_DECLARE_FLAGS(LoadHints, LoadHint)
- ...
-//! [39b]
-
-
-//! [40]
-//: This name refers to a host name.
-hostNameLabel->setText(tr("Name:"));
-
-/*: This text refers to a C++ code example. */
-QString example = tr("Example");
-//! [40]
-
-//! [41]
-QPushButton *button = parentWidget->findChild<QPushButton *>("button1", Qt::FindDirectChildOnly);
-//! [41]
-
-
-//! [42]
-QListWidget *list = parentWidget->findChild<QListWidget *>(QString(), Qt::FindDirectChildOnly);
-//! [42]
-
-
-//! [43]
-QList<QPushButton *> childButtons = parentWidget.findChildren<QPushButton *>(QString(), Qt::FindDirectChildOnly);
-//! [43]
-
-//! [44]
-QLabel *label = new QLabel;
-QLineEdit *lineEdit = new QLineEdit;
-QObject::connect(lineEdit, &QLineEdit::textChanged,
- label, &QLabel::setText);
-//! [44]
-
-//! [45]
-void someFunction();
-QPushButton *button = new QPushButton;
-QObject::connect(button, &QPushButton::clicked, someFunction);
-//! [45]
-
-//! [46]
-QByteArray page = ...;
-QTcpSocket *socket = new QTcpSocket;
-socket->connectToHost("qt-project.org", 80);
-QObject::connect(socket, &QTcpSocket::connected, [=] () {
- socket->write("GET " + page + "\r\n");
- });
-//! [46]
-
-//! [47]
-disconnect(myObject, &MyObject::mySignal(), 0, 0);
-//! [47]
-
-//! [48]
-QObject::disconnect(lineEdit, &QLineEdit::textChanged,
- label, &QLabel::setText);
-//! [48]
-
-//! [meta data]
-//: This is a comment for the translator.
-//= qtn_foo_bar
-//~ loc-layout_id foo_dialog
-//~ loc-blank False
-//~ magic-stuff This might mean something magic.
-QString text = MyMagicClass::tr("Sim sala bim.");
-//! [meta data]
-
-//! [explicit tr context]
-QString text = QScrollBar::tr("Page up");
-//! [explicit tr context]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp b/doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp
deleted file mode 100644
index da6e9fca8e..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp
+++ /dev/null
@@ -1,61 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QSystemSemaphore sem("market", 3, QSystemSemaphore::Create);
- // resources available == 3
-sem.acquire(); // resources available == 2
-sem.acquire(); // resources available == 1
-sem.acquire(); // resources available == 0
-sem.release(); // resources available == 1
-sem.release(2); // resources available == 3
-//! [0]
-
-
-//! [1]
-QSystemSemaphore sem("market", 5, QSystemSemaphore::Create);
-sem.acquire(5); // acquire all 5 resources
-sem.release(5); // release the 5 resources
-//! [1]
-
-
-//! [2]
-sem.release(10); // "create" 10 new resources
-//! [2]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qtimer.cpp b/doc/src/snippets/code/src_corelib_kernel_qtimer.cpp
deleted file mode 100644
index dfdef73e75..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qtimer.cpp
+++ /dev/null
@@ -1,52 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-#include <QApplication>
-#include <QTimer>
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- QTimer::singleShot(600000, &app, SLOT(quit()));
- ...
- return app.exec();
-}
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp b/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp
deleted file mode 100644
index ae38c8372f..0000000000
--- a/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp
+++ /dev/null
@@ -1,136 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QDataStream out(...);
-QVariant v(123); // The variant now contains an int
-int x = v.toInt(); // x = 123
-out << v; // Writes a type tag and an int to out
-v = QVariant("hello"); // The variant now contains a QByteArray
-v = QVariant(tr("hello")); // The variant now contains a QString
-int y = v.toInt(); // y = 0 since v cannot be converted to an int
-QString s = v.toString(); // s = tr("hello") (see QObject::tr())
-out << v; // Writes a type tag and a QString to out
-...
-QDataStream in(...); // (opening the previously written stream)
-in >> v; // Reads an Int variant
-int z = v.toInt(); // z = 123
-qDebug("Type is %s", // prints "Type is int"
- v.typeName());
-v = v.toInt() + 100; // The variant now hold the value 223
-v = QVariant(QStringList());
-//! [0]
-
-
-//! [1]
-QVariant x, y(QString()), z(QString(""));
-x.convert(QVariant::Int);
-// x.isNull() == true
-// y.isNull() == true, z.isNull() == false
-//! [1]
-
-
-//! [2]
-QVariant variant;
-...
-QColor color = variant.value<QColor>();
-//! [2]
-
-
-//! [3]
-QColor color = palette().background().color();
-QVariant variant = color;
-//! [3]
-
-
-//! [4]
-QVariant v;
-
-v.setValue(5);
-int i = v.toInt(); // i is now 5
-QString s = v.toString() // s is now "5"
-
-MyCustomStruct c;
-v.setValue(c);
-
-...
-
-MyCustomStruct c2 = v.value<MyCustomStruct>();
-//! [4]
-
-
-//! [5]
-QVariant v;
-
-MyCustomStruct c;
-if (v.canConvert<MyCustomStruct>())
- c = v.value<MyCustomStruct>();
-
-v = 7;
-int i = v.value<int>(); // same as v.toInt()
-QString s = v.value<QString>(); // same as v.toString(), s is now "7"
-MyCustomStruct c2 = v.value<MyCustomStruct>(); // conversion failed, c2 is empty
-//! [5]
-
-
-//! [6]
-QVariant v = 42;
-
-v.canConvert<int>(); // returns true
-v.canConvert<QString>(); // returns true
-
-MyCustomStruct s;
-v.setValue(s);
-
-v.canConvert<int>(); // returns false
-v.canConvert<MyCustomStruct>(); // returns true
-//! [6]
-
-
-//! [7]
-MyCustomStruct s;
-return QVariant::fromValue(s);
-//! [7]
-
-
-//! [8]
-QObject *object = getObjectFromSomewhere();
-QVariant data = QVariant::fromValue(object);
-//! [8]
diff --git a/doc/src/snippets/code/src_corelib_mimetype_qmimedatabase.cpp b/doc/src/snippets/code/src_corelib_mimetype_qmimedatabase.cpp
deleted file mode 100644
index e59a96b87a..0000000000
--- a/doc/src/snippets/code/src_corelib_mimetype_qmimedatabase.cpp
+++ /dev/null
@@ -1,47 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QMimeDatabase db;
-QMimeType mime = db.mimeTypeForFile(fileName);
-if (mime.inherits("text/plain")) {
- // The file is plain text, we can display it in a QTextEdit
-}
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp b/doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp
deleted file mode 100644
index 9de685a7b5..0000000000
--- a/doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp
+++ /dev/null
@@ -1,84 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QLibrary myLib("mylib");
-typedef void (*MyPrototype)();
-MyPrototype myFunction = (MyPrototype) myLib.resolve("mysymbol");
-if (myFunction)
- myFunction();
-//! [0]
-
-
-//! [1]
-typedef void (*MyPrototype)();
-MyPrototype myFunction =
- (MyPrototype) QLibrary::resolve("mylib", "mysymbol");
-if (myFunction)
- myFunction();
-//! [1]
-
-
-//! [2]
-typedef int (*AvgFunction)(int, int);
-
-AvgFunction avg = (AvgFunction) library->resolve("avg");
-if (avg)
- return avg(5, 8);
-else
- return -1;
-//! [2]
-
-
-//! [3]
-extern "C" MY_EXPORT int avg(int a, int b)
-{
- return (a + b) / 2;
-}
-//! [3]
-
-
-//! [4]
-#ifdef Q_OS_WIN
-#define MY_EXPORT __declspec(dllexport)
-#else
-#define MY_EXPORT
-#endif
-//! [4]
diff --git a/doc/src/snippets/code/src_corelib_plugin_quuid.cpp b/doc/src/snippets/code/src_corelib_plugin_quuid.cpp
deleted file mode 100644
index 5c8f6ae091..0000000000
--- a/doc/src/snippets/code/src_corelib_plugin_quuid.cpp
+++ /dev/null
@@ -1,44 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-// {67C8770B-44F1-410A-AB9A-F9B5446F13EE}
-QUuid IID_MyInterface(0x67c8770b, 0x44f1, 0x410a, 0xab, 0x9a, 0xf9, 0xb5, 0x44, 0x6f, 0x13, 0xee)
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp b/doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp
deleted file mode 100644
index e212470b75..0000000000
--- a/doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp
+++ /dev/null
@@ -1,55 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [simple state machine]
-QPushButton button;
-
-QStateMachine machine;
-QState *s1 = new QState();
-s1->assignProperty(&button, "text", "Click me");
-
-QFinalState *s2 = new QFinalState();
-s1->addTransition(&button, SIGNAL(clicked()), s2);
-
-machine.addState(s1);
-machine.addState(s2);
-machine.setInitialState(s1);
-machine.start();
-//! [simple state machine]
diff --git a/doc/src/snippets/code/src_corelib_thread_qatomic.cpp b/doc/src/snippets/code/src_corelib_thread_qatomic.cpp
deleted file mode 100644
index 7e3d7dc7e4..0000000000
--- a/doc/src/snippets/code/src_corelib_thread_qatomic.cpp
+++ /dev/null
@@ -1,98 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-MySharedType &MySharedType::operator=(const MySharedType &other)
-{
- (void) other.data->atomicInt.ref();
- if (!data->atomicInt.deref()) {
- // The last reference has been released
- delete d;
- }
- d = other.d;
- return *this;
-}
-//! [0]
-
-
-//! [1]
-if (currentValue == expectedValue) {
- currentValue = newValue;
- return true;
-}
-return false;
-//! [1]
-
-
-//! [2]
-int originalValue = currentValue;
-currentValue = newValue;
-return originalValue;
-//! [2]
-
-
-//! [3]
-int originalValue = currentValue;
-currentValue += valueToAdd;
-return originalValue;
-//! [3]
-
-
-//! [4]
-if (currentValue == expectedValue) {
- currentValue = newValue;
- return true;
-}
-return false;
-//! [4]
-
-
-//! [5]
-T *originalValue = currentValue;
-currentValue = newValue;
-return originalValue;
-//! [5]
-
-
-//! [6]
-T *originalValue = currentValue;
-currentValue += valueToAdd;
-return originalValue;
-//! [6]
diff --git a/doc/src/snippets/code/src_corelib_thread_qmutex.cpp b/doc/src/snippets/code/src_corelib_thread_qmutex.cpp
deleted file mode 100644
index f5fbeb8419..0000000000
--- a/doc/src/snippets/code/src_corelib_thread_qmutex.cpp
+++ /dev/null
@@ -1,193 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-int number = 6;
-
-void method1()
-{
- number *= 5;
- number /= 4;
-}
-
-void method2()
-{
- number *= 3;
- number /= 2;
-}
-//! [0]
-
-
-//! [1]
-// method1()
-number *= 5; // number is now 30
-number /= 4; // number is now 7
-
-// method2()
-number *= 3; // number is now 21
-number /= 2; // number is now 10
-//! [1]
-
-
-//! [2]
-// Thread 1 calls method1()
-number *= 5; // number is now 30
-
-// Thread 2 calls method2().
-//
-// Most likely Thread 1 has been put to sleep by the operating
-// system to allow Thread 2 to run.
-number *= 3; // number is now 90
-number /= 2; // number is now 45
-
-// Thread 1 finishes executing.
-number /= 4; // number is now 11, instead of 10
-//! [2]
-
-
-//! [3]
-QMutex mutex;
-int number = 6;
-
-void method1()
-{
- mutex.lock();
- number *= 5;
- number /= 4;
- mutex.unlock();
-}
-
-void method2()
-{
- mutex.lock();
- number *= 3;
- number /= 2;
- mutex.unlock();
-}
-//! [3]
-
-
-//! [4]
-int complexFunction(int flag)
-{
- mutex.lock();
-
- int retVal = 0;
-
- switch (flag) {
- case 0:
- case 1:
- retVal = moreComplexFunction(flag);
- break;
- case 2:
- {
- int status = anotherFunction();
- if (status < 0) {
- mutex.unlock();
- return -2;
- }
- retVal = status + flag;
- }
- break;
- default:
- if (flag > 10) {
- mutex.unlock();
- return -1;
- }
- break;
- }
-
- mutex.unlock();
- return retVal;
-}
-//! [4]
-
-
-//! [5]
-int complexFunction(int flag)
-{
- QMutexLocker locker(&mutex);
-
- int retVal = 0;
-
- switch (flag) {
- case 0:
- case 1:
- return moreComplexFunction(flag);
- case 2:
- {
- int status = anotherFunction();
- if (status < 0)
- return -2;
- retVal = status + flag;
- }
- break;
- default:
- if (flag > 10)
- return -1;
- break;
- }
-
- return retVal;
-}
-//! [5]
-
-
-//! [6]
-class SignalWaiter
-{
-private:
- QMutexLocker locker;
-
-public:
- SignalWaiter(QMutex *mutex)
- : locker(mutex)
- {
- }
-
- void waitForSignal()
- {
- ...
- while (!signalled)
- waitCondition.wait(locker.mutex());
- ...
- }
-};
-//! [6]
diff --git a/doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp b/doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp
deleted file mode 100644
index 29076db91c..0000000000
--- a/doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp
+++ /dev/null
@@ -1,61 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-class Number {
-public:
- Number(double n) : num (n) { }
-
- void setNumber(double n) { num = n; }
- double number() const { return num; }
-
-private:
- double num;
-};
-//! [0]
-
-
-//! [1]
-void calcSquare(Number *num)
-{
- QMutexLocker locker(mutexpool.get(num));
- num.setNumber(num.number() * num.number());
-}
-//! [1]
diff --git a/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp b/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp
deleted file mode 100644
index bd42c01905..0000000000
--- a/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp
+++ /dev/null
@@ -1,109 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QReadWriteLock lock;
-
-void ReaderThread::run()
-{
- ...
- lock.lockForRead();
- read_file();
- lock.unlock();
- ...
-}
-
-void WriterThread::run()
-{
- ...
- lock.lockForWrite();
- write_file();
- lock.unlock();
- ...
-}
-//! [0]
-
-
-//! [1]
-QReadWriteLock lock;
-
-QByteArray readData()
-{
- QReadLocker locker(&lock);
- ...
- return data;
-}
-//! [1]
-
-
-//! [2]
-QReadWriteLock lock;
-
-QByteArray readData()
-{
- lock.lockForRead();
- ...
- lock.unlock();
- return data;
-}
-//! [2]
-
-
-//! [3]
-QReadWriteLock lock;
-
-void writeData(const QByteArray &data)
-{
- QWriteLocker locker(&lock);
- ...
-}
-//! [3]
-
-
-//! [4]
-QReadWriteLock lock;
-
-void writeData(const QByteArray &data)
-{
- lock.lockForWrite();
- ...
- lock.unlock();
-}
-//! [4]
diff --git a/doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp b/doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp
deleted file mode 100644
index fd4ff98314..0000000000
--- a/doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp
+++ /dev/null
@@ -1,73 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QSemaphore sem(5); // sem.available() == 5
-
-sem.acquire(3); // sem.available() == 2
-sem.acquire(2); // sem.available() == 0
-sem.release(5); // sem.available() == 5
-sem.release(5); // sem.available() == 10
-
-sem.tryAcquire(1); // sem.available() == 9, returns true
-sem.tryAcquire(250); // sem.available() == 9, returns false
-//! [0]
-
-
-//! [1]
-QSemaphore sem(5); // a semaphore that guards 5 resources
-sem.acquire(5); // acquire all 5 resources
-sem.release(5); // release the 5 resources
-sem.release(10); // "create" 10 new resources
-//! [1]
-
-
-//! [2]
-QSemaphore sem(5); // sem.available() == 5
-sem.tryAcquire(250); // sem.available() == 5, returns false
-sem.tryAcquire(3); // sem.available() == 2, returns true
-//! [2]
-
-
-//! [3]
-QSemaphore sem(5); // sem.available() == 5
-sem.tryAcquire(250, 1000); // sem.available() == 5, waits 1000 milliseconds and returns false
-sem.tryAcquire(3, 30000); // sem.available() == 2, returns true without waiting
-//! [3]
diff --git a/doc/src/snippets/code/src_corelib_thread_qthread.cpp b/doc/src/snippets/code/src_corelib_thread_qthread.cpp
deleted file mode 100644
index 681023c91b..0000000000
--- a/doc/src/snippets/code/src_corelib_thread_qthread.cpp
+++ /dev/null
@@ -1,56 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-class MyThread : public QThread
-{
-public:
- void run();
-};
-
-void MyThread::run()
-{
- QTcpSocket socket;
- // connect QTcpSocket's signals somewhere meaningful
- ...
- socket.connectToHost(hostName, portNumber);
- exec();
-}
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp b/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp
deleted file mode 100644
index 149cae5bf6..0000000000
--- a/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp
+++ /dev/null
@@ -1,89 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-forever {
- mutex.lock();
- keyPressed.wait(&mutex);
- do_something();
- mutex.unlock();
-}
-//! [0]
-
-
-//! [1]
-forever {
- getchar();
- keyPressed.wakeAll();
-}
-//! [1]
-
-
-//! [2]
-forever {
- mutex.lock();
- keyPressed.wait(&mutex);
- ++count;
- mutex.unlock();
-
- do_something();
-
- mutex.lock();
- --count;
- mutex.unlock();
-}
-//! [2]
-
-
-//! [3]
-forever {
- getchar();
-
- mutex.lock();
- // Sleep until there are no busy worker threads
- while (count > 0) {
- mutex.unlock();
- sleep(1);
- mutex.lock();
- }
- keyPressed.wakeAll();
- mutex.unlock();
-}
-//! [3]
diff --git a/doc/src/snippets/code/src_corelib_tools_qbitarray.cpp b/doc/src/snippets/code/src_corelib_tools_qbitarray.cpp
deleted file mode 100644
index cfaa6ef485..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qbitarray.cpp
+++ /dev/null
@@ -1,176 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QBitArray ba(200);
-//! [0]
-
-
-//! [1]
-QBitArray ba;
-ba.resize(3);
-ba[0] = true;
-ba[1] = false;
-ba[2] = true;
-//! [1]
-
-
-//! [2]
-QBitArray ba(3);
-ba.setBit(0, true);
-ba.setBit(1, false);
-ba.setBit(2, true);
-//! [2]
-
-
-//! [3]
-QBitArray x(5);
-x.setBit(3, true);
-// x: [ 0, 0, 0, 1, 0 ]
-
-QBitArray y(5);
-y.setBit(4, true);
-// y: [ 0, 0, 0, 0, 1 ]
-
-x |= y;
-// x: [ 0, 0, 0, 1, 1 ]
-//! [3]
-
-
-//! [4]
-QBitArray().isNull(); // returns true
-QBitArray().isEmpty(); // returns true
-
-QBitArray(0).isNull(); // returns false
-QBitArray(0).isEmpty(); // returns true
-
-QBitArray(3).isNull(); // returns false
-QBitArray(3).isEmpty(); // returns false
-//! [4]
-
-
-//! [5]
-QBitArray().isNull(); // returns true
-QBitArray(0).isNull(); // returns false
-QBitArray(3).isNull(); // returns false
-//! [5]
-
-
-//! [6]
-QBitArray ba(8);
-ba.fill(true);
-// ba: [ 1, 1, 1, 1, 1, 1, 1, 1 ]
-
-ba.fill(false, 2);
-// ba: [ 0, 0 ]
-//! [6]
-
-
-//! [7]
-QBitArray a(3);
-a[0] = false;
-a[1] = true;
-a[2] = a[0] ^ a[1];
-//! [7]
-
-
-//! [8]
-QBitArray a(3);
-QBitArray b(2);
-a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ]
-b[0] = 1; b[1] = 0; // b: [ 1, 1 ]
-a &= b; // a: [ 1, 0, 0 ]
-//! [8]
-
-
-//! [9]
-QBitArray a(3);
-QBitArray b(2);
-a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ]
-b[0] = 1; b[1] = 0; // b: [ 1, 1 ]
-a |= b; // a: [ 1, 1, 1 ]
-//! [9]
-
-
-//! [10]
-QBitArray a(3);
-QBitArray b(2);
-a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ]
-b[0] = 1; b[1] = 0; // b: [ 1, 1 ]
-a ^= b; // a: [ 0, 1, 1 ]
-//! [10]
-
-
-//! [11]
-QBitArray a(3);
-QBitArray b;
-a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ]
-b = ~a; // b: [ 0, 1, 0 ]
-//! [11]
-
-
-//! [12]
-QBitArray a(3);
-QBitArray b(2);
-QBitArray c;
-a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ]
-b[0] = 1; b[1] = 0; // b: [ 1, 1 ]
-c = a & b; // c: [ 1, 0, 0 ]
-//! [12]
-
-
-//! [13]
-QBitArray a(3);
-QBitArray b(2);
-QBitArray c;
-a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ]
-b[0] = 1; b[1] = 0; // b: [ 1, 1 ]
-c = a | b; // c: [ 1, 1, 1 ]
-//! [13]
-
-
-//! [14]
-QBitArray a(3);
-QBitArray b(2);
-QBitArray c;
-a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ]
-b[0] = 1; b[1] = 0; // b: [ 1, 1 ]
-c = a ^ b; // c: [ 0, 1, 1 ]
-//! [14]
diff --git a/doc/src/snippets/code/src_corelib_tools_qbytearray.cpp b/doc/src/snippets/code/src_corelib_tools_qbytearray.cpp
deleted file mode 100644
index a232f490b2..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qbytearray.cpp
+++ /dev/null
@@ -1,421 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-void wrapInFunction()
-{
-
-//! [0]
-QByteArray ba("Hello");
-//! [0]
-
-
-//! [1]
-QByteArray ba;
-ba.resize(5);
-ba[0] = 0x3c;
-ba[1] = 0xb8;
-ba[2] = 0x64;
-ba[3] = 0x18;
-ba[4] = 0xca;
-//! [1]
-
-
-//! [2]
-for (int i = 0; i < ba.size(); ++i) {
- if (ba.at(i) >= 'a' && ba.at(i) <= 'f')
- cout << "Found character in range [a-f]" << endl;
-}
-//! [2]
-
-
-//! [3]
-QByteArray x("and");
-x.prepend("rock "); // x == "rock and"
-x.append(" roll"); // x == "rock and roll"
-x.replace(5, 3, "&"); // x == "rock & roll"
-//! [3]
-
-
-//! [4]
-QByteArray ba("We must be <b>bold</b>, very <b>bold</b>");
-int j = 0;
-while ((j = ba.indexOf("<b>", j)) != -1) {
- cout << "Found <b> tag at index position " << j << endl;
- ++j;
-}
-//! [4]
-
-
-//! [5]
-QByteArray().isNull(); // returns true
-QByteArray().isEmpty(); // returns true
-
-QByteArray("").isNull(); // returns false
-QByteArray("").isEmpty(); // returns true
-
-QByteArray("abc").isNull(); // returns false
-QByteArray("abc").isEmpty(); // returns false
-//! [5]
-
-
-//! [6]
-QByteArray ba("Hello");
-int n = ba.size(); // n == 5
-ba.data()[0]; // returns 'H'
-ba.data()[4]; // returns 'o'
-ba.data()[5]; // returns '\0'
-//! [6]
-
-
-//! [7]
-QByteArray().isEmpty(); // returns true
-QByteArray("").isEmpty(); // returns true
-QByteArray("abc").isEmpty(); // returns false
-//! [7]
-
-
-//! [8]
-QByteArray ba("Hello world");
-char *data = ba.data();
-while (*data) {
- cout << "[" << *data << "]" << endl;
- ++data;
-}
-//! [8]
-
-
-//! [9]
-QByteArray ba;
-for (int i = 0; i < 10; ++i)
- ba[i] = 'A' + i;
-// ba == "ABCDEFGHIJ"
-//! [9]
-
-
-//! [10]
-QByteArray ba("Stockholm");
-ba.truncate(5); // ba == "Stock"
-//! [10]
-
-
-//! [11]
-QByteArray ba("STARTTLS\r\n");
-ba.chop(2); // ba == "STARTTLS"
-//! [11]
-
-
-//! [12]
-QByteArray x("free");
-QByteArray y("dom");
-x += y;
-// x == "freedom"
-//! [12]
-
-
-//! [13]
-QByteArray().isNull(); // returns true
-QByteArray("").isNull(); // returns false
-QByteArray("abc").isNull(); // returns false
-//! [13]
-
-
-//! [14]
-QByteArray ba("Istambul");
-ba.fill('o');
-// ba == "oooooooo"
-
-ba.fill('X', 2);
-// ba == "XX"
-//! [14]
-
-
-//! [15]
-QByteArray x("ship");
-QByteArray y("air");
-x.prepend(y);
-// x == "airship"
-//! [15]
-
-
-//! [16]
-QByteArray x("free");
-QByteArray y("dom");
-x.append(y);
-// x == "freedom"
-//! [16]
-
-
-//! [17]
-QByteArray ba("Meal");
-ba.insert(1, QByteArray("ontr"));
-// ba == "Montreal"
-//! [17]
-
-
-//! [18]
-QByteArray ba("Montreal");
-ba.remove(1, 4);
-// ba == "Meal"
-//! [18]
-
-
-//! [19]
-QByteArray x("Say yes!");
-QByteArray y("no");
-x.replace(4, 3, y);
-// x == "Say no!"
-//! [19]
-
-
-//! [20]
-QByteArray ba("colour behaviour flavour neighbour");
-ba.replace(QByteArray("ou"), QByteArray("o"));
-// ba == "color behavior flavor neighbor"
-//! [20]
-
-
-//! [21]
-QByteArray x("sticky question");
-QByteArray y("sti");
-x.indexOf(y); // returns 0
-x.indexOf(y, 1); // returns 10
-x.indexOf(y, 10); // returns 10
-x.indexOf(y, 11); // returns -1
-//! [21]
-
-
-//! [22]
-QByteArray ba("ABCBA");
-ba.indexOf("B"); // returns 1
-ba.indexOf("B", 1); // returns 1
-ba.indexOf("B", 2); // returns 3
-ba.indexOf("X"); // returns -1
-//! [22]
-
-
-//! [23]
-QByteArray x("crazy azimuths");
-QByteArray y("az");
-x.lastIndexOf(y); // returns 6
-x.lastIndexOf(y, 6); // returns 6
-x.lastIndexOf(y, 5); // returns 2
-x.lastIndexOf(y, 1); // returns -1
-//! [23]
-
-
-//! [24]
-QByteArray ba("ABCBA");
-ba.lastIndexOf("B"); // returns 3
-ba.lastIndexOf("B", 3); // returns 3
-ba.lastIndexOf("B", 2); // returns 1
-ba.lastIndexOf("X"); // returns -1
-//! [24]
-
-
-//! [25]
-QByteArray url("ftp://ftp.qt.nokia.com/");
-if (url.startsWith("ftp:"))
- ...
-//! [25]
-
-
-//! [26]
-QByteArray url("http://qt.nokia.com/index.html");
-if (url.endsWith(".html"))
- ...
-//! [26]
-
-
-//! [27]
-QByteArray x("Pineapple");
-QByteArray y = x.left(4);
-// y == "Pine"
-//! [27]
-
-
-//! [28]
-QByteArray x("Pineapple");
-QByteArray y = x.right(5);
-// y == "apple"
-//! [28]
-
-
-//! [29]
-QByteArray x("Five pineapples");
-QByteArray y = x.mid(5, 4); // y == "pine"
-QByteArray z = x.mid(5); // z == "pineapples"
-//! [29]
-
-
-//! [30]
-QByteArray x("Qt by NOKIA");
-QByteArray y = x.toLower();
-// y == "qt by nokia"
-//! [30]
-
-
-//! [31]
-QByteArray x("Qt by NOKIA");
-QByteArray y = x.toUpper();
-// y == "QT BY NOKIA"
-//! [31]
-
-
-//! [32]
-QByteArray ba(" lots\t of\nwhitespace\r\n ");
-ba = ba.simplified();
-// ba == "lots of whitespace";
-//! [32]
-
-
-//! [33]
-QByteArray ba(" lots\t of\nwhitespace\r\n ");
-ba = ba.trimmed();
-// ba == "lots\t of\nwhitespace";
-//! [33]
-
-
-//! [34]
-QByteArray x("apple");
-QByteArray y = x.leftJustified(8, '.'); // y == "apple..."
-//! [34]
-
-
-//! [35]
-QByteArray x("apple");
-QByteArray y = x.rightJustified(8, '.'); // y == "...apple"
-//! [35]
-
-
-//! [36]
-QByteArray str("FF");
-bool ok;
-int hex = str.toInt(&ok, 16); // hex == 255, ok == true
-int dec = str.toInt(&ok, 10); // dec == 0, ok == false
-//! [36]
-
-
-//! [37]
-QByteArray str("FF");
-bool ok;
-long hex = str.toLong(&ok, 16); // hex == 255, ok == true
-long dec = str.toLong(&ok, 10); // dec == 0, ok == false
-//! [37]
-
-
-//! [38]
-QByteArray string("1234.56");
-double a = string.toDouble(); // a == 1234.56
-//! [38]
-
-
-//! [39]
-QByteArray text("Qt is great!");
-text.toBase64(); // returns "UXQgaXMgZ3JlYXQh"
-//! [39]
-
-
-//! [40]
-QByteArray ba;
-int n = 63;
-ba.setNum(n); // ba == "63"
-ba.setNum(n, 16); // ba == "3f"
-//! [40]
-
-
-//! [41]
-int n = 63;
-QByteArray::number(n); // returns "63"
-QByteArray::number(n, 16); // returns "3f"
-QByteArray::number(n, 16).toUpper(); // returns "3F"
-//! [41]
-
-
-//! [42]
-QByteArray ba = QByteArray::number(12.3456, 'E', 3);
-// ba == 1.235E+01
-//! [42]
-
-
-//! [43]
- static const char mydata[] = {
- 0x00, 0x00, 0x03, 0x84, 0x78, 0x9c, 0x3b, 0x76,
- 0xec, 0x18, 0xc3, 0x31, 0x0a, 0xf1, 0xcc, 0x99,
- ...
- 0x6d, 0x5b
-};
-
-QByteArray data = QByteArray::fromRawData(mydata, sizeof(mydata));
-QDataStream in(&data, QIODevice::ReadOnly);
-...
-//! [43]
-
-
-//! [44]
-QByteArray text = QByteArray::fromBase64("UXQgaXMgZ3JlYXQh");
-text.data(); // returns "Qt is great!"
-//! [44]
-
-
-//! [45]
-QByteArray text = QByteArray::fromHex("517420697320677265617421");
-text.data(); // returns "Qt is great!"
-//! [45]
-
-//! [46]
-QString tmp = "test";
-QByteArray text = tmp.toLocal8Bit();
-char *data = new char[text.size()]
-strcpy(data, text.data());
-delete [] data;
-//! [46]
-
-//! [47]
-QString tmp = "test";
-QByteArray text = tmp.toLocal8Bit();
-char *data = new char[text.size() + 1]
-strcpy(data, text.data());
-delete [] data;
-//! [47]
-
-}
-
-
diff --git a/doc/src/snippets/code/src_corelib_tools_qdatetime.cpp b/doc/src/snippets/code/src_corelib_tools_qdatetime.cpp
deleted file mode 100644
index 59cd67fe6d..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qdatetime.cpp
+++ /dev/null
@@ -1,146 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QDate d1(1995, 5, 17); // May 17, 1995
-QDate d2(1995, 5, 20); // May 20, 1995
-d1.daysTo(d2); // returns 3
-d2.daysTo(d1); // returns -3
-//! [0]
-
-
-//! [1]
-QDate date = QDate::fromString("1MM12car2003", "d'MM'MMcaryyyy");
-// date is 1 December 2003
-//! [1]
-
-
-//! [2]
-QDate date = QDate::fromString("130", "Md"); // invalid
-//! [2]
-
-
-//! [3]
-QDate::fromString("1.30", "M.d"); // January 30 1900
-QDate::fromString("20000110", "yyyyMMdd"); // January 10, 2000
-QDate::fromString("20000110", "yyyyMd"); // January 10, 2000
-//! [3]
-
-
-//! [4]
-QDate::isValid(2002, 5, 17); // true
-QDate::isValid(2002, 2, 30); // false (Feb 30 does not exist)
-QDate::isValid(2004, 2, 29); // true (2004 is a leap year)
-QDate::isValid(2000, 2, 29); // true (2000 is a leap year)
-QDate::isValid(2006, 2, 29); // false (2006 is not a leap year)
-QDate::isValid(2100, 2, 29); // false (2100 is not a leap year)
-QDate::isValid(1202, 6, 6); // true (even though 1202 is pre-Gregorian)
-//! [4]
-
-
-//! [5]
-QTime n(14, 0, 0); // n == 14:00:00
-QTime t;
-t = n.addSecs(70); // t == 14:01:10
-t = n.addSecs(-70); // t == 13:58:50
-t = n.addSecs(10 * 60 * 60 + 5); // t == 00:00:05
-t = n.addSecs(-15 * 60 * 60); // t == 23:00:00
-//! [5]
-
-
-//! [6]
-QTime time = QTime::fromString("1mm12car00", "m'mm'hcarss");
-// time is 12:01.00
-//! [6]
-
-
-//! [7]
-QTime time = QTime::fromString("00:710", "hh:ms"); // invalid
-//! [7]
-
-
-//! [8]
-QTime time = QTime::fromString("1.30", "m.s");
-// time is 00:01:30.000
-//! [8]
-
-
-//! [9]
-QTime::isValid(21, 10, 30); // returns true
-QTime::isValid(22, 5, 62); // returns false
-//! [9]
-
-
-//! [10]
-QTime t;
-t.start();
-some_lengthy_task();
-qDebug("Time elapsed: %d ms", t.elapsed());
-//! [10]
-
-
-//! [11]
-QDateTime now = QDateTime::currentDateTime();
-QDateTime xmas(QDate(now.date().year(), 12, 25), QTime(0, 0));
-qDebug("There are %d seconds to Christmas", now.secsTo(xmas));
-//! [11]
-
-
-//! [12]
-QTime time1 = QTime::fromString("131", "HHh");
-// time1 is 13:00:00
-QTime time1 = QTime::fromString("1apA", "1amAM");
-// time1 is 01:00:00
-
-QDateTime dateTime2 = QDateTime::fromString("M1d1y9800:01:02",
- "'M'M'd'd'y'yyhh:mm:ss");
-// dateTime is 1 January 1998 00:01:02
-//! [12]
-
-
-//! [13]
-QDateTime dateTime = QDateTime::fromString("130", "Mm"); // invalid
-//! [13]
-
-
-//! [14]
-QDateTime dateTime = QDateTime::fromString("1.30.1", "M.d.s");
-// dateTime is January 30 in 1900 at 00:00:01.
-//! [14]
diff --git a/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp b/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp
deleted file mode 100644
index 3aa0d986af..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp
+++ /dev/null
@@ -1,44 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-qreal myEasingFunction(qreal progress);
-//! [0]
-
diff --git a/doc/src/snippets/code/src_corelib_tools_qhash.cpp b/doc/src/snippets/code/src_corelib_tools_qhash.cpp
deleted file mode 100644
index 2fa73bac46..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qhash.cpp
+++ /dev/null
@@ -1,299 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QHash<QString, int> hash;
-//! [0]
-
-
-//! [1]
-hash["one"] = 1;
-hash["three"] = 3;
-hash["seven"] = 7;
-//! [1]
-
-
-//! [2]
-hash.insert("twelve", 12);
-//! [2]
-
-
-//! [3]
-int num1 = hash["thirteen"];
-int num2 = hash.value("thirteen");
-//! [3]
-
-
-//! [4]
-int timeout = 30;
-if (hash.contains("TIMEOUT"))
- timeout = hash.value("TIMEOUT");
-//! [4]
-
-
-//! [5]
-int timeout = hash.value("TIMEOUT", 30);
-//! [5]
-
-
-//! [6]
-// WRONG
-QHash<int, QWidget *> hash;
-...
-for (int i = 0; i < 1000; ++i) {
- if (hash[i] == okButton)
- cout << "Found button at index " << i << endl;
-}
-//! [6]
-
-
-//! [7]
-QHashIterator<QString, int> i(hash);
-while (i.hasNext()) {
- i.next();
- cout << i.key() << ": " << i.value() << endl;
-}
-//! [7]
-
-
-//! [8]
-QHash<QString, int>::const_iterator i = hash.constBegin();
-while (i != hash.constEnd()) {
- cout << i.key() << ": " << i.value() << endl;
- ++i;
-}
-//! [8]
-
-
-//! [9]
-hash.insert("plenty", 100);
-hash.insert("plenty", 2000);
-// hash.value("plenty") == 2000
-//! [9]
-
-
-//! [10]
-QList<int> values = hash.values("plenty");
-for (int i = 0; i < values.size(); ++i)
- cout << values.at(i) << endl;
-//! [10]
-
-
-//! [11]
-QHash<QString, int>::iterator i = hash.find("plenty");
-while (i != hash.end() && i.key() == "plenty") {
- cout << i.value() << endl;
- ++i;
-}
-//! [11]
-
-
-//! [12]
-QHash<QString, int> hash;
-...
-foreach (int value, hash)
- cout << value << endl;
-//! [12]
-
-
-//! [13]
-#ifndef EMPLOYEE_H
-#define EMPLOYEE_H
-
-class Employee
-{
-public:
- Employee() {}
- Employee(const QString &name, const QDate &dateOfBirth);
- ...
-
-private:
- QString myName;
- QDate myDateOfBirth;
-};
-
-inline bool operator==(const Employee &e1, const Employee &e2)
-{
- return e1.name() == e2.name()
- && e1.dateOfBirth() == e2.dateOfBirth();
-}
-
-inline uint qHash(const Employee &key, uint seed)
-{
- return qHash(key.name(), seed) ^ key.dateOfBirth().day();
-}
-
-#endif // EMPLOYEE_H
-//! [13]
-
-
-//! [14]
-QHash<QString, int> hash;
-hash.reserve(20000);
-for (int i = 0; i < 20000; ++i)
- hash.insert(keys[i], values[i]);
-//! [14]
-
-
-//! [15]
-QHash<QObject *, int> objectHash;
-...
-QHash<QObject *, int>::iterator i = objectHash.find(obj);
-while (i != objectHash.end() && i.key() == obj) {
- if (i.value() == 0) {
- i = objectHash.erase(i);
- } else {
- ++i;
- }
-}
-//! [15]
-
-
-//! [16]
-QHash<QString, int> hash;
-...
-QHash<QString, int>::const_iterator i = hash.find("HDR");
-while (i != hash.end() && i.key() == "HDR") {
- cout << i.value() << endl;
- ++i;
-}
-//! [16]
-
-
-//! [17]
-QHash<QString, int> hash;
-hash.insert("January", 1);
-hash.insert("February", 2);
-...
-hash.insert("December", 12);
-
-QHash<QString, int>::iterator i;
-for (i = hash.begin(); i != hash.end(); ++i)
- cout << i.key() << ": " << i.value() << endl;
-//! [17]
-
-
-//! [18]
-QHash<QString, int>::iterator i;
-for (i = hash.begin(); i != hash.end(); ++i)
- i.value() += 2;
-//! [18]
-
-
-//! [19]
-QHash<QString, int>::iterator i = hash.begin();
-while (i != hash.end()) {
- if (i.key().startsWith("_"))
- i = hash.erase(i);
- else
- ++i;
-}
-//! [19]
-
-
-//! [20]
-QHash<QString, int>::iterator i = hash.begin();
-while (i != hash.end()) {
- QHash<QString, int>::iterator prev = i;
- ++i;
- if (prev.key().startsWith("_"))
- hash.erase(prev);
-}
-//! [20]
-
-
-//! [21]
-// WRONG
-while (i != hash.end()) {
- if (i.key().startsWith("_"))
- hash.erase(i);
- ++i;
-}
-//! [21]
-
-
-//! [22]
-if (i.key() == "Hello")
- i.value() = "Bonjour";
-//! [22]
-
-
-//! [23]
-QHash<QString, int> hash;
-hash.insert("January", 1);
-hash.insert("February", 2);
-...
-hash.insert("December", 12);
-
-QHash<QString, int>::const_iterator i;
-for (i = hash.constBegin(); i != hash.constEnd(); ++i)
- cout << i.key() << ": " << i.value() << endl;
-//! [23]
-
-
-//! [24]
-QMultiHash<QString, int> hash1, hash2, hash3;
-
-hash1.insert("plenty", 100);
-hash1.insert("plenty", 2000);
-// hash1.size() == 2
-
-hash2.insert("plenty", 5000);
-// hash2.size() == 1
-
-hash3 = hash1 + hash2;
-// hash3.size() == 3
-//! [24]
-
-
-//! [25]
-QList<int> values = hash.values("plenty");
-for (int i = 0; i < values.size(); ++i)
- cout << values.at(i) << endl;
-//! [25]
-
-
-//! [26]
-QMultiHash<QString, int>::iterator i = hash.find("plenty");
-while (i != hash.end() && i.key() == "plenty") {
- cout << i.value() << endl;
- ++i;
-}
-//! [26]
diff --git a/doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp b/doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp
deleted file mode 100644
index b9861f16c0..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp
+++ /dev/null
@@ -1,204 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QLinkedList<int> integerList;
-QLinkedList<QTime> timeList;
-//! [0]
-
-
-//! [1]
-QLinkedList<QString> list;
-list << "one" << "two" << "three";
-// list: ["one", "two", "three"]
-//! [1]
-
-
-//! [2]
-QLinkedList<QWidget *> list;
-...
-while (!list.isEmpty())
- delete list.takeFirst();
-//! [2]
-
-
-//! [3]
-QLinkedList<QString> list;
-list.append("one");
-list.append("two");
-list.append("three");
-// list: ["one", "two", "three"]
-//! [3]
-
-
-//! [4]
-QLinkedList<QString> list;
-list.prepend("one");
-list.prepend("two");
-list.prepend("three");
-// list: ["three", "two", "one"]
-//! [4]
-
-
-//! [5]
-QList<QString> list;
-list << "sun" << "cloud" << "sun" << "rain";
-list.removeAll("sun");
-// list: ["cloud", "rain"]
-//! [5]
-
-
-//! [6]
-QList<QString> list;
-list << "sun" << "cloud" << "sun" << "rain";
-list.removeOne("sun");
-// list: ["cloud", "sun", "rain"]
-//! [6]
-
-
-//! [7]
-QLinkedList<QString> list;
-list.append("January");
-list.append("February");
-...
-list.append("December");
-
-QLinkedList<QString>::iterator i;
-for (i = list.begin(); i != list.end(); ++i)
- cout << *i << endl;
-//! [7]
-
-
-//! [8]
-QLinkedList<QString> list;
-...
-QLinkedList<QString>::iterator it = qFind(list.begin(),
- list.end(), "Joel");
-if (it != list.end())
- cout << "Found Joel" << endl;
-//! [8]
-
-
-//! [9]
-QLinkedList<int>::iterator i;
-for (i = list.begin(); i != list.end(); ++i)
- *i += 2;
-//! [9]
-
-
-//! [10]
-QLinkedList<QString> list;
-...
-QLinkedList<QString>::iterator i = list.begin();
-while (i != list.end()) {
- if ((*i).startsWith("_"))
- i = list.erase(i);
- else
- ++i;
-}
-//! [10]
-
-
-//! [11]
-QLinkedList<QString>::iterator i = list.begin();
-while (i != list.end()) {
- QLinkedList<QString>::iterator previous = i;
- ++i;
- if ((*previous).startsWith("_"))
- list.erase(previous);
-}
-//! [11]
-
-
-//! [12]
-// WRONG
-while (i != list.end()) {
- if ((*i).startsWith("_"))
- list.erase(i);
- ++i;
-}
-//! [12]
-
-
-//! [13]
-if (*it == "Hello")
- *it = "Bonjour";
-//! [13]
-
-
-//! [14]
-QLinkedList<QString> list;
-list.append("January");
-list.append("February");
-...
-list.append("December");
-
-QLinkedList<QString>::const_iterator i;
-for (i = list.constBegin(); i != list.constEnd(); ++i)
- cout << *i << endl;
-//! [14]
-
-
-//! [15]
-QLinkedList<QString> list;
-...
-QLinkedList<QString>::iterator it = qFind(list.constBegin(),
- list.constEnd(), "Joel");
-if (it != list.constEnd())
- cout << "Found Joel" << endl;
-//! [15]
-
-
-//! [16]
-std::list<double> stdlist;
-list.push_back(1.2);
-list.push_back(0.5);
-list.push_back(3.14);
-
-QLinkedList<double> list = QLinkedList<double>::fromStdList(stdlist);
-//! [16]
-
-
-//! [17]
-QLinkedList<double> list;
-list << 1.2 << 0.5 << 3.14;
-
-std::list<double> stdlist = list.toStdList();
-//! [17]
diff --git a/doc/src/snippets/code/src_corelib_tools_qlistdata.cpp b/doc/src/snippets/code/src_corelib_tools_qlistdata.cpp
deleted file mode 100644
index dca5473cd6..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qlistdata.cpp
+++ /dev/null
@@ -1,267 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QList<int> integerList;
-QList<QDate> dateList;
-//! [0]
-
-
-//! [1]
-QList<QString> list;
-list << "one" << "two" << "three";
-// list: ["one", "two", "three"]
-//! [1]
-
-
-//! [2]
-if (list[0] == "Bob")
- list[0] = "Robert";
-//! [2]
-
-
-//! [3]
-for (int i = 0; i < list.size(); ++i) {
- if (list.at(i) == "Jane")
- cout << "Found Jane at position " << i << endl;
-}
-//! [3]
-
-
-//! [4]
-QList<QWidget *> list;
-...
-while (!list.isEmpty())
- delete list.takeFirst();
-//! [4]
-
-
-//! [5]
-int i = list.indexOf("Jane");
-if (i != -1)
- cout << "First occurrence of Jane is at position " << i << endl;
-//! [5]
-
-
-//! [6]
-QList<QString> list;
-list.append("one");
-list.append("two");
-list.append("three");
-// list: ["one", "two", "three"]
-//! [6]
-
-
-//! [7]
-QList<QString> list;
-list.prepend("one");
-list.prepend("two");
-list.prepend("three");
-// list: ["three", "two", "one"]
-//! [7]
-
-
-//! [8]
-QList<QString> list;
-list << "alpha" << "beta" << "delta";
-list.insert(2, "gamma");
-// list: ["alpha", "beta", "gamma", "delta"]
-//! [8]
-
-
-//! [9]
-QList<QString> list;
-list << "sun" << "cloud" << "sun" << "rain";
-list.removeAll("sun");
-// list: ["cloud", "rain"]
-//! [9]
-
-
-//! [10]
-QList<QString> list;
-list << "sun" << "cloud" << "sun" << "rain";
-list.removeOne("sun");
-// list: ["cloud", ,"sun", "rain"]
-//! [10]
-
-
-//! [11]
-QList<QString> list;
-list << "A" << "B" << "C" << "D" << "E" << "F";
-list.move(1, 4);
-// list: ["A", "C", "D", "E", "B", "F"]
-//! [11]
-
-
-//! [12]
-QList<QString> list;
-list << "A" << "B" << "C" << "D" << "E" << "F";
-list.swap(1, 4);
-// list: ["A", "E", "C", "D", "B", "F"]
-//! [12]
-
-
-//! [13]
-QList<QString> list;
-list << "A" << "B" << "C" << "B" << "A";
-list.indexOf("B"); // returns 1
-list.indexOf("B", 1); // returns 1
-list.indexOf("B", 2); // returns 3
-list.indexOf("X"); // returns -1
-//! [13]
-
-
-//! [14]
-QList<QString> list;
-list << "A" << "B" << "C" << "B" << "A";
-list.lastIndexOf("B"); // returns 3
-list.lastIndexOf("B", 3); // returns 3
-list.lastIndexOf("B", 2); // returns 1
-list.lastIndexOf("X"); // returns -1
-//! [14]
-
-
-//! [15]
-QList<QString> list;
-list.append("January");
-list.append("February");
-...
-list.append("December");
-
-QList<QString>::iterator i;
-for (i = list.begin(); i != list.end(); ++i)
- cout << *i << endl;
-//! [15]
-
-
-//! [16]
-QList<int>::iterator i;
-for (i = list.begin(); i != list.end(); ++i)
- *i += 2;
-//! [16]
-
-
-//! [17]
-QList<QWidget *> list;
-...
-qDeleteAll(list.begin(), list.end());
-//! [17]
-
-
-//! [18]
-if (*it == "Hello")
- *it = "Bonjour";
-//! [18]
-
-
-//! [19]
-QList<QString> list;
-list.append("January");
-list.append("February");
-...
-list.append("December");
-
-QList<QString>::const_iterator i;
-for (i = list.constBegin(); i != list.constEnd(); ++i)
- cout << *i << endl;
-//! [19]
-
-
-//! [20]
-QList<QWidget *> list;
-...
-qDeleteAll(list.constBegin(), list.constEnd());
-//! [20]
-
-
-//! [21]
-QVector<double> vect;
-vect << 20.0 << 30.0 << 40.0 << 50.0;
-
-QList<double> list = QVector<T>::fromVector(vect);
-// list: [20.0, 30.0, 40.0, 50.0]
-//! [21]
-
-
-//! [22]
-QStringList list;
-list << "Sven" << "Kim" << "Ola";
-
-QVector<QString> vect = list.toVector();
-// vect: ["Sven", "Kim", "Ola"]
-//! [22]
-
-
-//! [23]
-QSet<int> set;
-set << 20 << 30 << 40 << ... << 70;
-
-QList<int> list = QList<int>::fromSet(set);
-qSort(list);
-//! [23]
-
-
-//! [24]
-QStringList list;
-list << "Julia" << "Mike" << "Mike" << "Julia" << "Julia";
-
-QSet<QString> set = list.toSet();
-set.contains("Julia"); // returns true
-set.contains("Mike"); // returns true
-set.size(); // returns 2
-//! [24]
-
-
-//! [25]
-std::list<double> stdlist;
-list.push_back(1.2);
-list.push_back(0.5);
-list.push_back(3.14);
-
-QList<double> list = QList<double>::fromStdList(stdlist);
-//! [25]
-
-
-//! [26]
-QList<double> list;
-list << 1.2 << 0.5 << 3.14;
-
-std::list<double> stdlist = list.toStdList();
-//! [26]
diff --git a/doc/src/snippets/code/src_corelib_tools_qlocale.cpp b/doc/src/snippets/code/src_corelib_tools_qlocale.cpp
deleted file mode 100644
index 2e3b599910..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qlocale.cpp
+++ /dev/null
@@ -1,95 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QLocale egyptian(QLocale::Arabic, QLocale::Egypt);
-QString s1 = egyptian.toString(1.571429E+07, 'e');
-QString s2 = egyptian.toString(10);
-
-double d = egyptian.toDouble(s1);
-int i = egyptian.toInt(s2);
-//! [0]
-
-
-//! [1]
-QLocale::setDefault(QLocale(QLocale::Hebrew, QLocale::Israel));
-QLocale hebrew; // Constructs a default QLocale
-QString s1 = hebrew.toString(15714.3, 'e');
-
-bool ok;
-double d;
-
-QLocale::setDefault(QLocale::C);
-d = QString("1234,56").toDouble(&ok); // ok == false
-d = QString("1234.56").toDouble(&ok); // ok == true, d == 1234.56
-
-QLocale::setDefault(QLocale::German);
-d = QString("1234,56").toDouble(&ok); // ok == true, d == 1234.56
-d = QString("1234.56").toDouble(&ok); // ok == true, d == 1234.56
-
-QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
-str = QString("%1 %L2 %L3")
- .arg(12345).arg(12345).arg(12345, 0, 16);
-// str == "12345 12,345 3039"
-//! [1]
-
-
-//! [2]
-QLocale korean("ko");
-QLocale swiss("de_CH");
-//! [2]
-
-
-//! [3]
-bool ok;
-double d;
-
-QLocale c(QLocale::C);
-d = c.toDouble( "1234.56", &ok ); // ok == true, d == 1234.56
-d = c.toDouble( "1,234.56", &ok ); // ok == true, d == 1234.56
-d = c.toDouble( "1234,56", &ok ); // ok == false
-
-QLocale german(QLocale::German);
-d = german.toDouble( "1234,56", &ok ); // ok == true, d == 1234.56
-d = german.toDouble( "1.234,56", &ok ); // ok == true, d == 1234.56
-d = german.toDouble( "1234.56", &ok ); // ok == false
-
-d = german.toDouble( "1.234", &ok ); // ok == true, d == 1234.0
-//! [3]
diff --git a/doc/src/snippets/code/src_corelib_tools_qmap.cpp b/doc/src/snippets/code/src_corelib_tools_qmap.cpp
deleted file mode 100644
index 2b9c1fb73e..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qmap.cpp
+++ /dev/null
@@ -1,313 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QMap<QString, int> map;
-//! [0]
-
-
-//! [1]
-map["one"] = 1;
-map["three"] = 3;
-map["seven"] = 7;
-//! [1]
-
-
-//! [2]
-map.insert("twelve", 12);
-//! [2]
-
-
-//! [3]
-int num1 = map["thirteen"];
-int num2 = map.value("thirteen");
-//! [3]
-
-
-//! [4]
-int timeout = 30;
-if (map.contains("TIMEOUT"))
- timeout = map.value("TIMEOUT");
-//! [4]
-
-
-//! [5]
-int timeout = map.value("TIMEOUT", 30);
-//! [5]
-
-
-//! [6]
-// WRONG
-QMap<int, QWidget *> map;
-...
-for (int i = 0; i < 1000; ++i) {
- if (map[i] == okButton)
- cout << "Found button at index " << i << endl;
-}
-//! [6]
-
-
-//! [7]
-QMapIterator<QString, int> i(map);
-while (i.hasNext()) {
- i.next();
- cout << i.key() << ": " << i.value() << endl;
-}
-//! [7]
-
-
-//! [8]
-QMap<QString, int>::const_iterator i = map.constBegin();
-while (i != map.constEnd()) {
- cout << i.key() << ": " << i.value() << endl;
- ++i;
-}
-//! [8]
-
-
-//! [9]
-map.insert("plenty", 100);
-map.insert("plenty", 2000);
-// map.value("plenty") == 2000
-//! [9]
-
-
-//! [10]
-QList<int> values = map.values("plenty");
-for (int i = 0; i < values.size(); ++i)
- cout << values.at(i) << endl;
-//! [10]
-
-
-//! [11]
-QMap<QString, int>::iterator i = map.find("plenty");
-while (i != map.end() && i.key() == "plenty") {
- cout << i.value() << endl;
- ++i;
-}
-//! [11]
-
-
-//! [12]
-QMap<QString, int> map;
-...
-foreach (int value, map)
- cout << value << endl;
-//! [12]
-
-
-//! [13]
-#ifndef EMPLOYEE_H
-#define EMPLOYEE_H
-
-class Employee
-{
-public:
- Employee() {}
- Employee(const QString &name, const QDate &dateOfBirth);
- ...
-
-private:
- QString myName;
- QDate myDateOfBirth;
-};
-
-inline bool operator<(const Employee &e1, const Employee &e2)
-{
- if (e1.name() != e2.name())
- return e1.name() < e2.name();
- return e1.dateOfBirth() < e2.dateOfBirth();
-}
-
-#endif // EMPLOYEE_H
-//! [13]
-
-
-//! [14]
-QMap<QString, int> map;
-...
-QMap<QString, int>::const_iterator i = map.find("HDR");
-while (i != map.end() && i.key() == "HDR") {
- cout << i.value() << endl;
- ++i;
-}
-//! [14]
-
-
-//! [15]
-QMap<int, QString> map;
-map.insert(1, "one");
-map.insert(5, "five");
-map.insert(10, "ten");
-
-map.lowerBound(0); // returns iterator to (1, "one")
-map.lowerBound(1); // returns iterator to (1, "one")
-map.lowerBound(2); // returns iterator to (5, "five")
-map.lowerBound(10); // returns iterator to (10, "ten")
-map.lowerBound(999); // returns end()
-//! [15]
-
-
-//! [16]
-QMap<QString, int> map;
-...
-QMap<QString, int>::const_iterator i = map.lowerBound("HDR");
-QMap<QString, int>::const_iterator upperBound = map.upperBound("HDR");
-while (i != upperBound) {
- cout << i.value() << endl;
- ++i;
-}
-//! [16]
-
-
-//! [17]
-QMap<int, QString> map;
-map.insert(1, "one");
-map.insert(5, "five");
-map.insert(10, "ten");
-
-map.upperBound(0); // returns iterator to (1, "one")
-map.upperBound(1); // returns iterator to (5, "five")
-map.upperBound(2); // returns iterator to (5, "five")
-map.upperBound(10); // returns end()
-map.upperBound(999); // returns end()
-//! [17]
-
-
-//! [18]
-QMap<QString, int> map;
-map.insert("January", 1);
-map.insert("February", 2);
-...
-map.insert("December", 12);
-
-QMap<QString, int>::iterator i;
-for (i = map.begin(); i != map.end(); ++i)
- cout << i.key() << ": " << i.value() << endl;
-//! [18]
-
-
-//! [19]
-QMap<QString, int>::iterator i;
-for (i = map.begin(); i != map.end(); ++i)
- i.value() += 2;
-//! [19]
-
-
-//! [20]
-QMap<QString, int>::iterator i = map.begin();
-while (i != map.end()) {
- if (i.key().startsWith("_"))
- i = map.erase(i);
- else
- ++i;
-}
-//! [20]
-
-
-//! [21]
-QMap<QString, int>::iterator i = map.begin();
-while (i != map.end()) {
- QMap<QString, int>::iterator prev = i;
- ++i;
- if (prev.key().startsWith("_"))
- map.erase(prev);
-}
-//! [21]
-
-
-//! [22]
-// WRONG
-while (i != map.end()) {
- if (i.key().startsWith("_"))
- map.erase(i);
- ++i;
-}
-//! [22]
-
-
-//! [23]
-if (i.key() == "Hello")
- i.value() = "Bonjour";
-//! [23]
-
-
-//! [24]
-QMap<QString, int> map;
-map.insert("January", 1);
-map.insert("February", 2);
-...
-map.insert("December", 12);
-
-QMap<QString, int>::const_iterator i;
-for (i = map.constBegin(); i != map.constEnd(); ++i)
- cout << i.key() << ": " << i.value() << endl;
-//! [24]
-
-
-//! [25]
-QMultiMap<QString, int> map1, map2, map3;
-
-map1.insert("plenty", 100);
-map1.insert("plenty", 2000);
-// map1.size() == 2
-
-map2.insert("plenty", 5000);
-// map2.size() == 1
-
-map3 = map1 + map2;
-// map3.size() == 3
-//! [25]
-
-
-//! [26]
-QList<int> values = map.values("plenty");
-for (int i = 0; i < values.size(); ++i)
- cout << values.at(i) << endl;
-//! [26]
-
-
-//! [27]
-QMultiMap<QString, int>::iterator i = map.find("plenty");
-while (i != map.end() && i.key() == "plenty") {
- cout << i.value() << endl;
- ++i;
-}
-//! [27]
diff --git a/doc/src/snippets/code/src_corelib_tools_qpoint.cpp b/doc/src/snippets/code/src_corelib_tools_qpoint.cpp
deleted file mode 100644
index 4f48fcbcb1..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qpoint.cpp
+++ /dev/null
@@ -1,149 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QPoint p;
-
-p.setX(p.x() + 1);
-p += QPoint(1, 0);
-p.rx()++;
-//! [0]
-
-
-//! [1]
-QPoint p(1, 2);
-p.rx()--; // p becomes (0, 2)
-//! [1]
-
-
-//! [2]
-QPoint p(1, 2);
-p.ry()++; // p becomes (1, 3)
-//! [2]
-
-
-//! [3]
-QPoint p( 3, 7);
-QPoint q(-1, 4);
-p += q; // p becomes (2, 11)
-//! [3]
-
-
-//! [4]
-QPoint p( 3, 7);
-QPoint q(-1, 4);
-p -= q; // p becomes (4, 3)
-//! [4]
-
-
-//! [5]
-QPoint p(-1, 4);
-p *= 2.5; // p becomes (-3, 10)
-//! [5]
-
-
-//! [6]
-QPoint p(-3, 10);
-p /= 2.5; // p becomes (-1, 4)
-//! [6]
-
-
-//! [7]
-QPoint oldPosition;
-
-MyWidget::mouseMoveEvent(QMouseEvent *event)
-{
- QPoint point = event->pos() - oldPosition;
- if (point.manhattanLength() > 3)
- // the mouse has moved more than 3 pixels since the oldPosition
-}
-//! [7]
-
-
-//! [8]
-double trueLength = sqrt(pow(x(), 2) + pow(y(), 2));
-//! [8]
-
-
-//! [9]
-QPointF p;
-
-p.setX(p.x() + 1.0);
-p += QPointF(1.0, 0.0);
-p.rx()++;
-//! [9]
-
-
-//! [10]
- QPointF p(1.1, 2.5);
- p.rx()--; // p becomes (0.1, 2.5)
-//! [10]
-
-
-//! [11]
-QPointF p(1.1, 2.5);
-p.ry()++; // p becomes (1.1, 3.5)
-//! [11]
-
-
-//! [12]
-QPointF p( 3.1, 7.1);
-QPointF q(-1.0, 4.1);
-p += q; // p becomes (2.1, 11.2)
-//! [12]
-
-
-//! [13]
-QPointF p( 3.1, 7.1);
-QPointF q(-1.0, 4.1);
-p -= q; // p becomes (4.1, 3.0)
-//! [13]
-
-
-//! [14]
-QPointF p(-1.1, 4.1);
-p *= 2.5; // p becomes (-2.75, 10.25)
-//! [14]
-
-
-//! [15]
-QPointF p(-2.75, 10.25);
-p /= 2.5; // p becomes (-1.1, 4.1)
-//! [15]
diff --git a/doc/src/snippets/code/src_corelib_tools_qrect.cpp b/doc/src/snippets/code/src_corelib_tools_qrect.cpp
deleted file mode 100644
index ebf9118c20..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qrect.cpp
+++ /dev/null
@@ -1,50 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QRect r1(100, 200, 11, 16);
-QRect r2(QPoint(100, 200), QSize(11, 16));
-//! [0]
-
-
-//! [1]
-QRectF r1(100, 200, 11, 16);
-QRectF r2(QPoint(100, 200), QSize(11, 16));
-//! [1]
diff --git a/doc/src/snippets/code/src_corelib_tools_qregexp.cpp b/doc/src/snippets/code/src_corelib_tools_qregexp.cpp
deleted file mode 100644
index 002ae96f23..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qregexp.cpp
+++ /dev/null
@@ -1,224 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QRegExp rx("(\\d+)");
-QString str = "Offsets: 12 14 99 231 7";
-QStringList list;
-int pos = 0;
-
-while ((pos = rx.indexIn(str, pos)) != -1) {
- list << rx.cap(1);
- pos += rx.matchedLength();
-}
-// list: ["12", "14", "99", "231", "7"]
-//! [0]
-
-
-//! [1]
-QRegExp rx("*.txt");
-rx.setPatternSyntax(QRegExp::Wildcard);
-rx.exactMatch("README.txt"); // returns true
-rx.exactMatch("welcome.txt.bak"); // returns false
-//! [1]
-
-
-//! [2]
-QRegExp rx("ro+m");
-rx.setMinimal(true);
-//! [2]
-
-
-//! [3]
-QRegExp mark("\\b" // word boundary
- "[Mm]ark" // the word we want to match
- );
-//! [3]
-
-
-//! [4]
-QRegExp rx("^\\d\\d?$"); // match integers 0 to 99
-rx.indexIn("123"); // returns -1 (no match)
-rx.indexIn("-6"); // returns -1 (no match)
-rx.indexIn("6"); // returns 0 (matched as position 0)
-//! [4]
-
-
-//! [5]
-QRegExp rx("^\\S+$"); // match strings without whitespace
-rx.indexIn("Hello world"); // returns -1 (no match)
-rx.indexIn("This_is-OK"); // returns 0 (matched at position 0)
-//! [5]
-
-
-//! [6]
-QRegExp rx("\\b(mail|letter|correspondence)\\b");
-rx.indexIn("I sent you an email"); // returns -1 (no match)
-rx.indexIn("Please write the letter"); // returns 17
-//! [6]
-
-
-//! [7]
-QString captured = rx.cap(1); // captured == "letter"
-//! [7]
-
-
-//! [8]
-QRegExp rx("&(?!amp;)"); // match ampersands but not &amp;
-QString line1 = "This & that";
-line1.replace(rx, "&amp;");
-// line1 == "This &amp; that"
-QString line2 = "His &amp; hers & theirs";
-line2.replace(rx, "&amp;");
-// line2 == "His &amp; hers &amp; theirs"
-//! [8]
-
-
-//! [9]
-QString str = "One Eric another Eirik, and an Ericsson. "
- "How many Eiriks, Eric?";
-QRegExp rx("\\b(Eric|Eirik)\\b"); // match Eric or Eirik
-int pos = 0; // where we are in the string
-int count = 0; // how many Eric and Eirik's we've counted
-while (pos >= 0) {
- pos = rx.indexIn(str, pos);
- if (pos >= 0) {
- ++pos; // move along in str
- ++count; // count our Eric or Eirik
- }
-}
-//! [9]
-
-
-//! [10]
-str = "Nokia Corporation\tqt.nokia.com\tNorway";
-QString company, web, country;
-rx.setPattern("^([^\t]+)\t([^\t]+)\t([^\t]+)$");
-if (rx.indexIn(str) != -1) {
- company = rx.cap(1);
- web = rx.cap(2);
- country = rx.cap(3);
-}
-//! [10]
-
-
-//! [11]
-QStringList field = str.split("\t");
-//! [11]
-
-
-//! [12]
-QRegExp rx("*.html");
-rx.setPatternSyntax(QRegExp::Wildcard);
-rx.exactMatch("index.html"); // returns true
-rx.exactMatch("default.htm"); // returns false
-rx.exactMatch("readme.txt"); // returns false
-//! [12]
-
-
-//! [13]
-QString str = "offsets: 1.23 .50 71.00 6.00";
-QRegExp rx("\\d*\\.\\d+"); // primitive floating point matching
-int count = 0;
-int pos = 0;
-while ((pos = rx.indexIn(str, pos)) != -1) {
- ++count;
- pos += rx.matchedLength();
-}
-// pos will be 9, 14, 18 and finally 24; count will end up as 4
-//! [13]
-
-
-//! [14]
-QRegExp rx("(\\d+)(\\s*)(cm|inch(es)?)");
-int pos = rx.indexIn("Length: 36 inches");
-QStringList list = rx.capturedTexts();
-// list is now ("36 inches", "36", " ", "inches", "es")
-//! [14]
-
-
-//! [15]
-QRegExp rx("(\\d+)(?:\\s*)(cm|inch(?:es)?)");
-int pos = rx.indexIn("Length: 36 inches");
-QStringList list = rx.capturedTexts();
-// list is now ("36 inches", "36", "inches")
-//! [15]
-
-
-//! [16]
-QStringList list = rx.capturedTexts();
-QStringList::iterator it = list.begin();
-while (it != list.end()) {
- myProcessing(*it);
- ++it;
-}
-//! [16]
-
-
-//! [17]
-QRegExp rxlen("(\\d+)(?:\\s*)(cm|inch)");
-int pos = rxlen.indexIn("Length: 189cm");
-if (pos > -1) {
- QString value = rxlen.cap(1); // "189"
- QString unit = rxlen.cap(2); // "cm"
- // ...
-}
-//! [17]
-
-
-//! [18]
-QRegExp rx("/([a-z]+)/([a-z]+)");
-rx.indexIn("Output /dev/null"); // returns 7 (position of /dev/null)
-rx.pos(0); // returns 7 (position of /dev/null)
-rx.pos(1); // returns 8 (position of dev)
-rx.pos(2); // returns 12 (position of null)
-//! [18]
-
-
-//! [19]
-s1 = QRegExp::escape("bingo"); // s1 == "bingo"
-s2 = QRegExp::escape("f(x)"); // s2 == "f\\(x\\)"
-//! [19]
-
-
-//! [20]
-QRegExp rx("(" + QRegExp::escape(name) +
- "|" + QRegExp::escape(alias) + ")");
-//! [20]
diff --git a/doc/src/snippets/code/src_corelib_tools_qregularexpression.cpp b/doc/src/snippets/code/src_corelib_tools_qregularexpression.cpp
deleted file mode 100644
index cab89d9c9e..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qregularexpression.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Giuseppe D'Angelo <dangelog@gmail.com>.
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QRegularExpression re("a pattern");
-//! [0]
-
-
-//! [1]
-QRegularExpression re;
-re.setPattern("another pattern");
-//! [1]
-
-
-//! [2]
-// matches two digits followed by a space and a word
-QRegularExpression re("\\d\\d \\w+");
-
-// matches a backslash
-QRegularExpression re2("\\\\");
-//! [2]
-
-
-//! [3]
-QRegularExpression re("a third pattern");
-QString pattern = re.pattern(); // pattern == "a third pattern"
-//! [3]
-
-
-//! [4]
-// matches "Qt rocks", but also "QT rocks", "QT ROCKS", "qT rOcKs", etc.
-QRegularExpression re("Qt rocks", QRegularExpression::CaseInsensitiveOption);
-//! [4]
-
-
-//! [5]
-QRegularExpression re("^\\d+$");
-re.setPatternOptions(QRegularExpression::MultilineOption);
-// re matches any line in the subject string that contains only digits (but at least one)
-//! [5]
-
-
-//! [6]
-QRegularExpression re = QRegularExpression("^two.*words$", QRegularExpression::MultilineOption
- | QRegularExpression::DotMatchesEverythingOption);
-
-QRegularExpression::PatternOptions options = re.patternOptions();
-// options == QRegularExpression::MultilineOption | QRegularExpression::DotMatchesEverythingOption
-//! [6]
-
-
-//! [7]
-// match two digits followed by a space and a word
-QRegularExpression re("\\d\\d \\w+");
-QRegularExpressionMatch match = re.match("abc123 def");
-bool hasMatch = match.hasMatch(); // true
-//! [7]
-
-
-//! [8]
-QRegularExpression re("\\d\\d \\w+");
-QRegularExpressionMatch match = re.match("abc123 def");
-if (match.hasMatch()) {
- QString matched = match.captured(0); // matched == "23 def"
- // ...
-}
-//! [8]
-
-
-//! [9]
-QRegularExpression re("\\d\\d \\w+");
-QRegularExpressionMatch match = re.match("12 abc 45 def", 1);
-if (match.hasMatch()) {
- QString matched = match.captured(0); // matched == "45 def"
- // ...
-}
-//! [9]
-
-
-//! [10]
-QRegularExpression re("^(\\d\\d)/(\\d\\d)/(\\d\\d\\d\\d)$");
-QRegularExpressionMatch match = re.match("08/12/1985");
-if (match.hasMatch()) {
- QString day = re.captured(1); // day == "08"
- QString month = re.captured(2); // month == "12"
- QString year = re.captured(3); // year == "1985"
- // ...
-}
-//! [10]
-
-
-//! [11]
-QRegularExpression re("abc(\\d+)def");
-QRegularExpressionMatch match = re.match("XYZabc123defXYZ");
-if (match.hasMatch()) {
- int startOffset = re.capturedStart(1); // startOffset == 6
- int endOffset = re.capturedEnd(1); // endOffset == 9
- // ...
-}
-//! [11]
-
-
-//! [12]
-QRegularExpression re("^(?<date>\\d\\d)/(?<month>\\d\\d)/(?<year>\\d\\d\\d\\d)$");
-QRegularExpressionMatch match = re.match("08/12/1985");
-if (match.hasMatch()) {
- QString date = match.captured("date"); // date == "08"
- QString month = match.captured("month"); // month == "12"
- QString year = match.captured("year"); // year == 1985
-}
-//! [12]
-
-
-//! [13]
-QRegularExpression re("(\\w+)");
-QRegularExpressionMatchIterator i = re.globalMatch("the quick fox");
-//! [13]
-
-
-//! [14]
-QStringList words;
-while (i.hasNext()) {
- QRegularExpressionMatch match = i.next();
- QString word = match.captured(1);
- words << word;
-}
-// words contains "the", "quick", "fox"
-//! [14]
-
-
-//! [15]
-QString pattern("^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d\\d?, \\d\\d\\d\\d$");
-QRegularExpression re(pattern);
-
-QString input("Jan 21,");
-QRegularExpressionMatch match = re.match(input, 0, QRegularExpressionMatch::PartialPreferCompleteMatch);
-bool hasMatch = match.hasMatch(); // false
-bool hasPartialMatch = match.hasPartialMatch(); // true
-//! [15]
-
-
-//! [16]
-QString input("Dec 8, 1985");
-QRegularExpressionMatch match = re.match(input, 0, QRegularExpressionMatch::PartialPreferCompleteMatch);
-bool hasMatch = match.hasMatch(); // true
-bool hasPartialMatch = match.hasPartialMatch(); // false
-//! [16]
-
-
-//! [17]
-QRegularExpression re("abc\\w+X|def");
-QRegularExpressionMatch match = re.match("abcdef", 0, QRegularExpressionMatch::PartialPreferCompleteMatch);
-bool hasMatch = match.hasMatch(); // true
-bool hasPartialMatch = match.hasPartialMatch(); // false
-QString captured = match.captured(0); // captured == "def"
-//! [17]
-
-
-//! [18]
-QRegularExpression re("abc\\w+X|defY");
-QRegularExpressionMatch match = re.match("abcdef", 0, QRegularExpressionMatch::PartialPreferCompleteMatch);
-bool hasMatch = match.hasMatch(); // false
-bool hasPartialMatch = match.hasPartialMatch(); // true
-QString captured = match.captured(0); // captured == "abcdef"
-//! [18]
-
-
-//! [19]
-QRegularExpression re("abc|ab");
-QRegularExpressionMatch match = re.match("ab", 0, QRegularExpressionMatch::PartialPreferFirstMatch);
-bool hasMatch = match.hasMatch(); // false
-bool hasPartialMatch = match.hasPartialMatch(); // true
-//! [19]
-
-
-//! [20]
-QRegularExpression re("abc(def)?");
-QRegularExpressionMatch match = re.match("abc", 0, QRegularExpressionMatch::PartialPreferFirstMatch);
-bool hasMatch = match.hasMatch(); // false
-bool hasPartialMatch = match.hasPartialMatch(); // true
-//! [20]
-
-//! [21]
-QRegularExpression re("(abc)*");
-QRegularExpressionMatch match = re.match("abc", 0, QRegularExpressionMatch::PartialPreferFirstMatch);
-bool hasMatch = match.hasMatch(); // false
-bool hasPartialMatch = match.hasPartialMatch(); // true
-//! [21]
-
-//! [22]
-QRegularExpression invalidRe("(unmatched|parenthesis");
-bool isValid = invalidRe.isValid(); // false
-//! [22]
-
-//! [23]
-QRegularExpression invalidRe("(unmatched|parenthesis");
-if (!invalidRe.isValid()) {
- QString errorString = invalidRe.errorString(); // errorString == "missing )"
- int errorOffset = invalidRe.patternErrorOffset(); // errorOffset == 22
- // ...
-}
-//! [23]
-
-//! [24]
-QRegularExpression re("^this pattern must match exactly$");
-//! [24]
-
-//! [25]
-QString p("a .*|pattern");
-QRegularExpression re("\\A(?:" + p + ")\\z"); // re matches exactly the pattern string p
-//! [25]
-
-//! [26]
-QString escaped = QRegularExpression::escape("a(x) = f(x) + g(x)");
-// escaped == "a\\(x\\)\\ \\=\\ f\\(x\\)\\ \\+\\ g\\(x\\)"
-//! [26]
-
-//! [27]
-QString pattern = "(" + QRegularExpression::escape(name) +
- "|" + QRegularExpression::escape(nickname) + ")";
-QRegularExpression re(pattern);
-//! [27]
-
-//! [28]
-QRegularExpressionMatch match = re.match(...);
-for (int i = 0; i <= match.lastCapturedIndex(); ++i) {
- QString captured = match.captured(i);
- // ...
-}
-//! [28]
-
-//! [29]
-QRegularExpression("(\d\d) (?<name>\w+)");
-QRegularExpressionMatch match = re.match("23 Jordan");
-if (match.hasMatch()) {
- QString number = match.captured(1); // first == "23"
- QString name = match.captured("name"); // name == "Jordan"
-}
-//! [29]
-
-//! [30]
-// extracts the words
-QRegularExpression re("(\w+)");
-QString subject("the quick fox");
-QRegularExpressionMatchIterator i = re.globalMatch(subject);
-while (i.hasNext()) {
- QRegularExpressionMatch match = i.next();
- // ...
-}
-//! [30]
-
-
diff --git a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp b/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp
deleted file mode 100644
index fd9cd3e4b0..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp
+++ /dev/null
@@ -1,138 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-void myFunction(bool useSubClass)
-{
- MyClass *p = useSubClass ? new MyClass() : new MySubClass;
- QIODevice *device = handsOverOwnership();
-
- if (m_value > 3) {
- delete p;
- delete device;
- return;
- }
-
- try {
- process(device);
- }
- catch (...) {
- delete p;
- delete device;
- throw;
- }
-
- delete p;
- delete device;
-}
-//! [0]
-
-//! [1]
-void myFunction(bool useSubClass)
-{
- // assuming that MyClass has a virtual destructor
- QScopedPointer<MyClass> p(useSubClass ? new MyClass() : new MySubClass);
- QScopedPointer<QIODevice> device(handsOverOwnership());
-
- if (m_value > 3)
- return;
-
- process(device);
-}
-//! [1]
-
-//! [2]
- const QWidget *const p = new QWidget();
- // is equivalent to:
- const QScopedPointer<const QWidget> p(new QWidget());
-
- QWidget *const p = new QWidget();
- // is equivalent to:
- const QScopedPointer<QWidget> p(new QWidget());
-
- const QWidget *p = new QWidget();
- // is equivalent to:
- QScopedPointer<const QWidget> p(new QWidget());
-//! [2]
-
-//! [3]
-if (scopedPointer) {
- ...
-}
-//! [3]
-
-//! [4]
-class MyPrivateClass; // forward declare MyPrivateClass
-
-class MyClass
-{
-private:
- QScopedPointer<MyPrivateClass> privatePtr; // QScopedPointer to forward declared class
-
-public:
- MyClass(); // OK
- inline ~MyClass() {} // VIOLATION - Destructor must not be inline
-
-private:
- Q_DISABLE_COPY(MyClass) // OK - copy constructor and assignment operators
- // are now disabled, so the compiler won't implicitely
- // generate them.
-};
-//! [4]
-
-//! [5]
-// this QScopedPointer deletes its data using the delete[] operator:
-QScopedPointer<int, QScopedPointerArrayDeleter<int> > arrayPointer(new int[42]);
-
-// this QScopedPointer frees its data using free():
-QScopedPointer<int, QScopedPointerPodDeleter> podPointer(reinterpret_cast<int *>(malloc(42)));
-
-// this struct calls "myCustomDeallocator" to delete the pointer
-struct ScopedPointerCustomDeleter
-{
- static inline void cleanup(MyCustomClass *pointer)
- {
- myCustomDeallocator(pointer);
- }
-};
-
-// QScopedPointer using a custom deleter:
-QScopedPointer<MyCustomClass, ScopedPointerCustomDeleter> customPointer(new MyCustomClass);
-//! [5]
diff --git a/doc/src/snippets/code/src_corelib_tools_qsize.cpp b/doc/src/snippets/code/src_corelib_tools_qsize.cpp
deleted file mode 100644
index 8772152ad6..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qsize.cpp
+++ /dev/null
@@ -1,136 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QSize t1(10, 12);
-t1.scale(60, 60, Qt::IgnoreAspectRatio);
-// t1 is (60, 60)
-
-QSize t2(10, 12);
-t2.scale(60, 60, Qt::KeepAspectRatio);
-// t2 is (50, 60)
-
-QSize t3(10, 12);
-t3.scale(60, 60, Qt::KeepAspectRatioByExpanding);
-// t3 is (60, 72)
-//! [0]
-
-
-//! [1]
-QSize size(100, 10);
-size.rwidth() += 20;
-
-// size becomes (120,10)
-//! [1]
-
-
-//! [2]
-QSize size(100, 10);
-size.rheight() += 5;
-
-// size becomes (100,15)
-//! [2]
-
-
-//! [3]
-QSize s( 3, 7);
-QSize r(-1, 4);
-s += r;
-
-// s becomes (2,11)
-//! [3]
-
-
-//! [4]
-QSize s( 3, 7);
-QSize r(-1, 4);
-s -= r;
-
-// s becomes (4,3)
-//! [4]
-
-
-//! [5]
-QSizeF t1(10, 12);
-t1.scale(60, 60, Qt::IgnoreAspectRatio);
-// t1 is (60, 60)
-
-QSizeF t2(10, 12);
-t2.scale(60, 60, Qt::KeepAspectRatio);
-// t2 is (50, 60)
-
-QSizeF t3(10, 12);
-t3.scale(60, 60, Qt::KeepAspectRatioByExpanding);
-// t3 is (60, 72)
-//! [5]
-
-
-//! [6]
-QSizeF size(100.3, 10);
-size.rwidth() += 20.5;
-
- // size becomes (120.8,10)
-//! [6]
-
-
-//! [7]
-QSizeF size(100, 10.2);
-size.rheight() += 5.5;
-
-// size becomes (100,15.7)
-//! [7]
-
-
-//! [8]
-QSizeF s( 3, 7);
-QSizeF r(-1, 4);
-s += r;
-
-// s becomes (2,11)
-//! [8]
-
-
-//! [9]
-QSizeF s( 3, 7);
-QSizeF r(-1, 4);
-s -= r;
-
-// s becomes (4,3)
-//! [9]
diff --git a/doc/src/snippets/code/src_corelib_tools_qstring.cpp b/doc/src/snippets/code/src_corelib_tools_qstring.cpp
deleted file mode 100644
index 507e929f47..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qstring.cpp
+++ /dev/null
@@ -1,94 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-DEFINES += QT_NO_CAST_FROM_ASCII \
- QT_NO_CAST_TO_ASCII
-//! [0]
-
-
-//! [1]
-QString url = QLatin1String("http://www.unicode.org/");
-//! [1]
-
-
-//! [2]
-double d = 12.34;
-QString str = QString("delta: %1").arg(d, 0, 'E', 3);
-// str == "delta: 1.234E+01"
-//! [2]
-
-
-//! [3]
-if (str == "auto" || str == "extern"
- || str == "static" || str == "register") {
- ...
-}
-//! [3]
-
-
-//! [4]
-if (str == QString("auto") || str == QString("extern")
- || str == QString("static") || str == QString("register")) {
- ...
-}
-//! [4]
-
-
-//! [5]
-if (str == QLatin1String("auto")
- || str == QLatin1String("extern")
- || str == QLatin1String("static")
- || str == QLatin1String("register") {
- ...
-}
-//! [5]
-
-
-//! [6]
-QLabel *label = new QLabel(QLatin1String("MOD"), this);
-//! [6]
-
-
-//! [7]
-QString plain = "#include <QtCore>"
-QString html = plain.toHtmlEscaped();
-// html == "#include &lt;QtCore&gt;"
-//! [7]
diff --git a/doc/src/snippets/code/src_corelib_tools_qtimeline.cpp b/doc/src/snippets/code/src_corelib_tools_qtimeline.cpp
deleted file mode 100644
index e33c94efda..0000000000
--- a/doc/src/snippets/code/src_corelib_tools_qtimeline.cpp
+++ /dev/null
@@ -1,55 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-...
-progressBar = new QProgressBar(this);
-progressBar->setRange(0, 100);
-
-// Construct a 1-second timeline with a frame range of 0 - 100
-QTimeLine *timeLine = new QTimeLine(1000, this);
-timeLine->setFrameRange(0, 100);
-connect(timeLine, SIGNAL(frameChanged(int)), progressBar, SLOT(setValue(int)));
-
-// Clicking the push button will start the progress bar animation
-pushButton = new QPushButton(tr("Start animation"), this);
-connect(pushButton, SIGNAL(clicked()), timeLine, SLOT(start()));
-...
-//! [0]
diff --git a/doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp b/doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp
deleted file mode 100644
index 9f40777df1..0000000000
--- a/doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp
+++ /dev/null
@@ -1,67 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
- QXmlStreamReader xml;
- ...
- while (!xml.atEnd()) {
- xml.readNext();
- ... // do processing
- }
- if (xml.hasError()) {
- ... // do error handling
- }
-//! [0]
-
-
-//! [1]
- writeStartElement(qualifiedName);
- writeCharacters(text);
- writeEndElement();
-//! [1]
-
-
-//! [2]
- writeStartElement(namespaceUri, name);
- writeCharacters(text);
- writeEndElement();
-//! [2]
-
-
diff --git a/doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp b/doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp
deleted file mode 100644
index 90bc2e9b0a..0000000000
--- a/doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp
+++ /dev/null
@@ -1,148 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-int ret = QMessageBox::warning(this, tr("My Application"),
- tr("The document has been modified.\n"
- "Do you want to save your changes?"),
- QMessageBox::Save | QMessageBox::Discard
- | QMessageBox::Cancel,
- QMessageBox::Save);
-//! [0]
-
-
-//! [1]
-QMessageBox msgBox;
-msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
-switch (msgBox.exec()) {
-case QMessageBox::Yes:
- // yes was clicked
- break;
-case QMessageBox::No:
- // no was clicked
- break;
-default:
- // should never be reached
- break;
-}
-//! [1]
-
-
-//! [2]
-QMessageBox msgBox;
-QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
-QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);
-
-msgBox.exec();
-
-if (msgBox.clickedButton() == connectButton) {
- // connect
-} else if (msgBox.clickedButton() == abortButton) {
- // abort
-}
-//! [2]
-
-
-//! [3]
-QMessageBox messageBox(this);
-QAbstractButton *disconnectButton =
- messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole);
-...
-messageBox.exec();
-if (messageBox.clickedButton() == disconnectButton) {
- ...
-}
-//! [3]
-
-
-//! [4]
-#include <QApplication>
-#include <QMessageBox>
-
-int main(int argc, char *argv[])
-{
- QT_REQUIRE_VERSION(argc, argv, "4.0.2")
-
- QApplication app(argc, argv);
- ...
- return app.exec();
-}
-//! [4]
-
-//! [5]
-QMessageBox msgBox;
-msgBox.setText("The document has been modified.");
-msgBox.exec();
-//! [5]
-
-//! [6]
-QMessageBox msgBox;
-msgBox.setText("The document has been modified.");
-msgBox.setInformativeText("Do you want to save your changes?");
-msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
-msgBox.setDefaultButton(QMessageBox::Save);
-int ret = msgBox.exec();
-//! [6]
-
-//! [7]
-switch (ret) {
- case QMessageBox::Save:
- // Save was clicked
- break;
- case QMessageBox::Discard:
- // Don't Save was clicked
- break;
- case QMessageBox::Cancel:
- // Cancel was clicked
- break;
- default:
- // should never be reached
- break;
-}
-//! [7]
-
-//! [9]
-QMessageBox msgBox(this);
-msgBox.setText(tr("The document has been modified.\n"
- "Do you want to save your changes?"));
-msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard
- | QMessageBox::Cancel);
-msgBox.setDefaultButton(QMessageBox::Save);
-//! [9]
diff --git a/doc/src/snippets/code/src_gui_itemviews_qidentityproxymodel.cpp b/doc/src/snippets/code/src_gui_itemviews_qidentityproxymodel.cpp
deleted file mode 100644
index cf4707cbeb..0000000000
--- a/doc/src/snippets/code/src_gui_itemviews_qidentityproxymodel.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly <stephen.kelly@kdab.com>
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-class DateFormatProxyModel : public QIdentityProxyModel
-{
- // ...
-
- void setDateFormatString(const QString &formatString)
- {
- m_formatString = formatString;
- }
-
- QVariant data(const QModelIndex &index, int role)
- {
- if (role != Qt::DisplayRole)
- return QIdentityProxyModel::data(index, role);
-
- const QDateTime dateTime = sourceModel()->data(SourceClass::DateRole).toDateTime();
-
- return dateTime.toString(m_formatString);
- }
-
-private:
- QString m_formatString;
-};
-//! [0]
diff --git a/doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp b/doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp
deleted file mode 100644
index ba81221e9c..0000000000
--- a/doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp
+++ /dev/null
@@ -1,50 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-QItemSelection *selection = new QItemSelection(topLeft, bottomRight);
-//! [0]
-
-
-//! [1]
-QItemSelection *selection = new QItemSelection();
-...
-selection->select(topLeft, bottomRight);
-//! [1]
diff --git a/doc/src/snippets/file/file.cpp b/doc/src/snippets/file/file.cpp
deleted file mode 100644
index f03c6e6847..0000000000
--- a/doc/src/snippets/file/file.cpp
+++ /dev/null
@@ -1,123 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QFile>
-#include <QTextStream>
-
-static void process_line(const QByteArray &)
-{
-}
-
-static void process_line(const QString &)
-{
-}
-
-static void noStream_snippet()
-{
-//! [0]
- QFile file("in.txt");
- if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
- return;
-
- while (!file.atEnd()) {
- QByteArray line = file.readLine();
- process_line(line);
- }
-//! [0]
-}
-
-static void readTextStream_snippet()
-{
-//! [1]
- QFile file("in.txt");
- if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
- return;
-
- QTextStream in(&file);
- while (!in.atEnd()) {
- QString line = in.readLine();
- process_line(line);
- }
-//! [1]
-}
-
-static void writeTextStream_snippet()
-{
-//! [2]
- QFile file("out.txt");
- if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
- return;
-
- QTextStream out(&file);
- out << "The magic number is: " << 49 << "\n";
-//! [2]
-}
-
-static void writeTextStream_snippet()
-{
- QFile file("out.dat");
- if (!file.open(QIODevice::WriteOnly))
- return;
-
- QDataStream out(&file);
- out << "The magic number is: " << 49 << "\n";
-}
-
-static void readRegularEmptyFile_snippet()
-{
-//! [3]
- QFile file("/proc/modules");
- if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
- return;
-
- QTextStream in(&file);
- QString line = in.readLine();
- while (!line.isNull()) {
- process_line(line);
- line = in.readLine();
- }
-//! [3]
-}
-
-int main()
-{
- lineByLine_snippet();
- writeStream_snippet();
-}
diff --git a/doc/src/snippets/fileinfo/main.cpp b/doc/src/snippets/fileinfo/main.cpp
deleted file mode 100644
index 48d8223d79..0000000000
--- a/doc/src/snippets/fileinfo/main.cpp
+++ /dev/null
@@ -1,92 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QPushButton>
-#include <QFileInfo>
-#include <QDir>
-#include <QGroupBox>
-#include <QVBoxLayout>
-#include <QDebug>
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-
-//! [0]
- QFileInfo fileInfo1("~/examples/191697/.");
- QFileInfo fileInfo2("~/examples/191697/..");
- QFileInfo fileInfo3("~/examples/191697/main.cpp");
-//! [0]
-//! [1]
- QFileInfo fileInfo4(".");
- QFileInfo fileInfo5("..");
- QFileInfo fileInfo6("main.cpp");
-//! [1]
-
- qDebug() << fileInfo1.fileName();
- qDebug() << fileInfo2.fileName();
- qDebug() << fileInfo3.fileName();
- qDebug() << fileInfo4.fileName();
- qDebug() << fileInfo5.fileName();
- qDebug() << fileInfo6.fileName();
-
- QPushButton* button1 = new QPushButton(fileInfo1.dir().path());
- QPushButton* button2 = new QPushButton(fileInfo2.dir().path());
- QPushButton* button3 = new QPushButton(fileInfo3.dir().path());
- QPushButton* button4 = new QPushButton(fileInfo4.dir().path());
- QPushButton* button5 = new QPushButton(fileInfo5.dir().path());
- QPushButton* button6 = new QPushButton(fileInfo6.dir().path());
-
- QVBoxLayout* vbox = new QVBoxLayout;
- vbox->addWidget(button1);
- vbox->addWidget(button2);
- vbox->addWidget(button3);
- vbox->addWidget(button4);
- vbox->addWidget(button5);
- vbox->addWidget(button6);
- vbox->addStretch(1);
-
- QGroupBox *groupBox = new QGroupBox("QFileInfo::dir() test");
- groupBox->setLayout(vbox);
- groupBox->show();
-
- return app.exec();
-}
diff --git a/doc/src/snippets/ntfsp.cpp b/doc/src/snippets/ntfsp.cpp
deleted file mode 100644
index 8f2ff1fc98..0000000000
--- a/doc/src/snippets/ntfsp.cpp
+++ /dev/null
@@ -1,50 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-//! [0]
-extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
-//! [0]
-
-//! [1]
-qt_ntfs_permission_lookup++; // turn checking on
-qt_ntfs_permission_lookup--; // turn it off again
-//! [1]
-
diff --git a/doc/src/snippets/process/process.cpp b/doc/src/snippets/process/process.cpp
deleted file mode 100644
index 19f241a695..0000000000
--- a/doc/src/snippets/process/process.cpp
+++ /dev/null
@@ -1,76 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QProcess>
-
-bool zip()
-{
-//! [0]
- QProcess gzip;
- gzip.start("gzip", QStringList() << "-c");
- if (!gzip.waitForStarted())
- return false;
-
- gzip.write("Qt rocks!");
- gzip.closeWriteChannel();
-
- if (!gzip.waitForFinished())
- return false;
-
- QByteArray result = gzip.readAll();
-//! [0]
-
- gzip.start("gzip", QStringList() << "-d" << "-c");
- gzip.write(result);
- gzip.closeWriteChannel();
-
- if (!gzip.waitForFinished())
- return false;
-
- qDebug("Result: %s", gzip.readAll().data());
- return true;
-}
-
-
-int main()
-{
- zip();
- return 0;
-}
diff --git a/doc/src/snippets/qdebug/qdebugsnippet.cpp b/doc/src/snippets/qdebug/qdebugsnippet.cpp
deleted file mode 100644
index 2dbfe49c7d..0000000000
--- a/doc/src/snippets/qdebug/qdebugsnippet.cpp
+++ /dev/null
@@ -1,73 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-#include <QtDebug>
-
-class Coordinate : public QObject
-{
-public:
- int myX, myY;
-
- int x() const { return myX; };
- int y() const { return myY; };
-};
-
-//! [0]
-QDebug operator<<(QDebug dbg, const Coordinate &c)
-{
- dbg.nospace() << "(" << c.x() << ", " << c.y() << ")";
-
- return dbg.space();
-}
-//! [0]
-
-int main(int argv, char **args)
-{
- Coordinate coordinate;
- coordinate.myX = 10;
- coordinate.myY = 44;
-
-//! [1]
- qDebug() << "Date:" << QDate::currentDate();
- qDebug() << "Types:" << QString("String") << QChar('x') << QRect(0, 10, 50, 40);
- qDebug() << "Custom coordinate type:" << coordinate;
-//! [1]
-}
diff --git a/doc/src/snippets/qdir-listfiles/main.cpp b/doc/src/snippets/qdir-listfiles/main.cpp
deleted file mode 100644
index 599046aabd..0000000000
--- a/doc/src/snippets/qdir-listfiles/main.cpp
+++ /dev/null
@@ -1,62 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-#include <QDir>
-#include <iostream>
-
-int main(int argc, char *argv[])
-{
- QCoreApplication app(argc, argv);
- QDir dir;
- dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
- dir.setSorting(QDir::Size | QDir::Reversed);
-
- QFileInfoList list = dir.entryInfoList();
- std::cout << " Bytes Filename" << std::endl;
- for (int i = 0; i < list.size(); ++i) {
- QFileInfo fileInfo = list.at(i);
- std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
- .arg(fileInfo.fileName()));
- std::cout << std::endl;
- }
- return 0;
-}
-//! [0]
diff --git a/doc/src/snippets/qdir-namefilters/main.cpp b/doc/src/snippets/qdir-namefilters/main.cpp
deleted file mode 100644
index 7b48f7eaf7..0000000000
--- a/doc/src/snippets/qdir-namefilters/main.cpp
+++ /dev/null
@@ -1,65 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QDir>
-#include <iostream>
-
-int main(int argc, char *argv[])
-{
- QDir dir;
- dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
- dir.setSorting(QDir::Size | QDir::Reversed);
-
-//! [0]
- QStringList filters;
- filters << "*.cpp" << "*.cxx" << "*.cc";
- dir.setNameFilters(filters);
-//! [0]
-
- QFileInfoList list = dir.entryInfoList();
- std::cout << " Bytes Filename" << std::endl;
- for (int i = 0; i < list.size(); ++i) {
- QFileInfo fileInfo = list.at(i);
- std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
- .arg(fileInfo.fileName()));
- std::cout << std::endl;
- }
- return 0;
-}
diff --git a/doc/src/snippets/qelapsedtimer/main.cpp b/doc/src/snippets/qelapsedtimer/main.cpp
deleted file mode 100644
index 7b4b6529e7..0000000000
--- a/doc/src/snippets/qelapsedtimer/main.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the QtNetwork module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QtCore>
-
-void slowOperation1()
-{
- static char buf[256];
- for (int i = 0; i < (1<<20); ++i)
- buf[i % sizeof buf] = i;
-}
-
-void slowOperation2(int) { slowOperation1(); }
-
-void startExample()
-{
-//![0]
- QElapsedTimer timer;
- timer.start();
-
- slowOperation1();
-
- qDebug() << "The slow operation took" << timer.elapsed() << "milliseconds";
-//![0]
-}
-
-//![1]
-void executeSlowOperations(int timeout)
-{
- QElapsedTimer timer;
- timer.start();
- slowOperation1();
-
- int remainingTime = timeout - timer.elapsed();
- if (remainingTime > 0)
- slowOperation2(remainingTime);
-}
-//![1]
-
-//![2]
-void executeOperationsForTime(int ms)
-{
- QElapsedTimer timer;
- timer.start();
-
- while (!timer.hasExpired(ms))
- slowOperation1();
-}
-//![2]
-
-int restartExample()
-{
-//![3]
- QElapsedTimer timer;
-
- int count = 1;
- timer.start();
- do {
- count *= 2;
- slowOperation2(count);
- } while (timer.restart() < 250);
-
- return count;
-//![3]
-}
-
-int main(int argc, char **argv)
-{
- QCoreApplication app(argc, argv);
-
- startExample();
- restartExample();
- executeSlowOperations(5);
- executeOperationsForTime(5);
-}
diff --git a/doc/src/snippets/qlogging/qloggingsnippet.cpp b/doc/src/snippets/qlogging/qloggingsnippet.cpp
deleted file mode 100644
index 74892cdfba..0000000000
--- a/doc/src/snippets/qlogging/qloggingsnippet.cpp
+++ /dev/null
@@ -1,54 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-#include <QtDebug>
-#include <QDeclarativeComponent>
-
-//! [1]
- void statusChanged(QDeclarativeComponent::Status status) {
- if (status == QDeclarativeComponent::Error) {
- foreach (const QDeclarativeError &error, component->errors()) {
- const QByteArray file = error.url().toEncoded();
- QMessageLogger(file.constData(), error.line(), 0).debug() << error.description();
- }
- }
- }
-//! [1]
diff --git a/doc/src/snippets/qmetaobject-invokable/main.cpp b/doc/src/snippets/qmetaobject-invokable/main.cpp
deleted file mode 100644
index b22df1ea15..0000000000
--- a/doc/src/snippets/qmetaobject-invokable/main.cpp
+++ /dev/null
@@ -1,52 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QDebug>
-#include "window.h"
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- Window window;
- qDebug() << window.metaObject()->methodCount();
- window.show();
- return app.exec();
-}
diff --git a/doc/src/snippets/qmetaobject-invokable/qmetaobject-invokable.pro b/doc/src/snippets/qmetaobject-invokable/qmetaobject-invokable.pro
deleted file mode 100644
index 4df19215f0..0000000000
--- a/doc/src/snippets/qmetaobject-invokable/qmetaobject-invokable.pro
+++ /dev/null
@@ -1,3 +0,0 @@
-HEADERS = window.h
-SOURCES = main.cpp \
- window.cpp
diff --git a/doc/src/snippets/qmetaobject-invokable/window.cpp b/doc/src/snippets/qmetaobject-invokable/window.cpp
deleted file mode 100644
index 5ab8d83f63..0000000000
--- a/doc/src/snippets/qmetaobject-invokable/window.cpp
+++ /dev/null
@@ -1,57 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "window.h"
-
-Window::Window()
-{
-}
-
-void Window::normalMethod()
-{
- // Cannot be called by the meta-object system.
- show();
-}
-
-void Window::invokableMethod()
-{
- // Can be called by the meta-object system.
- show();
-}
diff --git a/doc/src/snippets/qmetaobject-invokable/window.h b/doc/src/snippets/qmetaobject-invokable/window.h
deleted file mode 100644
index f2f34792e5..0000000000
--- a/doc/src/snippets/qmetaobject-invokable/window.h
+++ /dev/null
@@ -1,58 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef WINDOW_H
-#define WINDOW_H
-
-#include <QWidget>
-
-//! [Window class with invokable method]
-class Window : public QWidget
-{
- Q_OBJECT
-
-public:
- Window();
- void normalMethod();
- Q_INVOKABLE void invokableMethod();
-};
-//! [Window class with invokable method]
-
-#endif
diff --git a/doc/src/snippets/qprocess-environment/main.cpp b/doc/src/snippets/qprocess-environment/main.cpp
deleted file mode 100644
index 124668a544..0000000000
--- a/doc/src/snippets/qprocess-environment/main.cpp
+++ /dev/null
@@ -1,73 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore>
-
-void startProcess()
-{
- {
-//! [0]
-QProcess process;
-QStringList env = QProcess::systemEnvironment();
-env << "TMPDIR=C:\\MyApp\\temp"; // Add an environment variable
-env.replaceInStrings(QRegExp("^PATH=(.*)", Qt::CaseInsensitive), "PATH=\\1;C:\\Bin");
-process.setEnvironment(env);
-process.start("myapp");
-//! [0]
- }
-
- {
-//! [1]
-QProcess process;
-QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
-env.insert("TMPDIR", "C:\\MyApp\\temp"); // Add an environment variable
-env.insert("PATH", env.value("Path") + ";C:\\Bin");
-process.setProcessEnvironment(env);
-process.start("myapp");
-//! [1]
- }
-}
-
-int main(int argc, char *argv[])
-{
- QCoreApplication app(argc, argv);
- startProcess();
- return app.exec();
-}
diff --git a/doc/src/snippets/qprocess/qprocess-simpleexecution.cpp b/doc/src/snippets/qprocess/qprocess-simpleexecution.cpp
deleted file mode 100644
index ea1892078e..0000000000
--- a/doc/src/snippets/qprocess/qprocess-simpleexecution.cpp
+++ /dev/null
@@ -1,66 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QtGui>
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-//! [0]
- QObject *parent;
-//! [0]
- parent = &app;
-
-//! [1]
- QString program = "./path/to/Qt/examples/widgets/analogclock";
-//! [1]
- program = "./../../../../examples/widgets/analogclock/analogclock";
-
-//! [2]
- QStringList arguments;
- arguments << "-style" << "motif";
-
- QProcess *myProcess = new QProcess(parent);
- myProcess->start(program, arguments);
-//! [2]
-
- return app.exec();
-}
diff --git a/doc/src/snippets/qsignalmapper/buttonwidget.cpp b/doc/src/snippets/qsignalmapper/buttonwidget.cpp
deleted file mode 100644
index cda905e3a2..0000000000
--- a/doc/src/snippets/qsignalmapper/buttonwidget.cpp
+++ /dev/null
@@ -1,66 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-
-#include "buttonwidget.h"
-
-//! [0]
-ButtonWidget::ButtonWidget(QStringList texts, QWidget *parent)
- : QWidget(parent)
-{
- signalMapper = new QSignalMapper(this);
-
- QGridLayout *gridLayout = new QGridLayout;
- for (int i = 0; i < texts.size(); ++i) {
- QPushButton *button = new QPushButton(texts[i]);
- connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));
-//! [0] //! [1]
- signalMapper->setMapping(button, texts[i]);
- gridLayout->addWidget(button, i / 3, i % 3);
- }
-
- connect(signalMapper, SIGNAL(mapped(const QString &)),
-//! [1] //! [2]
- this, SIGNAL(clicked(const QString &)));
-
- setLayout(gridLayout);
-}
-//! [2]
diff --git a/doc/src/snippets/qsignalmapper/buttonwidget.h b/doc/src/snippets/qsignalmapper/buttonwidget.h
deleted file mode 100644
index 9204de935a..0000000000
--- a/doc/src/snippets/qsignalmapper/buttonwidget.h
+++ /dev/null
@@ -1,67 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef BUTTONWIDGET_H
-#define BUTTONWIDGET_H
-
-#include <qwidget.h>
-
-class QSignalMapper;
-class QString;
-class QStringList;
-
-//! [0]
-class ButtonWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- ButtonWidget(QStringList texts, QWidget *parent = 0);
-
-signals:
- void clicked(const QString &text);
-
-private:
- QSignalMapper *signalMapper;
-//! [0] //! [1]
-};
-//! [1]
-
-#endif
diff --git a/doc/src/snippets/qsortfilterproxymodel-details/main.cpp b/doc/src/snippets/qsortfilterproxymodel-details/main.cpp
deleted file mode 100644
index 549d24b249..0000000000
--- a/doc/src/snippets/qsortfilterproxymodel-details/main.cpp
+++ /dev/null
@@ -1,99 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-#include <QApplication>
-#include <QSortFilterProxyModel>
-
-class MyItemModel : public QStandardItemModel
-{
-public:
- MyItemModel(QWidget *parent = 0);
-};
-
-MyItemModel::MyItemModel(QWidget *parent)
- : QStandardItemModel(parent)
-{};
-
-class Widget : public QWidget
-{
-public:
- Widget(QWidget *parent = 0);
-};
-
-Widget::Widget(QWidget *parent)
- : QWidget(parent)
-{
-//! [0] //! [1]
- QTreeView *treeView = new QTreeView;
-//! [0]
- MyItemModel *model = new MyItemModel(this);
-
- treeView->setModel(model);
-//! [1]
-
-//! [2]
- MyItemModel *sourceModel = new MyItemModel(this);
- QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
-
- proxyModel->setSourceModel(sourceModel);
- treeView->setModel(proxyModel);
-//! [2]
-
-//! [3]
- treeView->setSortingEnabled(true);
-//! [3]
-
-//! [4]
- proxyModel->sort(2, Qt::AscendingOrder);
-//! [4] //! [5]
- proxyModel->setFilterRegExp(QRegExp(".png", Qt::CaseInsensitive,
- QRegExp::FixedString));
- proxyModel->setFilterKeyColumn(1);
-//! [5]
-}
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- Widget widget;
- widget.show();
- return app.exec();
-}
diff --git a/doc/src/snippets/qstack/main.cpp b/doc/src/snippets/qstack/main.cpp
deleted file mode 100644
index cc96f8c55d..0000000000
--- a/doc/src/snippets/qstack/main.cpp
+++ /dev/null
@@ -1,55 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-#include <iostream>
-using namespace std;
-
-int main(int argc, char *argv[])
-{
-//! [0]
- QStack<int> stack;
- stack.push(1);
- stack.push(2);
- stack.push(3);
- while (!stack.isEmpty())
- cout << stack.pop() << endl;
-//! [0]
-}
diff --git a/doc/src/snippets/qstring/main.cpp b/doc/src/snippets/qstring/main.cpp
deleted file mode 100644
index d7299e80d5..0000000000
--- a/doc/src/snippets/qstring/main.cpp
+++ /dev/null
@@ -1,997 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-#include <QApplication>
-#include <stdio.h>
-
-class Widget : public QWidget
-{
-public:
- Widget(QWidget *parent = 0);
-
- void constCharPointer();
- void constCharArray();
- void characterReference();
- void atFunction();
- void stringLiteral();
- void modify();
- void index();
- QString boolToString(bool b);
- void nullVsEmpty();
-
- void appendFunction();
- void argFunction();
- void chopFunction();
- void compareFunction();
- void compareSensitiveFunction();
- void containsFunction();
- void countFunction();
- void dataFunction();
- void endsWithFunction();
- void fillFunction();
- void fromRawDataFunction();
-
- void indexOfFunction();
- void firstIndexOfFunction();
- void insertFunction();
- void isNullFunction();
- void isEmptyFunction();
- void lastIndexOfFunction();
- void leftFunction();
- void leftJustifiedFunction();
- void leftRefFunction();
- void midFunction();
- void midRefFunction();
- void numberFunction();
-
- void prependFunction();
- void removeFunction();
- void replaceFunction();
- void reserveFunction();
- void resizeFunction();
- void rightFunction();
- void rightJustifiedFunction();
- void rightRefFunction();
- void sectionFunction();
- void setNumFunction();
- void simplifiedFunction();
-
- void sizeFunction();
- void splitFunction();
- void splitCaseSensitiveFunction();
- void sprintfFunction();
- void startsWithFunction();
- void toDoubleFunction();
- void toFloatFunction();
- void toIntFunction();
- void toLongFunction();
- void toLongLongFunction();
-
- void toLowerFunction();
- void toShortFunction();
- void toUIntFunction();
- void toULongFunction();
- void toULongLongFunction();
- void toUShortFunction();
- void toUpperFunction();
- void trimmedFunction();
- void truncateFunction();
-
- void plusEqualOperator();
- void arrayOperator();
-};
-
-Widget::Widget(QWidget *parent)
- : QWidget(parent)
-{
-}
-
-void Widget::constCharPointer()
-{
- //! [0]
- QString str = "Hello";
- //! [0]
-}
-
-void Widget::constCharArray()
-{
- //! [1]
- static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };
- QString str(data, 4);
- //! [1]
-}
-
-void Widget::characterReference()
-{
- //! [2]
- QString str;
- str.resize(4);
-
- str[0] = QChar('U');
- str[1] = QChar('n');
- str[2] = QChar(0x10e3);
- str[3] = QChar(0x03a3);
- //! [2]
-}
-
-void Widget::atFunction()
-{
- //! [3]
- QString str;
-
- for (int i = 0; i < str.size(); ++i) {
- if (str.at(i) >= QChar('a') && str.at(i) <= QChar('f'))
- qDebug() << "Found character in range [a-f]";
- }
- //! [3]
-}
-
-void Widget: