From cfdc5628b1fc2cbafa2aebca38995e5718fcb0de Mon Sep 17 00:00:00 2001 From: Casper van Donderen Date: Mon, 7 May 2012 15:50:31 +0200 Subject: [PATCH] Doc: Modularize QtGui documentation. This change moves the snippets and images to the modularized directories. Change-Id: I5f86f598fbe7c47d632c613b85d94ced89ba2c29 Reviewed-by: Marius Storm-Olsen --- src/gui/accessible/qaccessible.cpp | 2 +- {doc/src => src/gui/doc}/images/brush-outline.png | Bin src/gui/doc/images/brush-styles.png | Bin 0 -> 13980 bytes .../doc}/images/coordinatesystem-analogclock.png | Bin .../images/coordinatesystem-line-antialias.png | Bin .../doc}/images/coordinatesystem-line-raster.png | Bin .../gui/doc}/images/coordinatesystem-line.png | Bin .../images/coordinatesystem-rect-antialias.png | Bin .../doc}/images/coordinatesystem-rect-raster.png | Bin .../gui/doc}/images/coordinatesystem-rect.png | Bin .../images/coordinatesystem-transformations.png | Bin src/gui/doc/images/cursor-arrow.png | Bin 0 -> 171 bytes src/gui/doc/images/cursor-busy.png | Bin 0 -> 201 bytes src/gui/doc/images/cursor-closedhand.png | Bin 0 -> 147 bytes src/gui/doc/images/cursor-cross.png | Bin 0 -> 130 bytes src/gui/doc/images/cursor-forbidden.png | Bin 0 -> 199 bytes src/gui/doc/images/cursor-hand.png | Bin 0 -> 159 bytes src/gui/doc/images/cursor-hsplit.png | Bin 0 -> 155 bytes src/gui/doc/images/cursor-ibeam.png | Bin 0 -> 124 bytes src/gui/doc/images/cursor-openhand.png | Bin 0 -> 160 bytes src/gui/doc/images/cursor-sizeall.png | Bin 0 -> 174 bytes src/gui/doc/images/cursor-sizeb.png | Bin 0 -> 161 bytes src/gui/doc/images/cursor-sizef.png | Bin 0 -> 161 bytes src/gui/doc/images/cursor-sizeh.png | Bin 0 -> 145 bytes src/gui/doc/images/cursor-sizev.png | Bin 0 -> 141 bytes src/gui/doc/images/cursor-uparrow.png | Bin 0 -> 132 bytes src/gui/doc/images/cursor-vsplit.png | Bin 0 -> 161 bytes src/gui/doc/images/cursor-wait.png | Bin 0 -> 172 bytes src/gui/doc/images/cursor-whatsthis.png | Bin 0 -> 191 bytes {doc/src => src/gui/doc}/images/hoverevents.png | Bin .../gui/doc}/images/paintsystem-antialiasing.png | Bin .../gui/doc}/images/paintsystem-core.png | Bin .../gui/doc}/images/paintsystem-devices.png | Bin .../gui/doc}/images/paintsystem-fancygradient.png | Bin .../gui/doc}/images/paintsystem-gradients.png | Bin .../gui/doc}/images/paintsystem-icon.png | Bin .../gui/doc}/images/paintsystem-movie.png | Bin .../gui/doc}/images/paintsystem-painterpath.png | Bin .../gui/doc}/images/paintsystem-stylepainter.png | Bin .../src => src/gui/doc}/images/paintsystem-svg.png | Bin {doc/src => src/gui/doc}/images/qcolor-cmyk.png | Bin {doc/src => src/gui/doc}/images/qcolor-hsv.png | Bin {doc/src => src/gui/doc}/images/qcolor-hue.png | Bin {doc/src => src/gui/doc}/images/qcolor-rgb.png | Bin .../gui/doc}/images/qcolor-saturation.png | Bin {doc/src => src/gui/doc}/images/qcolor-value.png | Bin .../gui/doc}/images/qconicalgradient.png | Bin .../gui/doc}/images/qgradient-conical.png | Bin .../gui/doc}/images/qgradient-linear.png | Bin .../gui/doc}/images/qgradient-radial.png | Bin .../gui/doc}/images/qimage-32bit_scaled.png | Bin .../gui/doc}/images/qimage-8bit_scaled.png | Bin src/gui/doc/images/qimage-scaling.png | Bin 0 -> 34785 bytes .../gui/doc}/images/qlineargradient-pad.png | Bin .../gui/doc}/images/qlineargradient-reflect.png | Bin .../gui/doc}/images/qlineargradient-repeat.png | Bin .../doc}/images/qmatrix-combinedtransformation.png | Bin .../gui/doc}/images/qmatrix-representation.png | Bin .../doc}/images/qmatrix-simpletransformation.png | Bin .../doc}/images/qpainter-affinetransformations.png | Bin {doc/src => src/gui/doc}/images/qpainter-arc.png | Bin .../gui/doc}/images/qpainter-basicdrawing.png | Bin {doc/src => src/gui/doc}/images/qpainter-chord.png | Bin {doc/src => src/gui/doc}/images/qpainter-clock.png | Bin .../gui/doc}/images/qpainter-compositiondemo.png | Bin .../gui/doc}/images/qpainter-compositionmode1.png | Bin .../gui/doc}/images/qpainter-compositionmode2.png | Bin .../gui/doc}/images/qpainter-concentriccircles.png | Bin .../gui/doc}/images/qpainter-ellipse.png | Bin .../gui/doc}/images/qpainter-gradients.png | Bin {doc/src => src/gui/doc}/images/qpainter-line.png | Bin .../gui/doc}/images/qpainter-painterpaths.png | Bin {doc/src => src/gui/doc}/images/qpainter-path.png | Bin .../gui/doc}/images/qpainter-pathstroking.png | Bin {doc/src => src/gui/doc}/images/qpainter-pie.png | Bin .../gui/doc}/images/qpainter-polygon.png | Bin .../gui/doc}/images/qpainter-rectangle.png | Bin .../gui/doc}/images/qpainter-rotation.png | Bin .../gui/doc}/images/qpainter-roundrect.png | Bin {doc/src => src/gui/doc}/images/qpainter-scale.png | Bin {doc/src => src/gui/doc}/images/qpainter-text.png | Bin .../gui/doc}/images/qpainter-translation.png | Bin .../gui/doc}/images/qpainter-vectordeformation.png | Bin .../gui/doc}/images/qpainterpath-addellipse.png | Bin .../gui/doc}/images/qpainterpath-addpolygon.png | Bin .../gui/doc}/images/qpainterpath-addrectangle.png | Bin .../gui/doc}/images/qpainterpath-addtext.png | Bin .../gui/doc}/images/qpainterpath-arcto.png | Bin .../gui/doc}/images/qpainterpath-construction.png | Bin .../gui/doc}/images/qpainterpath-cubicto.png | Bin .../gui/doc}/images/qpainterpath-demo.png | Bin .../gui/doc}/images/qpainterpath-example.png | Bin src/gui/doc/images/qpen-bevel.png | Bin 0 -> 11527 bytes src/gui/doc/images/qpen-custom.png | Bin 0 -> 6254 bytes src/gui/doc/images/qpen-dash.png | Bin 0 -> 8221 bytes src/gui/doc/images/qpen-dashdot.png | Bin 0 -> 5961 bytes src/gui/doc/images/qpen-dashdotdot.png | Bin 0 -> 5999 bytes .../gui/doc}/images/qpen-dashpattern.png | Bin {doc/src => src/gui/doc}/images/qpen-demo.png | Bin src/gui/doc/images/qpen-dot.png | Bin 0 -> 5386 bytes src/gui/doc/images/qpen-flat.png | Bin 0 -> 1885 bytes src/gui/doc/images/qpen-miter.png | Bin 0 -> 11734 bytes .../src => src/gui/doc}/images/qpen-miterlimit.png | Bin src/gui/doc/images/qpen-roundcap.png | Bin 0 -> 1920 bytes src/gui/doc/images/qpen-roundjoin.png | Bin 0 -> 11878 bytes src/gui/doc/images/qpen-solid.png | Bin 0 -> 7416 bytes src/gui/doc/images/qpen-square.png | Bin 0 -> 2651 bytes .../gui/doc}/images/qradialgradient-pad.png | Bin .../gui/doc}/images/qradialgradient-reflect.png | Bin .../gui/doc}/images/qradialgradient-repeat.png | Bin .../gui/doc}/images/qstatustipevent-action.png | Bin .../gui/doc}/images/qstatustipevent-widget.png | Bin .../gui/doc}/images/qt-fillrule-oddeven.png | Bin .../gui/doc}/images/qt-fillrule-winding.png | Bin .../gui/doc}/images/qtexttableformat-cell.png | Bin .../images/qtransform-combinedtransformation.png | Bin .../images/qtransform-combinedtransformation2.png | Bin .../gui/doc}/images/qtransform-representation.png | Bin .../images/qtransform-simpletransformation.png | Bin .../src => src/gui/doc}/images/texttable-merge.png | Bin .../src => src/gui/doc}/images/texttable-split.png | Bin src/gui/doc/qtgui.qdocconf | 92 +++++++++++++++++++++ {doc/src => src/gui/doc}/snippets/brush/brush.cpp | 0 .../snippets/brush/gradientcreationsnippet.cpp | 0 .../gui/doc}/snippets/code/doc_src_qtgui.pro | 0 .../code/src_gui_accessible_qaccessible.cpp | 0 .../doc}/snippets/code/src_gui_image_qimage.cpp | 0 .../snippets/code/src_gui_image_qimagereader.cpp | 0 .../snippets/code/src_gui_image_qimagewriter.cpp | 0 .../doc}/snippets/code/src_gui_image_qmovie.cpp | 0 .../doc}/snippets/code/src_gui_image_qpixmap.cpp | 0 .../snippets/code/src_gui_image_qpixmapcache.cpp | 0 .../snippets/code/src_gui_kernel_qapplication.cpp | 0 .../code/src_gui_kernel_qapplication_x11.cpp | 0 .../snippets/code/src_gui_kernel_qclipboard.cpp | 0 .../doc}/snippets/code/src_gui_kernel_qevent.cpp | 0 .../snippets/code/src_gui_kernel_qkeysequence.cpp | 0 .../snippets/code/src_gui_kernel_qshortcutmap.cpp | 0 .../doc}/snippets/code/src_gui_painting_qbrush.cpp | 0 .../doc}/snippets/code/src_gui_painting_qcolor.cpp | 0 .../snippets/code/src_gui_painting_qmatrix.cpp | 0 .../snippets/code/src_gui_painting_qpainter.cpp | 0 .../code/src_gui_painting_qpainterpath.cpp | 0 .../doc}/snippets/code/src_gui_painting_qpen.cpp | 0 .../snippets/code/src_gui_painting_qregion.cpp | 0 .../code/src_gui_painting_qregion_unix.cpp | 0 .../snippets/code/src_gui_painting_qtransform.cpp | 0 .../snippets/code/src_gui_qopenglshaderprogram.cpp | 0 .../gui/doc}/snippets/code/src_gui_text_qfont.cpp | 0 .../snippets/code/src_gui_text_qfontmetrics.cpp | 0 .../code/src_gui_text_qsyntaxhighlighter.cpp | 0 .../snippets/code/src_gui_text_qtextcursor.cpp | 0 .../snippets/code/src_gui_text_qtextdocument.cpp | 0 .../code/src_gui_text_qtextdocumentwriter.cpp | 0 .../snippets/code/src_gui_text_qtextlayout.cpp | 0 .../code/src_gui_util_qdesktopservices.cpp | 0 .../doc/snippets/code/src_gui_util_qvalidator.cpp | 0 .../gui/doc}/snippets/dragging/mainwindow.cpp | 0 {doc/src => src/gui/doc}/snippets/droparea.cpp | 0 {doc/src => src/gui/doc}/snippets/image/image.cpp | 0 .../gui/doc}/snippets/image/supportedformat.cpp | 0 .../src => src/gui/doc}/snippets/matrix/matrix.cpp | 0 .../gui/doc}/snippets/picture/picture.cpp | 0 .../gui/doc}/snippets/polygon/polygon.cpp | 0 .../gui/doc}/snippets/qfontdatabase/main.cpp | 0 .../gui/doc}/snippets/qstatustipevent/main.cpp | 0 .../gui/doc}/snippets/separations/finalwidget.cpp | 0 .../snippets/textblock-fragments/xmlwriter.cpp | 0 .../gui/doc}/snippets/textdocument-css/main.cpp | 0 .../snippets/textdocument-listitemstyles/main.cpp | 0 .../textdocument-listitemstyles/mainwindow.cpp | 0 .../textdocument-listitemstyles/mainwindow.h | 0 .../textdocument-listitemstyles.pro | 0 .../snippets/textdocument-lists/mainwindow.cpp | 0 .../doc}/snippets/textdocument-resources/main.cpp | 0 .../textdocument-resources.pro | 0 .../snippets/textdocument-tables/mainwindow.cpp | 0 .../doc}/snippets/textdocument-texttable/main.cpp | 0 .../gui/doc}/snippets/textdocumentendsnippet.cpp | 0 .../gui/doc}/snippets/transform/main.cpp | 0 {doc/src/gui => src/gui/doc/src}/coordsys.qdoc | 0 {doc/src/gui => src/gui/doc/src}/paintsystem.qdoc | 0 {doc/src/gui => src/gui/doc/src}/qtgui.qdoc | 2 +- src/gui/image/qimage.cpp | 10 +-- src/gui/image/qimagereader.cpp | 8 +- src/gui/image/qimagewriter.cpp | 6 +- src/gui/image/qmovie.cpp | 4 +- src/gui/image/qpicture.cpp | 18 ++-- src/gui/image/qpixmap.cpp | 8 +- src/gui/image/qpixmapcache.cpp | 4 +- src/gui/kernel/qclipboard.cpp | 6 +- src/gui/kernel/qdrag.cpp | 4 +- src/gui/kernel/qevent.cpp | 14 ++-- src/gui/kernel/qguiapplication.cpp | 4 +- src/gui/kernel/qkeysequence.cpp | 6 +- src/gui/kernel/qpalette.cpp | 2 +- src/gui/kernel/qshortcutmap.cpp | 2 +- src/gui/opengl/qopenglshaderprogram.cpp | 6 +- src/gui/painting/qbrush.cpp | 8 +- src/gui/painting/qcolor.cpp | 2 +- src/gui/painting/qmatrix.cpp | 14 ++-- src/gui/painting/qpainter.cpp | 44 +++++----- src/gui/painting/qpainterpath.cpp | 14 ++-- src/gui/painting/qpen.cpp | 8 +- src/gui/painting/qpolygon.cpp | 14 ++-- src/gui/painting/qregion.cpp | 4 +- src/gui/painting/qtransform.cpp | 14 ++-- src/gui/text/qfont.cpp | 10 +-- src/gui/text/qfontdatabase.cpp | 4 +- src/gui/text/qfontmetrics.cpp | 4 +- src/gui/text/qsyntaxhighlighter.cpp | 10 +-- src/gui/text/qtextcursor.cpp | 10 +-- src/gui/text/qtextdocument.cpp | 10 +-- src/gui/text/qtextdocumentwriter.cpp | 2 +- src/gui/text/qtextformat.cpp | 2 +- src/gui/text/qtextlayout.cpp | 4 +- src/gui/text/qtextlist.cpp | 2 +- src/gui/text/qtextobject.cpp | 4 +- src/gui/text/qtexttable.cpp | 8 +- src/gui/util/qdesktopservices.cpp | 6 +- src/gui/util/qvalidator.cpp | 10 +-- 221 files changed, 249 insertions(+), 157 deletions(-) rename {doc/src => src/gui/doc}/images/brush-outline.png (100%) create mode 100644 src/gui/doc/images/brush-styles.png rename {doc/src => src/gui/doc}/images/coordinatesystem-analogclock.png (100%) rename {doc/src => src/gui/doc}/images/coordinatesystem-line-antialias.png (100%) rename {doc/src => src/gui/doc}/images/coordinatesystem-line-raster.png (100%) rename {doc/src => src/gui/doc}/images/coordinatesystem-line.png (100%) rename {doc/src => src/gui/doc}/images/coordinatesystem-rect-antialias.png (100%) rename {doc/src => src/gui/doc}/images/coordinatesystem-rect-raster.png (100%) rename {doc/src => src/gui/doc}/images/coordinatesystem-rect.png (100%) rename {doc/src => src/gui/doc}/images/coordinatesystem-transformations.png (100%) create mode 100644 src/gui/doc/images/cursor-arrow.png create mode 100644 src/gui/doc/images/cursor-busy.png create mode 100644 src/gui/doc/images/cursor-closedhand.png create mode 100644 src/gui/doc/images/cursor-cross.png create mode 100644 src/gui/doc/images/cursor-forbidden.png create mode 100644 src/gui/doc/images/cursor-hand.png create mode 100644 src/gui/doc/images/cursor-hsplit.png create mode 100644 src/gui/doc/images/cursor-ibeam.png create mode 100644 src/gui/doc/images/cursor-openhand.png create mode 100644 src/gui/doc/images/cursor-sizeall.png create mode 100644 src/gui/doc/images/cursor-sizeb.png create mode 100644 src/gui/doc/images/cursor-sizef.png create mode 100644 src/gui/doc/images/cursor-sizeh.png create mode 100644 src/gui/doc/images/cursor-sizev.png create mode 100644 src/gui/doc/images/cursor-uparrow.png create mode 100644 src/gui/doc/images/cursor-vsplit.png create mode 100644 src/gui/doc/images/cursor-wait.png create mode 100644 src/gui/doc/images/cursor-whatsthis.png rename {doc/src => src/gui/doc}/images/hoverevents.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-antialiasing.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-core.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-devices.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-fancygradient.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-gradients.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-icon.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-movie.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-painterpath.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-stylepainter.png (100%) rename {doc/src => src/gui/doc}/images/paintsystem-svg.png (100%) rename {doc/src => src/gui/doc}/images/qcolor-cmyk.png (100%) rename {doc/src => src/gui/doc}/images/qcolor-hsv.png (100%) rename {doc/src => src/gui/doc}/images/qcolor-hue.png (100%) rename {doc/src => src/gui/doc}/images/qcolor-rgb.png (100%) rename {doc/src => src/gui/doc}/images/qcolor-saturation.png (100%) rename {doc/src => src/gui/doc}/images/qcolor-value.png (100%) rename {doc/src => src/gui/doc}/images/qconicalgradient.png (100%) rename {doc/src => src/gui/doc}/images/qgradient-conical.png (100%) rename {doc/src => src/gui/doc}/images/qgradient-linear.png (100%) rename {doc/src => src/gui/doc}/images/qgradient-radial.png (100%) rename {doc/src => src/gui/doc}/images/qimage-32bit_scaled.png (100%) rename {doc/src => src/gui/doc}/images/qimage-8bit_scaled.png (100%) create mode 100644 src/gui/doc/images/qimage-scaling.png rename {doc/src => src/gui/doc}/images/qlineargradient-pad.png (100%) rename {doc/src => src/gui/doc}/images/qlineargradient-reflect.png (100%) rename {doc/src => src/gui/doc}/images/qlineargradient-repeat.png (100%) rename {doc/src => src/gui/doc}/images/qmatrix-combinedtransformation.png (100%) rename {doc/src => src/gui/doc}/images/qmatrix-representation.png (100%) rename {doc/src => src/gui/doc}/images/qmatrix-simpletransformation.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-affinetransformations.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-arc.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-basicdrawing.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-chord.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-clock.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-compositiondemo.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-compositionmode1.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-compositionmode2.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-concentriccircles.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-ellipse.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-gradients.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-line.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-painterpaths.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-path.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-pathstroking.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-pie.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-polygon.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-rectangle.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-rotation.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-roundrect.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-scale.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-text.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-translation.png (100%) rename {doc/src => src/gui/doc}/images/qpainter-vectordeformation.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-addellipse.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-addpolygon.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-addrectangle.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-addtext.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-arcto.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-construction.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-cubicto.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-demo.png (100%) rename {doc/src => src/gui/doc}/images/qpainterpath-example.png (100%) create mode 100644 src/gui/doc/images/qpen-bevel.png create mode 100644 src/gui/doc/images/qpen-custom.png create mode 100644 src/gui/doc/images/qpen-dash.png create mode 100644 src/gui/doc/images/qpen-dashdot.png create mode 100644 src/gui/doc/images/qpen-dashdotdot.png rename {doc/src => src/gui/doc}/images/qpen-dashpattern.png (100%) rename {doc/src => src/gui/doc}/images/qpen-demo.png (100%) create mode 100644 src/gui/doc/images/qpen-dot.png create mode 100644 src/gui/doc/images/qpen-flat.png create mode 100644 src/gui/doc/images/qpen-miter.png rename {doc/src => src/gui/doc}/images/qpen-miterlimit.png (100%) create mode 100644 src/gui/doc/images/qpen-roundcap.png create mode 100644 src/gui/doc/images/qpen-roundjoin.png create mode 100644 src/gui/doc/images/qpen-solid.png create mode 100644 src/gui/doc/images/qpen-square.png rename {doc/src => src/gui/doc}/images/qradialgradient-pad.png (100%) rename {doc/src => src/gui/doc}/images/qradialgradient-reflect.png (100%) rename {doc/src => src/gui/doc}/images/qradialgradient-repeat.png (100%) rename {doc/src => src/gui/doc}/images/qstatustipevent-action.png (100%) rename {doc/src => src/gui/doc}/images/qstatustipevent-widget.png (100%) rename {doc/src => src/gui/doc}/images/qt-fillrule-oddeven.png (100%) rename {doc/src => src/gui/doc}/images/qt-fillrule-winding.png (100%) rename {doc/src => src/gui/doc}/images/qtexttableformat-cell.png (100%) rename {doc/src => src/gui/doc}/images/qtransform-combinedtransformation.png (100%) rename {doc/src => src/gui/doc}/images/qtransform-combinedtransformation2.png (100%) rename {doc/src => src/gui/doc}/images/qtransform-representation.png (100%) rename {doc/src => src/gui/doc}/images/qtransform-simpletransformation.png (100%) rename {doc/src => src/gui/doc}/images/texttable-merge.png (100%) rename {doc/src => src/gui/doc}/images/texttable-split.png (100%) create mode 100644 src/gui/doc/qtgui.qdocconf rename {doc/src => src/gui/doc}/snippets/brush/brush.cpp (100%) rename {doc/src => src/gui/doc}/snippets/brush/gradientcreationsnippet.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/doc_src_qtgui.pro (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_accessible_qaccessible.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_image_qimage.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_image_qimagereader.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_image_qimagewriter.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_image_qmovie.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_image_qpixmap.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_image_qpixmapcache.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_kernel_qapplication.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_kernel_qapplication_x11.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_kernel_qclipboard.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_kernel_qevent.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_kernel_qkeysequence.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_kernel_qshortcutmap.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qbrush.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qcolor.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qmatrix.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qpainter.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qpainterpath.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qpen.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qregion.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qregion_unix.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_painting_qtransform.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_qopenglshaderprogram.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_text_qfont.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_text_qfontmetrics.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_text_qsyntaxhighlighter.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_text_qtextcursor.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_text_qtextdocument.cpp (100%) rename doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp => src/gui/doc/snippets/code/src_gui_text_qtextdocumentwriter.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_text_qtextlayout.cpp (100%) rename {doc/src => src/gui/doc}/snippets/code/src_gui_util_qdesktopservices.cpp (100%) rename doc/src/snippets/code/src_gui_widgets_qvalidator.cpp => src/gui/doc/snippets/code/src_gui_util_qvalidator.cpp (100%) rename {doc/src => src/gui/doc}/snippets/dragging/mainwindow.cpp (100%) rename {doc/src => src/gui/doc}/snippets/droparea.cpp (100%) rename {doc/src => src/gui/doc}/snippets/image/image.cpp (100%) rename {doc/src => src/gui/doc}/snippets/image/supportedformat.cpp (100%) rename {doc/src => src/gui/doc}/snippets/matrix/matrix.cpp (100%) rename {doc/src => src/gui/doc}/snippets/picture/picture.cpp (100%) rename {doc/src => src/gui/doc}/snippets/polygon/polygon.cpp (100%) rename {doc/src => src/gui/doc}/snippets/qfontdatabase/main.cpp (100%) rename {doc/src => src/gui/doc}/snippets/qstatustipevent/main.cpp (100%) rename {doc/src => src/gui/doc}/snippets/separations/finalwidget.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textblock-fragments/xmlwriter.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-css/main.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-listitemstyles/main.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-listitemstyles/mainwindow.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-listitemstyles/mainwindow.h (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-listitemstyles/textdocument-listitemstyles.pro (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-lists/mainwindow.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-resources/main.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-resources/textdocument-resources.pro (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-tables/mainwindow.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocument-texttable/main.cpp (100%) rename {doc/src => src/gui/doc}/snippets/textdocumentendsnippet.cpp (100%) rename {doc/src => src/gui/doc}/snippets/transform/main.cpp (100%) rename {doc/src/gui => src/gui/doc/src}/coordsys.qdoc (100%) rename {doc/src/gui => src/gui/doc/src}/paintsystem.qdoc (100%) rename {doc/src/gui => src/gui/doc/src}/qtgui.qdoc (95%) diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp index 0231846..6f1d505 100644 --- a/src/gui/accessible/qaccessible.cpp +++ b/src/gui/accessible/qaccessible.cpp @@ -460,7 +460,7 @@ static void qAccessibleCleanup() This is a typedef for a pointer to a function with the following signature: - \snippet doc/src/snippets/code/src_gui_accessible_qaccessible.cpp 1 + \snippet code/src_gui_accessible_qaccessible.cpp 1 The function receives a QString and a QObject pointer, where the QString is the key identifying the interface. The QObject is used diff --git a/doc/src/images/brush-outline.png b/src/gui/doc/images/brush-outline.png similarity index 100% rename from doc/src/images/brush-outline.png rename to src/gui/doc/images/brush-outline.png diff --git a/src/gui/doc/images/brush-styles.png b/src/gui/doc/images/brush-styles.png new file mode 100644 index 0000000000000000000000000000000000000000..eecb006af141fb50fa8d03e68bbbccdfa964d3ce GIT binary patch literal 13980 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 L)YGU|vyS*bT-6qZ literal 0 HcmV?d00001 diff --git a/doc/src/images/coordinatesystem-analogclock.png b/src/gui/doc/images/coordinatesystem-analogclock.png similarity index 100% rename from doc/src/images/coordinatesystem-analogclock.png rename to src/gui/doc/images/coordinatesystem-analogclock.png diff --git a/doc/src/images/coordinatesystem-line-antialias.png b/src/gui/doc/images/coordinatesystem-line-antialias.png similarity index 100% rename from doc/src/images/coordinatesystem-line-antialias.png rename to src/gui/doc/images/coordinatesystem-line-antialias.png diff --git a/doc/src/images/coordinatesystem-line-raster.png b/src/gui/doc/images/coordinatesystem-line-raster.png similarity index 100% rename from doc/src/images/coordinatesystem-line-raster.png rename to src/gui/doc/images/coordinatesystem-line-raster.png diff --git a/doc/src/images/coordinatesystem-line.png b/src/gui/doc/images/coordinatesystem-line.png similarity index 100% rename from doc/src/images/coordinatesystem-line.png rename to src/gui/doc/images/coordinatesystem-line.png diff --git a/doc/src/images/coordinatesystem-rect-antialias.png b/src/gui/doc/images/coordinatesystem-rect-antialias.png similarity index 100% rename from doc/src/images/coordinatesystem-rect-antialias.png rename to src/gui/doc/images/coordinatesystem-rect-antialias.png diff --git a/doc/src/images/coordinatesystem-rect-raster.png b/src/gui/doc/images/coordinatesystem-rect-raster.png similarity index 100% rename from doc/src/images/coordinatesystem-rect-raster.png rename to src/gui/doc/images/coordinatesystem-rect-raster.png diff --git a/doc/src/images/coordinatesystem-rect.png b/src/gui/doc/images/coordinatesystem-rect.png similarity index 100% rename from doc/src/images/coordinatesystem-rect.png rename to src/gui/doc/images/coordinatesystem-rect.png diff --git a/doc/src/images/coordinatesystem-transformations.png b/src/gui/doc/images/coordinatesystem-transformations.png similarity index 100% rename from doc/src/images/coordinatesystem-transformations.png rename to src/gui/doc/images/coordinatesystem-transformations.png diff --git a/src/gui/doc/images/cursor-arrow.png b/src/gui/doc/images/cursor-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..a69ef4eb6158503c7c67c916aea86e65fdc81f72 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMrz2@N{tusfe>Zw~@EOfQR+sk_Oou&-fjcEVpj<&$!X3+c~E>J1*JV{%`IM zZgwlFFx}G*?uS>UO1?P#t>x;u4TbmfTg6u$kN3O$qTon=;uum9xAyEt-c|zv=78lpdFvQ2-{H`#GwYbpmwD+D`;ru|4Sly6 z!u|DfH10id;EhPQ?!aC0$4imznq|kzoDQ|k!q4v~%5Ey$Ds|~#XU>6Rfw7|8GuZ2t ub|G literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-closedhand.png b/src/gui/doc/images/cursor-closedhand.png new file mode 100644 index 0000000000000000000000000000000000000000..b78dd1dac5a827fa698f1993718f22c282019505 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6I14-?iy0WWJ3*My{N(AiKtWee z7sn8d^J_1j=3-FbaJl&N|NMQrDg{-+lDl3uEOL6iyxxIhJsV5IbqBU04WsP|EmPEI sG+%tqc!TF=!@MiLH_pW!e7ccq3Qxekuk)up2O7xW>FVdQ&MBb@057mJumAu6 literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-cross.png b/src/gui/doc/images/cursor-cross.png new file mode 100644 index 0000000000000000000000000000000000000000..fe38e744805f61abefcc555e07d399725c3fd7e6 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMrz=_jGX#;h346aDZ1vLF6&ZrWY3kt_3XM>{%UFuy$6%gUPvacWfgV8N9#n V_FPj?S`E~~;OXk;vd$@?2>`R9Dxv@Y literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-forbidden.png b/src/gui/doc/images/cursor-forbidden.png new file mode 100644 index 0000000000000000000000000000000000000000..2b08c4e2a3cafc992459a8f484e6c8e6c3e74857 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMr#O@pN$vsfa5*w~^P`kb@;)w}Ny_&ztDY@kvlRIOU`3qAsV; zTo+`Y{*UQrTXjS>sKxPHd$OYcrG25=M&E9}?0tT1Yy7oqDMB$hU$uYoMqOpDnka4~ qygb6(Z%*F(qx}EZO#W7L6_Nk?#pi+cGI+ZBxvX&}>iqs75rOW+zd6_S+ yS|~6}xHpZ9x7T5rLt)D22WQ%mvv4FO#t=)GwlEX literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-ibeam.png b/src/gui/doc/images/cursor-ibeam.png new file mode 100644 index 0000000000000000000000000000000000000000..097fc5fa7287da71ffd907b3a11adbda4516aca6 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42QqgTe~DWM4f DkdQT7 literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-sizeall.png b/src/gui/doc/images/cursor-sizeall.png new file mode 100644 index 0000000000000000000000000000000000000000..69f13eb347a6c299e06844729a14f657b282fe8f GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq(Z!J(8lD*)YR5__{zaA2hTRnmr4+Dcjj*u+}&-pB%i42~uelF{r5}E+x CJu-a& literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-sizef.png b/src/gui/doc/images/cursor-sizef.png new file mode 100644 index 0000000000000000000000000000000000000000..3b127a05d34b48a2f4f9b9cc77b681c6b43afcdd GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42QqD?iBlbDB7>)^pUXO@geCxo C3NS_h literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-sizeh.png b/src/gui/doc/images/cursor-sizeh.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f40cbc3d77c566c11c32c0631b4f94f44dd441 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq&V7RQzr9bPir8&?922WQ%mvv4FO#sHOC(Zx> literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-sizev.png b/src/gui/doc/images/cursor-sizev.png new file mode 100644 index 0000000000000000000000000000000000000000..1edbab27a5b05555aaf515931f69ad6bf7e417f0 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42QqM`U1 literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-wait.png b/src/gui/doc/images/cursor-wait.png new file mode 100644 index 0000000000000000000000000000000000000000..69056c479e9b2f009e366dfd71999a7c74f97620 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMrz2^mK6y;h346;J_ZVI&3Y=<%J7po~YS&;ev>WRgqc?pLgqp;N^OZ7kj)9 zt2OYRn)8&w&_Fn;AZ-e>OWiG&j$ap41wJoZG>h5TTvwNMesusN!}2q-U)D!*O8^aL N@O1TaS?83{1OR$JJ0<`C literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/cursor-whatsthis.png b/src/gui/doc/images/cursor-whatsthis.png new file mode 100644 index 0000000000000000000000000000000000000000..b47601c3780eec780fdae43bab7481bbfebdddae GIT binary patch literal 191 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 literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/qpen-custom.png b/src/gui/doc/images/qpen-custom.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a038abe09eee78308369f1a4083836e2b229bf GIT binary patch literal 6254 zcmV-!7?J0RP)e~DWhCmYA!#QS~T^~R=1iL{!j zF00E{?}Y$ZKoTU_3qTZ-=ylqj_ukB4Fc^RhBmwDB{$OZ80fU+I&OP_OTfQaHA6b@- zkL<_vlJTJFxRn1>cw_+wO)ss~LDQ9~x`X-+TFgPytHlm}i~Ubg6yqcNF}-9wXgY3s z_rfC!IB0rlr4E{|Ow}FKZ_r{6nqDn-kb{YXseEAKW{#V=vY9y!CJrX9nYfwbnu&vn zgNcKQgNcKQgNcKQgNcU*xHrc`0~|~oOguEe%^cTEO9v*?h2UV~U|PtHH=PONUdwCE z!NdjltOsTNsipbnnu!bW*$+zUIf!^53q@kj<-+UB!NkE-^dMlvU?fo(;mJhgb|B`G zMMccV69*Ib=4O#H^c#!puYq{?<&h5#cK`Ik(EG_$OcW)fY~q@U3vk)eP1BZ+3ZqDR zqIKf4{ayd~McaeTZ5wxYe6PoMl#-Lc!NkF&lzvHDzmxXUi9D-`?(6-(ah0 zu&rrsd+?1^8trv}(N^1}XLLqO6tdtH;`fiF8ByFC0S zf2@lTk|>M$P82l4TQ7~{B*eIxvs$ej2NfiN;1NTN5Jo0 zGiUlBC?5O(BGZY1^B|=5?`|hTy9P*VwADf_?dg2%>gY$I z90`)3q|?c6|Di+O&mwxXjS6je{s;l=XnW{H-%GrS( z62wm+GI(L|Jp&=Fg5w5M!C$j^8WP!Q3Zq=;lIJt=pk>~tAZAT$TUPE5o<}GWu0HYn zZL7DouGwy1j{wps_b)w>Rz+5Yxhc`b0rE2})>X727Wb9gcnA3Hzz`yK5MZ6`4#5Yj3Vifr5XmFr&yg6ApZ za_J?eGvv%P7iKbv3d?I)t!6Iws;o>#+fTY*rqRf{dQEHZYX8oqp+8N>MxmkvQ4sSL z63+o&fSEJdlVXyi8qFMe1d>wO@P(n@@9F$L4I?2MS=;Q`u&?Xs4sT03ord`%s$AQ( zU3|*hy=LYL;=s_G0@D|TI|S7p8XzA2Sop?)t{($K)cMC|?Mt4h9fTxmyKH3)Mc%Vu z()?xYH!1PdOgQ0zQY~@os|-x~ap1`nI081>>-^!>kq_e;Ki!PWN>;mU983!k;OY}m zNu?9L{!?G~{|Bx!o=c)d%&%IR$@o@X{{7v7gQApSyKJ(WaAN&g987Zolb(5jpKLbk z4RyfF!4~I^woO>N;~_iXWz5y7`i_B!v3e~!(D!mQM)4qD1A2S$C-+q90yZ{fTh@x27;D$3(1u~O~b&PdpC1`1>%^Z-V z#F8`DM?dbGJSb#E3N33qaWGXFn8;3OR!l|HlPE7UvG(j>S_(5KO4)0p|Fx&%5#-w1 zJdJ{s(YH#9^)}&Vt`f`~=}#mno^acl{$JCaf{&b&`=(-pY!`Sr&77oXCUs2iCRHW& zb=&R8-F~dq^La*0;1ju-t5{}Y&q>Cdpx7sxu-SsL>1M}+*v0D$oYwmjEx7LSiG9TNq*~Hmi*89*M*f@@qO_z$;>=XB%*2cb`lOxde;v24f%XD9(DkFqa5rh+ zKzltb12aiFl0vDGqpn||+!m*Tt`bO_Jl6Yfq133BoWwO#Pg z+;`gjt3)b_TPMlVk~3587l?36o*#S%?b}GVB-?5fPokR}DRa}1#5Gf8GZXkn>F~7d zX#X~Cn^x1*wn5Ey5{2an4dkSf!`rm8eKX)(PfC>5!N7I<4{B{mBr6W$%v3?l1Ug7( z5~tn2K@L7^=z#i;;i+p%Nx@X+&;Uac7zl;iR4Sp4yB5{A*T+6)-Ai?A$iY;ZU}Dmn z+{CB@Ez}xmsTt_tWZ%oN}-FCs5UB<&`4=A+QAIm zT#~psm{wXdvF45wM_m8Boz*Sc>-Kd$ta z@a@(`HwRNCgGr+$av#x74T-$8CEpq}cQ`-rF3MlA8CK|Tl^IM%5ANLHo8ZQ+nt?kz z_$KM&CKsKz#KBZiU}8tmqUc25i@=Z;9ekuea88d^&J|1x6yP-Z6aU^lbrN11?ZmYT z>ia;~GyYhoF{;Fq<0@HzlfG(Hiu6q#$9-hsB^Vj>2&LgA$t1nY7H7&|#Kg+RGX4|2 zFCgyD;0%&%^EMfyN<3}18qA!6{fP@h@1iUdVI3k=I=<`jACpB3>0M4{GA5beAGc5L zAiCQ|;0#ECC*zr*UWv=ocB_Dy=wAgXI~Klr|vhJzV6iI@_bHJ-D&cyhs$A1`*atF@HLQXBs1567rb1cBsM&jL6 z{M!gEof~`$9p9Pmw*28{u42ucW@?Cdi6#SxgR7)rm1|T6Z!Q-OAexNCBv1@W!vQ2F z@nz?u;7L7Lz`;~)K}$8-MA%5u2h>>m@?``Qg|Li_rCo-Y!~^FB-pXWC#u8%=rs~@0 z)%dCCY~%9R&9Qhlx|AO8d(p5R_z0Tg8uOaU`opHaONX3kqot&Afx;mvqElSy#N&hP{CuwYH4b0q*_Dx-rhxC{Pujsv}>*nSI zCYno`96r?jQ!Qz!?oiJ^kyf~(QWz@bVB$rXCCnTFQ*ZDn;#v*bcHp&0AqpFA~VWkisF@ zE9K2eG_x}Z#m(j|Z?n~*zzU_rI#L&tq07Nku7k$s0v%1;A3W#qG+{t3X|r2oYUr|h zb6U7^6oYc0zUv7y)m<3;LpHNuijeW{yZd6X|=7QPLrRF_WyO}Hgm5CsSc@aB=f*;}jQvbjQZxDE&X&#}V0sG!(~Z$j#4L5?6uCmcWcjv|Rqy?~15Bnf zr^Wc>%R2r0$dF?@MH15U?d#Eat=+RbOS?j@umERC-%|-Ux(NVG^@v#7@4GVm7g10O zC&8~2m~t5ur2Uzw4}~_a-Ma%!mS2kA2(0a_!;5j*k2YzXgisFpPe6kU8K!TgB?Qx~ znn_i2k}?$=M%_27MZqJcpcYGoTXxN)zaWzBL;MkGe;APs4_(yk!-|b-8=qjrBWzbF zHgS3Q&qy^Rd5ajAO$`VdQDB6h%3MX}(k{0E#|B(95jfWS?=1NQ-WjE!QiE_nO2k$(nKqfhE=5!>4jAUCeu9{&o8`50~LynzKxu;HdZI&Z{WnRIuW4%X5hEOQ`fT@vT8}trC`u+)q%q?tiqqd>YIU-7nyDbQRMgw|rm~^F;BhpF zMeQDzBbFwvDUupM^3b8!jrNASVFyUmPH#%CSZAqLvOF@Lr^tpj3(9nK1mYDnxU35$ zD;C17ferEH>hz_;xqd5|&qP8161emRZjV}#PMSfzV%hn$EMSrfMjL4D=W-nlkrD$z zfJ)+B?GIBJ)j=p=Y2x(ABW>}C^}65r^v%&v0ueVLB@;*qMl6<)^OXZ8qtGVjFDmJD z%H=zDq-P7dhR|LQtJzIKG2^*`ccx+^g^g%dIG;&2_I(rOcrtv-{VQha8f>+=g?&>e z@Ghpk-g23_e6=X*77b4VaaZd^J+^m{#ehZGXsaWVlXwPeLGleYVu%|UuxvF1Qf(U! zbpPbm*x!SZ0S!`AOBEZjU6I?j6h@?Dh%elGVemadNRIW)v{8`+CVsSad@HT*Fb2CN zsnXJR$)y*SPVZh+%r&U(GVVX(+JX+dI-VAmwp)l}gP)&AMG!{AGnX$7{}CNwLFRPO z>{_xYNg_int}NOge&zbbxq)~0c0CDBB5IUEs)0g^Dv4)rj(&=E#Mld>@?6rV_myh@ zx}tQY!w7aQoba`Ib|38i3BDaG5TY9r_-Y#u_xud|Cv;mvG~SMRMFE!9%ozz5cn`%r zM_vD_c0Pe}a*&2h=}3&A;RbZDvW9< zL9W3y1&q*}^`!e1SMW$I709L~Z^(Ih=z|vLa1-u6~g0 z#0iSae*%S<_&&^W_<}U}`W>ciXf7y~BT}ikVFe&#zd_a$U4kTk0w0vgWM+~>J%NMg z2H)P_^&@K0?guic(p;?~!?6J;bGrXE7~HfFVFm0+x&TDr$6-?T`N4Nt5U(*0Qjq5l zAZzsOz?&}rag5Jq@hPJ{T_KC6UTk_Anun2z_V|vX@ReQxM#ifQg!CM;6jSM>Tx3RS zWo23#l@k~PF#=50z;+L9%Sw9dBD`_5_xX{~B`K%GCE5;!c9Y6C*;=SUWayEQal;1n zNQmId5Hzu5$P;Ss^tJ#8$WtI!&;bnH*GQ=dfM_Jn+B$qFj2%qg@XSTht4^m+w$({- zDN~_3Gv&|pxM$VRTHZt3w$VDNR5=<(D zWP`scE77zE?XRIzF@FN}uBuIMWj6hOgtpRkvs?>sWA7yXOLE6-JH=v;nYdnxb)=L{jYO7Aj=lnabf>hAONcq^!WjIMMeK zV23t|r`)fhUHHkqSHUa$Nz&HiJ25?|Z38YDZX|W-NlHS!ZIy;0l{3J3r`*46n{3A2 z)h&_k=t*+X0DA7yNOTK}LJEEyEzR~L0ii-nw)F@f?FsNAv8?6J%VU9bzEs;b3bj)@h z<>Et;E4n<~5>KFJv7iNO@am+P(pyxXeSXM?Z3Kh^ayStev^fW=;Im| zyvDTya{xof`(C&+@qZJM+qjYWYDUskeu@2%0_~rJ6vSC5K8fay(BSGVq@<`iiR4TO zBLdA$Z4W?KA!YHD`_-!>f9dugK+>r~C!WnU0aC9RBg!V5$V|aN56xU?^EO`?dJmZ1 z)A4NkXo3bF8^M#FkD;Ufio?%yc|Goy>&c*^xO461!A1L@Ch+iAJ9ClO)RyCW}2BT~OtRd62jgN=#r( z7Hlr|!mt&8sOMRX9~OjcX__p`OtLaEa}|CGC>b^mHXZg3RuAEL1RmkxW`&G7d@9Ms z*r+NSS4eZ79&S*Y0&&Qh;w0uop{69)O@;nX(?F`Fku1}w&JRP9g9VldW!b>u_T9yumhAmb-D>4h-$o7HYK&) zJs2Mk!udm;n=B!%LCA^8Q&WM_peN+Joh35v{Yx}v#(i4(VP6H673TzwxZWEg@GPaEbO2>4>Oks4mD&+xz7L~O|U7mUcKt> z&onPHclQ-xT9Vcx`$-tz)3V&}Zf-+3D>L2QjVnqR^o1psSUy=K32|oP<>B{aw_Oe< z4kivJ4koUdcz-6YnK(0XX5!4mnQ5i><~W!*m^hd?m^hd?n79Dv0-OtQ&P<${=D|$= Y51`dV#>W~YLI3~&07*qoM6N<$g5Uuv>i_@% literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/qpen-dash.png b/src/gui/doc/images/qpen-dash.png new file mode 100644 index 0000000000000000000000000000000000000000..67082c375870fa9aefa8246ebfbdd411c3d14a55 GIT binary patch literal 8221 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 Qw?7i(qq1~`q)G7q0IF2gKmY&$ literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/qpen-dashdot.png b/src/gui/doc/images/qpen-dashdot.png new file mode 100644 index 0000000000000000000000000000000000000000..64b384660f7b5e32c0c5e282770ca41f8545a0d8 GIT binary patch literal 5961 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 literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/qpen-dashdotdot.png b/src/gui/doc/images/qpen-dashdotdot.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1b2e69cd1f5e99a4bf871554f342599e3c45a0 GIT binary patch literal 5999 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 dnM^zAs_p8=u%9 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 literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/qpen-flat.png b/src/gui/doc/images/qpen-flat.png new file mode 100644 index 0000000000000000000000000000000000000000..06e2195f7332adf167cfc1398539d9c98f93ddcb GIT binary patch literal 1885 zcmV-j2cr0iP))@ZfbX}8&Pz~Fzx-jK%Q zjFiAR%jB5M;G@mqqt4=|(dVO?$3D{Iu+!tQqtHj<>eA)w*yr=n`TF*$(^cp4(BSFL z#NLm#+iRoHNa^#`x!HKfc9?i@e%@>Gaj> z^w-_z$KCF|-ssAv(@eqLh|}n($mEZ$)L!4{ z%&F5e08@bIISEwAyFo@ypHOrKHhEx7%&E+ivOe)2Y-^+ULTv)@j@4!pGm2+w8d9 z=f>RV#<|&d*yX*=<(#qBX4&hsxY%{T;DFBNp6m75yxw@W*m2$H$KCC`q|!*O)Lq}` z%e~uwsnS!+<(0hKe$wcr!{LUk)>ydNb=2vp)#SFQ)KKE^#p3YBeZmmMXl6Z z*XFy|>aV5IO1#~7v)60L-aE1xk-Ob?wAXFo>C(&Pmaf-ZlfOB&*KM!WVW!efz1xAk-g@Kk$K&zI{{;DOWRvy;F%tJGPc&qek3^7#Am zr_)W<>8sW0tP@hkJOBU$Gf6~2RCr$P+tb(eI26b6-#!m*8?SBKwr%?z+qP}nwr$(C zuIJ*cSu;Cr)8w@2dDfbI{(|pS+r5*5S|{6OyMnP@w##6G4|tt(yhOsna-{N*bAM@jdZR?xLQA5O zbQQzbo{f=rl|n_gh`SoHpyr22yNaRgx9GaoY=ydSBkTGcS|aK?>vZU;h@`6vbajiO z>sCl)<&Pio#J(fIjf|k{0C+k2i>oP)Hhl`FzwxddxXYe3oaMjIx*jpy)!YNF=6^&2 zFy&^u_J*sh)#LzXu+gsj;AUB8a_SGJ+GN*GxEV-prh)m%VAlq?sPdREjs$a&xvm3C z;53>%fFpBVhrsDi@(=@am$|M#;Ix6f;xTY18tVELqBBY2WN-y!rt1udW|Bl51pArkx(cG{B+~@0 zfQ)oCKvY69cR)~QrfVxi<4EEH2!@c6uGb;ji)0}B#7I{RqBSHl6@oG{(shg0gNxQd zP}|o?*F6yQAerqDRgjUcB@nD8iJlM@kddyX5OmagUDcAAuFJsXkieNLMT?ciqdnT1d@c*_^Rr zI$Y(FMptU^X^T6kH{9isPS@M4YZV2wu@D|clUCO?tSd%=^vj2r$4ReiH|rWp0lb&jucC3#m%-0hI+)3Tc`23gnhG zBsdR2u;fir)N|n3@Kc=doc0X_@0=7PKMzd0av1!59b~SBi+5|5le;aWiqIWd8jMCvo&iOhafYiksjoq`VAB)61 z_1sRw_c0Hxg|3`qPmSVU?UzHLF7x~Aqr11Ac11g-rjETLzvuq+s1KUpsomUdvzwE5 z|9)Z7v$?;#h<{*@2@lV`?Wl@Pt>(Xg`kT&M-t~X_ABF9*UAD`1*)H2z literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/qpen-miter.png b/src/gui/doc/images/qpen-miter.png new file mode 100644 index 0000000000000000000000000000000000000000..025e00397990335ec512b5a9cdb9f2ba9f1a67ca GIT binary patch literal 11734 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 literal 0 HcmV?d00001 diff --git a/doc/src/images/qpen-miterlimit.png b/src/gui/doc/images/qpen-miterlimit.png similarity index 100% rename from doc/src/images/qpen-miterlimit.png rename to src/gui/doc/images/qpen-miterlimit.png diff --git a/src/gui/doc/images/qpen-roundcap.png b/src/gui/doc/images/qpen-roundcap.png new file mode 100644 index 0000000000000000000000000000000000000000..77b22b2babd6aad1d6ef24333c05dfd052e2b64e GIT binary patch literal 1920 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 literal 0 HcmV?d00001 diff --git a/src/gui/doc/images/qpen-solid.png b/src/gui/doc/images/qpen-solid.png new file mode 100644 index 0000000000000000000000000000000000000000..e042b18017e927bdc74fa32c806ab394e1cfce8e GIT binary patch literal 7416 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%0A9$)25>i&<41g?J#GKKr~PL* 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 HE^+?_1?Dna literal 0 HcmV?d00001 diff --git a/doc/src/images/qradialgradient-pad.png b/src/gui/doc/images/qradialgradient-pad.png similarity index 100% rename from doc/src/images/qradialgradient-pad.png rename to src/gui/doc/images/qradialgradient-pad.png diff --git a/doc/src/images/qradialgradient-reflect.png b/src/gui/doc/images/qradialgradient-reflect.png similarity index 100% rename from doc/src/images/qradialgradient-reflect.png rename to src/gui/doc/images/qradialgradient-reflect.png diff --git a/doc/src/images/qradialgradient-repeat.png b/src/gui/doc/images/qradialgradient-repeat.png similarity index 100% rename from doc/src/images/qradialgradient-repeat.png rename to src/gui/doc/images/qradialgradient-repeat.png diff --git a/doc/src/images/qstatustipevent-action.png b/src/gui/doc/images/qstatustipevent-action.png similarity index 100% rename from doc/src/images/qstatustipevent-action.png rename to src/gui/doc/images/qstatustipevent-action.png diff --git a/doc/src/images/qstatustipevent-widget.png b/src/gui/doc/images/qstatustipevent-widget.png similarity index 100% rename from doc/src/images/qstatustipevent-widget.png rename to src/gui/doc/images/qstatustipevent-widget.png diff --git a/doc/src/images/qt-fillrule-oddeven.png b/src/gui/doc/images/qt-fillrule-oddeven.png similarity index 100% rename from doc/src/images/qt-fillrule-oddeven.png rename to src/gui/doc/images/qt-fillrule-oddeven.png diff --git a/doc/src/images/qt-fillrule-winding.png b/src/gui/doc/images/qt-fillrule-winding.png similarity index 100% rename from doc/src/images/qt-fillrule-winding.png rename to src/gui/doc/images/qt-fillrule-winding.png diff --git a/doc/src/images/qtexttableformat-cell.png b/src/gui/doc/images/qtexttableformat-cell.png similarity index 100% rename from doc/src/images/qtexttableformat-cell.png rename to src/gui/doc/images/qtexttableformat-cell.png diff --git a/doc/src/images/qtransform-combinedtransformation.png b/src/gui/doc/images/qtransform-combinedtransformation.png similarity index 100% rename from doc/src/images/qtransform-combinedtransformation.png rename to src/gui/doc/images/qtransform-combinedtransformation.png diff --git a/doc/src/images/qtransform-combinedtransformation2.png b/src/gui/doc/images/qtransform-combinedtransformation2.png similarity index 100% rename from doc/src/images/qtransform-combinedtransformation2.png rename to src/gui/doc/images/qtransform-combinedtransformation2.png diff --git a/doc/src/images/qtransform-representation.png b/src/gui/doc/images/qtransform-representation.png similarity index 100% rename from doc/src/images/qtransform-representation.png rename to src/gui/doc/images/qtransform-representation.png diff --git a/doc/src/images/qtransform-simpletransformation.png b/src/gui/doc/images/qtransform-simpletransformation.png similarity index 100% rename from doc/src/images/qtransform-simpletransformation.png rename to src/gui/doc/images/qtransform-simpletransformation.png diff --git a/doc/src/images/texttable-merge.png b/src/gui/doc/images/texttable-merge.png similarity index 100% rename from doc/src/images/texttable-merge.png rename to src/gui/doc/images/texttable-merge.png diff --git a/doc/src/images/texttable-split.png b/src/gui/doc/images/texttable-split.png similarity index 100% rename from doc/src/images/texttable-split.png rename to src/gui/doc/images/texttable-split.png diff --git a/src/gui/doc/qtgui.qdocconf b/src/gui/doc/qtgui.qdocconf new file mode 100644 index 0000000..85772bb --- /dev/null +++ b/src/gui/doc/qtgui.qdocconf @@ -0,0 +1,92 @@ +include(../../../doc/global/qt-cpp-ignore.qdocconf) + +project = QtGui +description = Qt GUI Reference Documentation +url = http://qt-project.org/doc/qt-5.0/qtgui +version = 5.0.0 + +sourceencoding = UTF-8 +outputencoding = UTF-8 +naturallanguage = en_US +qhp.projects = QtGui + +qhp.QtGui.file = qtgui.qhp +qhp.QtGui.namespace = org.qt-project.qtgui.500 +qhp.QtGui.virtualFolder = qdoc +qhp.QtGui.indexTitle = Qt GUI Reference Documentation +qhp.QtGui.indexRoot = + +qhp.QtGui.filterAttributes = qtgui 5.0.0 qtrefdoc +qhp.QtGui.customFilters.Qt.name = Qtgui 5.0.0 +qhp.QtGui.customFilters.Qt.filterAttributes = qtgui 5.0.0 +qhp.QtGui.subprojects = classes overviews examples +qhp.QtGui.subprojects.classes.title = Classes +qhp.QtGui.subprojects.classes.indexTitle = Qt GUI's Classes +qhp.QtGui.subprojects.classes.selectors = class fake:headerfile +qhp.QtGui.subprojects.classes.sortPages = true +qhp.QtGui.subprojects.overviews.title = Overviews +qhp.QtGui.subprojects.overviews.indexTitle = All Overviews and HOWTOs +qhp.QtGui.subprojects.overviews.selectors = fake:page,group,module +qhp.QtGui.subprojects.examples.title = Qt GUI Examples +qhp.QtGui.subprojects.examples.indexTitle = Qt GUI Examples +qhp.QtGui.subprojects.examples.selectors = fake:example + +dita.metadata.default.author = Qt Project +dita.metadata.default.permissions = all +dita.metadata.default.publisher = Qt Project +dita.metadata.default.copyryear = 2012 +dita.metadata.default.copyrholder = Nokia +dita.metadata.default.audience = programmer + +sources.fileextensions = "*.c++ *.cc *.cpp *.cxx *.mm *.qml *.qdoc" +headers.fileextensions = "*.ch *.h *.h++ *.hh *.hpp *.hxx" + +examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.qml *.css" +examples.imageextensions = "*.png" + +outputdir = ../../../doc/qtgui +tagfile = ../../../doc/qtgui/qtgui.tags + +HTML.generatemacrefs = "true" +HTML.nobreadcrumbs = "true" + +HTML.templatedir = . + +HTML.stylesheets = ../../../doc/global/style/offline.css + +HTML.headerstyles = \ + " \n" + +HTML.endheader = \ + "\n" \ + +defines = Q_QDOC \ + QT_.*_SUPPORT \ + QT_.*_LIB \ + QT_COMPAT \ + QT_KEYPAD_NAVIGATION \ + QT_NO_EGL \ + Q_WS_.* \ + Q_OS_.* \ + Q_BYTE_ORDER \ + QT_DEPRECATED \ + QT_DEPRECATED_* \ + Q_NO_USING_KEYWORD \ + __cplusplus \ + Q_COMPILER_INITIALIZER_LISTS + +versionsym = QT_VERSION_STR + +codeindent = 1 + +depends += qtcore + +headerdirs += .. + +sourcedirs += .. + +exampledirs += ../../../examples \ + ../ \ + snippets + +imagedirs += images diff --git a/doc/src/snippets/brush/brush.cpp b/src/gui/doc/snippets/brush/brush.cpp similarity index 100% rename from doc/src/snippets/brush/brush.cpp rename to src/gui/doc/snippets/brush/brush.cpp diff --git a/doc/src/snippets/brush/gradientcreationsnippet.cpp b/src/gui/doc/snippets/brush/gradientcreationsnippet.cpp similarity index 100% rename from doc/src/snippets/brush/gradientcreationsnippet.cpp rename to src/gui/doc/snippets/brush/gradientcreationsnippet.cpp diff --git a/doc/src/snippets/code/doc_src_qtgui.pro b/src/gui/doc/snippets/code/doc_src_qtgui.pro similarity index 100% rename from doc/src/snippets/code/doc_src_qtgui.pro rename to src/gui/doc/snippets/code/doc_src_qtgui.pro diff --git a/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp b/src/gui/doc/snippets/code/src_gui_accessible_qaccessible.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_accessible_qaccessible.cpp rename to src/gui/doc/snippets/code/src_gui_accessible_qaccessible.cpp diff --git a/doc/src/snippets/code/src_gui_image_qimage.cpp b/src/gui/doc/snippets/code/src_gui_image_qimage.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_image_qimage.cpp rename to src/gui/doc/snippets/code/src_gui_image_qimage.cpp diff --git a/doc/src/snippets/code/src_gui_image_qimagereader.cpp b/src/gui/doc/snippets/code/src_gui_image_qimagereader.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_image_qimagereader.cpp rename to src/gui/doc/snippets/code/src_gui_image_qimagereader.cpp diff --git a/doc/src/snippets/code/src_gui_image_qimagewriter.cpp b/src/gui/doc/snippets/code/src_gui_image_qimagewriter.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_image_qimagewriter.cpp rename to src/gui/doc/snippets/code/src_gui_image_qimagewriter.cpp diff --git a/doc/src/snippets/code/src_gui_image_qmovie.cpp b/src/gui/doc/snippets/code/src_gui_image_qmovie.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_image_qmovie.cpp rename to src/gui/doc/snippets/code/src_gui_image_qmovie.cpp diff --git a/doc/src/snippets/code/src_gui_image_qpixmap.cpp b/src/gui/doc/snippets/code/src_gui_image_qpixmap.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_image_qpixmap.cpp rename to src/gui/doc/snippets/code/src_gui_image_qpixmap.cpp diff --git a/doc/src/snippets/code/src_gui_image_qpixmapcache.cpp b/src/gui/doc/snippets/code/src_gui_image_qpixmapcache.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_image_qpixmapcache.cpp rename to src/gui/doc/snippets/code/src_gui_image_qpixmapcache.cpp diff --git a/doc/src/snippets/code/src_gui_kernel_qapplication.cpp b/src/gui/doc/snippets/code/src_gui_kernel_qapplication.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_kernel_qapplication.cpp rename to src/gui/doc/snippets/code/src_gui_kernel_qapplication.cpp diff --git a/doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp b/src/gui/doc/snippets/code/src_gui_kernel_qapplication_x11.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp rename to src/gui/doc/snippets/code/src_gui_kernel_qapplication_x11.cpp diff --git a/doc/src/snippets/code/src_gui_kernel_qclipboard.cpp b/src/gui/doc/snippets/code/src_gui_kernel_qclipboard.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_kernel_qclipboard.cpp rename to src/gui/doc/snippets/code/src_gui_kernel_qclipboard.cpp diff --git a/doc/src/snippets/code/src_gui_kernel_qevent.cpp b/src/gui/doc/snippets/code/src_gui_kernel_qevent.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_kernel_qevent.cpp rename to src/gui/doc/snippets/code/src_gui_kernel_qevent.cpp diff --git a/doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp b/src/gui/doc/snippets/code/src_gui_kernel_qkeysequence.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp rename to src/gui/doc/snippets/code/src_gui_kernel_qkeysequence.cpp diff --git a/doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp b/src/gui/doc/snippets/code/src_gui_kernel_qshortcutmap.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp rename to src/gui/doc/snippets/code/src_gui_kernel_qshortcutmap.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qbrush.cpp b/src/gui/doc/snippets/code/src_gui_painting_qbrush.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qbrush.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qbrush.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qcolor.cpp b/src/gui/doc/snippets/code/src_gui_painting_qcolor.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qcolor.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qcolor.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qmatrix.cpp b/src/gui/doc/snippets/code/src_gui_painting_qmatrix.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qmatrix.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qmatrix.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qpainter.cpp b/src/gui/doc/snippets/code/src_gui_painting_qpainter.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qpainter.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qpainter.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qpainterpath.cpp b/src/gui/doc/snippets/code/src_gui_painting_qpainterpath.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qpainterpath.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qpainterpath.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qpen.cpp b/src/gui/doc/snippets/code/src_gui_painting_qpen.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qpen.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qpen.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qregion.cpp b/src/gui/doc/snippets/code/src_gui_painting_qregion.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qregion.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qregion.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qregion_unix.cpp b/src/gui/doc/snippets/code/src_gui_painting_qregion_unix.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qregion_unix.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qregion_unix.cpp diff --git a/doc/src/snippets/code/src_gui_painting_qtransform.cpp b/src/gui/doc/snippets/code/src_gui_painting_qtransform.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_painting_qtransform.cpp rename to src/gui/doc/snippets/code/src_gui_painting_qtransform.cpp diff --git a/doc/src/snippets/code/src_gui_qopenglshaderprogram.cpp b/src/gui/doc/snippets/code/src_gui_qopenglshaderprogram.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_qopenglshaderprogram.cpp rename to src/gui/doc/snippets/code/src_gui_qopenglshaderprogram.cpp diff --git a/doc/src/snippets/code/src_gui_text_qfont.cpp b/src/gui/doc/snippets/code/src_gui_text_qfont.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_text_qfont.cpp rename to src/gui/doc/snippets/code/src_gui_text_qfont.cpp diff --git a/doc/src/snippets/code/src_gui_text_qfontmetrics.cpp b/src/gui/doc/snippets/code/src_gui_text_qfontmetrics.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_text_qfontmetrics.cpp rename to src/gui/doc/snippets/code/src_gui_text_qfontmetrics.cpp diff --git a/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp b/src/gui/doc/snippets/code/src_gui_text_qsyntaxhighlighter.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp rename to src/gui/doc/snippets/code/src_gui_text_qsyntaxhighlighter.cpp diff --git a/doc/src/snippets/code/src_gui_text_qtextcursor.cpp b/src/gui/doc/snippets/code/src_gui_text_qtextcursor.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_text_qtextcursor.cpp rename to src/gui/doc/snippets/code/src_gui_text_qtextcursor.cpp diff --git a/doc/src/snippets/code/src_gui_text_qtextdocument.cpp b/src/gui/doc/snippets/code/src_gui_text_qtextdocument.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_text_qtextdocument.cpp rename to src/gui/doc/snippets/code/src_gui_text_qtextdocument.cpp diff --git a/doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp b/src/gui/doc/snippets/code/src_gui_text_qtextdocumentwriter.cpp similarity index 100% rename from doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp rename to src/gui/doc/snippets/code/src_gui_text_qtextdocumentwriter.cpp diff --git a/doc/src/snippets/code/src_gui_text_qtextlayout.cpp b/src/gui/doc/snippets/code/src_gui_text_qtextlayout.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_text_qtextlayout.cpp rename to src/gui/doc/snippets/code/src_gui_text_qtextlayout.cpp diff --git a/doc/src/snippets/code/src_gui_util_qdesktopservices.cpp b/src/gui/doc/snippets/code/src_gui_util_qdesktopservices.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_util_qdesktopservices.cpp rename to src/gui/doc/snippets/code/src_gui_util_qdesktopservices.cpp diff --git a/doc/src/snippets/code/src_gui_widgets_qvalidator.cpp b/src/gui/doc/snippets/code/src_gui_util_qvalidator.cpp similarity index 100% rename from doc/src/snippets/code/src_gui_widgets_qvalidator.cpp rename to src/gui/doc/snippets/code/src_gui_util_qvalidator.cpp diff --git a/doc/src/snippets/dragging/mainwindow.cpp b/src/gui/doc/snippets/dragging/mainwindow.cpp similarity index 100% rename from doc/src/snippets/dragging/mainwindow.cpp rename to src/gui/doc/snippets/dragging/mainwindow.cpp diff --git a/doc/src/snippets/droparea.cpp b/src/gui/doc/snippets/droparea.cpp similarity index 100% rename from doc/src/snippets/droparea.cpp rename to src/gui/doc/snippets/droparea.cpp diff --git a/doc/src/snippets/image/image.cpp b/src/gui/doc/snippets/image/image.cpp similarity index 100% rename from doc/src/snippets/image/image.cpp rename to src/gui/doc/snippets/image/image.cpp diff --git a/doc/src/snippets/image/supportedformat.cpp b/src/gui/doc/snippets/image/supportedformat.cpp similarity index 100% rename from doc/src/snippets/image/supportedformat.cpp rename to src/gui/doc/snippets/image/supportedformat.cpp diff --git a/doc/src/snippets/matrix/matrix.cpp b/src/gui/doc/snippets/matrix/matrix.cpp similarity index 100% rename from doc/src/snippets/matrix/matrix.cpp rename to src/gui/doc/snippets/matrix/matrix.cpp diff --git a/doc/src/snippets/picture/picture.cpp b/src/gui/doc/snippets/picture/picture.cpp similarity index 100% rename from doc/src/snippets/picture/picture.cpp rename to src/gui/doc/snippets/picture/picture.cpp diff --git a/doc/src/snippets/polygon/polygon.cpp b/src/gui/doc/snippets/polygon/polygon.cpp similarity index 100% rename from doc/src/snippets/polygon/polygon.cpp rename to src/gui/doc/snippets/polygon/polygon.cpp diff --git a/doc/src/snippets/qfontdatabase/main.cpp b/src/gui/doc/snippets/qfontdatabase/main.cpp similarity index 100% rename from doc/src/snippets/qfontdatabase/main.cpp rename to src/gui/doc/snippets/qfontdatabase/main.cpp diff --git a/doc/src/snippets/qstatustipevent/main.cpp b/src/gui/doc/snippets/qstatustipevent/main.cpp similarity index 100% rename from doc/src/snippets/qstatustipevent/main.cpp rename to src/gui/doc/snippets/qstatustipevent/main.cpp diff --git a/doc/src/snippets/separations/finalwidget.cpp b/src/gui/doc/snippets/separations/finalwidget.cpp similarity index 100% rename from doc/src/snippets/separations/finalwidget.cpp rename to src/gui/doc/snippets/separations/finalwidget.cpp diff --git a/doc/src/snippets/textblock-fragments/xmlwriter.cpp b/src/gui/doc/snippets/textblock-fragments/xmlwriter.cpp similarity index 100% rename from doc/src/snippets/textblock-fragments/xmlwriter.cpp rename to src/gui/doc/snippets/textblock-fragments/xmlwriter.cpp diff --git a/doc/src/snippets/textdocument-css/main.cpp b/src/gui/doc/snippets/textdocument-css/main.cpp similarity index 100% rename from doc/src/snippets/textdocument-css/main.cpp rename to src/gui/doc/snippets/textdocument-css/main.cpp diff --git a/doc/src/snippets/textdocument-listitemstyles/main.cpp b/src/gui/doc/snippets/textdocument-listitemstyles/main.cpp similarity index 100% rename from doc/src/snippets/textdocument-listitemstyles/main.cpp rename to src/gui/doc/snippets/textdocument-listitemstyles/main.cpp diff --git a/doc/src/snippets/textdocument-listitemstyles/mainwindow.cpp b/src/gui/doc/snippets/textdocument-listitemstyles/mainwindow.cpp similarity index 100% rename from doc/src/snippets/textdocument-listitemstyles/mainwindow.cpp rename to src/gui/doc/snippets/textdocument-listitemstyles/mainwindow.cpp diff --git a/doc/src/snippets/textdocument-listitemstyles/mainwindow.h b/src/gui/doc/snippets/textdocument-listitemstyles/mainwindow.h similarity index 100% rename from doc/src/snippets/textdocument-listitemstyles/mainwindow.h rename to src/gui/doc/snippets/textdocument-listitemstyles/mainwindow.h diff --git a/doc/src/snippets/textdocument-listitemstyles/textdocument-listitemstyles.pro b/src/gui/doc/snippets/textdocument-listitemstyles/textdocument-listitemstyles.pro similarity index 100% rename from doc/src/snippets/textdocument-listitemstyles/textdocument-listitemstyles.pro rename to src/gui/doc/snippets/textdocument-listitemstyles/textdocument-listitemstyles.pro diff --git a/doc/src/snippets/textdocument-lists/mainwindow.cpp b/src/gui/doc/snippets/textdocument-lists/mainwindow.cpp similarity index 100% rename from doc/src/snippets/textdocument-lists/mainwindow.cpp rename to src/gui/doc/snippets/textdocument-lists/mainwindow.cpp diff --git a/doc/src/snippets/textdocument-resources/main.cpp b/src/gui/doc/snippets/textdocument-resources/main.cpp similarity index 100% rename from doc/src/snippets/textdocument-resources/main.cpp rename to src/gui/doc/snippets/textdocument-resources/main.cpp diff --git a/doc/src/snippets/textdocument-resources/textdocument-resources.pro b/src/gui/doc/snippets/textdocument-resources/textdocument-resources.pro similarity index 100% rename from doc/src/snippets/textdocument-resources/textdocument-resources.pro rename to src/gui/doc/snippets/textdocument-resources/textdocument-resources.pro diff --git a/doc/src/snippets/textdocument-tables/mainwindow.cpp b/src/gui/doc/snippets/textdocument-tables/mainwindow.cpp similarity index 100% rename from doc/src/snippets/textdocument-tables/mainwindow.cpp rename to src/gui/doc/snippets/textdocument-tables/mainwindow.cpp diff --git a/doc/src/snippets/textdocument-texttable/main.cpp b/src/gui/doc/snippets/textdocument-texttable/main.cpp similarity index 100% rename from doc/src/snippets/textdocument-texttable/main.cpp rename to src/gui/doc/snippets/textdocument-texttable/main.cpp diff --git a/doc/src/snippets/textdocumentendsnippet.cpp b/src/gui/doc/snippets/textdocumentendsnippet.cpp similarity index 100% rename from doc/src/snippets/textdocumentendsnippet.cpp rename to src/gui/doc/snippets/textdocumentendsnippet.cpp diff --git a/doc/src/snippets/transform/main.cpp b/src/gui/doc/snippets/transform/main.cpp similarity index 100% rename from doc/src/snippets/transform/main.cpp rename to src/gui/doc/snippets/transform/main.cpp diff --git a/doc/src/gui/coordsys.qdoc b/src/gui/doc/src/coordsys.qdoc similarity index 100% rename from doc/src/gui/coordsys.qdoc rename to src/gui/doc/src/coordsys.qdoc diff --git a/doc/src/gui/paintsystem.qdoc b/src/gui/doc/src/paintsystem.qdoc similarity index 100% rename from doc/src/gui/paintsystem.qdoc rename to src/gui/doc/src/paintsystem.qdoc diff --git a/doc/src/gui/qtgui.qdoc b/src/gui/doc/src/qtgui.qdoc similarity index 95% rename from doc/src/gui/qtgui.qdoc rename to src/gui/doc/src/qtgui.qdoc index bffe078..7e11aa5 100644 --- a/doc/src/gui/qtgui.qdoc +++ b/src/gui/doc/src/qtgui.qdoc @@ -35,5 +35,5 @@ To include the definitions of both modules' classes, use the following directive: - \snippet doc/src/snippets/code/doc_src_qtgui.pro 0 + \snippet code/doc_src_qtgui.pro 0 */ diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index b8ec7de..64decd0f 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -441,7 +441,7 @@ bool QImageData::checkForAlphaPixels() const \row \li \inlineimage qimage-32bit_scaled.png \li - \snippet doc/src/snippets/code/src_gui_image_qimage.cpp 0 + \snippet code/src_gui_image_qimage.cpp 0 \endtable In case of a 8-bit and monchrome images, the pixel value is only @@ -462,7 +462,7 @@ bool QImageData::checkForAlphaPixels() const \row \li \inlineimage qimage-8bit_scaled.png \li - \snippet doc/src/snippets/code/src_gui_image_qimage.cpp 1 + \snippet code/src_gui_image_qimage.cpp 1 \endtable QImage also provide the scanLine() function which returns a @@ -949,7 +949,7 @@ extern bool qt_read_xpm_image_or_array(QIODevice *device, const char * const *so Note that it's possible to squeeze the XPM variable a little bit by using an unusual declaration: - \snippet doc/src/snippets/code/src_gui_image_qimage.cpp 2 + \snippet code/src_gui_image_qimage.cpp 2 The extra \c const makes the entire definition read-only, which is slightly more efficient (e.g., when the code is in a shared @@ -4478,7 +4478,7 @@ bool QImage::save(const QString &fileName, const char *format, int quality) cons This can, for example, be used to save an image directly into a QByteArray: - \snippet doc/src/snippets/image/image.cpp 0 + \snippet image/image.cpp 0 */ bool QImage::save(QIODevice* device, const char* format, int quality) const @@ -4801,7 +4801,7 @@ QString QImage::text(const QString &key) const if a specific image or format supports embedding text by using QImageWriter::supportsOption(). We give an example: - \snippet doc/src/snippets/image/supportedformat.cpp 0 + \snippet image/supportedformat.cpp 0 You can use QImageWriter::supportedImageFormats() to find out which image formats are available to you. diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp index fe14a45..c08ac05 100644 --- a/src/gui/image/qimagereader.cpp +++ b/src/gui/image/qimagereader.cpp @@ -653,7 +653,7 @@ QImageReader::~QImageReader() Sets the format QImageReader will use when reading images, to \a format. \a format is a case insensitive text string. Example: - \snippet doc/src/snippets/code/src_gui_image_qimagereader.cpp 0 + \snippet code/src_gui_image_qimagereader.cpp 0 You can call supportedImageFormats() for the full list of formats QImageReader supports. @@ -671,7 +671,7 @@ void QImageReader::setFormat(const QByteArray &format) You can call this function after assigning a device to the reader to determine the format of the device. For example: - \snippet doc/src/snippets/code/src_gui_image_qimagereader.cpp 1 + \snippet code/src_gui_image_qimagereader.cpp 1 If the reader cannot read any image from the device (e.g., there is no image there, or the image has already been read), or if the format is @@ -1131,7 +1131,7 @@ QImage QImageReader::read() which always constructs a new image; especially when reading several images with the same format and size. - \snippet doc/src/snippets/code/src_gui_image_qimagereader.cpp 2 + \snippet code/src_gui_image_qimagereader.cpp 2 For image formats that support animation, calling read() repeatedly will return the next frame. When all frames have been read, a null image will @@ -1371,7 +1371,7 @@ QString QImageReader::errorString() const (see text()), and the BMP format allows you to determine the image's size without loading the whole image into memory (see size()). - \snippet doc/src/snippets/code/src_gui_image_qimagereader.cpp 3 + \snippet code/src_gui_image_qimagereader.cpp 3 \sa QImageWriter::supportsOption() */ diff --git a/src/gui/image/qimagewriter.cpp b/src/gui/image/qimagewriter.cpp index 8395f9d..56c459e 100644 --- a/src/gui/image/qimagewriter.cpp +++ b/src/gui/image/qimagewriter.cpp @@ -323,7 +323,7 @@ QImageWriter::~QImageWriter() Sets the format QImageWriter will use when writing images, to \a format. \a format is a case insensitive text string. Example: - \snippet doc/src/snippets/code/src_gui_image_qimagewriter.cpp 0 + \snippet code/src_gui_image_qimagewriter.cpp 0 You can call supportedImageFormats() for the full list of formats QImageWriter supports. @@ -522,7 +522,7 @@ QString QImageWriter::description() const \a text. This is useful for storing copyright information or other information about the image. Example: - \snippet doc/src/snippets/code/src_gui_image_qimagewriter.cpp 1 + \snippet code/src_gui_image_qimagewriter.cpp 1 If you want to store a single block of data (e.g., a comment), you can pass an empty key, or use @@ -629,7 +629,7 @@ QString QImageWriter::errorString() const example, the PNG format allows you to embed text into the image's metadata (see text()). - \snippet doc/src/snippets/code/src_gui_image_qimagewriter.cpp 2 + \snippet code/src_gui_image_qimagewriter.cpp 2 Options can be tested after the writer has been associated with a format. diff --git a/src/gui/image/qmovie.cpp b/src/gui/image/qmovie.cpp index 8dfcf57..e1ddcf1 100644 --- a/src/gui/image/qmovie.cpp +++ b/src/gui/image/qmovie.cpp @@ -61,7 +61,7 @@ To display the movie in your application, you can pass your QMovie object to QLabel::setMovie(). Example: - \snippet doc/src/snippets/code/src_gui_image_qmovie.cpp 0 + \snippet code/src_gui_image_qmovie.cpp 0 Whenever a new frame is available in the movie, QMovie will emit updated(). If the size of the frame changes, resized() is emitted. You can @@ -883,7 +883,7 @@ void QMovie::setPaused(bool paused) The default speed is 100%. Example: - \snippet doc/src/snippets/code/src_gui_image_qmovie.cpp 1 + \snippet code/src_gui_image_qmovie.cpp 1 */ void QMovie::setSpeed(int percentSpeed) { diff --git a/src/gui/image/qpicture.cpp b/src/gui/image/qpicture.cpp index 8bb9f21..283002b 100644 --- a/src/gui/image/qpicture.cpp +++ b/src/gui/image/qpicture.cpp @@ -92,13 +92,13 @@ void qt_format_text(const QFont &fnt, const QRectF &_r, depending on the window system. Example of how to record a picture: - \snippet doc/src/snippets/picture/picture.cpp 0 + \snippet picture/picture.cpp 0 Note that the list of painter commands is reset on each call to the QPainter::begin() function. Example of how to replay a picture: - \snippet doc/src/snippets/picture/picture.cpp 1 + \snippet picture/picture.cpp 1 Pictures can also be drawn using play(). Some basic data about a picture is available, for example, size(), isNull() and @@ -1226,7 +1226,7 @@ static QStringList qToStringList(const QList arr) Note that if you want to iterate over the list, you should iterate over a copy, e.g. - \snippet doc/src/snippets/picture/picture.cpp 2 + \snippet picture/picture.cpp 2 \sa outputFormatList() inputFormats() QPictureIO */ @@ -1244,7 +1244,7 @@ QStringList QPicture::inputFormatList() Note that if you want to iterate over the list, you should iterate over a copy, e.g. - \snippet doc/src/snippets/picture/picture.cpp 3 + \snippet picture/picture.cpp 3 \sa inputFormatList() outputFormats() QPictureIO */ @@ -1464,11 +1464,11 @@ static QPictureHandler *get_picture_handler(const char *format) both are null, the QPictureIO object is valid but useless. Example: - \snippet doc/src/snippets/picture/picture.cpp 6 + \snippet picture/picture.cpp 6 \codeline - \snippet doc/src/snippets/picture/picture.cpp 7 + \snippet picture/picture.cpp 7 \codeline - \snippet doc/src/snippets/picture/picture.cpp 8 + \snippet picture/picture.cpp 8 Before the regular expression test, all the 0 bytes in the file header are converted to 1 bytes. This is done because when Qt was ASCII-based, QRegExp @@ -1833,7 +1833,7 @@ QList QPictureIO::outputFormats() Example: - \snippet doc/src/snippets/picture/picture.cpp 4 + \snippet picture/picture.cpp 4 \sa setIODevice() setFileName() setFormat() write() QPixmap::load() */ @@ -1902,7 +1902,7 @@ bool QPictureIO::read() The picture will be written using the specified picture format. Example: - \snippet doc/src/snippets/picture/picture.cpp 5 + \snippet picture/picture.cpp 5 \sa setIODevice() setFileName() setFormat() read() QPixmap::save() */ diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index cefb8ed..377d7e0 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -241,7 +241,7 @@ QPixmap::QPixmap(const QPixmap &pixmap) Note that it's possible to squeeze the XPM variable a little bit by using an unusual declaration: - \snippet doc/src/snippets/code/src_gui_image_qpixmap.cpp 0 + \snippet code/src_gui_image_qpixmap.cpp 0 The extra \c const makes the entire definition read-only, which is slightly more efficient (for example, when the code is in a shared @@ -334,7 +334,7 @@ QPixmap QPixmap::copy(const QRect &rect) const region is left unchanged. You can optionally pass a pointer to an empty QRegion to get the region that is \a exposed by the scroll operation. - \snippet doc/src/snippets/code/src_gui_image_qpixmap.cpp 2 + \snippet code/src_gui_image_qpixmap.cpp 2 You cannot scroll while there is an active painter on the pixmap. @@ -651,7 +651,7 @@ void QPixmap::setMask(const QBitmap &mask) The mask may not be perfect but it should be reasonable, so you can do things such as the following: - \snippet doc/src/snippets/code/src_gui_image_qpixmap.cpp 1 + \snippet code/src_gui_image_qpixmap.cpp 1 This function is slow because it involves converting to/from a QImage, and non-trivial computations. @@ -810,7 +810,7 @@ bool QPixmap::save(const QString &fileName, const char *format, int quality) con specified image file \a format and \a quality factor. This can be used, for example, to save a pixmap directly into a QByteArray: - \snippet doc/src/snippets/image/image.cpp 1 + \snippet image/image.cpp 1 */ bool QPixmap::save(QIODevice* device, const char* format, int quality) const diff --git a/src/gui/image/qpixmapcache.cpp b/src/gui/image/qpixmapcache.cpp index 7769c45..b0e5b7e 100644 --- a/src/gui/image/qpixmapcache.cpp +++ b/src/gui/image/qpixmapcache.cpp @@ -472,7 +472,7 @@ QPixmapCacheEntry::~QPixmapCacheEntry() bool find(const QString&, QPixmap*) instead. Example: - \snippet doc/src/snippets/code/src_gui_image_qpixmapcache.cpp 0 + \snippet code/src_gui_image_qpixmapcache.cpp 0 */ QPixmap *QPixmapCache::find(const QString &key) @@ -500,7 +500,7 @@ bool QPixmapCache::find(const QString &key, QPixmap& pixmap) \since 4.6 Example: - \snippet doc/src/snippets/code/src_gui_image_qpixmapcache.cpp 1 + \snippet code/src_gui_image_qpixmapcache.cpp 1 */ bool QPixmapCache::find(const QString &key, QPixmap* pixmap) diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp index ef5e4f9..90fd63e 100644 --- a/src/gui/kernel/qclipboard.cpp +++ b/src/gui/kernel/qclipboard.cpp @@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE as QApplication::clipboard(). Example: - \snippet doc/src/snippets/code/src_gui_kernel_qclipboard.cpp 0 + \snippet code/src_gui_kernel_qclipboard.cpp 0 QClipboard features some convenience functions to access common data types: setText() allows the exchange of Unicode text and @@ -80,7 +80,7 @@ QT_BEGIN_NAMESPACE A typical example of the use of these functions follows: - \snippet doc/src/snippets/droparea.cpp 0 + \snippet droparea.cpp 0 \section1 Notes for X11 Users @@ -366,7 +366,7 @@ QImage QClipboard::image(Mode mode) const This is shorthand for: - \snippet doc/src/snippets/code/src_gui_kernel_qclipboard.cpp 1 + \snippet code/src_gui_kernel_qclipboard.cpp 1 \sa image(), setPixmap() setMimeData() */ diff --git a/src/gui/kernel/qdrag.cpp b/src/gui/kernel/qdrag.cpp index 40015c8..e20401c 100644 --- a/src/gui/kernel/qdrag.cpp +++ b/src/gui/kernel/qdrag.cpp @@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE QMimeData object. This is specified with the setMimeData() function in the following way: - \snippet doc/src/snippets/dragging/mainwindow.cpp 1 + \snippet dragging/mainwindow.cpp 1 Note that setMimeData() assigns ownership of the QMimeData object to the QDrag object. The QDrag must be constructed on the heap with a parent QObject @@ -80,7 +80,7 @@ QT_BEGIN_NAMESPACE that the cursor's hot spot points to the center of its bottom edge: - \snippet doc/src/snippets/separations/finalwidget.cpp 2 + \snippet separations/finalwidget.cpp 2 \note On X11, the pixmap may not be able to keep up with the mouse movements if the hot spot causes the pixmap to be displayed diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 266eb14..eeedd32 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -582,7 +582,7 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, Example: - \snippet doc/src/snippets/code/src_gui_kernel_qevent.cpp 0 + \snippet code/src_gui_kernel_qevent.cpp 0 */ /*! @@ -604,7 +604,7 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, Example: - \snippet doc/src/snippets/code/src_gui_kernel_qevent.cpp 0 + \snippet code/src_gui_kernel_qevent.cpp 0 */ /*! @@ -2557,9 +2557,9 @@ QHelpEvent::~QHelpEvent() \table 100% \row \li - \snippet doc/src/snippets/qstatustipevent/main.cpp 1 + \snippet qstatustipevent/main.cpp 1 \dots - \snippet doc/src/snippets/qstatustipevent/main.cpp 3 + \snippet qstatustipevent/main.cpp 3 \li \image qstatustipevent-widget.png Widget with status tip. \endtable @@ -2570,10 +2570,10 @@ QHelpEvent::~QHelpEvent() \table 100% \row \li - \snippet doc/src/snippets/qstatustipevent/main.cpp 0 - \snippet doc/src/snippets/qstatustipevent/main.cpp 2 + \snippet qstatustipevent/main.cpp 0 + \snippet qstatustipevent/main.cpp 2 \dots - \snippet doc/src/snippets/qstatustipevent/main.cpp 3 + \snippet qstatustipevent/main.cpp 3 \li \image qstatustipevent-action.png Action with status tip. \endtable diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 27e84b7..b63ed78 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2078,7 +2078,7 @@ static inline void applyCursor(const QList &l, const QCursor &c) restoreOverrideCursor(), otherwise the stack will never be emptied. Example: - \snippet doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp 0 + \snippet code/src_gui_kernel_qapplication_x11.cpp 0 \sa overrideCursor(), restoreOverrideCursor(), changeOverrideCursor(), QWidget::setCursor() @@ -2134,7 +2134,7 @@ QStyleHints *QGuiApplication::styleHints() This function must be called before creating the QGuiApplication object, like this: - \snippet doc/src/snippets/code/src_gui_kernel_qapplication.cpp 6 + \snippet code/src_gui_kernel_qapplication.cpp 6 \sa desktopSettingsAware() */ diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index 4946a1d..635e3da 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -181,7 +181,7 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni printing a document, and can be specified in any of the following ways: - \snippet doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp 0 + \snippet code/src_gui_kernel_qkeysequence.cpp 0 Note that, for letters, the case used in the specification string does not matter. In the above examples, the user does not need to @@ -354,7 +354,7 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni For example, the key sequence, \key{Ctrl X} followed by \key{Ctrl C}, can be specified using either of the following ways: - \snippet doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp 1 + \snippet code/src_gui_kernel_qkeysequence.cpp 1 \warning A QApplication instance must have been constructed before a QKeySequence is created; otherwise, your application may crash. @@ -929,7 +929,7 @@ QKeySequence::QKeySequence() \endlink(), so that shortcut keys can be replaced in translations: - \snippet doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp 2 + \snippet code/src_gui_kernel_qkeysequence.cpp 2 Note the "File|Open" translator comment. It is by no means necessary, but it provides some context for the human translator. diff --git a/src/gui/kernel/qpalette.cpp b/src/gui/kernel/qpalette.cpp index ab62ec0..cb18b0d 100644 --- a/src/gui/kernel/qpalette.cpp +++ b/src/gui/kernel/qpalette.cpp @@ -499,7 +499,7 @@ static void qt_palette_from_color(QPalette &pal, const QColor &button) and the QTextDocument::setDefaultStyleSheet() function to alter the appearance of links. For example: - \snippet doc/src/snippets/textdocument-css/main.cpp 0 + \snippet textdocument-css/main.cpp 0 \value NoRole No role; this special role is often used to indicate that a role has not been assigned. diff --git a/src/gui/kernel/qshortcutmap.cpp b/src/gui/kernel/qshortcutmap.cpp index a750082..267f528 100644 --- a/src/gui/kernel/qshortcutmap.cpp +++ b/src/gui/kernel/qshortcutmap.cpp @@ -528,7 +528,7 @@ QKeySequence::SequenceMatch QShortcutMap::find(QKeyEvent *e) /*! \internal Clears \a seq to an empty QKeySequence. Same as doing (the slower) - \snippet doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp 0 + \snippet code/src_gui_kernel_qshortcutmap.cpp 0 */ void QShortcutMap::clearSequence(QVector &ksl) { diff --git a/src/gui/opengl/qopenglshaderprogram.cpp b/src/gui/opengl/qopenglshaderprogram.cpp index c0899e5..e9973be 100644 --- a/src/gui/opengl/qopenglshaderprogram.cpp +++ b/src/gui/opengl/qopenglshaderprogram.cpp @@ -71,7 +71,7 @@ QT_BEGIN_NAMESPACE program is activated in the current QOpenGLContext by calling QOpenGLShaderProgram::bind(): - \snippet doc/src/snippets/code/src_gui_qopenglshaderprogram.cpp 0 + \snippet code/src_gui_qopenglshaderprogram.cpp 0 \section1 Writing portable shaders @@ -99,12 +99,12 @@ QT_BEGIN_NAMESPACE \section1 Simple shader example - \snippet doc/src/snippets/code/src_gui_qopenglshaderprogram.cpp 1 + \snippet code/src_gui_qopenglshaderprogram.cpp 1 With the above shader program active, we can draw a green triangle as follows: - \snippet doc/src/snippets/code/src_gui_qopenglshaderprogram.cpp 2 + \snippet code/src_gui_qopenglshaderprogram.cpp 2 \section1 Binary shaders and programs diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp index 2f0fb9f..6ee28a4 100644 --- a/src/gui/painting/qbrush.cpp +++ b/src/gui/painting/qbrush.cpp @@ -292,7 +292,7 @@ struct QBrushDataPointerDeleter gradients: QLinearGradient, QConicalGradient, and QRadialGradient - all of which inherit QGradient. - \snippet doc/src/snippets/brush/gradientcreationsnippet.cpp 0 + \snippet brush/gradientcreationsnippet.cpp 0 The texture() defines the pixmap used when the current style is Qt::TexturePattern. You can create a brush with a texture by @@ -323,7 +323,7 @@ struct QBrushDataPointerDeleter QPainter's \l {QPen}{pen} combined with Qt::PenStyle and Qt::GlobalColor: - \snippet doc/src/snippets/code/src_gui_painting_qbrush.cpp 0 + \snippet code/src_gui_painting_qbrush.cpp 0 Note that, by default, QPainter renders the outline (using the currently set pen) when drawing shapes. Use \l {Qt::NoPen}{\c @@ -1214,13 +1214,13 @@ QDataStream &operator>>(QDataStream &s, QBrush &b) A diagonal linear gradient from black at (100, 100) to white at (200, 200) could be specified like this: - \snippet doc/src/snippets/brush/brush.cpp 0 + \snippet brush/brush.cpp 0 A gradient can have an arbitrary number of stop points. The following would create a radial gradient starting with red in the center, blue and then green on the edges: - \snippet doc/src/snippets/brush/brush.cpp 1 + \snippet brush/brush.cpp 1 It is possible to repeat or reflect the gradient outside its area by specifiying the \l {QGradient::Spread}{spread method} using the diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp index 7512257..81f5a74 100644 --- a/src/gui/painting/qcolor.cpp +++ b/src/gui/painting/qcolor.cpp @@ -148,7 +148,7 @@ QT_BEGIN_NAMESPACE represents a fully transparent color, while 255 represents a fully opaque color. For example: - \snippet doc/src/snippets/code/src_gui_painting_qcolor.cpp 0 + \snippet code/src_gui_painting_qcolor.cpp 0 The code above produces the following output: diff --git a/src/gui/painting/qmatrix.cpp b/src/gui/painting/qmatrix.cpp index c26d7e5..afefb17 100644 --- a/src/gui/painting/qmatrix.cpp +++ b/src/gui/painting/qmatrix.cpp @@ -114,7 +114,7 @@ QT_BEGIN_NAMESPACE \row \li \inlineimage qmatrix-simpletransformation.png \li - \snippet doc/src/snippets/matrix/matrix.cpp 0 + \snippet matrix/matrix.cpp 0 \endtable Although these functions are very convenient, it can be more @@ -126,7 +126,7 @@ QT_BEGIN_NAMESPACE \row \li \inlineimage qmatrix-combinedtransformation.png \li - \snippet doc/src/snippets/matrix/matrix.cpp 1 + \snippet matrix/matrix.cpp 1 \endtable \section1 Basic Matrix Operations @@ -142,7 +142,7 @@ QT_BEGIN_NAMESPACE QMatrix transforms a point in the plane to another point using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qmatrix.cpp 0 + \snippet code/src_gui_painting_qmatrix.cpp 0 The point \e (x, y) is the original point, and \e (x', y') is the transformed point. \e (x', y') can be transformed back to \e (x, @@ -174,7 +174,7 @@ QT_BEGIN_NAMESPACE \row \li \inlineimage qmatrix-combinedtransformation.png \li - \snippet doc/src/snippets/matrix/matrix.cpp 2 + \snippet matrix/matrix.cpp 2 \endtable \sa QPainter, QTransform, {Coordinate System}, @@ -342,7 +342,7 @@ void QMatrix::setMatrix(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qr The coordinates are transformed using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qmatrix.cpp 1 + \snippet code/src_gui_painting_qmatrix.cpp 1 The point (x, y) is the original point, and (x', y') is the transformed point. @@ -427,7 +427,7 @@ QRect QMatrix::mapRect(const QRect &rect) const The rectangle's coordinates are transformed using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qmatrix.cpp 2 + \snippet code/src_gui_painting_qmatrix.cpp 2 If rotation or shearing has been specified, this function returns the \e bounding rectangle. To retrieve the exact region the given @@ -741,7 +741,7 @@ QPainterPath QMatrix::map(const QPainterPath &path) const The rectangle's coordinates are transformed using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qmatrix.cpp 3 + \snippet code/src_gui_painting_qmatrix.cpp 3 Polygons and rectangles behave slightly differently when transformed (due to integer rounding), so diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 68e60ed..e622fe4 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -941,7 +941,7 @@ void QPainterPrivate::updateState(QPainterState *newState) painter. Then draw. Remember to destroy the QPainter object after drawing. For example: - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 0 + \snippet code/src_gui_painting_qpainter.cpp 0 The core functionality of QPainter is drawing, but the class also provide several functions that allows you to customize QPainter's @@ -1446,10 +1446,10 @@ QPainter::QPainter() automatically calls end(). Here's an example using begin() and end(): - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 1 + \snippet code/src_gui_painting_qpainter.cpp 1 The same example using this constructor: - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 2 + \snippet code/src_gui_painting_qpainter.cpp 2 Since the constructor cannot provide feedback when the initialization of the painter failed you should rather use begin() and end() to paint @@ -1667,7 +1667,7 @@ void QPainter::restore() The errors that can occur are serious problems, such as these: - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 3 + \snippet code/src_gui_painting_qpainter.cpp 3 Note that most of the time, you can use one of the constructors instead of begin(), and that end() is automatically done at @@ -1956,7 +1956,7 @@ QPaintEngine *QPainter::paintEngine() const default state by endNativePainting(). Here is an example that shows intermixing of painter commands and raw OpenGL commands: - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 21 + \snippet code/src_gui_painting_qpainter.cpp 21 \sa endNativePainting() */ @@ -2871,7 +2871,7 @@ void QPainter::setClipRegion(const QRegion &r, Qt::ClipOperation op) They operate on the painter's worldMatrix() and are implemented like this: - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 4 + \snippet code/src_gui_painting_qpainter.cpp 4 Note that when using setWorldMatrix() function you should always have \a combine be true when you are drawing into a QPicture. Otherwise @@ -3340,7 +3340,7 @@ void QPainter::fillPath(const QPainterPath &path, const QBrush &brush) \row \li \inlineimage qpainter-path.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 5 + \snippet code/src_gui_painting_qpainter.cpp 5 \endtable \sa {painting/painterpaths}{the Painter Paths @@ -3385,7 +3385,7 @@ void QPainter::drawPath(const QPainterPath &path) \row \li \inlineimage qpainter-line.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 6 + \snippet code/src_gui_painting_qpainter.cpp 6 \endtable \sa drawLines(), drawPolyline(), {Coordinate System} @@ -3432,7 +3432,7 @@ void QPainter::drawPath(const QPainterPath &path) \row \li \inlineimage qpainter-rectangle.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 7 + \snippet code/src_gui_painting_qpainter.cpp 7 \endtable \sa drawRects(), drawPolygon(), {Coordinate System} @@ -4101,7 +4101,7 @@ const QFont &QPainter::font() const \row \li \inlineimage qpainter-roundrect.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 8 + \snippet code/src_gui_painting_qpainter.cpp 8 \endtable \sa drawRect(), QPen @@ -4201,7 +4201,7 @@ void QPainter::drawRoundRect(const QRectF &r, int xRnd, int yRnd) \row \li \inlineimage qpainter-ellipse.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 9 + \snippet code/src_gui_painting_qpainter.cpp 9 \endtable \sa drawPie(), {Coordinate System} @@ -4327,7 +4327,7 @@ void QPainter::drawEllipse(const QRect &r) \row \li \inlineimage qpainter-arc.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 10 + \snippet code/src_gui_painting_qpainter.cpp 10 \endtable \sa drawPie(), drawChord(), {Coordinate System} @@ -4391,7 +4391,7 @@ void QPainter::drawArc(const QRectF &r, int a, int alen) \row \li \inlineimage qpainter-pie.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 11 + \snippet code/src_gui_painting_qpainter.cpp 11 \endtable \sa drawEllipse(), drawChord(), {Coordinate System} @@ -4460,7 +4460,7 @@ void QPainter::drawPie(const QRectF &r, int a, int alen) \row \li \inlineimage qpainter-chord.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 12 + \snippet code/src_gui_painting_qpainter.cpp 12 \endtable \sa drawArc(), drawPie(), {Coordinate System} @@ -4675,7 +4675,7 @@ void QPainter::drawLines(const QPoint *pointPairs, int lineCount) \table 100% \row \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 13 + \snippet code/src_gui_painting_qpainter.cpp 13 \endtable \sa drawLines(), drawPolygon(), {Coordinate System} @@ -4782,7 +4782,7 @@ void QPainter::drawPolyline(const QPoint *points, int pointCount) \row \li \inlineimage qpainter-polygon.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 14 + \snippet code/src_gui_painting_qpainter.cpp 14 \endtable The first point is implicitly connected to the last point, and the @@ -4895,7 +4895,7 @@ void QPainter::drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fi \row \li \inlineimage qpainter-polygon.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 15 + \snippet code/src_gui_painting_qpainter.cpp 15 \endtable The first point is implicitly connected to the last point, and the @@ -5018,7 +5018,7 @@ static inline QPointF roundInDeviceCoordinates(const QPointF &p, const QTransfor \table 100% \row \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 16 + \snippet code/src_gui_painting_qpainter.cpp 16 \endtable If \a pixmap is a QBitmap it is drawn with the bits that are "set" @@ -5928,7 +5928,7 @@ void QPainter::drawText(const QRect &r, int flags, const QString &str, QRect *br \row \li \inlineimage qpainter-text.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 17 + \snippet code/src_gui_painting_qpainter.cpp 17 \endtable The \a boundingRect (if not null) is set to the what the bounding rectangle @@ -6682,7 +6682,7 @@ void QPainter::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPo \table 100% \row \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 18 + \snippet code/src_gui_painting_qpainter.cpp 18 \endtable \sa QPicture::play() @@ -6725,7 +6725,7 @@ void QPainter::drawPicture(const QPointF &p, const QPicture &picture) Erases the area inside the given \a rectangle. Equivalent to calling - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 19 + \snippet code/src_gui_painting_qpainter.cpp 19 \sa fillRect() */ @@ -7669,7 +7669,7 @@ void QPainterState::init(QPainter *p) { \table 100% \row \li - \snippet doc/src/snippets/code/src_gui_painting_qpainter.cpp 20 + \snippet code/src_gui_painting_qpainter.cpp 20 \endtable \sa drawPixmap() diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp index 0e8811b..dc31052 100644 --- a/src/gui/painting/qpainterpath.cpp +++ b/src/gui/painting/qpainterpath.cpp @@ -229,7 +229,7 @@ static void qt_debug_path(const QPainterPath &path) \row \li \inlineimage qpainterpath-construction.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainterpath.cpp 0 + \snippet code/src_gui_painting_qpainterpath.cpp 0 \endtable The painter path is initially empty when constructed. We first add @@ -763,7 +763,7 @@ void QPainterPath::lineTo(const QPointF &p) \row \li \inlineimage qpainterpath-cubicto.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainterpath.cpp 1 + \snippet code/src_gui_painting_qpainterpath.cpp 1 \endtable \sa quadTo(), {QPainterPath#Composing a QPainterPath}{Composing @@ -890,7 +890,7 @@ void QPainterPath::quadTo(const QPointF &c, const QPointF &e) \row \li \inlineimage qpainterpath-arcto.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainterpath.cpp 2 + \snippet code/src_gui_painting_qpainterpath.cpp 2 \endtable \sa arcMoveTo(), addEllipse(), QPainter::drawArc(), QPainter::drawPie(), @@ -1002,7 +1002,7 @@ QPointF QPainterPath::currentPosition() const \row \li \inlineimage qpainterpath-addrectangle.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainterpath.cpp 3 + \snippet code/src_gui_painting_qpainterpath.cpp 3 \endtable \sa addRegion(), lineTo(), {QPainterPath#Composing a @@ -1049,7 +1049,7 @@ void QPainterPath::addRect(const QRectF &r) \row \li \inlineimage qpainterpath-addpolygon.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainterpath.cpp 4 + \snippet code/src_gui_painting_qpainterpath.cpp 4 \endtable \sa lineTo(), {QPainterPath#Composing a QPainterPath}{Composing @@ -1085,7 +1085,7 @@ void QPainterPath::addPolygon(const QPolygonF &polygon) \row \li \inlineimage qpainterpath-addellipse.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainterpath.cpp 5 + \snippet code/src_gui_painting_qpainterpath.cpp 5 \endtable \sa arcTo(), QPainter::drawEllipse(), {QPainterPath#Composing a @@ -1137,7 +1137,7 @@ void QPainterPath::addEllipse(const QRectF &boundingRect) \row \li \inlineimage qpainterpath-addtext.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpainterpath.cpp 6 + \snippet code/src_gui_painting_qpainterpath.cpp 6 \endtable \sa QPainter::drawText(), {QPainterPath#Composing a diff --git a/src/gui/painting/qpen.cpp b/src/gui/painting/qpen.cpp index 77f0edc..2c95a9f 100644 --- a/src/gui/painting/qpen.cpp +++ b/src/gui/painting/qpen.cpp @@ -79,11 +79,11 @@ typedef QPenPrivate QPenData; For example: - \snippet doc/src/snippets/code/src_gui_painting_qpen.cpp 0 + \snippet code/src_gui_painting_qpen.cpp 0 which is equivalent to - \snippet doc/src/snippets/code/src_gui_painting_qpen.cpp 1 + \snippet code/src_gui_painting_qpen.cpp 1 The default pen is a solid black brush with 0 width, square cap style (Qt::SquareCap), and bevel join style (Qt::BevelJoin). @@ -135,7 +135,7 @@ typedef QPenPrivate QPenData; spaces. For example, the custom pattern shown above is created using the following code: - \snippet doc/src/snippets/code/src_gui_painting_qpen.cpp 2 + \snippet code/src_gui_painting_qpen.cpp 2 Note that the dash pattern is specified in units of the pens width, e.g. a dash of length 5 in width 10 is 50 pixels long. @@ -476,7 +476,7 @@ QVector QPen::dashPattern() const \row \li \inlineimage qpen-custom.png \li - \snippet doc/src/snippets/code/src_gui_painting_qpen.cpp 3 + \snippet code/src_gui_painting_qpen.cpp 3 \endtable The dash pattern is specified in units of the pens width; e.g. a diff --git a/src/gui/painting/qpolygon.cpp b/src/gui/painting/qpolygon.cpp index ee1f796..b7dee7f 100644 --- a/src/gui/painting/qpolygon.cpp +++ b/src/gui/painting/qpolygon.cpp @@ -98,7 +98,7 @@ static void qt_polygon_isect_line(const QPointF &p1, const QPointF &p2, const QP points to a QPolygon is to use QVector's streaming operator, as illustrated below: - \snippet doc/src/snippets/polygon/polygon.cpp 0 + \snippet polygon/polygon.cpp 0 In addition to the functions provided by QVector, QPolygon provides some point-specific functions. @@ -304,7 +304,7 @@ void QPolygon::point(int index, int *x, int *y) const The example code creates a polygon with two points (10, 20) and (30, 40): - \snippet doc/src/snippets/polygon/polygon.cpp 2 + \snippet polygon/polygon.cpp 2 \sa setPoint() putPoints() */ @@ -330,7 +330,7 @@ void QPolygon::setPoints(int nPoints, const int *points) The example code creates a polygon with two points (10, 20) and (30, 40): - \snippet doc/src/snippets/polygon/polygon.cpp 3 + \snippet polygon/polygon.cpp 3 */ void QPolygon::setPoints(int nPoints, int firstx, int firsty, ...) @@ -381,12 +381,12 @@ void QPolygon::putPoints(int index, int nPoints, const int *points) The example code creates a polygon with three points (4,5), (6,7) and (8,9), by expanding the polygon from 1 to 3 points: - \snippet doc/src/snippets/polygon/polygon.cpp 4 + \snippet polygon/polygon.cpp 4 The following code has the same result, but here the putPoints() function overwrites rather than extends: - \snippet doc/src/snippets/polygon/polygon.cpp 5 + \snippet polygon/polygon.cpp 5 \sa setPoints() */ @@ -418,7 +418,7 @@ void QPolygon::putPoints(int index, int nPoints, int firstx, int firsty, ...) default) in \a fromPolygon into this polygon, starting at the specified \a index. For example: - \snippet doc/src/snippets/polygon/polygon.cpp 6 + \snippet polygon/polygon.cpp 6 */ void QPolygon::putPoints(int index, int nPoints, const QPolygon & from, int fromIndex) @@ -490,7 +490,7 @@ QDebug operator<<(QDebug dbg, const QPolygon &a) to a QPolygonF is to use its streaming operator, as illustrated below: - \snippet doc/src/snippets/polygon/polygon.cpp 1 + \snippet polygon/polygon.cpp 1 In addition to the functions provided by QVector, QPolygonF provides the boundingRect() and translate() functions for geometry diff --git a/src/gui/painting/qregion.cpp b/src/gui/painting/qregion.cpp index ebca1ed..f250150 100644 --- a/src/gui/painting/qregion.cpp +++ b/src/gui/painting/qregion.cpp @@ -86,7 +86,7 @@ QT_BEGIN_NAMESPACE rectangles. Example of using complex regions: - \snippet doc/src/snippets/code/src_gui_painting_qregion.cpp 0 + \snippet code/src_gui_painting_qregion.cpp 0 \section1 Additional License Information @@ -725,7 +725,7 @@ QRegion QRegion::intersect(const QRect &r) const empty region is a region that contains no points. Example: - \snippet doc/src/snippets/code/src_gui_painting_qregion_unix.cpp 0 + \snippet code/src_gui_painting_qregion_unix.cpp 0 */ /*! diff --git a/src/gui/painting/qtransform.cpp b/src/gui/painting/qtransform.cpp index ba971d4..924a444 100644 --- a/src/gui/painting/qtransform.cpp +++ b/src/gui/painting/qtransform.cpp @@ -159,7 +159,7 @@ QT_BEGIN_NAMESPACE \row \li \inlineimage qtransform-simpletransformation.png \li - \snippet doc/src/snippets/transform/main.cpp 0 + \snippet transform/main.cpp 0 \endtable Although these functions are very convenient, it can be more @@ -171,7 +171,7 @@ QT_BEGIN_NAMESPACE \row \li \inlineimage qtransform-combinedtransformation.png \li - \snippet doc/src/snippets/transform/main.cpp 1 + \snippet transform/main.cpp 1 \endtable \section1 Basic Matrix Operations @@ -188,7 +188,7 @@ QT_BEGIN_NAMESPACE QTransform transforms a point in the plane to another point using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qtransform.cpp 0 + \snippet code/src_gui_painting_qtransform.cpp 0 The point \e (x, y) is the original point, and \e (x', y') is the transformed point. \e (x', y') can be transformed back to \e (x, @@ -221,7 +221,7 @@ QT_BEGIN_NAMESPACE \row \li \inlineimage qtransform-combinedtransformation2.png \li - \snippet doc/src/snippets/transform/main.cpp 2 + \snippet transform/main.cpp 2 \endtable \sa QPainter, {Coordinate System}, {painting/affine}{Affine @@ -1662,7 +1662,7 @@ QPainterPath QTransform::map(const QPainterPath &path) const The rectangle's coordinates are transformed using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qtransform.cpp 1 + \snippet code/src_gui_painting_qtransform.cpp 1 Polygons and rectangles behave slightly differently when transformed (due to integer rounding), so @@ -1915,7 +1915,7 @@ QRect QTransform::mapRect(const QRect &rect) const The rectangle's coordinates are transformed using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qtransform.cpp 2 + \snippet code/src_gui_painting_qtransform.cpp 2 If rotation or shearing has been specified, this function returns the \e bounding rectangle. To retrieve the exact region the given @@ -1991,7 +1991,7 @@ QRectF QTransform::mapRect(const QRectF &rect) const The coordinates are transformed using the following formulas: - \snippet doc/src/snippets/code/src_gui_painting_qtransform.cpp 3 + \snippet code/src_gui_painting_qtransform.cpp 3 The point (x, y) is the original point, and (x', y') is the transformed point. diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 161bb4e..cd15560 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -367,7 +367,7 @@ QFontEngineData::~QFontEngineData() Create QFonts like this: - \snippet doc/src/snippets/code/src_gui_text_qfont.cpp 0 + \snippet code/src_gui_text_qfont.cpp 0 The attributes set in the constructor can also be set later, e.g. setFamily(), setPointSize(), setPointSizeFloat(), setWeight() and @@ -464,11 +464,11 @@ QFontEngineData::~QFontEngineData() Examples: - \snippet doc/src/snippets/code/src_gui_text_qfont.cpp 1 + \snippet code/src_gui_text_qfont.cpp 1 If you had both an Adobe and a Cronyx Helvetica, you might get either. - \snippet doc/src/snippets/code/src_gui_text_qfont.cpp 2 + \snippet code/src_gui_text_qfont.cpp 2 You can specify the foundry you want in the family name. The font f in the above example will be set to "Helvetica @@ -477,11 +477,11 @@ QFontEngineData::~QFontEngineData() To determine the attributes of the font actually used in the window system, use a QFontInfo object, e.g. - \snippet doc/src/snippets/code/src_gui_text_qfont.cpp 3 + \snippet code/src_gui_text_qfont.cpp 3 To find out font metrics use a QFontMetrics object, e.g. - \snippet doc/src/snippets/code/src_gui_text_qfont.cpp 4 + \snippet code/src_gui_text_qfont.cpp 4 For more general information on fonts, see the \link http://nwalsh.com/comp.fonts/FAQ/ comp.fonts FAQ.\endlink diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index a1af856..42096d9 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -1197,8 +1197,8 @@ QString QFontDatabase::styleString(const QFontInfo &fontInfo) Example: - \snippet doc/src/snippets/qfontdatabase/main.cpp 0 - \snippet doc/src/snippets/qfontdatabase/main.cpp 1 + \snippet qfontdatabase/main.cpp 0 + \snippet qfontdatabase/main.cpp 1 This example gets the list of font families, the list of styles for each family, and the point sizes that are available for diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index fe9e1d1..cc6fa4b 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -122,7 +122,7 @@ extern void qt_format_text(const QFont& font, const QRectF &_r, and size(), to return the size of that rectangle. Example: - \snippet doc/src/snippets/code/src_gui_text_qfontmetrics.cpp 0 + \snippet code/src_gui_text_qfontmetrics.cpp 0 \sa QFont, QFontInfo, QFontDatabase, QFontComboBox, {Character Map Example} */ @@ -976,7 +976,7 @@ int QFontMetrics::lineWidth() const and size(), to return the size of that rectangle. Example: - \snippet doc/src/snippets/code/src_gui_text_qfontmetrics.cpp 1 + \snippet code/src_gui_text_qfontmetrics.cpp 1 \sa QFont QFontInfo QFontDatabase */ diff --git a/src/gui/text/qsyntaxhighlighter.cpp b/src/gui/text/qsyntaxhighlighter.cpp index c6810ad..c372071 100644 --- a/src/gui/text/qsyntaxhighlighter.cpp +++ b/src/gui/text/qsyntaxhighlighter.cpp @@ -253,7 +253,7 @@ void QSyntaxHighlighterPrivate::reformatBlock(const QTextBlock &block) pass it the QTextEdit or QTextDocument that you want the syntax highlighting to be applied to. For example: - \snippet doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp 0 + \snippet code/src_gui_text_qsyntaxhighlighter.cpp 0 After this your highlightBlock() function will be called automatically whenever necessary. Use your highlightBlock() @@ -262,7 +262,7 @@ void QSyntaxHighlighterPrivate::reformatBlock(const QTextBlock &block) setFormat() function which applies a given QTextCharFormat on the current text block. For example: - \snippet doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp 1 + \snippet code/src_gui_text_qsyntaxhighlighter.cpp 1 Some syntaxes can have constructs that span several text blocks. For example, a C++ syntax highlighter should be able to @@ -285,7 +285,7 @@ void QSyntaxHighlighterPrivate::reformatBlock(const QTextBlock &block) For example, if you're writing a simple C++ syntax highlighter, you might designate 1 to signify "in comment": - \snippet doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp 2 + \snippet code/src_gui_text_qsyntaxhighlighter.cpp 2 In the example above, we first set the current block state to 0. Then, if the previous block ended within a comment, we higlight @@ -432,7 +432,7 @@ void QSyntaxHighlighter::rehighlightBlock(const QTextBlock &block) setFormat() as often as necessary to apply any font and color changes that you require. For example: - \snippet doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp 3 + \snippet code/src_gui_text_qsyntaxhighlighter.cpp 3 Some syntaxes can have constructs that span several text blocks. For example, a C++ syntax highlighter should be able to @@ -602,7 +602,7 @@ void QSyntaxHighlighter::setCurrentBlockState(int newState) and store their relative position and the actual QChar in a simple class derived from QTextBlockUserData: - \snippet doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp 4 + \snippet code/src_gui_text_qsyntaxhighlighter.cpp 4 During cursor navigation in the associated editor, you can ask the current QTextBlock (retrieved using the QTextCursor::block() diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp index 02fd921..ce46ec2 100644 --- a/src/gui/text/qtextcursor.cpp +++ b/src/gui/text/qtextcursor.cpp @@ -972,7 +972,7 @@ QTextLayout *QTextCursorPrivate::blockLayout(QTextBlock &block) const{ diacritics). Functions such as movePosition() and deleteChar() limit cursor movement to these valid positions. - \sa \link richtext.html Rich Text Processing\endlink + \sa {Rich Text Processing} */ @@ -1380,7 +1380,7 @@ void QTextCursor::setKeepPositionOnInsert(bool b) If there is a selection, the selection is deleted and replaced by \a text, for example: - \snippet doc/src/snippets/code/src_gui_text_qtextcursor.cpp 0 + \snippet code/src_gui_text_qtextcursor.cpp 0 This clears any existing selection, selects the word at the cursor (i.e. from position() forward), and replaces the selection with the phrase "Hello World". @@ -2301,7 +2301,7 @@ void QTextCursor::insertImage(const QTextImageFormat &format) Convenience method for inserting the image with the given \a name at the current position(). - \snippet doc/src/snippets/code/src_gui_text_qtextcursor.cpp 1 + \snippet code/src_gui_text_qtextcursor.cpp 1 */ void QTextCursor::insertImage(const QString &name) { @@ -2445,7 +2445,7 @@ bool QTextCursor::operator>(const QTextCursor &rhs) const For example: - \snippet doc/src/snippets/code/src_gui_text_qtextcursor.cpp 2 + \snippet code/src_gui_text_qtextcursor.cpp 2 The call to undo() will cause both insertions to be undone, causing both "World" and "Hello" to be removed. @@ -2474,7 +2474,7 @@ void QTextCursor::beginEditBlock() For example: - \snippet doc/src/snippets/code/src_gui_text_qtextcursor.cpp 3 + \snippet code/src_gui_text_qtextcursor.cpp 3 The call to undo() will cause all three insertions to be undone. diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index ec660dd..f054656 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -1511,7 +1511,7 @@ QTextBlock QTextDocument::begin() const This function returns a block to test for the end of the document while iterating over it. - \snippet doc/src/snippets/textdocumentendsnippet.cpp 0 + \snippet textdocumentendsnippet.cpp 0 The block returned is invalid and represents the block after the last block in the document. You can use lastBlock() to retrieve the @@ -1868,15 +1868,15 @@ QVariant QTextDocument::resource(int type, const QUrl &name) const For example, you can add an image as a resource in order to reference it from within the document: - \snippet snippets/textdocument-resources/main.cpp Adding a resource + \snippet textdocument-resources/main.cpp Adding a resource The image can be inserted into the document using the QTextCursor API: - \snippet snippets/textdocument-resources/main.cpp Inserting an image with a cursor + \snippet textdocument-resources/main.cpp Inserting an image with a cursor Alternatively, you can insert images using the HTML \c img tag: - \snippet snippets/textdocument-resources/main.cpp Inserting an image using HTML + \snippet textdocument-resources/main.cpp Inserting an image using HTML */ void QTextDocument::addResource(int type, const QUrl &name, const QVariant &resource) { @@ -2967,7 +2967,7 @@ void QTextHtmlExporter::emitFrameStyle(const QTextFrameFormat &format, FrameType The \a encoding parameter specifies the value for the charset attribute in the html header. For example if 'utf-8' is specified then the beginning of the generated html will look like this: - \snippet doc/src/snippets/code/src_gui_text_qtextdocument.cpp 0 + \snippet code/src_gui_text_qtextdocument.cpp 0 If no encoding is specified then no such meta information is generated. diff --git a/src/gui/text/qtextdocumentwriter.cpp b/src/gui/text/qtextdocumentwriter.cpp index b0bbeb7..2894c28 100644 --- a/src/gui/text/qtextdocumentwriter.cpp +++ b/src/gui/text/qtextdocumentwriter.cpp @@ -160,7 +160,7 @@ QTextDocumentWriter::~QTextDocumentWriter() Sets the format used to write documents to the \a format specified. \a format is a case insensitive text string. For example: - \snippet doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp 0 + \snippet code/src_gui_text_qtextdocumentwriter.cpp 0 You can call supportedDocumentFormats() for the full list of formats QTextDocumentWriter supports. diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 9a38b1f..bb3d897 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -2269,7 +2269,7 @@ QList QTextBlockFormat::tabPositions() const can be used to customize the numbers used in an ordered list so that they appear as (1), (2), (3), etc.: - \snippet doc/src/snippets/textdocument-listitemstyles/mainwindow.cpp add a styled, ordered list + \snippet textdocument-listitemstyles/mainwindow.cpp add a styled, ordered list \sa QTextList */ diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index 94af3ed..0ab9647 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -282,10 +282,10 @@ Qt::LayoutDirection QTextInlineObject::textDirection() const created lines. Here is a code snippet that demonstrates the layout phase: - \snippet doc/src/snippets/code/src_gui_text_qtextlayout.cpp 0 + \snippet code/src_gui_text_qtextlayout.cpp 0 The text can then be rendered by calling the layout's draw() function: - \snippet doc/src/snippets/code/src_gui_text_qtextlayout.cpp 1 + \snippet code/src_gui_text_qtextlayout.cpp 1 For a given position in the text you can find a valid cursor position with isValidCursorPosition(), nextCursorPosition(), and previousCursorPosition(). diff --git a/src/gui/text/qtextlist.cpp b/src/gui/text/qtextlist.cpp index c3c71bc..82d744d 100644 --- a/src/gui/text/qtextlist.cpp +++ b/src/gui/text/qtextlist.cpp @@ -75,7 +75,7 @@ public: The \l{QTextCursor::insertList()} function inserts an empty block into the document at the cursor position, and makes it the first item in a list. - \snippet doc/src/snippets/textdocument-lists/mainwindow.cpp 0 + \snippet textdocument-lists/mainwindow.cpp 0 The \l{QTextCursor::createList()} function takes the contents of the cursor's current block and turns it into the first item of a new list. diff --git a/src/gui/text/qtextobject.cpp b/src/gui/text/qtextobject.cpp index a9daf6b..d4e9c7d 100644 --- a/src/gui/text/qtextobject.cpp +++ b/src/gui/text/qtextobject.cpp @@ -939,8 +939,8 @@ bool QTextBlock::isValid() const An iterator can be constructed and used to access the fragments within a text block in the following way: - \snippet doc/src/snippets/textblock-fragments/xmlwriter.cpp 4 - \snippet doc/src/snippets/textblock-fragments/xmlwriter.cpp 7 + \snippet textblock-fragments/xmlwriter.cpp 4 + \snippet textblock-fragments/xmlwriter.cpp 7 \sa QTextFragment */ diff --git a/src/gui/text/qtexttable.cpp b/src/gui/text/qtexttable.cpp index 65bc8fd..a986618 100644 --- a/src/gui/text/qtexttable.cpp +++ b/src/gui/text/qtexttable.cpp @@ -510,9 +510,9 @@ void QTextTablePrivate::update() const For example, we can insert a table with three rows and two columns at the current cursor position in an editor using the following lines of code: - \snippet doc/src/snippets/textdocument-tables/mainwindow.cpp 1 + \snippet textdocument-tables/mainwindow.cpp 1 \codeline - \snippet doc/src/snippets/textdocument-tables/mainwindow.cpp 3 + \snippet textdocument-tables/mainwindow.cpp 3 The table format is either defined when the table is created or changed later with setFormat(). @@ -545,14 +545,14 @@ void QTextTablePrivate::update() const \li Suppose we have a 2x3 table of names and addresses. To merge both columns in the first row we invoke mergeCells() with \a row = 0, \a column = 0, \a numRows = 1 and \a numColumns = 2. - \snippet doc/src/snippets/textdocument-texttable/main.cpp 0 + \snippet textdocument-texttable/main.cpp 0 \row \li \inlineimage texttable-merge.png \li This gives us the following table. To split the first row of the table back into two cells, we invoke the splitCell() function with \a numRows and \a numCols = 1. - \snippet doc/src/snippets/textdocument-texttable/main.cpp 1 + \snippet textdocument-texttable/main.cpp 1 \row \li \inlineimage texttable-split.png Split Table diff --git a/src/gui/util/qdesktopservices.cpp b/src/gui/util/qdesktopservices.cpp index a941c06..1535162 100644 --- a/src/gui/util/qdesktopservices.cpp +++ b/src/gui/util/qdesktopservices.cpp @@ -135,7 +135,7 @@ void QOpenUrlHandlerRegistry::handlerDestroyed(QObject *handler) URLs, and by registering a handler it becomes possible to display the help text inside the application: - \snippet doc/src/snippets/code/src_gui_util_qdesktopservices.cpp 0 + \snippet code/src_gui_util_qdesktopservices.cpp 0 If inside the handler you decide that you can't open the requested URL, you can just call QDesktopServices::openUrl() again with the @@ -155,7 +155,7 @@ void QOpenUrlHandlerRegistry::handlerDestroyed(QObject *handler) The following example opens a file on the Windows file system residing on a path that contains spaces: - \snippet doc/src/snippets/code/src_gui_util_qdesktopservices.cpp 2 + \snippet code/src_gui_util_qdesktopservices.cpp 2 If a \c mailto URL is specified, the user's e-mail client will be used to open a composer window containing the options specified in the URL, similar to the way @@ -164,7 +164,7 @@ void QOpenUrlHandlerRegistry::handlerDestroyed(QObject *handler) For example, the following URL contains a recipient (\c{user@foo.com}), a subject (\c{Test}), and a message body (\c{Just a test}): - \snippet doc/src/snippets/code/src_gui_util_qdesktopservices.cpp 1 + \snippet code/src_gui_util_qdesktopservices.cpp 1 \warning Although many e-mail clients can send attachments and are Unicode-aware, the user may have configured their client without these features. diff --git a/src/gui/util/qvalidator.cpp b/src/gui/util/qvalidator.cpp index 3103cc7..84a5b4c 100644 --- a/src/gui/util/qvalidator.cpp +++ b/src/gui/util/qvalidator.cpp @@ -303,12 +303,12 @@ void QValidator::fixup(QString &) const Example of use: - \snippet doc/src/snippets/code/src_gui_widgets_qvalidator.cpp 0 + \snippet code/src_gui_util_qvalidator.cpp 0 Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above. - \snippet doc/src/snippets/code/src_gui_widgets_qvalidator.cpp 1 + \snippet code/src_gui_util_qvalidator.cpp 1 Notice that the value \c 999 returns Intermediate. Values consisting of a number of digits equal to or less than the max @@ -377,7 +377,7 @@ QIntValidator::~QIntValidator() the user might be just about to type the minus (especially for right-to-left languages). - \snippet doc/src/snippets/code/src_gui_widgets_qvalidator.cpp 2 + \snippet code/src_gui_util_qvalidator.cpp 2 By default, the \a pos parameter is not used by this validator. */ @@ -812,12 +812,12 @@ QDoubleValidator::Notation QDoubleValidator::notation() const For a brief introduction to Qt's regexp engine, see \l QRegExp. Example of use: - \snippet doc/src/snippets/code/src_gui_widgets_qvalidator.cpp 3 + \snippet code/src_gui_util_qvalidator.cpp 3 Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above. - \snippet doc/src/snippets/code/src_gui_widgets_qvalidator.cpp 4 + \snippet code/src_gui_util_qvalidator.cpp 4 \sa QRegExp, QIntValidator, QDoubleValidator, {Settings Editor Example} */ -- 2.7.4